mirror of
https://github.com/servo/servo.git
synced 2025-08-03 20:50:07 +01:00
Move AbastractNode::is_element to the TreeNodeRef trait.
This commit is contained in:
parent
6c41be9c13
commit
6d808fbdd0
8 changed files with 17 additions and 11 deletions
|
@ -9,6 +9,8 @@ use layout::incremental::RestyleDamage;
|
||||||
|
|
||||||
use newcss::complete::CompleteStyle;
|
use newcss::complete::CompleteStyle;
|
||||||
use script::dom::node::{AbstractNode, LayoutView};
|
use script::dom::node::{AbstractNode, LayoutView};
|
||||||
|
use servo_util::tree::TreeNodeRef;
|
||||||
|
|
||||||
|
|
||||||
/// Node mixin providing `style` method that returns a `NodeStyle`
|
/// Node mixin providing `style` method that returns a `NodeStyle`
|
||||||
pub trait StyledNode {
|
pub trait StyledNode {
|
||||||
|
|
|
@ -8,6 +8,8 @@ use std::cast;
|
||||||
use std::cell::Cell;
|
use std::cell::Cell;
|
||||||
use newcss::complete::CompleteSelectResults;
|
use newcss::complete::CompleteSelectResults;
|
||||||
use script::dom::node::{AbstractNode, LayoutView};
|
use script::dom::node::{AbstractNode, LayoutView};
|
||||||
|
use servo_util::tree::TreeNodeRef;
|
||||||
|
|
||||||
|
|
||||||
pub trait NodeUtil<'self> {
|
pub trait NodeUtil<'self> {
|
||||||
fn get_css_select_results(self) -> &'self CompleteSelectResults;
|
fn get_css_select_results(self) -> &'self CompleteSelectResults;
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
use std::str::eq_slice;
|
use std::str::eq_slice;
|
||||||
use newcss::select::SelectHandler;
|
use newcss::select::SelectHandler;
|
||||||
use script::dom::node::{AbstractNode, LayoutView};
|
use script::dom::node::{AbstractNode, LayoutView};
|
||||||
use servo_util::tree::ElementLike;
|
use servo_util::tree::{TreeNodeRef, ElementLike};
|
||||||
|
|
||||||
pub struct NodeSelectHandler {
|
pub struct NodeSelectHandler {
|
||||||
node: AbstractNode<LayoutView>,
|
node: AbstractNode<LayoutView>,
|
||||||
|
|
|
@ -38,7 +38,7 @@ use script::dom::node::{AbstractNode, LayoutView};
|
||||||
use servo_net::image::holder::ImageHolder;
|
use servo_net::image::holder::ImageHolder;
|
||||||
use servo_net::local_image_cache::LocalImageCache;
|
use servo_net::local_image_cache::LocalImageCache;
|
||||||
use servo_util::range::*;
|
use servo_util::range::*;
|
||||||
use servo_util::tree::ElementLike;
|
use servo_util::tree::{TreeNodeRef, ElementLike};
|
||||||
use extra::url::Url;
|
use extra::url::Url;
|
||||||
|
|
||||||
/// Render boxes (`struct RenderBox`) are the leaves of the layout tree. They cannot position
|
/// Render boxes (`struct RenderBox`) are the leaves of the layout tree. They cannot position
|
||||||
|
|
|
@ -14,7 +14,7 @@ use dom::node::{ElementNodeTypeId, Node, ScriptView, AbstractNode};
|
||||||
use layout_interface::{ContentBoxQuery, ContentBoxResponse, ContentBoxesQuery};
|
use layout_interface::{ContentBoxQuery, ContentBoxResponse, ContentBoxesQuery};
|
||||||
use layout_interface::{ContentBoxesResponse};
|
use layout_interface::{ContentBoxesResponse};
|
||||||
use newcss::stylesheet::Stylesheet;
|
use newcss::stylesheet::Stylesheet;
|
||||||
use servo_util::tree::ElementLike;
|
use servo_util::tree::{TreeNodeRef, ElementLike};
|
||||||
|
|
||||||
use js::jsapi::{JSContext, JSObject};
|
use js::jsapi::{JSContext, JSObject};
|
||||||
|
|
||||||
|
|
|
@ -154,6 +154,13 @@ impl<View> TreeNodeRef<Node<View>> for AbstractNode<View> {
|
||||||
fn with_mut_base<R>(&self, callback: &fn(&mut Node<View>) -> R) -> R {
|
fn with_mut_base<R>(&self, callback: &fn(&mut Node<View>) -> R) -> R {
|
||||||
self.transmute_mut(callback)
|
self.transmute_mut(callback)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn is_element(self) -> bool {
|
||||||
|
match self.type_id() {
|
||||||
|
ElementNodeTypeId(*) => true,
|
||||||
|
_ => false
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<View> TreeNodeRefAsElement<Node<View>, Element> for AbstractNode<View> {
|
impl<View> TreeNodeRefAsElement<Node<View>, Element> for AbstractNode<View> {
|
||||||
|
@ -317,13 +324,6 @@ impl<'self, View> AbstractNode<View> {
|
||||||
self.transmute_mut(f)
|
self.transmute_mut(f)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn is_element(self) -> bool {
|
|
||||||
match self.type_id() {
|
|
||||||
ElementNodeTypeId(*) => true,
|
|
||||||
_ => false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// FIXME: This should be doing dynamic borrow checking for safety.
|
// FIXME: This should be doing dynamic borrow checking for safety.
|
||||||
pub fn with_imm_element<R>(self, f: &fn(&Element) -> R) -> R {
|
pub fn with_imm_element<R>(self, f: &fn(&Element) -> R) -> R {
|
||||||
if !self.is_element() {
|
if !self.is_element() {
|
||||||
|
|
|
@ -11,7 +11,7 @@ use media_queries::{Device, Screen};
|
||||||
use properties::{PropertyDeclaration, PropertyDeclarationBlock};
|
use properties::{PropertyDeclaration, PropertyDeclarationBlock};
|
||||||
use script::dom::node::{AbstractNode, ScriptView};
|
use script::dom::node::{AbstractNode, ScriptView};
|
||||||
use script::dom::element::Element;
|
use script::dom::element::Element;
|
||||||
use servo_util::tree::ElementLike;
|
use servo_util::tree::{TreeNodeRef, ElementLike};
|
||||||
|
|
||||||
|
|
||||||
pub enum StylesheetOrigin {
|
pub enum StylesheetOrigin {
|
||||||
|
|
|
@ -248,6 +248,8 @@ pub trait TreeNodeRef<Node>: Clone {
|
||||||
gather(self, &mut nodes, true, prune);
|
gather(self, &mut nodes, true, prune);
|
||||||
TreeIterator::new(nodes)
|
TreeIterator::new(nodes)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn is_element(self) -> bool;
|
||||||
}
|
}
|
||||||
|
|
||||||
pub trait TreeNodeRefAsElement<Node, E: ElementLike>: TreeNodeRef<Node> {
|
pub trait TreeNodeRefAsElement<Node, E: ElementLike>: TreeNodeRef<Node> {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue