widget/menu: add methodes setSelectedByName() and getSelectedByName()

Allows to get and set items ba their names in additional
to allready existing members getSelected() and setSelected()
This commit is contained in:
2023-02-20 09:54:07 +01:00
parent 9ebb7ff075
commit 1673683807
2 changed files with 34 additions and 1 deletions

View File

@@ -1786,6 +1786,35 @@ void CMenuWidget::setFooter(const struct button_label *_fbutton_labels, const in
paint();
}
int CMenuWidget::getSelectedByName(const std::string& Name)
{
for (size_t i = 0; i < items.size(); i++)
if (strcmp(items[i]->getName(), Name.c_str()) == 0)
return (int)i;
return selected;
}
int CMenuWidget::getSelectedByName(const neutrino_locale_t &Locale)
{
return getSelectedByName(g_Locale->getText(Locale));
}
void CMenuWidget::setSelectedByName(const std::string& Name)
{
for (size_t i = 0; i < items.size(); i++)
{
if (strcmp(items[i]->getName(), Name.c_str()) == 0)
{
selected = i;
return;
}
}
}
void CMenuWidget::setSelectedByName(const neutrino_locale_t &Locale)
{
setSelectedByName(g_Locale->getText(Locale));
}
//-------------------------------------------------------------------------------------------------------------------------------
CMenuOptionNumberChooser::CMenuOptionNumberChooser( const neutrino_locale_t Name, int * const OptionValue, const bool Active,

View File

@@ -651,9 +651,13 @@ class CMenuWidget : public CMenuTarget, public CComponentsSignals
virtual int exec(CMenuTarget* parent, const std::string & actionKey);
virtual const char *getName();
virtual void integratePlugins(int integration, const unsigned int shortcut=RC_NOKEY, bool enabled=true);
void setSelected(const int &Preselected){ selected = Preselected; };
void initSelectable();
void setSelected(const int &Preselected){ selected = Preselected; };
void setSelectedByName(const neutrino_locale_t &Locale);
void setSelectedByName(const std::string &Name);
int getSelected()const { return selected; };
int getSelectedByName(const neutrino_locale_t &Locale);
int getSelectedByName(const std::string &Name);
void move(int xoff, int yoff);
void setPos(int X, int Y);
int getHeight() {calcSize(); return full_height;}