diff options
author | Dan Fox <iamdanfox@gmail.com> | 2015-03-03 17:49:10 +0000 |
---|---|---|
committer | Dan Fox <iamdanfox@gmail.com> | 2015-03-03 17:49:10 +0000 |
commit | b424de2092b818c9ed76679ffcd6ecfa621e62ef (patch) | |
tree | 04f83b0d3fcbefdaa8fe079723e4cd10251ee36f /components/layout/util.rs | |
parent | 417a932e306438b5cda7a7071412a34d3e503f94 (diff) | |
download | servo-b424de2092b818c9ed76679ffcd6ecfa621e62ef.tar.gz servo-b424de2092b818c9ed76679ffcd6ecfa621e62ef.zip |
Extract OpaqueNodeMethods to own file
Diffstat (limited to 'components/layout/util.rs')
-rw-r--r-- | components/layout/util.rs | 60 |
1 files changed, 3 insertions, 57 deletions
diff --git a/components/layout/util.rs b/components/layout/util.rs index 8d4d72e7466..85c0e1a60d9 100644 --- a/components/layout/util.rs +++ b/components/layout/util.rs @@ -7,16 +7,12 @@ use construct::ConstructionResult; use incremental::RestyleDamage; use parallel::DomParallelInfo; -use wrapper::{LayoutNode, TLayoutNode, ThreadSafeLayoutNode}; +use wrapper::{LayoutNode, TLayoutNode}; use azure::azure_hl::Color; -use gfx::display_list::OpaqueNode; use gfx; -use libc::{c_void, uintptr_t}; -use script::dom::bindings::js::LayoutJS; -use script::dom::node::{Node, SharedLayoutData}; -use script::layout_interface::{LayoutChan, TrustedNodeAddress}; -use script_traits::UntrustedNodeAddress; +use script::dom::node::SharedLayoutData; +use script::layout_interface::LayoutChan; use std::mem; use std::cell::{Ref, RefMut}; use style::properties::ComputedValues; @@ -123,56 +119,6 @@ impl<'ln> LayoutDataAccess for LayoutNode<'ln> { } } -pub trait OpaqueNodeMethods { - /// Converts a DOM node (layout view) to an `OpaqueNode`. - fn from_layout_node(node: &LayoutNode) -> Self; - - /// Converts a thread-safe DOM node (layout view) to an `OpaqueNode`. - fn from_thread_safe_layout_node(node: &ThreadSafeLayoutNode) -> Self; - - /// Converts a DOM node (script view) to an `OpaqueNode`. - fn from_script_node(node: TrustedNodeAddress) -> Self; - - /// Converts a DOM node to an `OpaqueNode'. - fn from_jsmanaged(node: &LayoutJS<Node>) -> Self; - - /// Converts this node to an `UntrustedNodeAddress`. An `UntrustedNodeAddress` is just the type - /// of node that script expects to receive in a hit test. - fn to_untrusted_node_address(&self) -> UntrustedNodeAddress; -} - -impl OpaqueNodeMethods for OpaqueNode { - fn from_layout_node(node: &LayoutNode) -> OpaqueNode { - unsafe { - OpaqueNodeMethods::from_jsmanaged(node.get_jsmanaged()) - } - } - - fn from_thread_safe_layout_node(node: &ThreadSafeLayoutNode) -> OpaqueNode { - unsafe { - OpaqueNodeMethods::from_jsmanaged(node.get_jsmanaged()) - } - } - - fn from_script_node(node: TrustedNodeAddress) -> OpaqueNode { - unsafe { - OpaqueNodeMethods::from_jsmanaged(&LayoutJS::from_trusted_node_address(node)) - } - } - - fn from_jsmanaged(node: &LayoutJS<Node>) -> OpaqueNode { - unsafe { - let ptr: uintptr_t = node.get_jsobject() as uintptr_t; - OpaqueNode(ptr) - } - } - - fn to_untrusted_node_address(&self) -> UntrustedNodeAddress { - let OpaqueNode(addr) = *self; - UntrustedNodeAddress(addr as *const c_void) - } -} - /// Allows a CSS color to be converted into a graphics color. pub trait ToGfxColor { /// Converts a CSS color to a graphics color. |