17#include "core/iapp_callbacks.h"
19#include "section_config.h"
20#include "ImGuiFileDialog.h"
23#include <nlohmann/json.hpp>
25#include <unordered_map>
52 IAssetManager* assets,
size_t* currentIndex, std::vector<TableData>* tables,
53 IAppCallbacks* appCallbacks,
bool& showConfig,
bool standaloneMode =
false);
101 void refreshUIState();
109 bool standaloneMode_;
110 nlohmann::json jsonData_;
111 nlohmann::json originalJsonData_;
113 std::unordered_map<std::string, std::unique_ptr<ISectionRenderer>> renderers_;
114 std::unordered_map<std::string, bool> sectionCollapseStates_;
116 bool isCapturingKey_ =
false;
117 std::string capturingKeyName_;
119 bool isDialogOpen_ =
false;
120 std::string dialogKey_ =
"";
122 ImGuiFileDialog standaloneFileDialog_;
123 ImGuiFileDialog normalFileDialog_;
130 void initializeRenderers();
140 void updateKeybind(
const std::string& action,
const std::string& bind);
Manages the ImGui-based configuration UI.
Definition config_ui.h:35
void saveConfig()
Saves the current configuration.
Definition config_ui.cpp:297
void handleEvent(const SDL_Event &event)
Handles an SDL event for keybinding capture.
Definition config_ui.cpp:237
void drawGUI()
Draws the configuration UI.
Definition config_ui.cpp:59
void resetSectionToDefault(const std::string §ionName)
Resets a section to its default values.
Definition config_ui.cpp:406
bool shouldClose() const
Checks if the UI should close.
Definition config_ui.h:83
bool isStandalone() const
Checks if the UI is in standalone mode.
Definition config_ui.h:90
Interface for handling various application callbacks.
Definition iapp_callbacks.h:22
The IAssetManager interface provides methods to manage and access various assets used in the applicat...
Definition iasset_manager.h:36
Interface for configuration services (forward declaration).
Definition iconfig_service.h:30
Interface for keybind providers (forward declaration).
Definition ikeybind_provider.h:30
Manages section and key order for configuration UI rendering.
Definition section_config.h:12
Defines the IAssetManager interface for managing assets in ASAPCabinetFE.
Defines the IConfigService interface for managing configuration in ASAPCabinetFE.
Defines the IKeybindProvider interface for managing input bindings in ASAPCabinetFE.
Defines the ISectionRenderer interface and BaseSectionRenderer for rendering configuration sections i...
Defines the TableData struct for storing VPX table metadata and media paths.