GUI now collects events on its own

This commit is contained in:
Yousef Khadadeh 2026-03-04 12:15:24 +03:00
parent a7030059a4
commit 911b7bc91d
10 changed files with 184 additions and 76 deletions

View file

@ -223,6 +223,7 @@ void DrawingProgram::input_key_callback(const InputManager::KeyCallbackArgs& key
break;
}
}
selection.input_key_callback_display_selection(key);
drawTool->input_key_callback(key);
}

View file

@ -356,20 +356,20 @@ void DrawingProgramSelection::update() {
void DrawingProgramSelection::input_key_callback_modify_selection(const InputManager::KeyCallbackArgs& key) {
switch(key.key) {
case InputManager::KEY_TEXT_UP: {
translate_key(InputManager::KEY_TEXT_UP, key.down);
case InputManager::KEY_GENERIC_UP: {
translate_key(InputManager::KEY_GENERIC_UP, key.down);
break;
}
case InputManager::KEY_TEXT_DOWN: {
translate_key(InputManager::KEY_TEXT_DOWN, key.down);
case InputManager::KEY_GENERIC_DOWN: {
translate_key(InputManager::KEY_GENERIC_DOWN, key.down);
break;
}
case InputManager::KEY_TEXT_LEFT: {
translate_key(InputManager::KEY_TEXT_LEFT, key.down);
case InputManager::KEY_GENERIC_LEFT: {
translate_key(InputManager::KEY_GENERIC_LEFT, key.down);
break;
}
case InputManager::KEY_TEXT_RIGHT: {
translate_key(InputManager::KEY_TEXT_RIGHT, key.down);
case InputManager::KEY_GENERIC_RIGHT: {
translate_key(InputManager::KEY_GENERIC_RIGHT, key.down);
break;
}
}
@ -515,16 +515,16 @@ void DrawingProgramSelection::translate_key(unsigned keyPressed, bool pressed) {
constexpr float KEY_TRANSLATE_MAGNITUDE = 5.0f;
Vector2f moveVec;
switch(keyPressed) {
case InputManager::KEY_TEXT_UP:
case InputManager::KEY_GENERIC_UP:
moveVec = {0.0f, -1.0f};
break;
case InputManager::KEY_TEXT_DOWN:
case InputManager::KEY_GENERIC_DOWN:
moveVec = {0.0f, 1.0f};
break;
case InputManager::KEY_TEXT_RIGHT:
case InputManager::KEY_GENERIC_RIGHT:
moveVec = {1.0f, 0.0f};
break;
case InputManager::KEY_TEXT_LEFT:
case InputManager::KEY_GENERIC_LEFT:
moveVec = {-1.0f, 0.0f};
break;
}
@ -542,7 +542,7 @@ void DrawingProgramSelection::translate_key(unsigned keyPressed, bool pressed) {
selectionTransformCoords = CoordSpaceHelperTransform(translateData.startPos);
}
else if(transformOpHappening == TransformOperation::TRANSLATE && translateData.translateWithKeys) {
bool anyKeyHeld = drawP.world.main.input.key(InputManager::KEY_TEXT_LEFT).held || drawP.world.main.input.key(InputManager::KEY_TEXT_RIGHT).held || drawP.world.main.input.key(InputManager::KEY_TEXT_DOWN).held || drawP.world.main.input.key(InputManager::KEY_TEXT_UP).held;
bool anyKeyHeld = drawP.world.main.input.key(InputManager::KEY_GENERIC_LEFT).held || drawP.world.main.input.key(InputManager::KEY_GENERIC_RIGHT).held || drawP.world.main.input.key(InputManager::KEY_GENERIC_DOWN).held || drawP.world.main.input.key(InputManager::KEY_GENERIC_UP).held;
if(!anyKeyHeld) {
commit_transform_selection();
return;

View file

@ -51,7 +51,6 @@ bool LassoSelectTool::right_click_popup_gui(Vector2f popupPos) {
}
void LassoSelectTool::input_key_callback(const InputManager::KeyCallbackArgs& key) {
drawP.selection.input_key_callback_display_selection(key);
drawP.selection.input_key_callback_modify_selection(key);
}

View file

@ -25,7 +25,6 @@ void RectSelectTool::gui_toolbox() {
}
void RectSelectTool::input_key_callback(const InputManager::KeyCallbackArgs& key) {
drawP.selection.input_key_callback_display_selection(key);
drawP.selection.input_key_callback_modify_selection(key);
}