GUI: improve settings management

This commit is contained in:
tildearrow 2022-01-16 17:25:43 -05:00
parent 818ebcd195
commit 7b797c3028
3 changed files with 106 additions and 26 deletions

View file

@ -166,8 +166,32 @@ class FurnaceGUI {
ImVec4 uiColors[GUI_COLOR_MAX];
ImVec4 volColors[128];
int mainFontSize, patFontSize;
size_t maxUndoSteps;
struct Settings {
int mainFontSize, patFontSize, iconSize;
int audioEngine;
int arcadeCore;
int mainFont;
int patFont;
int audioRate;
int audioBufSize;
unsigned int maxUndoSteps;
String mainFontPath;
String patFontPath;
Settings():
mainFontSize(18),
patFontSize(18),
iconSize(16),
audioEngine(DIV_AUDIO_SDL),
arcadeCore(0),
mainFont(0),
patFont(0),
audioRate(44100),
audioBufSize(1024),
maxUndoSteps(100),
mainFontPath(""),
patFontPath("") {}
} settings;
char finalLayoutPath[4096];
@ -235,6 +259,7 @@ class FurnaceGUI {
void drawAbout();
void drawSettings();
void syncSettings();
void commitSettings();
void processDrags(int dragX, int dragY);