psychedelicious
4e5f4dadf2
feat(ui): abstract out CanvasEntityAdapterBase
...
Things were getting to complex to reason about & classes a bit complicated. Trying to simplify...
2024-09-06 22:56:24 +10:00
psychedelicious
1c15c2cb03
feat(ui): revise entity rendering flow
2024-09-06 22:56:24 +10:00
psychedelicious
4d3ed34232
feat(ui): clean up unused tool module state
2024-09-06 22:56:24 +10:00
psychedelicious
f92730080c
feat(ui): prevent layer interactions when transforming or filtering
2024-09-06 22:56:24 +10:00
psychedelicious
1349e73a1a
tidy(ui): merge tool slice, sendToCanvas into settings slice
2024-09-06 22:56:24 +10:00
psychedelicious
4df531b7c0
feat(ui): clean up tool preview rendering
2024-09-06 22:56:24 +10:00
psychedelicious
771c3210b7
tidy(ui): mark canvas module attrs readonly
2024-09-06 22:56:24 +10:00
psychedelicious
eb09253b4e
feat(ui): tidy stateApi atoms & add docstrings
2024-09-06 22:56:24 +10:00
psychedelicious
d81cd050ef
feat(ui): streamline manager -> react transform interface
2024-09-06 22:56:24 +10:00
psychedelicious
3cdc5d869f
feat(ui): hotkeys for brush/eraser size
2024-09-06 22:56:24 +10:00
psychedelicious
1a51842277
feat(ui): revised canvas module base class
...
Big cleanup. Makes these classes easier to implement, lots of comments and docstrings to clarify how it all works.
- Add default implementations for `destroy`, `repr` and `getLoggingContext`
- Tidy individual module configs
- Update `CanvasManager.buildLogger` to accept a canvas module as the arg
- Add `CanvasManager.buildPath`
2024-09-06 22:56:24 +10:00
psychedelicious
d001a36e14
feat(ui): split canvas tool previews into modules
2024-09-06 22:56:24 +10:00
psychedelicious
d48ce8168e
fix(ui): correctly set last cursor pos to null
2024-09-06 22:56:24 +10:00
psychedelicious
92eebd6aaf
tidy(ui): organise tool module
2024-09-06 22:56:24 +10:00
psychedelicious
fca09d79cc
feat(ui): alt quick switches to color picker
2024-09-06 22:56:24 +10:00
psychedelicious
5cb26fac9f
feat(ui): implement interaction locking on layers
2024-09-06 22:56:24 +10:00
psychedelicious
f8b60da938
tidy(ui): rename some classes to be consistent
2024-09-06 22:56:24 +10:00
psychedelicious
db50525442
feat(ui): add CanvasModuleBase class to standardize canvas APIs
...
I did this ages ago but undid it for some reason, not sure why. Caught a few issues related to subscriptions.
2024-09-06 22:56:24 +10:00
psychedelicious
e8190f4389
feat(ui): move selected tool and tool buffer out of redux
...
This ephemeral state can live in the canvas classes.
2024-09-06 22:56:24 +10:00
psychedelicious
f394584dff
feat(ui): move events into modules who care about them
2024-09-06 22:56:24 +10:00
psychedelicious
5fe844c5d9
feat(ui): add crosshair to color picker
2024-09-06 22:56:24 +10:00
psychedelicious
23248dad90
fix(ui): color picker ignores alpha
2024-09-06 22:56:24 +10:00
psychedelicious
caeefdf2ed
fix(ui): calculate renderable entities correctly in tool module
2024-09-06 22:56:24 +10:00
psychedelicious
d40d6291a0
feat(ui): better color picker
2024-09-06 22:56:24 +10:00
psychedelicious
664987f2aa
tidy(ui): "eye dropper" -> "color picker"
2024-09-06 22:56:24 +10:00
psychedelicious
639304197b
tidy(ui): reduce use of parseify util
2024-09-06 22:56:24 +10:00
psychedelicious
f4998bc308
tidy(ui): organise files and classes
2024-09-06 22:56:24 +10:00