diff options
Diffstat (limited to 'gui/options.cpp')
-rw-r--r-- | gui/options.cpp | 48 |
1 files changed, 43 insertions, 5 deletions
diff --git a/gui/options.cpp b/gui/options.cpp index bfad81c07b..5085f9cdd9 100644 --- a/gui/options.cpp +++ b/gui/options.cpp @@ -30,6 +30,8 @@ #include "common/fs.h" #include "common/config-manager.h" +#include "common/gui_options.h" +#include "common/rendermode.h" #include "common/system.h" #include "common/textconsole.h" #include "common/translation.h" @@ -79,7 +81,7 @@ static const char *outputRateLabels[] = { _s("<default>"), _s("8 kHz"), _s("11kH static const int outputRateValues[] = { 0, 8000, 11025, 22050, 44100, 48000, -1 }; OptionsDialog::OptionsDialog(const Common::String &domain, int x, int y, int w, int h) - : Dialog(x, y, w, h), _domain(domain), _graphicsTabId(-1), _tabWidget(0) { + : Dialog(x, y, w, h), _domain(domain), _graphicsTabId(-1), _midiTabId(-1), _pathsTabId(-1), _tabWidget(0) { init(); } @@ -1050,7 +1052,8 @@ Common::String OptionsDialog::renderType2GUIO(uint32 renderType) { { Common::kRenderVGA, GUIO_RENDERVGA }, { Common::kRenderAmiga, GUIO_RENDERAMIGA }, { Common::kRenderFMTowns, GUIO_RENDERFMTOWNS }, - { Common::kRenderPC98, GUIO_RENDERPC98 } + { Common::kRenderPC9821, GUIO_RENDERPC9821 }, + { Common::kRenderPC9801, GUIO_RENDERPC9801 } }; Common::String res; @@ -1119,7 +1122,7 @@ GlobalOptionsDialog::GlobalOptionsDialog() // // 3) The MIDI tab // - tab->addTab(_("MIDI")); + _midiTabId = tab->addTab(_("MIDI")); addMIDIControls(tab, "GlobalOptions_MIDI."); // @@ -1132,9 +1135,9 @@ GlobalOptionsDialog::GlobalOptionsDialog() // 5) The Paths tab // if (g_system->getOverlayWidth() > 320) - tab->addTab(_("Paths")); + _pathsTabId = tab->addTab(_("Paths")); else - tab->addTab(_c("Paths", "lowres")); + _pathsTabId = tab->addTab(_c("Paths", "lowres")); #if !( defined(__DC__) || defined(__GP32__) ) // These two buttons have to be extra wide, or the text will be @@ -1493,4 +1496,39 @@ void GlobalOptionsDialog::handleCommand(CommandSender *sender, uint32 cmd, uint3 } } +void GlobalOptionsDialog::reflowLayout() { + int activeTab = _tabWidget->getActiveTab(); + + if (_midiTabId != -1) { + _tabWidget->setActiveTab(_midiTabId); + + _tabWidget->removeWidget(_soundFontClearButton); + _soundFontClearButton->setNext(0); + delete _soundFontClearButton; + _soundFontClearButton = addClearButton(_tabWidget, "GlobalOptions_MIDI.mcFontClearButton", kClearSoundFontCmd); + } + + if (_pathsTabId != -1) { + _tabWidget->setActiveTab(_pathsTabId); + + _tabWidget->removeWidget(_savePathClearButton); + _savePathClearButton->setNext(0); + delete _savePathClearButton; + _savePathClearButton = addClearButton(_tabWidget, "GlobalOptions_Paths.SavePathClearButton", kSavePathClearCmd); + + _tabWidget->removeWidget(_themePathClearButton); + _themePathClearButton->setNext(0); + delete _themePathClearButton; + _themePathClearButton = addClearButton(_tabWidget, "GlobalOptions_Paths.ThemePathClearButton", kThemePathClearCmd); + + _tabWidget->removeWidget(_extraPathClearButton); + _extraPathClearButton->setNext(0); + delete _extraPathClearButton; + _extraPathClearButton = addClearButton(_tabWidget, "GlobalOptions_Paths.ExtraPathClearButton", kExtraPathClearCmd); + } + + _tabWidget->setActiveTab(activeTab); + OptionsDialog::reflowLayout(); +} + } // End of namespace GUI |