mirror of
https://github.com/servo/servo.git
synced 2025-08-07 06:25:32 +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::{ServoBundledURI, URLExtraData};
|
||||||
use gecko_bindings::structs::mozilla::css::URLValueData;
|
use gecko_bindings::structs::mozilla::css::URLValueData;
|
||||||
use gecko_bindings::structs::root::mozilla::css::ImageValue;
|
use gecko_bindings::structs::root::mozilla::css::ImageValue;
|
||||||
|
use gecko_bindings::structs::root::nsStyleImageRequest;
|
||||||
use gecko_bindings::sugar::refptr::RefPtr;
|
use gecko_bindings::sugar::refptr::RefPtr;
|
||||||
use parser::ParserContext;
|
use parser::ParserContext;
|
||||||
use std::fmt;
|
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.
|
/// Returns true if this URL looks like a fragment.
|
||||||
/// See https://drafts.csswg.org/css-values/#local-urls
|
/// See https://drafts.csswg.org/css-values/#local-urls
|
||||||
pub fn is_fragment(&self) -> bool {
|
pub fn is_fragment(&self) -> bool {
|
||||||
|
|
|
@ -3413,6 +3413,24 @@ fn static_assert() {
|
||||||
unsafe { Gecko_CopyListStyleImageFrom(&mut self.gecko, &other.gecko); }
|
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) {
|
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 gecko_bindings::bindings::Gecko_SetCounterStyleToString;
|
||||||
use nsstring::{nsACString, nsCString};
|
use nsstring::{nsACString, nsCString};
|
||||||
|
|
|
@ -100,7 +100,7 @@ ${helpers.single_keyword("list-style-position", "outside inside", animation_valu
|
||||||
</%helpers:longhand>
|
</%helpers:longhand>
|
||||||
% endif
|
% endif
|
||||||
|
|
||||||
<%helpers:longhand name="list-style-image" animation_value_type="none"
|
<%helpers:longhand name="list-style-image" animation_value_type="discrete"
|
||||||
boxed="${product == 'gecko'}"
|
boxed="${product == 'gecko'}"
|
||||||
spec="https://drafts.csswg.org/css-lists/#propdef-list-style-image">
|
spec="https://drafts.csswg.org/css-lists/#propdef-list-style-image">
|
||||||
use values::computed::ComputedValueAsSpecified;
|
use values::computed::ComputedValueAsSpecified;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue