From 03316c62bf02d9dc0e143721a0cf3971be8ccb3a Mon Sep 17 00:00:00 2001 From: Laserlicht <13953785+Laserlicht@users.noreply.github.com> Date: Wed, 13 Sep 2023 23:17:44 +0200 Subject: [PATCH] Easy choosing for a secondary skill in Level Up Dialog by double clicking it --- client/widgets/CComponent.cpp | 10 ++++++++-- client/widgets/CComponent.h | 2 ++ client/windows/GUIClasses.cpp | 1 + 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/client/widgets/CComponent.cpp b/client/widgets/CComponent.cpp index 0ad59f1dd..4075ea084 100644 --- a/client/widgets/CComponent.cpp +++ b/client/widgets/CComponent.cpp @@ -269,6 +269,12 @@ void CSelectableComponent::clickPressed(const Point & cursorPosition) onSelect(); } +void CSelectableComponent::clickDouble(const Point & cursorPosition) +{ + if(onChoose) + onChoose(); +} + void CSelectableComponent::init() { selected = false; @@ -278,7 +284,7 @@ CSelectableComponent::CSelectableComponent(const Component &c, std::function onSelect; //function called on selection change + std::function onChoose; //function called on doubleclick void showAll(Canvas & to) override; void select(bool on); void clickPressed(const Point & cursorPosition) override; //call-in + void clickDouble(const Point & cursorPosition) override; //call-in CSelectableComponent(Etype Type, int Sub, int Val, ESize imageSize=large, std::function OnSelect = nullptr); CSelectableComponent(const Component & c, std::function OnSelect = nullptr); }; diff --git a/client/windows/GUIClasses.cpp b/client/windows/GUIClasses.cpp index 67d3a9882..4b8b23c77 100644 --- a/client/windows/GUIClasses.cpp +++ b/client/windows/GUIClasses.cpp @@ -415,6 +415,7 @@ CLevelWindow::CLevelWindow(const CGHeroInstance * hero, PrimarySkill pskill, std for(auto & skill : skills) { auto comp = std::make_shared(CComponent::secskill, skill, hero->getSecSkillLevel(SecondarySkill(skill))+1, CComponent::medium); + comp->onChoose = std::bind(&CLevelWindow::close, this); comps.push_back(comp); }