diff --git a/gui/ThemeEngine.h b/gui/ThemeEngine.h
index ec6d3499f24..ab77cfcbccb 100644
--- a/gui/ThemeEngine.h
+++ b/gui/ThemeEngine.h
@@ -37,7 +37,7 @@
#include "graphics/pixelformat.h"
-#define SCUMMVM_THEME_VERSION_STR "SCUMMVM_STX0.8.24"
+#define SCUMMVM_THEME_VERSION_STR "SCUMMVM_STX0.8.25"
class OSystem;
diff --git a/gui/editgamedialog.cpp b/gui/editgamedialog.cpp
index 80fb41fad1b..6c443998be4 100644
--- a/gui/editgamedialog.cpp
+++ b/gui/editgamedialog.cpp
@@ -38,6 +38,7 @@
#include "gui/widgets/edittext.h"
#include "gui/widgets/tab.h"
#include "gui/widgets/popup.h"
+#include "gui/widgets/scrollcontainer.h"
#if defined(USE_CLOUD) && defined(USE_LIBCURL)
#include "backends/cloud/cloudmanager.h"
@@ -72,7 +73,9 @@ enum {
kCmdExtraPathClear = 'PEXC',
kCmdGameBrowser = 'PGME',
kCmdSaveBrowser = 'PSAV',
- kCmdSavePathClear = 'PSAC'
+ kCmdSavePathClear = 'PSAC',
+
+ kGraphicsTabContainerReflowCmd = 'gtcr'
};
/*
@@ -183,13 +186,15 @@ EditGameDialog::EditGameDialog(const String &domain)
// 3) The graphics tab
//
_graphicsTabId = tab->addTab(g_system->getOverlayWidth() > 320 ? _("Graphics") : _("GFX"));
+ ScrollContainerWidget *graphicsContainer = new ScrollContainerWidget(tab, "GameOptions_Graphics.Container", kGraphicsTabContainerReflowCmd);
+ graphicsContainer->setTarget(this);
if (g_system->getOverlayWidth() > 320)
- _globalGraphicsOverride = new CheckboxWidget(tab, "GameOptions_Graphics.EnableTabCheckbox", _("Override global graphic settings"), 0, kCmdGlobalGraphicsOverride);
+ _globalGraphicsOverride = new CheckboxWidget(graphicsContainer, "GameOptions_Graphics_Container.EnableTabCheckbox", _("Override global graphic settings"), 0, kCmdGlobalGraphicsOverride);
else
- _globalGraphicsOverride = new CheckboxWidget(tab, "GameOptions_Graphics.EnableTabCheckbox", _c("Override global graphic settings", "lowres"), 0, kCmdGlobalGraphicsOverride);
+ _globalGraphicsOverride = new CheckboxWidget(graphicsContainer, "GameOptions_Graphics_Container.EnableTabCheckbox", _c("Override global graphic settings", "lowres"), 0, kCmdGlobalGraphicsOverride);
- addGraphicControls(tab, "GameOptions_Graphics.");
+ addGraphicControls(graphicsContainer, "GameOptions_Graphics_Container.");
//
// 4) The audio tab
@@ -294,6 +299,11 @@ EditGameDialog::EditGameDialog(const String &domain)
new ButtonWidget(this, "GameOptions.Ok", _("OK"), 0, kOKCmd);
}
+void EditGameDialog::setupGraphicsTab() {
+ OptionsDialog::setupGraphicsTab();
+ _globalGraphicsOverride->setVisible(true);
+}
+
void EditGameDialog::open() {
OptionsDialog::open();
diff --git a/gui/editgamedialog.h b/gui/editgamedialog.h
index 7c6a08eb3cb..c3d55eaef1b 100644
--- a/gui/editgamedialog.h
+++ b/gui/editgamedialog.h
@@ -67,6 +67,8 @@ public:
virtual void handleCommand(CommandSender *sender, uint32 cmd, uint32 data);
protected:
+ virtual void setupGraphicsTab();
+
EditTextWidget *_descriptionWidget;
DomainEditTextWidget *_domainWidget;
diff --git a/gui/options.cpp b/gui/options.cpp
index bee161e2c9e..7e5a3ac870d 100644
--- a/gui/options.cpp
+++ b/gui/options.cpp
@@ -80,7 +80,8 @@ enum {
kChooseThemeCmd = 'chtf',
kUpdatesCheckCmd = 'updc',
kKbdMouseSpeedChanged = 'kmsc',
- kJoystickDeadzoneChanged= 'jodc'
+ kJoystickDeadzoneChanged= 'jodc',
+ kGraphicsTabContainerReflowCmd = 'gtcr'
};
enum {
@@ -836,6 +837,9 @@ void OptionsDialog::handleCommand(CommandSender *sender, uint32 cmd, uint32 data
_joystickDeadzoneLabel->setValue(_joystickDeadzoneSlider->getValue());
_joystickDeadzoneLabel->markAsDirty();
break;
+ case kGraphicsTabContainerReflowCmd:
+ setupGraphicsTab();
+ break;
case kApplyCmd:
apply();
break;
@@ -1410,6 +1414,19 @@ void OptionsDialog::reflowLayout() {
_tabWidget->setTabTitle(_graphicsTabId, g_system->getOverlayWidth() > 320 ? _("Graphics") : _("GFX"));
Dialog::reflowLayout();
+ setupGraphicsTab();
+}
+
+void OptionsDialog::setupGraphicsTab() {
+ _gfxPopUpDesc->setVisible(true);
+ _gfxPopUp->setVisible(true);
+ _stretchPopUpDesc->setVisible(true);
+ _stretchPopUp->setVisible(true);
+ _fullscreenCheckbox->setVisible(true);
+ _filteringCheckbox->setVisible(true);
+ _aspectCheckbox->setVisible(true);
+ _renderModePopUpDesc->setVisible(true);
+ _renderModePopUp->setVisible(true);
}
#pragma mark -
@@ -1493,7 +1510,9 @@ void GlobalOptionsDialog::build() {
// 1) The graphics tab
//
_graphicsTabId = tab->addTab(g_system->getOverlayWidth() > 320 ? _("Graphics") : _("GFX"));
- addGraphicControls(tab, "GlobalOptions_Graphics.");
+ ScrollContainerWidget *graphicsContainer = new ScrollContainerWidget(tab, "GlobalOptions_Graphics.Container", kGraphicsTabContainerReflowCmd);
+ graphicsContainer->setTarget(this);
+ addGraphicControls(graphicsContainer, "GlobalOptions_Graphics_Container.");
//
// The shader tab (currently visible only for Vita platform), visibility checking by features
diff --git a/gui/options.h b/gui/options.h
index a2dec898dd4..18bb728369f 100644
--- a/gui/options.h
+++ b/gui/options.h
@@ -106,6 +106,8 @@ protected:
void setVolumeSettingsState(bool enabled);
void setSubtitleSettingsState(bool enabled);
+ virtual void setupGraphicsTab();
+
bool loadMusicDeviceSetting(PopUpWidget *popup, Common::String setting, MusicType preferredType = MT_AUTO);
void saveMusicDeviceSetting(PopUpWidget *popup, Common::String setting);
diff --git a/gui/themes/default.inc b/gui/themes/default.inc
index 098c8734cc3..b66549f1371 100644
--- a/gui/themes/default.inc
+++ b/gui/themes/default.inc
@@ -2438,6 +2438,11 @@ const char *defaultXML1 = ""
""
""
""
+""
""
+""
"
+
+
+
+
+
+
+
+
+
+
+
-
+
diff --git a/gui/themes/scummmodern.zip b/gui/themes/scummmodern.zip
index 3d12b7d18f1..2fe9279877b 100644
Binary files a/gui/themes/scummmodern.zip and b/gui/themes/scummmodern.zip differ
diff --git a/gui/themes/scummmodern/THEMERC b/gui/themes/scummmodern/THEMERC
index db447c766df..61c5cfe72a9 100644
--- a/gui/themes/scummmodern/THEMERC
+++ b/gui/themes/scummmodern/THEMERC
@@ -1 +1 @@
-[SCUMMVM_STX0.8.24:ScummVM Modern Theme:No Author]
+[SCUMMVM_STX0.8.25:ScummVM Modern Theme:No Author]
diff --git a/gui/themes/scummmodern/scummmodern_layout.stx b/gui/themes/scummmodern/scummmodern_layout.stx
index 5cf22f90b44..b0c2b5b2096 100644
--- a/gui/themes/scummmodern/scummmodern_layout.stx
+++ b/gui/themes/scummmodern/scummmodern_layout.stx
@@ -289,6 +289,11 @@
+
+
+
+
+
+
+
+
+
+
-
+
diff --git a/gui/themes/scummmodern/scummmodern_layout_lowres.stx b/gui/themes/scummmodern/scummmodern_layout_lowres.stx
index 651efb4a488..188f29366f2 100644
--- a/gui/themes/scummmodern/scummmodern_layout_lowres.stx
+++ b/gui/themes/scummmodern/scummmodern_layout_lowres.stx
@@ -270,6 +270,11 @@
+
+
+
+
+
+
+
+
+
+
-
+