1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-03-19 21:10:12 +02:00

use Strg instead mouse pos

This commit is contained in:
Laserlicht 2024-08-09 22:49:05 +02:00
parent dc81426b5e
commit 9a9cc10ee7
3 changed files with 15 additions and 45 deletions

View File

@ -305,27 +305,12 @@ void CHeroList::CHeroItem::gesture(bool on, const Point & initialPosition, const
GH.windows().createAndPushWindow<RadialMenu>(pos.center(), menuElements, true);
}
bool CHeroList::CHeroItem::captureThisKey(EShortcut key)
{
switch(key)
{
case EShortcut::LIST_HERO_UP:
case EShortcut::LIST_HERO_DOWN:
case EShortcut::LIST_HERO_TOP:
case EShortcut::LIST_HERO_BOTTOM:
case EShortcut::LIST_HERO_DELETE:
return hero && pos.isInside(GH.getCursorPosition());
}
return false;
}
void CHeroList::CHeroItem::keyPressed(EShortcut key)
{
if(!hero)
return;
if(!pos.isInside(GH.getCursorPosition()))
if(parent->selected != this->shared_from_this())
return;
auto & heroes = LOCPLINT->localState->getWanderingHeroes();
@ -512,23 +497,9 @@ void CTownList::CTownItem::gesture(bool on, const Point & initialPosition, const
GH.windows().createAndPushWindow<RadialMenu>(pos.center(), menuElements, true);
}
bool CTownList::CTownItem::captureThisKey(EShortcut key)
{
switch(key)
{
case EShortcut::LIST_TOWN_UP:
case EShortcut::LIST_TOWN_DOWN:
case EShortcut::LIST_TOWN_TOP:
case EShortcut::LIST_TOWN_BOTTOM:
return town && pos.isInside(GH.getCursorPosition());
}
return false;
}
void CTownList::CTownItem::keyPressed(EShortcut key)
{
if(!pos.isInside(GH.getCursorPosition()))
if(parent->selected != this->shared_from_this())
return;
const std::vector<const CGTownInstance *> towns = LOCPLINT->localState->getOwnedTowns();

View File

@ -29,9 +29,10 @@ class CList : public Scrollable
protected:
class CListItem : public CIntObject, public std::enable_shared_from_this<CListItem>
{
CList * parent;
std::shared_ptr<CIntObject> selection;
public:
CList * parent;
CListItem(CList * parent);
~CListItem();
@ -55,9 +56,6 @@ protected:
private:
const size_t size;
//for selection\deselection
std::shared_ptr<CListItem> selected;
void select(std::shared_ptr<CListItem> which);
friend class CListItem;
@ -81,6 +79,9 @@ protected:
void update();
public:
//for selection\deselection
std::shared_ptr<CListItem> selected;
/// functions that will be called when selection changes
CFunctionList<void()> onSelect;
@ -128,7 +129,6 @@ class CHeroList : public CList
void open() override;
void showTooltip() override;
void gesture(bool on, const Point & initialPosition, const Point & finalPosition) override;
bool captureThisKey(EShortcut key) override;
void keyPressed(EShortcut key) override;
std::string getHoverText() override;
};
@ -164,7 +164,6 @@ class CTownList : public CList
void open() override;
void showTooltip() override;
void gesture(bool on, const Point & initialPosition, const Point & finalPosition) override;
bool captureThisKey(EShortcut key) override;
void keyPressed(EShortcut key) override;
std::string getHoverText() override;
};

View File

@ -242,15 +242,15 @@
"townOpenThievesGuild": "G",
"townOpenVisitingHero": "Ctrl+H",
"townSwapArmies": "Space",
"listHeroUp": "PageUp",
"listHeroDown": "PageDown",
"listHeroTop": "Home",
"listHeroBottom": "End",
"listHeroUp": "Ctrl+PageUp",
"listHeroDown": "Ctrl+PageDown",
"listHeroTop": "Ctrl+Home",
"listHeroBottom": "Ctrl+End",
"listHeroDelete": "Delete",
"listTownUp": "PageUp",
"listTownDown": "PageDown",
"listTownTop": "Home",
"listTownBottom": "End",
"listTownUp": "Ctrl+PageUp",
"listTownDown": "Ctrl+PageDown",
"listTownTop": "Ctrl+Home",
"listTownBottom": "Ctrl+End",
// Controller-specific
"mouseCursorX": [],