Added zoom tool

This commit is contained in:
Yousef Khadadeh 2025-09-28 11:59:08 +03:00
parent cbd9e802c8
commit a5c9595b13
11 changed files with 230 additions and 11 deletions

View file

@ -199,6 +199,7 @@ void DrawingProgram::toolbar_gui() {
if(t.gui.svg_icon_button("LassoSelect Toolbar Button", "data/icons/lassoselect.svg", drawTool->get_type() == DrawingProgramToolType::LASSOSELECT)) { switch_to_tool(DrawingProgramToolType::LASSOSELECT); }
if(t.gui.svg_icon_button("Edit Toolbar Button", "data/icons/cursor.svg", drawTool->get_type() == DrawingProgramToolType::EDIT)) { switch_to_tool(DrawingProgramToolType::EDIT); }
if(t.gui.svg_icon_button("Eyedropper Toolbar Button", "data/icons/eyedropper.svg", drawTool->get_type() == DrawingProgramToolType::EYEDROPPER)) { switch_to_tool(DrawingProgramToolType::EYEDROPPER); }
if(t.gui.svg_icon_button("Zoom Canvas Toolbar Button", "data/icons/zoom.svg", drawTool->get_type() == DrawingProgramToolType::ZOOM)) { switch_to_tool(DrawingProgramToolType::ZOOM); }
CLAY({.layout = {.sizing = {.width = CLAY_SIZING_FIXED(40), .height = CLAY_SIZING_FIXED(40)}}}) {
if(t.gui.color_button("Foreground Color", &controls.foregroundColor, &controls.foregroundColor == t.colorLeft)) {
t.color_selector_left(&controls.foregroundColor == t.colorLeft ? nullptr : &controls.foregroundColor);
@ -278,6 +279,17 @@ void DrawingProgram::update() {
controls.leftClickReleased = true;
}
controls.middleClick = controls.cursorHoveringOverCanvas && (world.main.input.mouse.middleClicks || world.main.input.pen.buttons[world.main.toolbar.tabletOptions.middleClickButton].pressed);
if(controls.middleClick) {
controls.middleClickHeld = true;
world.main.toolbar.paintPopupLocation = std::nullopt;
}
if(controls.middleClickHeld && !world.main.input.mouse.middleDown) {
controls.middleClick = false;
controls.middleClickHeld = false;
controls.middleClickReleased = true;
}
if(controls.cursorHoveringOverCanvas && (world.main.input.mouse.rightClicks || world.main.input.pen.buttons[world.main.toolbar.tabletOptions.rightClickButton].pressed)) {
if(world.main.toolbar.paintPopupLocation)
world.main.toolbar.paintPopupLocation = std::nullopt;