From 97b5f5cdd60fefdb6fb5cc3f30298db31b914054 Mon Sep 17 00:00:00 2001 From: ILyoan Date: Thu, 30 May 2013 11:20:52 +0900 Subject: [PATCH 1/4] Supprot css class selection --- src/components/main/css/select_handler.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/components/main/css/select_handler.rs b/src/components/main/css/select_handler.rs index 80affef9d34..1b759241999 100644 --- a/src/components/main/css/select_handler.rs +++ b/src/components/main/css/select_handler.rs @@ -86,6 +86,16 @@ impl SelectHandler> for NodeSelectHandler { } } + fn with_node_classes(&self, node: &AbstractNode, f: &fn(Option<&str>) -> R) -> R { + if !node.is_element() { + fail!(~"attempting to style non-element node"); + } + do node.with_imm_element() |element_n| { + f(element_n.get_attr("class")) + } + } + + fn with_node_id(&self, node: &AbstractNode, f: &fn(Option<&str>) -> R) -> R { if !node.is_element() { fail!(~"attempting to style non-element node"); From 8c92b8accd38c001bf508b2a5034dc7ea8747f7e Mon Sep 17 00:00:00 2001 From: ILyoan Date: Fri, 31 May 2013 17:16:01 +0900 Subject: [PATCH 2/4] Support css class selection (2) --- src/components/main/css/select_handler.rs | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) 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> for NodeSelectHandler { f(element_n.get_attr("class")) } } - + + fn node_has_class(&self, node: &AbstractNode, 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(&self, node: &AbstractNode, f: &fn(Option<&str>) -> R) -> R { if !node.is_element() { From aaeb683654c95e9b55667a29fd882b8e0acb3a88 Mon Sep 17 00:00:00 2001 From: ILyoan Date: Fri, 31 May 2013 17:57:16 +0900 Subject: [PATCH 3/4] Add test for css class --- src/test/html/test_class_helloworld.html | 20 +++++++++++++++++++ src/test/{ => html}/test_italic_bold.html | 0 src/test/{ => html}/test_underline.html | 0 .../{ => html}/test_underline_helloworld.html | 0 4 files changed, 20 insertions(+) create mode 100644 src/test/html/test_class_helloworld.html rename src/test/{ => html}/test_italic_bold.html (100%) rename src/test/{ => html}/test_underline.html (100%) rename src/test/{ => html}/test_underline_helloworld.html (100%) diff --git a/src/test/html/test_class_helloworld.html b/src/test/html/test_class_helloworld.html new file mode 100644 index 00000000000..5e997544d57 --- /dev/null +++ b/src/test/html/test_class_helloworld.html @@ -0,0 +1,20 @@ + + + + + + +
+
Hello
+
World
+
Hello
+
World
+
+ + diff --git a/src/test/test_italic_bold.html b/src/test/html/test_italic_bold.html similarity index 100% rename from src/test/test_italic_bold.html rename to src/test/html/test_italic_bold.html diff --git a/src/test/test_underline.html b/src/test/html/test_underline.html similarity index 100% rename from src/test/test_underline.html rename to src/test/html/test_underline.html diff --git a/src/test/test_underline_helloworld.html b/src/test/html/test_underline_helloworld.html similarity index 100% rename from src/test/test_underline_helloworld.html rename to src/test/html/test_underline_helloworld.html From cf0f9ed4ea560e8fcc2bfa3db6688788745a76c8 Mon Sep 17 00:00:00 2001 From: ILyoan Date: Wed, 12 Jun 2013 14:21:10 +0900 Subject: [PATCH 4/4] Update submodules --- src/support/css/rust-css | 2 +- src/support/netsurfcss/libcss | 2 +- src/support/netsurfcss/rust-netsurfcss | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/support/css/rust-css b/src/support/css/rust-css index 57407e5209e..865f5391143 160000 --- a/src/support/css/rust-css +++ b/src/support/css/rust-css @@ -1 +1 @@ -Subproject commit 57407e5209ec95e695e17447fa7c5dfea96629b3 +Subproject commit 865f539114383a021822583801e8362faf916699 diff --git a/src/support/netsurfcss/libcss b/src/support/netsurfcss/libcss index d722188de38..da248d3f5b3 160000 --- a/src/support/netsurfcss/libcss +++ b/src/support/netsurfcss/libcss @@ -1 +1 @@ -Subproject commit d722188de3876ed748382965eb4f300fc1b78bf8 +Subproject commit da248d3f5b3ed6d9e804c543563be8e34baf1673 diff --git a/src/support/netsurfcss/rust-netsurfcss b/src/support/netsurfcss/rust-netsurfcss index 3565b32ba3d..325cd5197ed 160000 --- a/src/support/netsurfcss/rust-netsurfcss +++ b/src/support/netsurfcss/rust-netsurfcss @@ -1 +1 @@ -Subproject commit 3565b32ba3d15d31b02cc76bdf76d6b13fc88451 +Subproject commit 325cd5197ed953f5c7c9317111b20ec1599eaffe