Skip to content

Commit 635a121

Browse files
committed
CSS manipulation through handle
1 parent b596ca1 commit 635a121

File tree

3 files changed

+27
-3
lines changed

3 files changed

+27
-3
lines changed

Cargo.toml

+3-3
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,16 @@ description = "Crate to ease web-programming including Rust as fist-class citize
1414
crate-type = ["cdylib", "rlib"]
1515

1616
[dependencies]
17-
wasm-bindgen = "0.2.68"
17+
wasm-bindgen = "0.2"
1818

1919
[dependencies.web-sys]
2020
version = "0.3"
2121
features = [
2222
"console",
2323
"CssStyleDeclaration",
24+
"DomTokenList",
2425
"Document",
2526
"Element",
26-
"HtmlCollection",
2727
"HtmlElement",
2828
"HtmlHeadElement",
2929
"HtmlScriptElement",
@@ -32,4 +32,4 @@ features = [
3232

3333
[dev-dependencies]
3434
wasm-bindgen-test = "0.3"
35-
wasm-bindgen-futures = "0.4.18"
35+
wasm-bindgen-futures = "0.4"

src/pane.rs

+12
Original file line numberDiff line numberDiff line change
@@ -151,4 +151,16 @@ impl Pane {
151151

152152
Ok(())
153153
}
154+
pub(crate) fn set_css(&self, property: &str, value: &str) -> Result<(), DivError> {
155+
self.node.style().set_property(property, value)?;
156+
Ok(())
157+
}
158+
pub(crate) fn add_class(&self, css_class: &str) -> Result<(), DivError> {
159+
self.node.class_list().add_1(css_class)?;
160+
Ok(())
161+
}
162+
pub(crate) fn remove_class(&self, css_class: &str) -> Result<(), DivError> {
163+
self.node.class_list().remove_1(css_class)?;
164+
Ok(())
165+
}
154166
}

src/pane_handle.rs

+12
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,18 @@ impl PaneHandle {
4646
pub fn reposition_and_resize(&self, x: u32, y: u32, w: u32, h: u32) -> Result<(), DivError> {
4747
state::exec_mut(|state| state.update_pane(&self, Some(x), Some(y), Some(w), Some(h)))
4848
}
49+
/// Set CSS property of div
50+
pub fn set_css(&mut self, property: &str, value: &str) -> Result<(), DivError> {
51+
state::exec(|state| state.nodes.get(self)?.set_css(property, value))
52+
}
53+
/// Add a CSS class to the div
54+
pub fn add_class(&mut self, css_class: &str) -> Result<(), DivError> {
55+
state::exec(|state| state.nodes.get(self)?.add_class(css_class))
56+
}
57+
/// Remove a CSS class to the div
58+
pub fn remove_class(&mut self, css_class: &str) -> Result<(), DivError> {
59+
state::exec(|state| state.nodes.get(self)?.remove_class(css_class))
60+
}
4961
/// Removes a pane from the DOM and deletes it
5062
pub fn delete(&mut self) -> Result<(), DivError> {
5163
state::exec_mut(|state| state.delete_pane(self))

0 commit comments

Comments
 (0)