mirror of
https://github.com/servo/servo.git
synced 2025-08-05 13:40:08 +01:00
Extract OpaqueNodeMethods to own file
This commit is contained in:
parent
417a932e30
commit
b424de2092
8 changed files with 76 additions and 62 deletions
|
@ -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.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue