1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-06-17 00:07:41 +02:00

Create items only if action is possible

This commit is contained in:
Ivan Savenko
2023-07-19 18:08:58 +03:00
parent a45a0d1c40
commit cb28a90a3b
3 changed files with 26 additions and 9 deletions

View File

@ -33,13 +33,13 @@ RadialMenu::RadialMenu(const Point & positionToCenter, const std::vector<RadialM
OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE;
pos += positionToCenter;
addItem(Point(0,0), "itemEmpty", "", [](){});
addItem(Point(0,0), true, "itemEmpty", "", [](){});
Point itemSize = items.back()->pos.dimensions();
moveBy(-itemSize / 2);
for (auto const & item : menuConfig)
addItem(item.itemPosition, item.imageName, item.hoverText, item.callback);
addItem(item.itemPosition, item.enabled, item.imageName, item.hoverText, item.callback);
statusBar = CGStatusBar::create(-80, -100, "radialMenu/statusBar");
@ -51,8 +51,11 @@ RadialMenu::RadialMenu(const Point & positionToCenter, const std::vector<RadialM
addUsedEvents(GESTURE);
}
void RadialMenu::addItem(const Point & offset, const std::string & path, const std::string & hoverText, const std::function<void()>& callback )
void RadialMenu::addItem(const Point & offset, bool enabled, const std::string & path, const std::string & hoverText, const std::function<void()>& callback )
{
if (!enabled)
return;
auto item = std::make_shared<RadialMenuItem>(path, hoverText, callback);
item->moveBy(offset);