Commit Graph
18 Commits
Author SHA1 Message Date
Henry SloanandKeavon Chambers 9e73cce281 Add two-way tool option messaging system between frontend/backend (#361)
* 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>
2021-08-29 00:43:27 -04:00
Henry Sloan 44f244fb5f Add a stroke width option to the Line Tool (#355)
* 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"
2021-08-23 21:55:59 -04:00
Henry Sloan d6ce9e16b7 Ignore mouse events without any button state changes (#343) 2021-08-12 01:26:46 -04:00
Henry Sloan ea01c71421 Change eyedropper to use correct message (#327) 2021-08-03 16:35:26 -04:00
Henry Sloan 6bb8357dbb Change flipping to use the joint bounding box of the selection (#323)
* Change flipping to use the joint bounding box

* Fix minor untested changes

* Replace unwrap with question mark
2021-07-31 18:18:54 -04:00
Henry Sloan ce889e3472 Move blend mode declaration and implementation (#308) 2021-07-25 16:01:50 -04:00
Henry Sloan b40da575e7 Avoid looping behavior with color selection (#305) 2021-07-25 02:31:50 -04:00
Henry Sloan 1055a0a05f Add alignment of selected layers (#296)
* 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
2021-07-24 19:35:48 -04:00
Henry Sloan 52fe66b6d8 MVP eyedropper tool for fill colors (#300)
* Implement eyedropper for layer fill colors

* Add shortcut for eyedropper

* Add right mouse sampling for secondary color
2021-07-24 18:29:32 -04:00
Henry Sloan 5ba8db1d76 Rename align operations and icons (#295)
* Rename align operations and icons

* Fix icon import paths
2021-07-24 00:42:48 -04:00
Henry Sloan a48f44dd37 Add dragging of layers with the select tool (#293)
* Add dragging of layers with the select tool

* Transform mouse positions based on root transform

* Add TODOs regarding root inverse transforms
2021-07-23 21:51:14 -04:00
Henry Sloan 11725d9abd Change tool option kinds to PascalCase (#292) 2021-07-23 17:47:55 -04:00
Henry Sloan 97f97480a2 Implement tool messaging and shape flipping (#288) 2021-07-22 16:25:42 -04:00
Henry Sloan 5446fa3553 Options bar widgets for tools to control tool behavior (#283)
* 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
2021-07-21 01:07:48 -04:00
Henry Sloan 546bb16480 Pass layer metadata to tools (#277) 2021-07-16 02:38:46 -04:00
Henry Sloan e7699bbcbd Transform nudge coordinates to viewport space (#264)
* Transform nudge coordinates to viewport space

* Refactor nudge transform for clarity
2021-07-15 02:05:46 -04:00
Henry Sloan 363b9c7ffa Implement fill tool (#254)
* 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
2021-07-14 03:49:12 -04:00
Henry Sloan 1454be24d3 Implement nudging selected layers with arrow keys (#245)
* 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
2021-07-11 22:22:26 -04:00