From beb534e20b9ea1c7751868e10ce213b57131866f Mon Sep 17 00:00:00 2001 From: Keavon Chambers Date: Sat, 10 Apr 2021 23:27:29 -0700 Subject: [PATCH] Add NumberInput component; add scale input and zoom buttons to options bar --- .../svg/24x24-bounds-16x16-icon/zoom-in.svg | 6 ++ .../svg/24x24-bounds-16x16-icon/zoom-out.svg | 5 + .../24x24-bounds-16x16-icon/zoom-reset.svg | 5 + client/web/src/components/panels/Document.vue | 15 ++- .../src/components/widgets/NumberInput.vue | 93 +++++++++++++++++++ 5 files changed, 123 insertions(+), 1 deletion(-) create mode 100644 client/web/assets/svg/24x24-bounds-16x16-icon/zoom-in.svg create mode 100644 client/web/assets/svg/24x24-bounds-16x16-icon/zoom-out.svg create mode 100644 client/web/assets/svg/24x24-bounds-16x16-icon/zoom-reset.svg create mode 100644 client/web/src/components/widgets/NumberInput.vue diff --git a/client/web/assets/svg/24x24-bounds-16x16-icon/zoom-in.svg b/client/web/assets/svg/24x24-bounds-16x16-icon/zoom-in.svg new file mode 100644 index 00000000..e5e66ad4 --- /dev/null +++ b/client/web/assets/svg/24x24-bounds-16x16-icon/zoom-in.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/client/web/assets/svg/24x24-bounds-16x16-icon/zoom-out.svg b/client/web/assets/svg/24x24-bounds-16x16-icon/zoom-out.svg new file mode 100644 index 00000000..96507c7c --- /dev/null +++ b/client/web/assets/svg/24x24-bounds-16x16-icon/zoom-out.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/client/web/assets/svg/24x24-bounds-16x16-icon/zoom-reset.svg b/client/web/assets/svg/24x24-bounds-16x16-icon/zoom-reset.svg new file mode 100644 index 00000000..da488359 --- /dev/null +++ b/client/web/assets/svg/24x24-bounds-16x16-icon/zoom-reset.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/client/web/src/components/panels/Document.vue b/client/web/src/components/panels/Document.vue index c9c17a2d..5b808012 100644 --- a/client/web/src/components/panels/Document.vue +++ b/client/web/src/components/panels/Document.vue @@ -30,7 +30,12 @@
-
+
+ + + + +
@@ -188,6 +193,7 @@ import ShelfItem from "../widgets/ShelfItem.vue"; import ItemDivider from "../widgets/ItemDivider.vue"; import IconButton from "../widgets/IconButton.vue"; import DropdownButton from "../widgets/DropdownButton.vue"; +import NumberInput from "../widgets/NumberInput.vue"; import SwapButton from "../../../assets/svg/16x16-bounds-12x12-icon/swap.svg"; import ResetColorsButton from "../../../assets/svg/16x16-bounds-12x12-icon/reset-colors.svg"; import SelectTool from "../../../assets/svg/24x24-bounds-24x24-icon/document-tool-layout-select.svg"; @@ -224,6 +230,9 @@ import BooleanSubtractFront from "../../../assets/svg/24x24-bounds-16x16-icon/bo import BooleanSubtractBack from "../../../assets/svg/24x24-bounds-16x16-icon/boolean-subtract-back.svg"; import BooleanIntersect from "../../../assets/svg/24x24-bounds-16x16-icon/boolean-intersect.svg"; import BooleanDifference from "../../../assets/svg/24x24-bounds-16x16-icon/boolean-difference.svg"; +import ZoomReset from "../../../assets/svg/24x24-bounds-16x16-icon/zoom-reset.svg"; +import ZoomIn from "../../../assets/svg/24x24-bounds-16x16-icon/zoom-in.svg"; +import ZoomOut from "../../../assets/svg/24x24-bounds-16x16-icon/zoom-out.svg"; const wasm = import("../../../wasm/pkg"); @@ -235,6 +244,7 @@ export default defineComponent({ ItemDivider, IconButton, DropdownButton, + NumberInput, SwapButton, ResetColorsButton, SelectTool, @@ -271,6 +281,9 @@ export default defineComponent({ BooleanSubtractBack, BooleanIntersect, BooleanDifference, + ZoomReset, + ZoomIn, + ZoomOut, }, methods: { async canvasMouseDown(e: MouseEvent) { diff --git a/client/web/src/components/widgets/NumberInput.vue b/client/web/src/components/widgets/NumberInput.vue new file mode 100644 index 00000000..79a768d7 --- /dev/null +++ b/client/web/src/components/widgets/NumberInput.vue @@ -0,0 +1,93 @@ + + + + +