support for adding items like in ncmpc (disabled by default)

This commit is contained in:
unK
2008-09-25 20:08:47 +02:00
parent 40abeaac2c
commit 0d5032c452
8 changed files with 201 additions and 31 deletions

View File

@@ -88,7 +88,8 @@ class Menu : public Window
virtual int Size() const { return itsOptions.size(); }
bool Empty() const { return itsOptions.empty(); }
virtual bool IsStatic(int) const;
bool IsBold(int = -1) const;
virtual bool IsStatic(int = -1) const;
virtual Window * Clone() const { return new Menu(*this); }
virtual Window * EmptyClone() const;
@@ -668,12 +669,25 @@ int Menu<T>::GetRealChoice() const
return real_choice;
}
template <class T>
bool Menu<T>::IsBold(int option) const
{
try
{
return itsOptions.at(option == -1 ? itsHighlight : option)->is_bold;
}
catch (std::out_of_range)
{
return 0;
}
}
template <class T>
bool Menu<T>::IsStatic(int option) const
{
try
{
return itsOptions.at(option)->is_static;
return itsOptions.at(option == -1 ? itsHighlight : option)->is_static;
}
catch (std::out_of_range)
{