* Add Handler for defered execution of messages
* Cleanup
* Track graph execution id to associate messages with their corresponding execution id
* Rename ViewportReady -> NavigationReady
* Defer layer deselection
* Add text alignment to Text node
* Lots of renames and improvements
* Add text alignment to the Text tool
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Added ghost outline clearing when moving outlines via Path Tool
* Fix ghost outline staying fixed during drag by storing it in document space
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Add graph message for adding a path
* Disable options when adding path tool is not possible
* Move Layer menu entry location
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Added initial version of this feature for the path tool
* Removed debug statements
* Thickened the overlay width
* Added hover highlighting for path tool
* Experimental switch to path tool at leaf layer
* Ghost outline initial implementation
* Added tab swap for select tool -> path tool
* Minor fix for Select Tool dbl click -> Path Tool
* Added support for ghosts when using GRS in the path tool
* Fixed GRS undo bug, vastly improved hover behavior and now clearly visualize next double click target
* Fixed unused import warnings
* Updated behavior to handle mouse movement cases, reverted line width to 1px
* Fixed merge behavioral issues
* Disabled Select Tool to Path Tool double click toggle, fixed single click drill through for special case
* Clean up of unused consts and comment
* Properly cancel the drill through state when the mouse moves
* Fix some stuff
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Feat: implement the hierarchical tree for visualization
* rename HierarchicalTree trait function
* feat: change the HierarchicalTree from String to DebugMessageTree struct
* Nits
* feat: impliment proc macro to extract field from messagedata structs
* update the hierarchical-tree for hanlder data
* feat: added message handler struct to hierarchical tree
* feat: add the line number to message handler struct
* feat: added handler path to tree and NITS
* clean the white spaces in type string
* fixes some white spaces
* feat: added path to message enum in hierarchical tree
* feat: add file creation of hierarchical message system tree
* cleanup
* Code review
* Add todo comment for deferred change
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* fix warnings on master
* make the `ProtoNodeIdentifier` of a Node be accessible and always a borrowed `&'static str`
* always generate `node_name::identifier()`, even with `skip_impl`
* make `FrontendNodeType` use Cow
* remove broken `DocumentNodeDefinition`s for old GPU nodes
* don't reexport `graphic_element` in it's entirety, only data structures
* adjust everything to use the new `node_name::identifier()`
* fixup imports for wasm
* turn identifier fn into a constant
* replace rustybuzz with parley for text layout handling
change text input direction based on text direction
* Code review
* change default character spacing to 0
* add shear to text node
this also adds migration code for documents that don't have shear
* shear migration for text node
- add shear property
- set character spacing to 0
* use old max_width and max_height in text migration if available
* Final code review pass
* Add units to the parameters
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* fixed double-click on anchor connected to linear segments
* fix when scaling when anchor
* Nit
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* move `trait AsU32` from `gcore::vector::misc` to `gcore`
* move blending and gradient to their own modules
* fix unused warnings
* move `Quad`, `Rect` and `BBox` to `gcore::math`
* extract `ReferencePoint` and transform nodes from `transform`
* move color-related code to `mod color`
* fix unused warning in test code
* move blending-related nodes and code to `mod blending_nodes`
* move ClickTarget code to `mod vector::click_target`
* Ignore tauri gen
* Deny warnings on CI
* Fix all warnings in current nightly rustc
* Disable DWARF debug info for development builds
* Fix typo
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* no trait ,not to fix line
* add hints
* line modification even when other shapes are selected
* added transform and anchor overlays
* removed old code
* fixed transform added hints need to fix modifier keys use
* refactored select-tool
* add point-handle-gizmo
* fix rotate bug
* implement angle snapping gizmo , fix overlay and refactor the code
* implement snapping for point-handle gizmo and implement no of point gizmo need to refactor
* implemented the gizmo for polygon, added tests , brackets to increase sides
* formatting-fix
* small nit-picks
* Make it compile
* Code review
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* refactor: opacity + blend_mode -> blend_style
* Add code for clipping
* Add alt-click masking
* Clip to all colors. Fill option
* Fix undo not working. Fix strokes not being white
* Allow clipped to be grouped or raster
* Switch to alpha mode in mask-type
* add plumbing to know if clipped in frontend and add fill slider
* Attempt at document upgrade code
* Fix fill slider
* Add clipped styling and Alt-click layer border
* Use mask attr judiciously by using clip when possible
* Fix breaking documents and upgrade code
* Fix fixes
* No-op toggle if last child of parent and don't show clip UI if last element
* Fix mouse styles by plumbing clippable to frontend
* Fix Clip detection by disallowed groups as clipPath according to SVG spec doesn't allow <g>
* Add opacity to clippers can_use_clip check
* Fix issue with clipping not working nicely with strokes by using masks
* Add vello code
* cleanup
* Add stroke alignment hacks to SVG renderer
* svg: Fix mask bounds in vector data
* vello: Implement mask hacks to support stroke alignment
* Move around alignment and doc upgrade code
* rename Line X -> X
* An attempt at fixing names not updating
* svg: add stroke order with svg
* vello: add stroke order with by calling one before the other explicitly
* fix merge
* fix svg renderer messing up transform det
* Code review; reorder and rename parameters (TODO: fix tools)
* Fixes to previous
* Formatting
* fix bug 3
* some moving around (not fixed)
* fix issue 1
* fix vello
* Final code review
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Improved comments
* Add point sliding with approximate t value
* Add similarity calculation
* Numerical approach to fit the curve
* Reliable point sliding for cubic segments
* Fix formatting and clean comments
* Fix cubic with one handle logic
* Cancel on right click and escape
* Two parameter optimization
* Esc/ Right click cancellation
* Code review
* Fix dynamic hints
* Revert selected_points_counts and fix comments
* Code review
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>