diff --git a/client/web/assets/svg/24x24-bounds-16x16-icon/view-mode-normal.svg b/client/web/assets/svg/24x24-bounds-16x16-icon/view-mode-normal.svg new file mode 100644 index 000000000..145cb4a51 --- /dev/null +++ b/client/web/assets/svg/24x24-bounds-16x16-icon/view-mode-normal.svg @@ -0,0 +1,3 @@ + + + diff --git a/client/web/assets/svg/24x24-bounds-16x16-icon/view-mode-outline.svg b/client/web/assets/svg/24x24-bounds-16x16-icon/view-mode-outline.svg new file mode 100644 index 000000000..9d752c6ab --- /dev/null +++ b/client/web/assets/svg/24x24-bounds-16x16-icon/view-mode-outline.svg @@ -0,0 +1,3 @@ + + + diff --git a/client/web/assets/svg/24x24-bounds-16x16-icon/view-mode-pixels.svg b/client/web/assets/svg/24x24-bounds-16x16-icon/view-mode-pixels.svg new file mode 100644 index 000000000..6368aad87 --- /dev/null +++ b/client/web/assets/svg/24x24-bounds-16x16-icon/view-mode-pixels.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/web/src/components/panels/Document.vue b/client/web/src/components/panels/Document.vue index 5b8080124..14f2ca562 100644 --- a/client/web/src/components/panels/Document.vue +++ b/client/web/src/components/panels/Document.vue @@ -31,6 +31,15 @@
+ + + + + + + + + @@ -116,7 +125,7 @@ .side { height: 100%; - flex: 0 1 auto; + flex: 0 0 auto; display: flex; align-items: center; margin: 0 8px; @@ -193,6 +202,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 RadioPicker from "../widgets/RadioPicker.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"; @@ -233,6 +243,9 @@ import BooleanDifference from "../../../assets/svg/24x24-bounds-16x16-icon/boole 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"; +import ViewModeNormal from "../../../assets/svg/24x24-bounds-16x16-icon/view-mode-normal.svg"; +import ViewModeOutline from "../../../assets/svg/24x24-bounds-16x16-icon/view-mode-outline.svg"; +import ViewModePixels from "../../../assets/svg/24x24-bounds-16x16-icon/view-mode-pixels.svg"; const wasm = import("../../../wasm/pkg"); @@ -244,6 +257,7 @@ export default defineComponent({ ItemDivider, IconButton, DropdownButton, + RadioPicker, NumberInput, SwapButton, ResetColorsButton, @@ -284,6 +298,9 @@ export default defineComponent({ ZoomReset, ZoomIn, ZoomOut, + ViewModeNormal, + ViewModeOutline, + ViewModePixels, }, methods: { async canvasMouseDown(e: MouseEvent) { @@ -310,6 +327,9 @@ export default defineComponent({ const { select_tool } = await wasm; select_tool(toolName); }, + async viewModeChanged(toolIndex: number) { + console.log(`The view mode has been changed to index match the icon at index ${toolIndex}`); + }, }, mounted() { registerResponseHandler(ResponseType.UpdateCanvas, (responseData) => { diff --git a/client/web/src/components/widgets/NumberInput.vue b/client/web/src/components/widgets/NumberInput.vue index 79a768d75..95531add2 100644 --- a/client/web/src/components/widgets/NumberInput.vue +++ b/client/web/src/components/widgets/NumberInput.vue @@ -8,7 +8,7 @@ + +