simplify adding options in Menu class

This commit is contained in:
unK
2008-09-10 11:06:01 +02:00
parent e36bf0a3cc
commit 226702f23a
5 changed files with 19 additions and 68 deletions

View File

@@ -55,11 +55,8 @@ class Menu : public Window
void SetItemDisplayer(ItemDisplayer ptr) { itsItemDisplayer = ptr; }
void SetItemDisplayerUserData(void *data) { itsItemDisplayerUserdata = data; }
void AddOption(const T &, Location = lLeft, bool separator = 0);
void AddBoldOption(const T &item, Location location = lLeft, bool separator = 0);
void AddStaticOption(const T &item, Location location = lLeft, bool separator = 0);
void AddStaticBoldOption(const T &item, Location location = lLeft, bool separator = 0);
void AddSeparator();
void AddOption(const T &, bool bold = 0, bool is_static = 0, bool separator = 0, Location = lLeft);
void AddSeparator() { AddOption(T(), 0, 1, 1); }
void UpdateOption(int, const T &, Location = lLeft, bool separator = 0);
void RefreshOption(int option = -1) { NeedsRedraw.push_back(option < 0 ? itsHighlight : option); }
void BoldOption(int, bool);
@@ -194,61 +191,20 @@ int Menu<T>::count_length(string str)
}
template <class T>
void Menu<T>::AddOption(const T &item, Location location, bool separator)
void Menu<T>::AddOption(const T &item, bool bold, bool is_static, bool separator, Location location)
{
Option<T> *new_option = new Option<T>;
new_option->item = item;
new_option->location = location;
new_option->is_bold = bold;
new_option->is_static = is_static;
new_option->have_separator = separator;
new_option->location = location;
if (is_static)
itsStaticsNumber++;
itsOptions.push_back(new_option);
NeedsRedraw.push_back(itsOptions.size()-1);
}
template <class T>
void Menu<T>::AddBoldOption(const T &item, Location location, bool separator)
{
Option<T> *new_option = new Option<T>;
new_option->item = item;
new_option->location = location;
new_option->have_separator = separator;
new_option->is_bold = 1;
itsOptions.push_back(new_option);
NeedsRedraw.push_back(itsOptions.size()-1);
}
template <class T>
void Menu<T>::AddStaticOption(const T &item, Location location, bool separator)
{
Option<T> *new_option = new Option<T>;
new_option->item = item;
new_option->location = location;
new_option->have_separator = separator;
new_option->is_static = 1;
itsOptions.push_back(new_option);
itsStaticsNumber++;
NeedsRedraw.push_back(itsOptions.size()-1);
}
template <class T>
void Menu<T>::AddStaticBoldOption(const T &item, Location location, bool separator)
{
Option<T> *new_option = new Option<T>;
new_option->item = item;
new_option->location = location;
new_option->have_separator = separator;
new_option->is_static = 1;
new_option->is_bold = 1;
itsOptions.push_back(new_option);
itsStaticsNumber++;
NeedsRedraw.push_back(itsOptions.size()-1);
}
template <class T>
void Menu<T>::AddSeparator()
{
AddStaticOption(T(), lLeft, 1);
}
template <class T>
void Menu<T>::UpdateOption(int index, const T &item, Location location, bool separator)
{