simplify adding options in Menu class
This commit is contained in:
@@ -764,7 +764,7 @@ void GetDirectory(string dir, string subdir)
|
||||
break;
|
||||
}
|
||||
}
|
||||
bold ? mBrowser->AddBoldOption(*it) : mBrowser->AddOption(*it);
|
||||
mBrowser->AddOption(*it, bold);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
60
src/menu.h
60
src/menu.h
@@ -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)
|
||||
{
|
||||
|
||||
@@ -592,7 +592,7 @@ int main(int argc, char *argv[])
|
||||
break;
|
||||
}
|
||||
}
|
||||
bold ? mLibSongs->AddBoldOption(**it) : mLibSongs->AddOption(**it);
|
||||
mLibSongs->AddOption(**it, bold);
|
||||
bold = 0;
|
||||
}
|
||||
FreeSongList(list);
|
||||
@@ -638,7 +638,7 @@ int main(int argc, char *argv[])
|
||||
break;
|
||||
}
|
||||
}
|
||||
bold ? mPlaylistEditor->AddBoldOption(**it) : mPlaylistEditor->AddOption(**it);
|
||||
mPlaylistEditor->AddOption(**it, bold);
|
||||
bold = 0;
|
||||
}
|
||||
FreeSongList(list);
|
||||
|
||||
@@ -179,12 +179,7 @@ void NcmpcppStatusChanged(MPDConnection *Mpd, MPDStatusChanges changed, void *da
|
||||
Mpd->GetPlaylistChanges(playlist_old_id, list);
|
||||
|
||||
for (SongList::const_iterator it = list.begin(); it != list.end(); it++)
|
||||
{
|
||||
if (now_playing != (*it)->GetPosition())
|
||||
mPlaylist->AddOption(**it);
|
||||
else
|
||||
mPlaylist->AddBoldOption(**it);
|
||||
}
|
||||
mPlaylist->AddOption(**it, now_playing == (*it)->GetPosition());
|
||||
|
||||
if (current_screen == csPlaylist)
|
||||
{
|
||||
|
||||
@@ -89,13 +89,13 @@ bool GetSongTags(Song &s)
|
||||
mTagEditor->Clear();
|
||||
mTagEditor->Reset();
|
||||
|
||||
mTagEditor->AddStaticOption("[.b][.white]Song name: [/white][.green][/b]" + s.GetShortFilename() + "[/green]");
|
||||
mTagEditor->AddStaticOption("[.b][.white]Location in DB: [/white][.green][/b]" + s.GetDirectory() + "[/green]");
|
||||
mTagEditor->AddStaticOption("");
|
||||
mTagEditor->AddStaticOption("[.b][.white]Length: [/white][.green][/b]" + s.GetLength() + "[/green]");
|
||||
mTagEditor->AddStaticOption("[.b][.white]Bitrate: [/white][.green][/b]" + IntoStr(f.audioProperties()->bitrate()) + " kbps[/green]");
|
||||
mTagEditor->AddStaticOption("[.b][.white]Sample rate: [/white][.green][/b]" + IntoStr(f.audioProperties()->sampleRate()) + " Hz[/green]");
|
||||
mTagEditor->AddStaticOption("[.b][.white]Channels: [/white][.green][/b]" + (string)(f.audioProperties()->channels() == 1 ? "Mono" : "Stereo") + "[/green]");
|
||||
mTagEditor->AddOption("[.b][.white]Song name: [/white][.green][/b]" + s.GetShortFilename() + "[/green]", 0, 1);
|
||||
mTagEditor->AddOption("[.b][.white]Location in DB: [/white][.green][/b]" + s.GetDirectory() + "[/green]", 0, 1);
|
||||
mTagEditor->AddOption("", 0, 1);
|
||||
mTagEditor->AddOption("[.b][.white]Length: [/white][.green][/b]" + s.GetLength() + "[/green]", 0, 1);
|
||||
mTagEditor->AddOption("[.b][.white]Bitrate: [/white][.green][/b]" + IntoStr(f.audioProperties()->bitrate()) + " kbps[/green]", 0, 1);
|
||||
mTagEditor->AddOption("[.b][.white]Sample rate: [/white][.green][/b]" + IntoStr(f.audioProperties()->sampleRate()) + " Hz[/green]", 0, 1);
|
||||
mTagEditor->AddOption("[.b][.white]Channels: [/white][.green][/b]" + (string)(f.audioProperties()->channels() == 1 ? "Mono" : "Stereo") + "[/green]", 0, 1);
|
||||
|
||||
mTagEditor->AddSeparator();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user