diff options
author | Brian Anderson <banderson@mozilla.com> | 2012-11-02 18:57:30 -0700 |
---|---|---|
committer | Brian Anderson <banderson@mozilla.com> | 2012-11-02 23:26:43 -0700 |
commit | f6da6bed80d2c35d574e136e4a4dc32ba509f8f5 (patch) | |
tree | 90c882906a6077a735405726a5dd966c365cb2a5 /src/servo/css/select_handler.rs | |
parent | 301070855e8ea20982b6af742f174d4e9f1298c2 (diff) | |
download | servo-f6da6bed80d2c35d574e136e4a4dc32ba509f8f5.tar.gz servo-f6da6bed80d2c35d574e136e4a4dc32ba509f8f5.zip |
Draw simple borders again
Diffstat (limited to 'src/servo/css/select_handler.rs')
-rw-r--r-- | src/servo/css/select_handler.rs | 37 |
1 files changed, 31 insertions, 6 deletions
diff --git a/src/servo/css/select_handler.rs b/src/servo/css/select_handler.rs index 0b48e08a5df..d0f58b37c16 100644 --- a/src/servo/css/select_handler.rs +++ b/src/servo/css/select_handler.rs @@ -1,5 +1,6 @@ -use dom::node::{Node, Doctype, Comment, Element, Text}; +use dom::node::{Node, NodeData, NodeTree, Doctype, Comment, Element, Text}; use newcss::SelectHandler; +use util::tree; pub struct NodeSelectHandler { node: Node @@ -10,15 +11,39 @@ fn unnamed_node(name: &str) -> ~str { fmt!("unnamed-%s", name) } +fn node_name(data: &NodeData) -> ~str { + match *data.kind { + Doctype(*) => unnamed_node("doctype"), + Comment(*) => unnamed_node("comment"), + Element(ref data) => copy data.tag_name, + Text(*) => unnamed_node("text") + } +} + impl NodeSelectHandler: SelectHandler<Node> { fn node_name(node: &Node) -> ~str { do node.read |data| { - match *data.kind { - Doctype(*) => unnamed_node("doctype"), - Comment(*) => unnamed_node("comment"), - Element(ref data) => copy data.tag_name, - Text(*) => unnamed_node("text") + node_name(data) + } + } + + fn named_parent_node(node: &Node, name: &str) -> Option<Node> { + let parent = tree::parent(&NodeTree, node); + match parent { + Some(parent) => { + do parent.read |data| { + if name == node_name(data) { + Some(parent) + } else { + None + } + } } + None => None } } + + fn parent_node(node: &Node) -> Option<Node> { + tree::parent(&NodeTree, node) + } }
\ No newline at end of file |