diff --git a/client/web/wasm/src/viewport.rs b/client/web/wasm/src/viewport.rs index 6deaa215..2eaabbb9 100644 --- a/client/web/wasm/src/viewport.rs +++ b/client/web/wasm/src/viewport.rs @@ -24,5 +24,7 @@ pub fn on_mouse_move(x: u32, y: u32) { /// Update working colors #[wasm_bindgen] pub fn update_colors(primary_color: Color, secondary_color: Color) { - todo!() + let tool_state = unsafe { &mut TOOL_STATE }; + tool_state.set_primary_color(primary_color.get_inner_color()); + tool_state.set_secondary_color(secondary_color.get_inner_color()); } diff --git a/client/web/wasm/src/wrappers.rs b/client/web/wasm/src/wrappers.rs index 9515e5de..49af141b 100644 --- a/client/web/wasm/src/wrappers.rs +++ b/client/web/wasm/src/wrappers.rs @@ -13,6 +13,12 @@ impl Color { } } +impl Color { + pub fn get_inner_color(&self) -> InnerColor { + self.0 + } +} + pub fn translate_tool(name: &str) -> Option { match name { "Select" => Some(ToolType::Select), diff --git a/core/editor/src/tools/mod.rs b/core/editor/src/tools/mod.rs index 06b747c4..04af5eba 100644 --- a/core/editor/src/tools/mod.rs +++ b/core/editor/src/tools/mod.rs @@ -22,6 +22,12 @@ impl ToolState { pub fn select_tool(&mut self, tool: ToolType) { self.active_tool = tool } + pub fn set_primary_color>(&mut self, primary_color: T) { + self.primary_color = primary_color.into(); + } + pub fn set_secondary_color>(&mut self, secondary_color: T) { + self.secondary_color = secondary_color.into(); + } } #[repr(usize)]