@@ -9,6 +9,8 @@ import { useKeyboardShortcutsStore } from '../store/keyboard-shortcuts';
99import { useCurrentImage } from './useCurrentImage' ;
1010import { useSliceConfig } from './useSliceConfig' ;
1111import { useDatasetStore } from '../store/datasets' ;
12+ import { usePaintToolStore } from '../store/tools/paint' ;
13+ import { PaintMode } from '../core/tools/paint' ;
1214
1315const applyLabelOffset = ( offset : number ) => ( ) => {
1416 const toolToStore = {
@@ -35,6 +37,11 @@ const setTool = (tool: Tools) => () => {
3537 useToolStore ( ) . setCurrentTool ( tool ) ;
3638} ;
3739
40+ const startPaintInMode = ( mode : PaintMode ) => ( ) => {
41+ useToolStore ( ) . setCurrentTool ( Tools . Paint ) ;
42+ usePaintToolStore ( ) . setMode ( mode ) ;
43+ } ;
44+
3845const showKeyboardShortcuts = ( ) => {
3946 const keyboardStore = useKeyboardShortcutsStore ( ) ;
4047 keyboardStore . settingsOpen = ! keyboardStore . settingsOpen ;
@@ -61,13 +68,22 @@ const deleteCurrentImage = () => () => {
6168 }
6269} ;
6370
71+ const changeBrushSize = ( delta : number ) => ( ) => {
72+ const paintStore = usePaintToolStore ( ) ;
73+ const newSize = Math . max ( 1 , paintStore . brushSize + delta ) ;
74+ paintStore . setBrushSize ( newSize ) ;
75+ } ;
76+
6477export const ACTION_TO_FUNC = {
6578 windowLevel : setTool ( Tools . WindowLevel ) ,
6679 pan : setTool ( Tools . Pan ) ,
6780 zoom : setTool ( Tools . Zoom ) ,
6881 ruler : setTool ( Tools . Ruler ) ,
69- paint : setTool ( Tools . Paint ) ,
70- brushSize : NOOP , // act as modifier key rather than immediate effect, so no-op
82+ paint : startPaintInMode ( PaintMode . CirclePaint ) ,
83+ paintEraser : startPaintInMode ( PaintMode . Erase ) ,
84+ brushSizeModifier : NOOP , // act as modifier key rather than immediate effect, so no-op
85+ decreaseBrushSize : changeBrushSize ( - 1 ) ,
86+ increaseBrushSize : changeBrushSize ( 1 ) ,
7187 rectangle : setTool ( Tools . Rectangle ) ,
7288 crosshairs : setTool ( Tools . Crosshairs ) ,
7389 temporaryCrosshairs : NOOP , // behavior implemented elsewhere
0 commit comments