From 07034173390c213f6c7d017fb88b489800ca58ed Mon Sep 17 00:00:00 2001 From: kts of kettek Date: Wed, 14 Feb 2024 18:37:33 -0800 Subject: [PATCH] Add zoom button/input --- frontend/src/sections/Editor2D.svelte | 72 +++++++++++++++++++++++---- 1 file changed, 63 insertions(+), 9 deletions(-) diff --git a/frontend/src/sections/Editor2D.svelte b/frontend/src/sections/Editor2D.svelte index ab65131..7f9973d 100644 --- a/frontend/src/sections/Editor2D.svelte +++ b/frontend/src/sections/Editor2D.svelte @@ -5,6 +5,8 @@ import type { LoadedFile } from '../types/file' import type { PixelPosition } from '../types/shapes' import { BrushTool, EraserTool, FillTool, type Tool } from '../types/tools' + import { Button, NumberInput, OverflowMenu, OverflowMenuItem, Slider } from 'carbon-components-svelte'; + import { ZoomIn, ZoomOut } from 'carbon-icons-svelte'; export let file: LoadedFile export let animation: data.Animation @@ -39,6 +41,26 @@ traversedPixels.add(p.x+p.y*file.canvas.width) } } + + function zoomIn() { + zoom *= 2 + if (zoom > 1) { + zoom = Math.round(zoom) + } + + capOffset() + canvasDirty = true + overlayDirty = true + } + function zoomOut() { + zoom /= 2 + if (zoom > 1) { + zoom = Math.round(zoom) + } + capOffset() + canvasDirty = true + overlayDirty = true + } // check resizes canvases, etc. function check() { @@ -201,17 +223,10 @@ if (e.ctrlKey) { e.preventDefault() if (e.deltaY < 0) { - zoom *= 2 + zoomIn() } else if (e.deltaY > 0) { - zoom /= 2 + zoomOut() } - if (zoom > 1) { - zoom = Math.round(zoom) - } - - capOffset() - canvasDirty = true - overlayDirty = true return } if (e.deltaY < 0) { @@ -304,6 +319,34 @@
e.preventDefault()}> + + +
\ No newline at end of file