mirror of
https://github.com/servo/servo.git
synced 2025-08-06 14:10:11 +01:00
implements nsStyleImageRequest type properties animatable
This commit is contained in:
parent
d885747a18
commit
d8dcc52c9a
3 changed files with 33 additions and 1 deletions
|
@ -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;
|
||||
|
@ -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 {
|
||||
|
|
|
@ -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};
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue