Canvas · Tools: select, move and snap, resize, draw, pen, text, brush
ToolLayer lies over an InfiniteCanvas and carries its tools. Select takes the topmost shape a press reaches, Shift adds or drops one, a drag moves the selection and snaps its nearest edge or middle to another shape's within reach, a handle resizes it, Shift keeping a corner's shape, and a drag on empty space draws a SelectionBox that takes what lies wholly inside. The shape tools draw by a drag toward any corner, Shift keeping them square; the pen adds a point per press and a double press ends the path; text drops a line where pressed; the brush strokes a path its width. A drag may end in the layer or out of it; each gesture ends once and asks the owner. SelectionBox, TransformHandles and SnapIndicator draw the marks. ToolPalette picks a tool from icons named in tips; BrushSettings sets a brush's width and hue; HistoryPanel lists the steps done, the undone ones quiet, and takes the drawing to a step on Enter or a double press. The model changes: lines and arrows end at a named corner, so they run either way, and paths carry their width. Three Lucide icons: hexagon, slash and move-up-right.
This commit is contained in:
1 parent
50259aff77
commit
c474a3eb33
20 files changed
+1812
-34
No files matched your search
+13
-1
@@ -1,14 +1,26 @@
|
||||
mod edit;
|
||||
mod gesture;
|
||||
mod history;
|
||||
mod marks;
|
||||
mod minimap;
|
||||
mod palette;
|
||||
mod plane;
|
||||
mod shape;
|
||||
mod tools;
|
||||
mod view;
|
||||
mod zoom;
|
||||
|
||||
#[cfg(all(test, feature = "test-support"))]
|
||||
mod tests;
|
||||
|
||||
pub use edit::{Handle, Tool};
|
||||
pub use gesture::Brush;
|
||||
pub use history::HistoryPanel;
|
||||
pub use marks::{SelectionBox, SnapIndicator, TransformHandles};
|
||||
pub use minimap::MiniMap;
|
||||
pub use palette::{BrushSettings, ToolPalette};
|
||||
pub use plane::InfiniteCanvas;
|
||||
pub use shape::{Artboard, Guide, Shape, ShapeKind};
|
||||
pub use shape::{Artboard, Corner, Guide, Shape, ShapeKind};
|
||||
pub use tools::ToolLayer;
|
||||
pub use view::{Frame, Viewport};
|
||||
pub use zoom::{ZoomControls, ZoomIndicator};
|
||||
Reference in new issue
Block a user