ES-DE/es-app/src/guis/GuiSettings.h

62 lines
2.2 KiB
C
Raw Normal View History

// SPDX-License-Identifier: MIT
//
// EmulationStation Desktop Edition
// GuiSettings.h
//
// User interface template for a settings GUI.
2020-11-05 17:18:11 +00:00
// The saving of es_settings.cfg and the reload of the gamelists are triggered from here
// based on the flags set by the actual menu entries' lambda functions.
//
#ifndef ES_APP_GUIS_GUI_SETTINGS_H
#define ES_APP_GUIS_GUI_SETTINGS_H
#include "components/MenuComponent.h"
#include "SystemData.h"
// This is just a really simple template for a GUI that calls some save functions when closed.
class GuiSettings : public GuiComponent
{
public:
GuiSettings(Window* window, std::string title);
2020-11-05 17:18:11 +00:00
virtual ~GuiSettings();
void save();
inline void addRow(const ComponentListRow& row) { mMenu.addRow(row); };
inline void addWithLabel(const std::string& label,
const std::shared_ptr<GuiComponent>& comp) { mMenu.addWithLabel(label, comp); };
2020-11-05 17:18:11 +00:00
void addEditableTextComponent(const std::string label, std::shared_ptr<GuiComponent> ed,
std::string value, std::string defaultValue = "");
inline void addSaveFunc(const std::function<void()>& func) { mSaveFuncs.push_back(func); };
2020-11-05 17:18:11 +00:00
void setNeedsSaving() { mNeedsSaving = true; };
void setNeedsCollectionsUpdate() { mNeedsCollectionsUpdate = true; };
2020-11-05 17:18:11 +00:00
void setNeedsReloading() { mNeedsReloading = true; };
void setNeedsSorting() { mNeedsSorting = true; };
void setNeedsSortingCollections() { mNeedsSortingCollections = true; };
void setNeedsGoToStart() { mNeedsGoToStart = true; };
void setNeedsGoToSystemView(SystemData* goToSystem)
{ mNeedsGoToSystemView = true; mGoToSystem = goToSystem; };
void setNeedsDestroyAllWindows() { mNeedsDestroyAllWindows = true; };
2020-11-05 17:18:11 +00:00
bool input(InputConfig* config, Input input) override;
std::vector<HelpPrompt> getHelpPrompts() override;
HelpStyle getHelpStyle() override;
private:
MenuComponent mMenu;
2020-11-05 17:18:11 +00:00
std::vector<std::function<void()>> mSaveFuncs;
bool mNeedsSaving;
bool mNeedsCollectionsUpdate;
2020-11-05 17:18:11 +00:00
bool mNeedsReloading;
bool mNeedsSorting;
bool mNeedsSortingCollections;
bool mNeedsGoToStart;
bool mNeedsGoToSystemView;
bool mNeedsDestroyAllWindows;
SystemData* mGoToSystem;
};
#endif // ES_APP_GUIS_GUI_SETTINGS_H