commit 4ba5514b
Started on a custom ThemesMenu
Changed files
| M | source/code/menudef.cpp before |
diff --git a/source/code/menudef.cpp b/source/code/menudef.cpp
index d371236..b59b494 100644
--- a/source/code/menudef.cpp
+++ b/source/code/menudef.cpp
@@ -435,6 +435,30 @@ static void PlayerConfigMenu() {
RunGameState(pcm);
}
+static void switchTheme() {
+ globalData.theme = getNextTheme();
+}
+
+class ThemesMenu : public Menu {
+public:
+ ThemesMenu(SDL_Renderer* screen, const std::string& title, bool submenu) : Menu(screen, title, submenu) {
+
+ }
+
+ void Draw(SDL_Renderer* target) override {
+ Menu::Draw(target);
+ }
+};
+
+static void OpenThemesMenu() {
+ ThemesMenu tm(globalData.screen, _("Themes"), true);
+ Button bSwitchTheme;
+ bSwitchTheme.setLabel(_("Switch theme"));
+ bSwitchTheme.setAction(&switchTheme);
+ tm.addButton(&bSwitchTheme);
+ RunGameState(tm);
+}
+
static void ConfigureMenu() {
Menu cm(globalData.screen,_("Configuration"),true);
AlwaysSoftwareRenderButton bSoftware;
@@ -444,6 +468,9 @@ static void ConfigureMenu() {
Button bPlayerConfig;
bPlayerConfig.setLabel(_("Player configuration") );
bPlayerConfig.setAction(PlayerConfigMenu);
+ Button bThemes;
+ bThemes.setLabel(_("Themes"));
+ bThemes.setAction(OpenThemesMenu);
SetAlwaysSoftwareLabel(&bSoftware);
SetMusicLabel(&bMusic);
SetSoundLabel(&bSound);
@@ -453,6 +480,7 @@ static void ConfigureMenu() {
cm.addButton(&bSoftware);
cm.addButton(&buttonFullscreen);
cm.addButton(&bPlayerConfig);
+ cm.addButton(&bThemes);
RunGameState(cm);
}