* Added new DocumentResponse variant
* Update Operation::DeleteSelectedManipulatorPoints to update Layer Tree by delegating deletion to Operation::DeleteLayer. Also emits Operation::DeletedSelectedManipulatorPoints to let editor clear Properties panel
* Update process_message() to deal with new DocumentResponse::DeletedSelectedManipulatorPoints match case. When this DocumentResponse is emitted, it clears the Properties panel.
* Added Display trait implementation for DocumentResponse::DeletedSelectedManipulatorPoints. Updated imports in document_message_handler.rs to get the correct types for messages emitted from DocumentResponse::DeletedSelectedManipulatorPoints match case in process_message().
* Removed useless import. Capitalized comments for style consistency.
* Updated messages emitted to clear Properties panel by emitting LayoutMessage::SendLayout's instead, which update the backend widget state
* Revert inclusion of unused imports
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Use builder pattern for widgets
* Arguments to new function
* Add node graph when dragging in image
* Fix duplicate import
* Skip processing under node graph frame if unused
* Reduce node graph rerenders
* DUPLICATE ALL frontend changes into other frontend
* DUPLICATE more changes to another frontend
* Code review
* Allow importing SVG files as bitmaps
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Reuse existing gradient
* Double click to insert gradient stop
* Add history states to the gradient tool
* Do trig in viewport space so it is actually perpendicular
* Sync tool options with active gradient
* Deleting points with delete key
* More tolerance on inserting points
* Add the link button
* Transform around pivot
* Remove log
* Fix tests
* Add a hacky two-line layout for the checkbox
Co-authored-by: Keavon Chambers <keavon@keavon.com>