From aa6cbdf13b959e07496442a2fff401cb32e8b7c9 Mon Sep 17 00:00:00 2001 From: Laserlicht <13953785+Laserlicht@users.noreply.github.com> Date: Wed, 28 Aug 2024 23:07:00 +0200 Subject: [PATCH] make it also usable on android --- client/windows/settings/AdventureOptionsTab.cpp | 4 ++++ client/windows/settings/GeneralOptionsTab.cpp | 4 +++- client/windows/settings/SettingsMainWindow.cpp | 5 +++++ client/windows/settings/SettingsMainWindow.h | 1 + config/widgets/settings/adventureOptionsTab.json | 8 ++++---- 5 files changed, 17 insertions(+), 5 deletions(-) diff --git a/client/windows/settings/AdventureOptionsTab.cpp b/client/windows/settings/AdventureOptionsTab.cpp index 30f98f76c..0fa168a7b 100644 --- a/client/windows/settings/AdventureOptionsTab.cpp +++ b/client/windows/settings/AdventureOptionsTab.cpp @@ -11,6 +11,7 @@ #include "AdventureOptionsTab.h" +#include "../../eventsSDL/InputHandler.h" #include "../../../lib/filesystem/ResourcePath.h" #include "../../gui/CGuiHandler.h" #include "../../widgets/Buttons.h" @@ -36,6 +37,9 @@ AdventureOptionsTab::AdventureOptionsTab() OBJECT_CONSTRUCTION; setRedrawParent(true); + addConditional("touchscreen", GH.input().getCurrentInputMode() == InputMode::TOUCH); + addConditional("keyboardMouse", GH.input().getCurrentInputMode() == InputMode::KEYBOARD_AND_MOUSE); + addConditional("controller", GH.input().getCurrentInputMode() == InputMode::CONTROLLER); #ifdef VCMI_MOBILE addConditional("mobile", true); addConditional("desktop", false); diff --git a/client/windows/settings/GeneralOptionsTab.cpp b/client/windows/settings/GeneralOptionsTab.cpp index b0a965414..d8ead20f8 100644 --- a/client/windows/settings/GeneralOptionsTab.cpp +++ b/client/windows/settings/GeneralOptionsTab.cpp @@ -97,7 +97,9 @@ GeneralOptionsTab::GeneralOptionsTab() OBJECT_CONSTRUCTION; setRedrawParent(true); - addConditional("touchscreen", GH.input().hasTouchInputDevice()); + addConditional("touchscreen", GH.input().getCurrentInputMode() == InputMode::TOUCH); + addConditional("keyboardMouse", GH.input().getCurrentInputMode() == InputMode::KEYBOARD_AND_MOUSE); + addConditional("controller", GH.input().getCurrentInputMode() == InputMode::CONTROLLER); #ifdef VCMI_MOBILE addConditional("mobile", true); addConditional("desktop", false); diff --git a/client/windows/settings/SettingsMainWindow.cpp b/client/windows/settings/SettingsMainWindow.cpp index 6b7b53a1b..af6b4769d 100644 --- a/client/windows/settings/SettingsMainWindow.cpp +++ b/client/windows/settings/SettingsMainWindow.cpp @@ -196,3 +196,8 @@ void SettingsMainWindow::onScreenResize() if (tab) tab->updateResolutionSelector(); } + +void SettingsMainWindow::inputModeChanged(InputMode mode) +{ + tabContentArea->reset(); +} diff --git a/client/windows/settings/SettingsMainWindow.h b/client/windows/settings/SettingsMainWindow.h index 7b26921df..5813ac46b 100644 --- a/client/windows/settings/SettingsMainWindow.h +++ b/client/windows/settings/SettingsMainWindow.h @@ -42,5 +42,6 @@ public: void showAll(Canvas & to) override; void onScreenResize() override; + void inputModeChanged(InputMode mode) override; }; diff --git a/config/widgets/settings/adventureOptionsTab.json b/config/widgets/settings/adventureOptionsTab.json index 33b48a884..3cddfb4ac 100644 --- a/config/widgets/settings/adventureOptionsTab.json +++ b/config/widgets/settings/adventureOptionsTab.json @@ -364,7 +364,7 @@ }, { "text": "vcmi.adventureOptions.leftButtonDrag.hover", - "created" : "desktop" + "created" : "keyboardMouse" }, { "text": "vcmi.adventureOptions.smoothDragging.hover" @@ -379,7 +379,7 @@ [ { "text": "vcmi.adventureOptions.rightButtonDrag.hover", - "created" : "desktop" + "created" : "keyboardMouse" } ] }, @@ -423,7 +423,7 @@ "name": "leftButtonDragCheckbox", "help": "vcmi.adventureOptions.leftButtonDrag", "callback": "leftButtonDragChanged", - "created" : "desktop" + "created" : "keyboardMouse" }, { "name": "smoothDraggingCheckbox", @@ -442,7 +442,7 @@ "name": "rightButtonDragCheckbox", "help": "vcmi.adventureOptions.rightButtonDrag", "callback": "rightButtonDragChanged", - "created" : "desktop" + "created" : "keyboardMouse" } ] }