Skip to content

Commit ededf6c

Browse files
committed
Add the mesh gradient editing tool
1 parent dbe29fa commit ededf6c

8 files changed

Lines changed: 949 additions & 1 deletion

File tree

editor/src/messages/input_mapper/input_mappings.rs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,16 @@ pub fn input_mappings(zoom_with_scroll: bool) -> Mapping {
183183
entry!(KeyDown(MouseRight); action_dispatch=GradientToolMessage::Abort),
184184
entry!(KeyDown(Escape); action_dispatch=GradientToolMessage::Abort),
185185
//
186+
// MeshGradientToolMessage
187+
entry!(DoubleClick(MouseButton::Left); action_dispatch=MeshGradientToolMessage::DoubleClick),
188+
entry!(KeyDown(MouseLeft); action_dispatch=MeshGradientToolMessage::PointerDown),
189+
entry!(PointerMove; refresh_keys=[Shift, Control], action_dispatch=MeshGradientToolMessage::PointerMove { constrain_axis: Shift, lock_angle: Control }),
190+
entry!(KeyUp(MouseLeft); action_dispatch=MeshGradientToolMessage::PointerUp),
191+
entry!(KeyDown(Delete); action_dispatch=MeshGradientToolMessage::DeleteEdge),
192+
entry!(KeyDown(Backspace); action_dispatch=MeshGradientToolMessage::DeleteEdge),
193+
entry!(KeyDown(MouseRight); action_dispatch=MeshGradientToolMessage::Abort),
194+
entry!(KeyDown(Escape); action_dispatch=MeshGradientToolMessage::Abort),
195+
//
186196
// ShapeToolMessage
187197
entry!(KeyDown(MouseLeft); action_dispatch=ShapeToolMessage::DragStart),
188198
entry!(KeyUp(MouseLeft); action_dispatch=ShapeToolMessage::DragStop),

editor/src/messages/prelude.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ pub use crate::messages::tool::tool_messages::eyedropper_tool::{EyedropperToolMe
4848
pub use crate::messages::tool::tool_messages::fill_tool::{FillToolMessage, FillToolMessageDiscriminant};
4949
pub use crate::messages::tool::tool_messages::freehand_tool::{FreehandToolMessage, FreehandToolMessageDiscriminant};
5050
pub use crate::messages::tool::tool_messages::gradient_tool::{GradientOptionsUpdate, GradientToolMessage, GradientToolMessageDiscriminant};
51+
pub use crate::messages::tool::tool_messages::mesh_gradient_tool::{MeshGradientToolMessage, MeshGradientToolMessageDiscriminant};
5152
pub use crate::messages::tool::tool_messages::navigate_tool::{NavigateToolMessage, NavigateToolMessageDiscriminant};
5253
pub use crate::messages::tool::tool_messages::path_tool::{PathToolMessage, PathToolMessageDiscriminant};
5354
pub use crate::messages::tool::tool_messages::pen_tool::{PenToolMessage, PenToolMessageDiscriminant};

editor/src/messages/tool/tool_message.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ pub enum ToolMessage {
2222
Fill(FillToolMessage),
2323
#[child]
2424
Gradient(GradientToolMessage),
25+
#[child]
26+
MeshGradient(MeshGradientToolMessage),
2527

2628
#[child]
2729
Path(PathToolMessage),
@@ -58,6 +60,7 @@ pub enum ToolMessage {
5860
ActivateToolEyedropper,
5961
ActivateToolFill,
6062
ActivateToolGradient,
63+
ActivateToolMeshGradient,
6164
// Vector tools
6265
ActivateToolPath,
6366
ActivateToolPen,

editor/src/messages/tool/tool_message_handler.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ impl MessageHandler<ToolMessage, ToolMessageContext<'_>> for ToolMessageHandler
6666
ToolMessage::ActivateToolText => responses.add_front(ToolMessage::ActivateTool { tool_type: ToolType::Text }),
6767
ToolMessage::ActivateToolFill => responses.add_front(ToolMessage::ActivateTool { tool_type: ToolType::Fill }),
6868
ToolMessage::ActivateToolGradient => responses.add_front(ToolMessage::ActivateTool { tool_type: ToolType::Gradient }),
69+
ToolMessage::ActivateToolMeshGradient => responses.add_front(ToolMessage::ActivateTool { tool_type: ToolType::MeshGradient }),
6970

7071
ToolMessage::ActivateToolPath => responses.add_front(ToolMessage::ActivateTool { tool_type: ToolType::Path }),
7172
ToolMessage::ActivateToolPen => responses.add_front(ToolMessage::ActivateTool { tool_type: ToolType::Pen }),
@@ -374,6 +375,7 @@ impl MessageHandler<ToolMessage, ToolMessageContext<'_>> for ToolMessageHandler
374375
ActivateToolEyedropper,
375376
ActivateToolFill,
376377
ActivateToolGradient,
378+
ActivateToolMeshGradient,
377379

378380
ActivateToolPath,
379381
ActivateToolPen,

0 commit comments

Comments
 (0)