* Add self hosted runner to ci.yml
* Remove libgtk install
* Use mold as the linker
* Make build logs non verbose
* Fix crash on failure to get GLOBAL_PLATFORM
* Copy the platform enum before calling unwrap_or_default
Co-authored-by: 0hypercube <0hypercube@gmail.com>
* Setup tauri component for graphite editor
Integrate graphite into tauri app
Split interpreted-executor out of graph-craft
* Add gpu execution node
* General Cleanup
* Add Executor abstraction
* Resolve inputs for proto nodes by adding compose nodes
* Add infrastructure for compiling gpu code
* Integrate nodegraph gpu execution into graph-crafter
* Extract graphene core path from env vars
* Make Color struct usable for gpu code
* Implement undo and redo
* Create more save points and hook up menu entry
* Fix operation ordering
* Remove debug statement
* Fix folder changed order
* Don't store overlays in the history chain
* Keep selection
* Enforce cache dirtification
* Turn all shapes into one struct
* Remove working folder
* Remove old shapes
* Major restructuring
* Refactor Ellipse, Rectangle and ShapeTool
* Simplify bounding box calculation for folder
* Fix panic in select tool
* Refactorselect tool
* Refactor Align
* Refactor flipping layers
* Zoom to fit all
* Refactor tools to avoid state keeping
* Refactor more tools to use state that is passed along
* Fix whitespace + change selection box style
* Set viewbox of svg export based on the contents
* Use sideways scrolling
* Add horizontal scroll with shift
* Combine WheelCanvasTranslate messages
* Add zooming to current mouse position
* Fix formatting
* Fix scroll direction
* Rename some Constants
* Export current document when pressing Ctrl+Shift+S
* Use a blob for download
* Add Ctrl + E shortcut, match on lower case
* Don't mount element in DOM
* Polish some keybindings
* Add initialization for MappingEntries
* Implement svg coloring
* Add newline after svg tag
* Add spaces to svg style format
* Fix more svg formatting
* Add space before />
* Remove duplicate whitespace
* Add input manager
* WIP lifetime hell
* Hell yeah, dark lifetime magic
* Replace events with actions in tools
* Fix borrow in GlobalEventHandler
* Fix typo in response-handler
* Distribute dispatch structure
* Add translation from events to actions
* Port default key actions to input_mapper
* Split actions macro
* Add handling for Ambiguous Mouse events
* Fix warnings and clippy lints
* Add actions macro
* WIP rework
* Add AsMessage macro
* Add implementation for derived enums
* Add macro implementation for top level message
* Add #[child] attribute to indicate derivation
* Replace some mentions of Actions and Responses with Message
* It compiles !!!
* Add functionality to some message handlers
* Add document rendering
* ICE
* Rework the previous code while keeping basic functionality
* Reduce parent-top-level macro args to only two
* Add workaround for ICE
* Fix cyclic reference in document.rs
* Make derive_transitive_child a bit more powerful
This addresses the todo that was left,
enabling arbitrary expressions to be passed as the last
parameter of a #[parent] attribute
* Adapt frontend message format
* Make responses use VecDeque
Our responses are a queue so we should use a queue type for them
* Move traits to sensible location
* Are we rectangle yet?
* Simplify, improve & document `derive_discriminant`
* Change `child` to `sub_discriminant`
This only applies to `ToDiscriminant`.
Code using `#[impl_message]` continues to work.
* Add docs for `derive_transitive_child`
* Finish docs and improve macros
The improvements are that impl_message now uses trait
resolution to obtain the parent's discriminant
and that derive_as_message now allows for non-unit
variants (which we don't use but it's nice to have,
just in case)
* Remove logging call
* Move files around and cleanup structure
* Fix proc macro doc tests
* Improve actions_fn!() macro
* Add ellipse tool
* Pass populated actions list to the input mapper
* Add KeyState bitvector
* Merge mouse buttons into "keyboard"
* Add macro for initialization of key mapper table
* Add syntactic sugar for the macro
* Implement mapping function
* Translate the remaining tools
* Fix shape tool
* Add keybindings for line and pen tool
* Fix modifiers
* Cleanup
* Add doc comments for the actions macro
* Fix formatting
* Rename MouseMove to PointerMove
* Add keybinds for tools
* Apply review suggestions
* Rename KeyMappings -> KeyMappingEntries
* Apply review changes
Co-authored-by: T0mstone <realt0mstone@gmail.com>
Co-authored-by: Paul Kupper <kupper.pa@gmail.com>