diff --git a/src/actions.cpp b/src/actions.cpp index b21ea150..0cf98fbb 100644 --- a/src/actions.cpp +++ b/src/actions.cpp @@ -1161,13 +1161,13 @@ void ToggleDisplayMode::Run() if (Config.columns_in_playlist) { - myPlaylist->Items->SetItemDisplayer(Display::SongsInColumns); + myPlaylist->Items->setItemDisplayer(Display::SongsInColumns); myPlaylist->Items->SetTitle(Config.titles_visibility ? Display::Columns(myPlaylist->Items->GetWidth()) : ""); myPlaylist->Items->SetGetStringFunction(Playlist::SongInColumnsToString); } else { - myPlaylist->Items->SetItemDisplayer(Display::Songs); + myPlaylist->Items->setItemDisplayer(Display::Songs); myPlaylist->Items->SetTitle(""); myPlaylist->Items->SetGetStringFunction(Playlist::SongToString); } @@ -1191,12 +1191,12 @@ void ToggleDisplayMode::Run() ShowMessage("Playlist editor display mode: %s", Config.columns_in_playlist_editor ? "Columns" : "Classic"); if (Config.columns_in_playlist_editor) { - myPlaylistEditor->Content->SetItemDisplayer(Display::SongsInColumns); + myPlaylistEditor->Content->setItemDisplayer(Display::SongsInColumns); myPlaylistEditor->Content->SetGetStringFunction(Playlist::SongInColumnsToString); } else { - myPlaylistEditor->Content->SetItemDisplayer(Display::Songs); + myPlaylistEditor->Content->setItemDisplayer(Display::Songs); myPlaylistEditor->Content->SetGetStringFunction(Playlist::SongToString); } } diff --git a/src/browser.cpp b/src/browser.cpp index 375498bc..00b02a06 100644 --- a/src/browser.cpp +++ b/src/browser.cpp @@ -60,8 +60,8 @@ void Browser::Init() w->CenteredCursor(Config.centered_cursor); w->SetSelectPrefix(&Config.selected_item_prefix); w->SetSelectSuffix(&Config.selected_item_suffix); - w->SetItemDisplayer(Display::Items); - w->SetItemDisplayerUserData(&sf); + w->setItemDisplayer(Display::Items); + w->setItemDisplayerData(&sf); w->SetGetStringFunction(ItemToString); if (SupportedExtensions.empty()) diff --git a/src/display.h b/src/display.h index 22a44f40..2463bf3b 100644 --- a/src/display.h +++ b/src/display.h @@ -38,12 +38,12 @@ namespace Display std::string Columns(size_t); - template void Generic(const T &t, void *, Menu *menu) + template void Default(const T &t, void *, Menu *menu) { *menu << t; } - template void Pairs(const std::pair &pair, void *, Menu< std::pair > *menu) + template void Pair(const std::pair &pair, void *, Menu< std::pair > *menu) { *menu << pair.first; } diff --git a/src/helpers.cpp b/src/helpers.cpp index 27565356..5fc8d586 100644 --- a/src/helpers.cpp +++ b/src/helpers.cpp @@ -39,6 +39,11 @@ #include "outputs.h" #include "visualizer.h" +std::string StringPairToString(const std::pair &pair, void *) +{ + return pair.first; +} + void ParseArgv(int argc, char **argv) { bool quit = 0; diff --git a/src/helpers.h b/src/helpers.h index 3e53bfb3..912a6c68 100644 --- a/src/helpers.h +++ b/src/helpers.h @@ -28,10 +28,7 @@ void ParseArgv(int, char **); -template std::string StringPairToString(const std::pair &pair, void *) -{ - return pair.first; -} +std::string StringPairToString(const std::pair &pair, void *); template struct StringConverter { const char *operator()(const char *s) { return s; } diff --git a/src/media_library.cpp b/src/media_library.cpp index 9f5ff36f..5fe8cae0 100644 --- a/src/media_library.cpp +++ b/src/media_library.cpp @@ -67,7 +67,7 @@ void MediaLibrary::Init() Artists->CenteredCursor(Config.centered_cursor); Artists->SetSelectPrefix(&Config.selected_item_prefix); Artists->SetSelectSuffix(&Config.selected_item_suffix); - Artists->SetItemDisplayer(DisplayPrimaryTags); + Artists->setItemDisplayer(DisplayPrimaryTags); Albums = new Menu(itsMiddleColStartX, MainStartY, itsMiddleColWidth, MainHeight, Config.titles_visibility ? "Albums" : "", Config.main_color, brNone); Albums->HighlightColor(Config.main_highlight_color); @@ -75,7 +75,7 @@ void MediaLibrary::Init() Albums->CenteredCursor(Config.centered_cursor); Albums->SetSelectPrefix(&Config.selected_item_prefix); Albums->SetSelectSuffix(&Config.selected_item_suffix); - Albums->SetItemDisplayer(DisplayAlbums); + Albums->setItemDisplayer(DisplayAlbums); Albums->SetGetStringFunction(AlbumToString); Albums->SetGetStringFunctionUserData(this); @@ -87,8 +87,8 @@ void MediaLibrary::Init() Songs->CenteredCursor(Config.centered_cursor); Songs->SetSelectPrefix(&Config.selected_item_prefix); Songs->SetSelectSuffix(&Config.selected_item_suffix); - Songs->SetItemDisplayer(Display::Songs); - Songs->SetItemDisplayerUserData(&sf); + Songs->setItemDisplayer(Display::Songs); + Songs->setItemDisplayerData(&sf); Songs->SetGetStringFunction(SongToString); w = Artists; diff --git a/src/menu.cpp b/src/menu.cpp index 211af173..b0ffc1a1 100644 --- a/src/menu.cpp +++ b/src/menu.cpp @@ -24,14 +24,13 @@ using namespace NCurses; template <> std::string Menu::GetOption(size_t pos) { - if (itsOptionsPtr->at(pos)) + if (m_options_ptr->at(pos)) { - if (itsGetStringFunction) - return itsGetStringFunction((*itsOptionsPtr)[pos]->Item, itsGetStringFunctionUserData); + if (m_get_string_helper) + return m_get_string_helper((*m_options_ptr)[pos]->Item, m_get_string_helper_data); else - return (*itsOptionsPtr)[pos]->Item; + return (*m_options_ptr)[pos]->Item; } else return ""; } - diff --git a/src/menu.h b/src/menu.h index 906b35dd..ba46b99b 100644 --- a/src/menu.h +++ b/src/menu.h @@ -104,17 +104,17 @@ namespace NCurses template class Menu : public Window, public List { /// Function helper prototype used to display each option on the screen. - /// If not set by SetItemDisplayer(), menu won't display anything. - /// @see SetItemDisplayer() + /// If not set by setItemDisplayer(), menu won't display anything. + /// @see setItemDisplayer() /// - typedef void (*ItemDisplayer)(const T &, void *, Menu *); + typedef std::function *)> ItemDisplayer; /// Function helper prototype used for converting items to strings. /// If not set by SetGetStringFunction(), searching and filtering /// won't work (note that Menu doesn't need this) /// @see SetGetStringFunction() /// - typedef std::string (*GetStringFunction)(const T &, void *); + typedef std::function GetStringFunction; /// Struct that holds each item in the list and its attributes /// @@ -173,24 +173,24 @@ namespace NCurses /// Sets helper function that is responsible for displaying items /// @param ptr function pointer that matches the ItemDisplayer prototype /// - void SetItemDisplayer(ItemDisplayer ptr) { itsItemDisplayer = ptr; } + void setItemDisplayer(ItemDisplayer ptr) { m_item_displayer = ptr; } /// Sets optional user data, that is passed to /// ItemDisplayer function each time it's invoked /// @param data void pointer to userdata /// - void SetItemDisplayerUserData(void *data) { itsItemDisplayerUserdata = data; } + void setItemDisplayerData(void *data) { m_item_displayer_data = data; } /// Sets helper function that is responsible for converting items to strings /// @param f function pointer that matches the GetStringFunction prototype /// - void SetGetStringFunction(GetStringFunction f) { itsGetStringFunction = f; } + void SetGetStringFunction(GetStringFunction f) { m_get_string_helper = f; } /// Sets optional user data, that is passed to /// GetStringFunction function each time it's invoked /// @param data void pointer to user data /// - void SetGetStringFunctionUserData(void *data) { itsGetStringFunctionUserData = data; } + void SetGetStringFunctionUserData(void *data) { m_get_string_helper_data = data; } /// Reserves the size for internal container (this just calls std::vector::reserve()) /// @param size requested size @@ -337,7 +337,7 @@ namespace NCurses /// @return const reference to currently used search constraint /// - virtual const std::string &GetSearchConstraint() { return itsSearchConstraint; } + virtual const std::string &GetSearchConstraint() { return m_search_constraint; } /// Moves current position in the list to the next found one /// @param wrap if true, this function will go to the first @@ -366,21 +366,21 @@ namespace NCurses /// @return true if list is currently filtered, false otherwise /// - virtual bool isFiltered() { return itsOptionsPtr == &itsFilteredOptions; } + virtual bool isFiltered() { return m_options_ptr == &m_filtered_options; } /// Turns off filtering /// - void ShowAll() { itsOptionsPtr = &itsOptions; } + void ShowAll() { m_options_ptr = &m_options; } /// Turns on filtering /// - void ShowFiltered() { itsOptionsPtr = &itsFilteredOptions; } + void ShowFiltered() { m_options_ptr = &m_filtered_options; } /// Converts given position in list to string using GetStringFunction /// if specified and an empty string otherwise /// @param pos position to be converted /// @return item converted to string - /// @see SetItemDisplayer() + /// @see setItemDisplayer() /// std::string GetOption(size_t pos); @@ -409,61 +409,61 @@ namespace NCurses /// template void Sort(size_t beginning = 0, size_t end = -1) { - if (itsOptions.empty()) + if (m_options.empty()) return; - sort(itsOptions.begin()+beginning, end == size_t(-1) ? itsOptions.end() : itsOptions.begin()+end, InternalSorting()); + sort(m_options.begin()+beginning, end == size_t(-1) ? m_options.end() : m_options.begin()+end, InternalSorting()); if (isFiltered()) - ApplyFilter(itsFilter); + ApplyFilter(m_filter); } /// Sets prefix, that is put before each selected item to indicate its selection /// Note that the passed variable is not deleted along with menu object. /// @param b pointer to buffer that contains the prefix /// - void SetSelectPrefix(Buffer *b) { itsSelectedPrefix = b; } + void SetSelectPrefix(Buffer *b) { m_selected_prefix = b; } /// Sets suffix, that is put after each selected item to indicate its selection /// Note that the passed variable is not deleted along with menu object. /// @param b pointer to buffer that contains the suffix /// - void SetSelectSuffix(Buffer *b) { itsSelectedSuffix = b; } + void SetSelectSuffix(Buffer *b) { m_selected_suffix = b; } /// Sets custom color of highlighted position /// @param col custom color /// - void HighlightColor(Color color) { itsHighlightColor = color; } + void HighlightColor(Color color) { m_highlight_color = color; } /// @return state of highlighting /// - bool isHighlighted() { return highlightEnabled; } + bool isHighlighted() { return m_highlight_enabled; } /// Turns on/off highlighting /// @param state state of hihglighting /// - void Highlighting(bool state) { highlightEnabled = state; } + void Highlighting(bool state) { m_highlight_enabled = state; } /// Turns on/off cyclic scrolling /// @param state state of cyclic scrolling /// - void CyclicScrolling(bool state) { useCyclicScrolling = state; } + void CyclicScrolling(bool state) { m_cyclic_scroll_enabled = state; } /// Turns on/off centered cursor /// @param state state of centered cursor /// - void CenteredCursor(bool state) { useCenteredCursor = state; } + void CenteredCursor(bool state) { m_autocenter_cursor = state; } /// Checks if list is empty /// @return true if list is empty, false otherwise /// @see ReallyEmpty() /// - virtual bool Empty() const { return itsOptionsPtr->empty(); } + virtual bool Empty() const { return m_options_ptr->empty(); } /// Checks if list is really empty since Empty() may not /// be accurate if filter is set) /// @return true if list is empty, false otherwise /// @see Empty() /// - virtual bool ReallyEmpty() const { return itsOptions.empty(); } + virtual bool ReallyEmpty() const { return m_options.empty(); } /// @return size of the list /// @@ -473,7 +473,7 @@ namespace NCurses /// defined only within drawing function that is called by Refresh() /// @see Refresh() /// - size_t CurrentlyDrawedPosition() const { return itsCurrentlyDrawedPosition; } + size_t CurrentlyDrawedPosition() const { return m_currently_drawn_positions; } /// @return reference to last item on the list /// @throw List::InvalidItem if requested item is separator @@ -526,33 +526,33 @@ namespace NCurses /// void ClearFiltered(); - ItemDisplayer itsItemDisplayer; - void *itsItemDisplayerUserdata; - GetStringFunction itsGetStringFunction; - void *itsGetStringFunctionUserData; + ItemDisplayer m_item_displayer; + void *m_item_displayer_data; + GetStringFunction m_get_string_helper; + void *m_get_string_helper_data; - std::string itsFilter; - std::string itsSearchConstraint; + std::string m_filter; + std::string m_search_constraint; - std::vector