From bd226e1c07a75cc76671b16ca9ca022234006a55 Mon Sep 17 00:00:00 2001 From: sid293 Date: Wed, 10 Dec 2025 21:46:08 +0530 Subject: [PATCH] feat: Add Zoom, Lasso Select, and Pan drawing tools keybindings. --- src/DrawingProgram/DrawingProgram.cpp | 6 ++++++ src/InputManager.cpp | 3 +++ src/InputManager.hpp | 6 ++++++ 3 files changed, 15 insertions(+) diff --git a/src/DrawingProgram/DrawingProgram.cpp b/src/DrawingProgram/DrawingProgram.cpp index 6c23ad7..83e22e2 100644 --- a/src/DrawingProgram/DrawingProgram.cpp +++ b/src/DrawingProgram/DrawingProgram.cpp @@ -389,6 +389,12 @@ void DrawingProgram::update() { switch_to_tool(DrawingProgramToolType::EYEDROPPER); else if(world.main.input.key(InputManager::KEY_DRAW_TOOL_SCREENSHOT).pressed) switch_to_tool(DrawingProgramToolType::SCREENSHOT); + else if(world.main.input.key(InputManager::KEY_DRAW_TOOL_ZOOM).pressed) + switch_to_tool(DrawingProgramToolType::ZOOM); + else if(world.main.input.key(InputManager::KEY_DRAW_TOOL_LASSOSELECT).pressed) + switch_to_tool(DrawingProgramToolType::LASSOSELECT); + else if(world.main.input.key(InputManager::KEY_DRAW_TOOL_PAN).pressed) + switch_to_tool(DrawingProgramToolType::PAN); selection.update(); drawTool->tool_update(); diff --git a/src/InputManager.cpp b/src/InputManager.cpp index e432ff8..68f4742 100644 --- a/src/InputManager.cpp +++ b/src/InputManager.cpp @@ -36,6 +36,9 @@ InputManager::InputManager() { defaultKeyAssignments[{CTRL_MOD, SDLK_V}] = KEY_PASTE; defaultKeyAssignments[{0, SDLK_B}] = KEY_DRAW_TOOL_BRUSH; defaultKeyAssignments[{0, SDLK_E}] = KEY_DRAW_TOOL_ERASER; + defaultKeyAssignments[{0, SDLK_Z}] = KEY_DRAW_TOOL_ZOOM; + defaultKeyAssignments[{0, SDLK_L}] = KEY_DRAW_TOOL_LASSOSELECT; + defaultKeyAssignments[{0, SDLK_H}] = KEY_DRAW_TOOL_PAN; defaultKeyAssignments[{0, SDLK_T}] = KEY_DRAW_TOOL_TEXTBOX; defaultKeyAssignments[{0, SDLK_R}] = KEY_DRAW_TOOL_RECTANGLE; defaultKeyAssignments[{0, SDLK_C}] = KEY_DRAW_TOOL_ELLIPSE; diff --git a/src/InputManager.hpp b/src/InputManager.hpp index 6312bcf..4fe3d06 100644 --- a/src/InputManager.hpp +++ b/src/InputManager.hpp @@ -151,6 +151,9 @@ struct InputManager { KEY_PASTE, KEY_DRAW_TOOL_BRUSH, KEY_DRAW_TOOL_ERASER, + KEY_DRAW_TOOL_ZOOM, + KEY_DRAW_TOOL_PAN, + KEY_DRAW_TOOL_LASSOSELECT, KEY_DRAW_TOOL_TEXTBOX, KEY_DRAW_TOOL_RECTANGLE, KEY_DRAW_TOOL_ELLIPSE, @@ -238,6 +241,9 @@ NLOHMANN_JSON_SERIALIZE_ENUM(InputManager::KeyCodeEnum, { {InputManager::KEY_PASTE, "Paste"}, {InputManager::KEY_DRAW_TOOL_BRUSH, "Brush Tool"}, {InputManager::KEY_DRAW_TOOL_ERASER, "Eraser Tool"}, + {InputManager::KEY_DRAW_TOOL_ZOOM, "Zoom Tool"}, + {InputManager::KEY_DRAW_TOOL_LASSOSELECT, "Lasso Select Tool"}, + {InputManager::KEY_DRAW_TOOL_PAN, "Pan Tool"}, {InputManager::KEY_DRAW_TOOL_TEXTBOX, "Textbox Tool"}, {InputManager::KEY_DRAW_TOOL_RECTANGLE, "Rectangle Tool"}, {InputManager::KEY_DRAW_TOOL_ELLIPSE, "Ellipse Tool"},