aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom
diff options
context:
space:
mode:
authorMs2ger <ms2ger@gmail.com>2015-07-23 20:30:59 +0200
committerMs2ger <ms2ger@gmail.com>2015-07-23 20:30:59 +0200
commit487eef88e314874a275ebc25e8e4658186f68dff (patch)
treed9dfe322c05ac89902acd82a3aa801a5ca7ecd8e /components/script/dom
parent849eb7837a80acfd81fb3840f166ba754ea38b76 (diff)
downloadservo-487eef88e314874a275ebc25e8e4658186f68dff.tar.gz
servo-487eef88e314874a275ebc25e8e4658186f68dff.zip
Move the state getters to LayoutElementHelpers.
Diffstat (limited to 'components/script/dom')
-rw-r--r--components/script/dom/element.rs51
1 files changed, 26 insertions, 25 deletions
diff --git a/components/script/dom/element.rs b/components/script/dom/element.rs
index a5fc6f955da..81db37aa09b 100644
--- a/components/script/dom/element.rs
+++ b/components/script/dom/element.rs
@@ -177,8 +177,6 @@ pub trait RawLayoutElementHelpers {
unsafe fn synthesize_presentational_hints_for_legacy_attributes<V>(&self, &mut V)
where V: VecLike<DeclarationBlock<Vec<PropertyDeclaration>>>;
- unsafe fn get_checked_state_for_layout(&self) -> bool;
- unsafe fn get_indeterminate_state_for_layout(&self) -> bool;
unsafe fn get_unsigned_integer_attribute_for_layout(&self, attribute: UnsignedIntegerAttribute)
-> Option<u32>;
}
@@ -457,29 +455,6 @@ impl RawLayoutElementHelpers for Element {
}
}
- #[inline]
- #[allow(unrooted_must_root)]
- unsafe fn get_checked_state_for_layout(&self) -> bool {
- // TODO option and menuitem can also have a checked state.
- if !self.is_htmlinputelement() {
- return false
- }
- let this: &HTMLInputElement = mem::transmute(self);
- this.get_checked_state_for_layout()
- }
-
- #[inline]
- #[allow(unrooted_must_root)]
- unsafe fn get_indeterminate_state_for_layout(&self) -> bool {
- // TODO progress elements can also be matched with :indeterminate
- if !self.is_htmlinputelement() {
- return false
- }
- let this: &HTMLInputElement = mem::transmute(self);
- this.get_indeterminate_state_for_layout()
- }
-
-
unsafe fn get_unsigned_integer_attribute_for_layout(&self,
attribute: UnsignedIntegerAttribute)
-> Option<u32> {
@@ -506,6 +481,8 @@ pub trait LayoutElementHelpers {
fn style_attribute(&self) -> *const Option<PropertyDeclarationBlock>;
fn local_name<'a>(&'a self) -> &'a Atom;
fn namespace<'a>(&'a self) -> &'a Namespace;
+ fn get_checked_state_for_layout(&self) -> bool;
+ fn get_indeterminate_state_for_layout(&self) -> bool;
}
impl LayoutElementHelpers for LayoutJS<Element> {
@@ -544,6 +521,30 @@ impl LayoutElementHelpers for LayoutJS<Element> {
&(*self.unsafe_get()).namespace
}
}
+
+ #[inline]
+ #[allow(unsafe_code)]
+ fn get_checked_state_for_layout(&self) -> bool {
+ // TODO option and menuitem can also have a checked state.
+ match HTMLInputElementCast::to_layout_js(self) {
+ Some(input) => unsafe {
+ (*input.unsafe_get()).get_checked_state_for_layout()
+ },
+ None => false,
+ }
+ }
+
+ #[inline]
+ #[allow(unsafe_code)]
+ fn get_indeterminate_state_for_layout(&self) -> bool {
+ // TODO progress elements can also be matched with :indeterminate
+ match HTMLInputElementCast::to_layout_js(self) {
+ Some(input) => unsafe {
+ (*input.unsafe_get()).get_indeterminate_state_for_layout()
+ },
+ None => false,
+ }
+ }
}
#[derive(PartialEq)]