simplify adding options in Menu class
This commit is contained in:
@@ -764,7 +764,7 @@ void GetDirectory(string dir, string subdir)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
bold ? mBrowser->AddBoldOption(*it) : mBrowser->AddOption(*it);
|
mBrowser->AddOption(*it, bold);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
60
src/menu.h
60
src/menu.h
@@ -55,11 +55,8 @@ class Menu : public Window
|
|||||||
void SetItemDisplayer(ItemDisplayer ptr) { itsItemDisplayer = ptr; }
|
void SetItemDisplayer(ItemDisplayer ptr) { itsItemDisplayer = ptr; }
|
||||||
void SetItemDisplayerUserData(void *data) { itsItemDisplayerUserdata = data; }
|
void SetItemDisplayerUserData(void *data) { itsItemDisplayerUserdata = data; }
|
||||||
|
|
||||||
void AddOption(const T &, Location = lLeft, bool separator = 0);
|
void AddOption(const T &, bool bold = 0, bool is_static = 0, bool separator = 0, Location = lLeft);
|
||||||
void AddBoldOption(const T &item, Location location = lLeft, bool separator = 0);
|
void AddSeparator() { AddOption(T(), 0, 1, 1); }
|
||||||
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 UpdateOption(int, const T &, Location = lLeft, bool separator = 0);
|
void UpdateOption(int, const T &, Location = lLeft, bool separator = 0);
|
||||||
void RefreshOption(int option = -1) { NeedsRedraw.push_back(option < 0 ? itsHighlight : option); }
|
void RefreshOption(int option = -1) { NeedsRedraw.push_back(option < 0 ? itsHighlight : option); }
|
||||||
void BoldOption(int, bool);
|
void BoldOption(int, bool);
|
||||||
@@ -194,61 +191,20 @@ int Menu<T>::count_length(string str)
|
|||||||
}
|
}
|
||||||
|
|
||||||
template <class T>
|
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>;
|
Option<T> *new_option = new Option<T>;
|
||||||
new_option->item = item;
|
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->have_separator = separator;
|
||||||
|
new_option->location = location;
|
||||||
|
if (is_static)
|
||||||
|
itsStaticsNumber++;
|
||||||
itsOptions.push_back(new_option);
|
itsOptions.push_back(new_option);
|
||||||
NeedsRedraw.push_back(itsOptions.size()-1);
|
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>
|
template <class T>
|
||||||
void Menu<T>::UpdateOption(int index, const T &item, Location location, bool separator)
|
void Menu<T>::UpdateOption(int index, const T &item, Location location, bool separator)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -592,7 +592,7 @@ int main(int argc, char *argv[])
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
bold ? mLibSongs->AddBoldOption(**it) : mLibSongs->AddOption(**it);
|
mLibSongs->AddOption(**it, bold);
|
||||||
bold = 0;
|
bold = 0;
|
||||||
}
|
}
|
||||||
FreeSongList(list);
|
FreeSongList(list);
|
||||||
@@ -638,7 +638,7 @@ int main(int argc, char *argv[])
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
bold ? mPlaylistEditor->AddBoldOption(**it) : mPlaylistEditor->AddOption(**it);
|
mPlaylistEditor->AddOption(**it, bold);
|
||||||
bold = 0;
|
bold = 0;
|
||||||
}
|
}
|
||||||
FreeSongList(list);
|
FreeSongList(list);
|
||||||
|
|||||||
@@ -179,12 +179,7 @@ void NcmpcppStatusChanged(MPDConnection *Mpd, MPDStatusChanges changed, void *da
|
|||||||
Mpd->GetPlaylistChanges(playlist_old_id, list);
|
Mpd->GetPlaylistChanges(playlist_old_id, list);
|
||||||
|
|
||||||
for (SongList::const_iterator it = list.begin(); it != list.end(); it++)
|
for (SongList::const_iterator it = list.begin(); it != list.end(); it++)
|
||||||
{
|
mPlaylist->AddOption(**it, now_playing == (*it)->GetPosition());
|
||||||
if (now_playing != (*it)->GetPosition())
|
|
||||||
mPlaylist->AddOption(**it);
|
|
||||||
else
|
|
||||||
mPlaylist->AddBoldOption(**it);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (current_screen == csPlaylist)
|
if (current_screen == csPlaylist)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -89,13 +89,13 @@ bool GetSongTags(Song &s)
|
|||||||
mTagEditor->Clear();
|
mTagEditor->Clear();
|
||||||
mTagEditor->Reset();
|
mTagEditor->Reset();
|
||||||
|
|
||||||
mTagEditor->AddStaticOption("[.b][.white]Song name: [/white][.green][/b]" + s.GetShortFilename() + "[/green]");
|
mTagEditor->AddOption("[.b][.white]Song name: [/white][.green][/b]" + s.GetShortFilename() + "[/green]", 0, 1);
|
||||||
mTagEditor->AddStaticOption("[.b][.white]Location in DB: [/white][.green][/b]" + s.GetDirectory() + "[/green]");
|
mTagEditor->AddOption("[.b][.white]Location in DB: [/white][.green][/b]" + s.GetDirectory() + "[/green]", 0, 1);
|
||||||
mTagEditor->AddStaticOption("");
|
mTagEditor->AddOption("", 0, 1);
|
||||||
mTagEditor->AddStaticOption("[.b][.white]Length: [/white][.green][/b]" + s.GetLength() + "[/green]");
|
mTagEditor->AddOption("[.b][.white]Length: [/white][.green][/b]" + s.GetLength() + "[/green]", 0, 1);
|
||||||
mTagEditor->AddStaticOption("[.b][.white]Bitrate: [/white][.green][/b]" + IntoStr(f.audioProperties()->bitrate()) + " kbps[/green]");
|
mTagEditor->AddOption("[.b][.white]Bitrate: [/white][.green][/b]" + IntoStr(f.audioProperties()->bitrate()) + " kbps[/green]", 0, 1);
|
||||||
mTagEditor->AddStaticOption("[.b][.white]Sample rate: [/white][.green][/b]" + IntoStr(f.audioProperties()->sampleRate()) + " Hz[/green]");
|
mTagEditor->AddOption("[.b][.white]Sample rate: [/white][.green][/b]" + IntoStr(f.audioProperties()->sampleRate()) + " Hz[/green]", 0, 1);
|
||||||
mTagEditor->AddStaticOption("[.b][.white]Channels: [/white][.green][/b]" + (string)(f.audioProperties()->channels() == 1 ? "Mono" : "Stereo") + "[/green]");
|
mTagEditor->AddOption("[.b][.white]Channels: [/white][.green][/b]" + (string)(f.audioProperties()->channels() == 1 ? "Mono" : "Stereo") + "[/green]", 0, 1);
|
||||||
|
|
||||||
mTagEditor->AddSeparator();
|
mTagEditor->AddSeparator();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user