From 2a30eccb2d9b03219485cedf7465a47d38347027 Mon Sep 17 00:00:00 2001 From: Ivan Savenko Date: Sat, 27 May 2023 17:30:12 +0300 Subject: [PATCH] Allow mouse wheel for astart options setup (town/hero/bonus) --- client/lobby/OptionsTab.cpp | 21 ++++++++++++++++++++- client/lobby/OptionsTab.h | 1 + 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/client/lobby/OptionsTab.cpp b/client/lobby/OptionsTab.cpp index af87207f0..7590d53ff 100644 --- a/client/lobby/OptionsTab.cpp +++ b/client/lobby/OptionsTab.cpp @@ -410,7 +410,7 @@ void OptionsTab::CPlayerOptionTooltipBox::genBonusWindow() } OptionsTab::SelectedBox::SelectedBox(Point position, PlayerSettings & settings, SelType type) - : CIntObject(RCLICK, position), CPlayerSettingsHelper(settings, type) + : CIntObject(RCLICK | WHEEL, position), CPlayerSettingsHelper(settings, type) { OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; @@ -440,6 +440,25 @@ void OptionsTab::SelectedBox::clickRight(tribool down, bool previousState) } } +void OptionsTab::SelectedBox::wheelScrolled(int distance, bool isInside) +{ + if (!isInside) + return; + + switch(CPlayerSettingsHelper::type) + { + case TOWN: + CSH->setPlayerOption(LobbyChangePlayerOption::TOWN, distance, settings.color); + break; + case HERO: + CSH->setPlayerOption(LobbyChangePlayerOption::HERO, distance, settings.color); + break; + case BONUS: + CSH->setPlayerOption(LobbyChangePlayerOption::BONUS, distance, settings.color); + break; + } +} + OptionsTab::PlayerOptionsEntry::PlayerOptionsEntry(const PlayerSettings & S, const OptionsTab & parent) : pi(std::make_unique(SEL->getPlayerInfo(S.color.getNum()))) , s(std::make_unique(S)) diff --git a/client/lobby/OptionsTab.h b/client/lobby/OptionsTab.h index 985de3494..ad6132454 100644 --- a/client/lobby/OptionsTab.h +++ b/client/lobby/OptionsTab.h @@ -100,6 +100,7 @@ public: SelectedBox(Point position, PlayerSettings & settings, SelType type); void clickRight(tribool down, bool previousState) override; + void wheelScrolled(int distance, bool isInside) override; void update(); };