[Scummvm-cvs-logs] SF.net SVN: scummvm: [27175] scummvm/trunk/gui/launcher.cpp
fingolfin at users.sourceforge.net
fingolfin at users.sourceforge.net
Thu Jun 7 19:55:40 CEST 2007
Revision: 27175
http://scummvm.svn.sourceforge.net/scummvm/?rev=27175&view=rev
Author: fingolfin
Date: 2007-06-07 10:55:39 -0700 (Thu, 07 Jun 2007)
Log Message:
-----------
Added partial workaround for bug #1677997
Modified Paths:
--------------
scummvm/trunk/gui/launcher.cpp
Modified: scummvm/trunk/gui/launcher.cpp
===================================================================
--- scummvm/trunk/gui/launcher.cpp 2007-06-07 17:36:47 UTC (rev 27174)
+++ scummvm/trunk/gui/launcher.cpp 2007-06-07 17:55:39 UTC (rev 27175)
@@ -129,6 +129,11 @@
virtual void handleCommand(CommandSender *sender, uint32 cmd, uint32 data);
protected:
+ void setupWidgets();
+ void resetWidgets();
+
+ String _desc;
+
EditTextWidget *_descriptionWidget;
DomainEditTextWidget *_domainWidget;
@@ -148,19 +153,25 @@
EditGameDialog::EditGameDialog(const String &domain, const String &desc)
: OptionsDialog(domain, "gameoptions") {
+ // GAME: Determine the description string
+ _desc = ConfMan.get("description", domain);
+ if (_desc.empty() && !desc.empty()) {
+ _desc = desc;
+ }
+
+ // FIXME: Disable the setupWidgets() call here for now. See reflowLayout()
+ // for details.
+ //setupWidgets();
+}
+
+void EditGameDialog::setupWidgets() {
int labelWidth = g_gui.evaluator()->getVar("gameOptionsLabelWidth");
-
+
// GAME: Path to game data (r/o), extra data (r/o), and save data (r/w)
String gamePath(ConfMan.get("path", _domain));
String extraPath(ConfMan.get("extrapath", _domain));
String savePath(ConfMan.get("savepath", _domain));
- // GAME: Determine the description string
- String description(ConfMan.get("description", domain));
- if (description.empty() && !desc.empty()) {
- description = desc;
- }
-
// GUI: Add tab widget
TabWidget *tab = new TabWidget(this, "gameoptions_tabwidget");
tab->setHints(THEME_HINT_FIRST_DRAW | THEME_HINT_SAVE_BACKGROUND);
@@ -176,7 +187,7 @@
// GUI: Label & edit widget for the description
new StaticTextWidget(tab, "gameoptions_name", "Name: ");
- _descriptionWidget = new EditTextWidget(tab, "gameoptions_desc", description);
+ _descriptionWidget = new EditTextWidget(tab, "gameoptions_desc", _desc);
// Language popup
_langPopUp = new PopUpWidget(tab, "gameoptions_lang", "Language: ", labelWidth);
@@ -277,6 +288,19 @@
}
void EditGameDialog::reflowLayout() {
+ // FIXME/HACK to workaround bug #1677997: Tear down the whole dialog and
+ // recreate it on the fly when a resolution/theme change occurs. Not nice
+ // at all, but works well enough.
+ {
+ delete _firstWidget;
+ _firstWidget = 0;
+ _mouseWidget = 0;
+ _focusedWidget = 0;
+ _dragWidget = 0;
+ setupWidgets();
+ resetWidgets();
+ }
+
OptionsDialog::reflowLayout();
int labelWidth = g_gui.evaluator()->getVar("gameOptionsLabelWidth");
@@ -289,7 +313,11 @@
void EditGameDialog::open() {
OptionsDialog::open();
+
+ resetWidgets();
+}
+void EditGameDialog::resetWidgets() {
int sel, i;
bool e, f;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list