Skip to content
Snippets Groups Projects
Commit 6177613a authored by Yuriy Maksymets's avatar Yuriy Maksymets
Browse files

Added dragging fronted elements

parent 749a5e62
Branches
No related tags found
1 merge request!74Canvas dragging
Pipeline #109249 passed
...@@ -199,6 +199,12 @@ ...@@ -199,6 +199,12 @@
<button id="eraser-tool" class="selectable-tool"> <button id="eraser-tool" class="selectable-tool">
<i class="fa fa-eraser"></i> <i class="fa fa-eraser"></i>
</button> </button>
<button id="dragging-tool" class="selectable-tool">
<i class="fa fa-hand-paper-o"></i>
</button>
<button id="canvas-center" class="selectable-tool">
<i class="fa fa-crosshairs"></i>
</button>
<button id="recognition-mode" class="selectable-tool"> <button id="recognition-mode" class="selectable-tool">
<i class="fa fa-square"></i> <i class="fa fa-square"></i>
</button> </button>
......
...@@ -287,7 +287,7 @@ button.selected { ...@@ -287,7 +287,7 @@ button.selected {
} }
#eraser-tool { #eraser-tool {
margin-right: 8px; /* margin-right: 8px; */
} }
#eraser-tool > i { #eraser-tool > i {
......
...@@ -13,6 +13,8 @@ export const canvas = document.getElementById("canvas") ...@@ -13,6 +13,8 @@ export const canvas = document.getElementById("canvas")
export const penButton = document.getElementById("pen-tool") export const penButton = document.getElementById("pen-tool")
export const eraserButton = document.getElementById("eraser-tool") export const eraserButton = document.getElementById("eraser-tool")
export const recognitionModeButton = document.getElementById("recognition-mode") export const recognitionModeButton = document.getElementById("recognition-mode")
export const draggingToolButton = document.getElementById("dragging-tool")
export const canvasCenterToolButton = document.getElementById("canvas-center")
export const fastUndoButton = document.getElementById("fast-undo-tool") export const fastUndoButton = document.getElementById("fast-undo-tool")
export const undoButton = document.getElementById("undo-tool") export const undoButton = document.getElementById("undo-tool")
......
...@@ -3,8 +3,10 @@ import * as HTML from "./elements.js" ...@@ -3,8 +3,10 @@ import * as HTML from "./elements.js"
export const Tools = Object.freeze({ export const Tools = Object.freeze({
PEN: Symbol("pen"), PEN: Symbol("pen"),
ERASER: Symbol("eraser"), ERASER: Symbol("eraser"),
DRAGGER: Symbol("dragger"),
}) })
let canvasOffset = [0, 0]
let selectedTool = Tools.PEN let selectedTool = Tools.PEN
let strokeColour = "#000000" let strokeColour = "#000000"
let strokeRadius = 2 let strokeRadius = 2
...@@ -15,6 +17,7 @@ const ERASE_RADIUS = 20 ...@@ -15,6 +17,7 @@ const ERASE_RADIUS = 20
export const getTool = () => selectedTool export const getTool = () => selectedTool
export const getStrokeColour = () => strokeColour export const getStrokeColour = () => strokeColour
export const getStrokeRadius = () => strokeRadius export const getStrokeRadius = () => strokeRadius
export const getCanvasOffset = () => canvasOffset
export const getEraseRadius = () => ERASE_RADIUS export const getEraseRadius = () => ERASE_RADIUS
export const isRecognitionModeSet = () => recognitionEnabled export const isRecognitionModeSet = () => recognitionEnabled
...@@ -51,20 +54,44 @@ HTML.recognitionModeButton.addEventListener("click", () => { ...@@ -51,20 +54,44 @@ HTML.recognitionModeButton.addEventListener("click", () => {
} }
}) })
const toolElements = {
[Tools.PEN]: HTML.penButton,
[Tools.ERASER]: HTML.eraserButton,
[Tools.DRAGGER]: HTML.draggingToolButton,
}
function setSelectedTool(newSelectedTool) {
selectedTool = newSelectedTool
Object.getOwnPropertySymbols(toolElements).forEach((e) =>
toolElements[e].classList.remove("selected"),
)
toolElements[newSelectedTool].classList.add("selected")
}
function centerCanvas() {
canvasOffset = [0, 0]
}
HTML.penButton.addEventListener("click", () => { HTML.penButton.addEventListener("click", () => {
if (selectedTool == Tools.PEN) { if (selectedTool == Tools.PEN) {
showElement(HTML.penProperties) showElement(HTML.penProperties)
} else { } else {
selectedTool = Tools.PEN setSelectedTool(Tools.PEN)
HTML.penButton.classList.add("selected")
HTML.eraserButton.classList.remove("selected")
} }
}) })
HTML.eraserButton.addEventListener("click", () => { HTML.eraserButton.addEventListener("click", () => {
selectedTool = Tools.ERASER setSelectedTool(Tools.ERASER)
HTML.penButton.classList.remove("selected") })
HTML.eraserButton.classList.add("selected")
HTML.draggingToolButton.addEventListener("click", () => {
setSelectedTool(Tools.DRAGGER)
})
HTML.canvasCenterToolButton.addEventListener("click", () => {
centerCanvas()
}) })
HTML.strokeColorPicker.addEventListener("change", () => { HTML.strokeColorPicker.addEventListener("change", () => {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment