|
@@ -6,6 +6,7 @@ import { trash, zoomIn, zoomOut } from "../components/icons";
|
|
|
import { ToolButton } from "../components/ToolButton";
|
|
|
import { t } from "../i18n";
|
|
|
import { getNormalizedZoom } from "../scene";
|
|
|
+import { KEYS } from "../keys";
|
|
|
|
|
|
export const actionChangeViewBackgroundColor: Action = {
|
|
|
name: "changeViewBackgroundColor",
|
|
@@ -57,6 +58,15 @@ export const actionClearCanvas: Action = {
|
|
|
|
|
|
const ZOOM_STEP = 0.1;
|
|
|
|
|
|
+const KEY_CODES = {
|
|
|
+ MINUS: "Minus",
|
|
|
+ EQUAL: "Equal",
|
|
|
+ ZERO: "Digit0",
|
|
|
+ NUM_SUBTRACT: "NumpadSubtract",
|
|
|
+ NUM_ADD: "NumpadAdd",
|
|
|
+ NUM_ZERO: "Numpad0",
|
|
|
+};
|
|
|
+
|
|
|
export const actionZoomIn: Action = {
|
|
|
name: "zoomIn",
|
|
|
perform: (elements, appState) => {
|
|
@@ -78,6 +88,9 @@ export const actionZoomIn: Action = {
|
|
|
}}
|
|
|
/>
|
|
|
),
|
|
|
+ keyTest: event =>
|
|
|
+ (event.code === KEY_CODES.EQUAL || event.code === KEY_CODES.NUM_ADD) &&
|
|
|
+ (event[KEYS.META] || event.shiftKey),
|
|
|
};
|
|
|
|
|
|
export const actionZoomOut: Action = {
|
|
@@ -101,4 +114,22 @@ export const actionZoomOut: Action = {
|
|
|
}}
|
|
|
/>
|
|
|
),
|
|
|
+ keyTest: event =>
|
|
|
+ (event.code === KEY_CODES.MINUS || event.code === KEY_CODES.NUM_SUBTRACT) &&
|
|
|
+ (event[KEYS.META] || event.shiftKey),
|
|
|
+};
|
|
|
+
|
|
|
+export const actionResetZoom: Action = {
|
|
|
+ name: "resetZoom",
|
|
|
+ perform: (elements, appState) => {
|
|
|
+ return {
|
|
|
+ appState: {
|
|
|
+ ...appState,
|
|
|
+ zoom: 1,
|
|
|
+ },
|
|
|
+ };
|
|
|
+ },
|
|
|
+ keyTest: event =>
|
|
|
+ (event.code === KEY_CODES.ZERO || event.code === KEY_CODES.NUM_ZERO) &&
|
|
|
+ (event[KEYS.META] || event.shiftKey),
|
|
|
};
|