Files
Graphite/editor/src/messages/tool/tool_message.rs
T
96c57605b7 Add an editor preference for touched/enclosed/directional based selection (#2156)
* implemented left selection logic

* added logic for right ward selection

* removed the logs code

* corrected capitalization error

* corrected capitalization error

* added radio buttons for selection_mode

* fixed multiple selection of checkboxes

* adapted to the RadioEntryData

* State management bug

* integrated message system to selection_mode

* updated

* updated

* added selection mode to transition arms

* removed from portfolio message and added preference in ToolMessageData

* removed dead code of selection_mode from frontend logic

* removed dead code for zoomWithScroll

* Cleanup

* Rename, simplify, use dashed box, and highlight only outlines of layers that'll get selected

* More code review

---------

Co-authored-by: Pratik Agrawal <patrik@Pratiks-MacBook-Air.local>
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-01-26 06:34:37 +00:00

106 lines
1.9 KiB
Rust

use super::utility_types::ToolType;
use crate::messages::preferences::SelectionMode;
use crate::messages::prelude::*;
use graphene_core::raster::color::Color;
#[impl_message(Message, Tool)]
#[derive(PartialEq, Clone, Debug, serde::Serialize, serde::Deserialize)]
pub enum ToolMessage {
// Sub-messages
#[child]
TransformLayer(TransformLayerMessage),
#[child]
Select(SelectToolMessage),
#[child]
Artboard(ArtboardToolMessage),
#[child]
Navigate(NavigateToolMessage),
#[child]
Eyedropper(EyedropperToolMessage),
#[child]
Fill(FillToolMessage),
#[child]
Gradient(GradientToolMessage),
#[child]
Path(PathToolMessage),
#[child]
Pen(PenToolMessage),
#[child]
Freehand(FreehandToolMessage),
#[child]
Spline(SplineToolMessage),
#[child]
Line(LineToolMessage),
#[child]
Rectangle(RectangleToolMessage),
#[child]
Ellipse(EllipseToolMessage),
#[child]
Polygon(PolygonToolMessage),
#[child]
Text(TextToolMessage),
#[child]
Brush(BrushToolMessage),
// // #[child]
// Heal(HealToolMessage),
// // #[child]
// Clone(CloneToolMessage),
// // #[child]
// Patch(PatchToolMessage),
// // #[child]
// Relight(RelightToolMessage),
// // #[child]
// Detail(DetailToolMessage),
#[child]
Imaginate(ImaginateToolMessage),
// Messages
ActivateToolSelect,
ActivateToolArtboard,
ActivateToolNavigate,
ActivateToolEyedropper,
ActivateToolText,
ActivateToolFill,
ActivateToolGradient,
ActivateToolPath,
ActivateToolPen,
ActivateToolFreehand,
ActivateToolSpline,
ActivateToolLine,
ActivateToolRectangle,
ActivateToolEllipse,
ActivateToolPolygon,
ActivateToolBrush,
ActivateToolImaginate,
ActivateTool {
tool_type: ToolType,
},
DeactivateTools,
InitTools,
PreUndo,
Redo,
RefreshToolOptions,
ResetColors,
SelectPrimaryColor {
color: Color,
},
SelectRandomPrimaryColor,
SelectSecondaryColor {
color: Color,
},
SwapColors,
Undo,
UpdateCursor,
UpdateHints,
UpdateSelectionMode {
selection_mode: SelectionMode,
},
}