Skip to content

Commit

Permalink
implements nsStyleImageRequest type properties animatable
Browse files Browse the repository at this point in the history
  • Loading branch information
dadaa committed Jul 5, 2017
1 parent d885747 commit d8dcc52
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 1 deletion.
14 changes: 14 additions & 0 deletions components/style/gecko/url.rs
Expand Up @@ -7,6 +7,7 @@
use gecko_bindings::structs::{ServoBundledURI, URLExtraData};
use gecko_bindings::structs::mozilla::css::URLValueData;
use gecko_bindings::structs::root::mozilla::css::ImageValue;
use gecko_bindings::structs::root::nsStyleImageRequest;
use gecko_bindings::sugar::refptr::RefPtr;
use parser::ParserContext;
use std::fmt;
Expand Down Expand Up @@ -62,6 +63,19 @@ impl SpecifiedUrl {
})
}

/// Convert from nsStyleImageRequest to SpecifiedUrl.
pub unsafe fn from_image_request(image_request: &nsStyleImageRequest) -> Result<SpecifiedUrl, ()> {
if image_request.mImageValue.mRawPtr.is_null() {
return Err(());
}

let image_value = image_request.mImageValue.mRawPtr.as_ref().unwrap();
let ref url_value_data = image_value._base;
let mut result = try!(Self::from_url_value_data(url_value_data));
result.build_image_value();
Ok(result)
}

/// Returns true if this URL looks like a fragment.
/// See https://drafts.csswg.org/css-values/#local-urls
pub fn is_fragment(&self) -> bool {
Expand Down
18 changes: 18 additions & 0 deletions components/style/properties/gecko.mako.rs
Expand Up @@ -3413,6 +3413,24 @@ fn static_assert() {
unsafe { Gecko_CopyListStyleImageFrom(&mut self.gecko, &other.gecko); }
}

pub fn clone_list_style_image(&self) -> longhands::list_style_image::computed_value::T {
use values::specified::url::SpecifiedUrl;
use values::{Either, None_};

longhands::list_style_image::computed_value::T(
match self.gecko.mListStyleImage.mRawPtr.is_null() {
true => Either::Second(None_),
false => {
unsafe {
let ref gecko_image_request = *self.gecko.mListStyleImage.mRawPtr;
Either::First(SpecifiedUrl::from_image_request(gecko_image_request)
.expect("mListStyleImage could not convert to SpecifiedUrl"))
}
}
}
)
}

pub fn set_list_style_type(&mut self, v: longhands::list_style_type::computed_value::T, device: &Device) {
use gecko_bindings::bindings::Gecko_SetCounterStyleToString;
use nsstring::{nsACString, nsCString};
Expand Down
2 changes: 1 addition & 1 deletion components/style/properties/longhand/list.mako.rs
Expand Up @@ -100,7 +100,7 @@ ${helpers.single_keyword("list-style-position", "outside inside", animation_valu
</%helpers:longhand>
% endif

<%helpers:longhand name="list-style-image" animation_value_type="none"
<%helpers:longhand name="list-style-image" animation_value_type="discrete"
boxed="${product == 'gecko'}"
spec="https://drafts.csswg.org/css-lists/#propdef-list-style-image">
use values::computed::ComputedValueAsSpecified;
Expand Down

0 comments on commit d8dcc52

Please sign in to comment.