aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/main/css/select_handler.rs
diff options
context:
space:
mode:
authorILyoan <ilyoan@gmail.com>2013-05-31 17:16:01 +0900
committerILyoan <ilyoan@gmail.com>2013-06-12 14:05:44 +0900
commit8c92b8accd38c001bf508b2a5034dc7ea8747f7e (patch)
tree6c9cf781893fadea89c3e32e1f85f43e96cc5315 /src/components/main/css/select_handler.rs
parent97b5f5cdd60fefdb6fb5cc3f30298db31b914054 (diff)
downloadservo-8c92b8accd38c001bf508b2a5034dc7ea8747f7e.tar.gz
servo-8c92b8accd38c001bf508b2a5034dc7ea8747f7e.zip
Support css class selection (2)
Diffstat (limited to 'src/components/main/css/select_handler.rs')
-rw-r--r--src/components/main/css/select_handler.rs22
1 files changed, 21 insertions, 1 deletions
diff --git a/src/components/main/css/select_handler.rs b/src/components/main/css/select_handler.rs
index 1b759241999..56312ee210b 100644
--- a/src/components/main/css/select_handler.rs
+++ b/src/components/main/css/select_handler.rs
@@ -94,7 +94,27 @@ impl SelectHandler<AbstractNode<LayoutView>> for NodeSelectHandler {
f(element_n.get_attr("class"))
}
}
-
+
+ fn node_has_class(&self, node: &AbstractNode<LayoutView>, class: &str) -> bool {
+ if !node.is_element() {
+ fail!(~"attempting to style non-element node");
+ }
+ do node.with_imm_element |element_n| {
+ match element_n.get_attr("class") {
+ None => false,
+ Some(existing_classes) => {
+ let mut ret = false;
+ for str::each_split_char(existing_classes, ' ') |s| {
+ if s == class {
+ ret = true;
+ break;
+ }
+ }
+ ret
+ }
+ }
+ }
+ }
fn with_node_id<R>(&self, node: &AbstractNode<LayoutView>, f: &fn(Option<&str>) -> R) -> R {
if !node.is_element() {