2020-09-15 20:57:54 +00:00
|
|
|
// SPDX-License-Identifier: MIT
|
2020-05-24 08:29:29 +00:00
|
|
|
//
|
2020-09-15 20:57:54 +00:00
|
|
|
// EmulationStation Desktop Edition
|
2020-06-21 12:25:28 +00:00
|
|
|
// GuiGamelistOptions.h
|
2020-05-24 08:29:29 +00:00
|
|
|
//
|
2020-06-21 12:25:28 +00:00
|
|
|
// Gamelist options menu for the 'Jump to...' quick selector,
|
|
|
|
// game sorting, game filters, and metadata edit.
|
2020-05-24 08:29:29 +00:00
|
|
|
//
|
2020-06-21 12:25:28 +00:00
|
|
|
// The filter interface is covered by GuiGamelistFilter and the
|
|
|
|
// metadata edit interface is covered by GuiMetaDataEd.
|
2020-05-26 16:34:33 +00:00
|
|
|
//
|
2020-05-24 08:29:29 +00:00
|
|
|
|
2022-01-15 12:49:14 +00:00
|
|
|
#ifndef ES_APP_GUIS_GUI_GAMELIST_OPTIONS_H
|
|
|
|
#define ES_APP_GUIS_GUI_GAMELIST_OPTIONS_H
|
2017-10-31 17:12:50 +00:00
|
|
|
|
2021-07-07 18:03:42 +00:00
|
|
|
#include "FileData.h"
|
|
|
|
#include "GuiComponent.h"
|
2014-06-25 16:29:58 +00:00
|
|
|
#include "components/MenuComponent.h"
|
|
|
|
#include "components/OptionListComponent.h"
|
2020-09-15 20:57:54 +00:00
|
|
|
#include "utils/StringUtil.h"
|
2014-06-25 16:29:58 +00:00
|
|
|
|
2022-01-15 12:38:09 +00:00
|
|
|
class IGamelistView;
|
2017-11-01 22:21:10 +00:00
|
|
|
class SystemData;
|
2014-06-25 16:29:58 +00:00
|
|
|
|
|
|
|
class GuiGamelistOptions : public GuiComponent
|
|
|
|
{
|
|
|
|
public:
|
2020-06-21 12:25:28 +00:00
|
|
|
GuiGamelistOptions(Window* window, SystemData* system);
|
|
|
|
virtual ~GuiGamelistOptions();
|
2014-06-25 16:29:58 +00:00
|
|
|
|
2020-06-21 12:25:28 +00:00
|
|
|
virtual bool input(InputConfig* config, Input input) override;
|
|
|
|
virtual std::vector<HelpPrompt> getHelpPrompts() override;
|
|
|
|
virtual HelpStyle getHelpStyle() override;
|
2014-06-25 16:29:58 +00:00
|
|
|
|
|
|
|
private:
|
2020-06-21 12:25:28 +00:00
|
|
|
void openGamelistFilter();
|
|
|
|
void openMetaDataEd();
|
|
|
|
void startEditMode();
|
|
|
|
void exitEditMode();
|
|
|
|
|
|
|
|
void jumpToLetter();
|
|
|
|
void jumpToFirstRow();
|
|
|
|
|
|
|
|
MenuComponent mMenu;
|
|
|
|
|
2022-01-11 20:57:00 +00:00
|
|
|
using LetterList = OptionListComponent<std::string>;
|
2020-06-21 12:25:28 +00:00
|
|
|
std::shared_ptr<LetterList> mJumpToLetterList;
|
|
|
|
|
2022-01-11 20:57:00 +00:00
|
|
|
using SortList = OptionListComponent<const FileData::SortType*>;
|
2020-06-21 12:25:28 +00:00
|
|
|
std::shared_ptr<SortList> mListSort;
|
|
|
|
|
|
|
|
SystemData* mSystem;
|
2022-01-15 12:38:09 +00:00
|
|
|
IGamelistView* getGamelist();
|
2020-07-28 17:44:17 +00:00
|
|
|
bool mFoldersOnTop;
|
2020-06-21 12:25:28 +00:00
|
|
|
bool mFavoritesSorting;
|
2020-07-28 17:44:17 +00:00
|
|
|
bool mOnlyHasFolders;
|
2021-01-02 17:30:39 +00:00
|
|
|
bool mFromPlaceholder;
|
2020-06-21 12:25:28 +00:00
|
|
|
bool mFiltersChanged;
|
|
|
|
bool mCancelled;
|
2021-01-02 17:30:39 +00:00
|
|
|
bool mIsCustomCollection;
|
|
|
|
bool mIsCustomCollectionGroup;
|
|
|
|
SystemData* mCustomCollectionSystem;
|
2020-06-21 12:25:28 +00:00
|
|
|
std::vector<std::string> mFirstLetterIndex;
|
|
|
|
std::string mCurrentFirstCharacter;
|
2014-06-25 16:29:58 +00:00
|
|
|
};
|
2017-10-31 17:12:50 +00:00
|
|
|
|
2022-01-15 12:49:14 +00:00
|
|
|
#endif // ES_APP_GUIS_GUI_GAMELIST_OPTIONS_H
|