* Add two-way tool option messaging system
* Rename tool option functions
* Move repeated frontend messaging code to function
* Address style comments
* Rename variable to be more descriptive
* Move tool options update to SetActiveTool message
* Refactor record of all tool options
* Only pass active tool options to bar
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Add a stroke width option to the Line Tool
* Fix title case for line options
* Add px unit to line stroke width
* Add stroke width to pen tool
* Rename stroke width to weight
* Change number input width to min-width
* Remove the word "stroke" from "stroke weight"
* Add alignment of selected layers
* Refactor alignment to a document message
* Condense align messages into a tuple variant
* Rename dimension to axis and fix redundant math
* Add correct Center alignment
* Add TODO comment for nested transforms
* Add TODO for merging bounding boxes
* Move align enums to document_message_handler
* Run cargo clippy
* Clean up unwraps with filter_map
* Add JSON-backed options widget
* Add initial tool settings messaging to backend
* Add shape side selection with JSON deserialization
* Enforce minimum number of n-gon sides
* Make tool settings JSON errors safer
* Make tool settings JSON errors safer
* Refactor ToolOptions to ToolSettings
* Revert "Refactor ToolOptions to ToolSettings"
This reverts commit 651161fd16.
* Refactor all instances of "settings" to "options"
* Fix names and formatting
* Rearrange ToolOptions data to enforce types
* Implement fill tool
* Add fill tool shortcut
* Add getters and setters to styles
* Make fill tool act on the topmost layer clicked
* Refactor fill operation
* Refactor and unify selection tolerance
* Add mark_as_dirty function
* Fix getter names
* Implement nudging selected layers with arrow keys
* Normalize diagonal nudges and add constants
* Replace sqrt(2.0) with a constant
* Remove normalization of diagonal movement