[Scummvm-cvs-logs] SF.net SVN: scummvm:[36226] scummvm/trunk/gui
tanoku at users.sourceforge.net
tanoku at users.sourceforge.net
Sat Feb 7 00:28:08 CET 2009
Revision: 36226
http://scummvm.svn.sourceforge.net/scummvm/?rev=36226&view=rev
Author: tanoku
Date: 2009-02-06 23:28:08 +0000 (Fri, 06 Feb 2009)
Log Message:
-----------
Reverted previous commit.
Modified Paths:
--------------
scummvm/trunk/gui/GuiManager.cpp
scummvm/trunk/gui/GuiManager.h
scummvm/trunk/gui/browser.cpp
scummvm/trunk/gui/dialog.cpp
scummvm/trunk/gui/options.cpp
scummvm/trunk/gui/widget.cpp
Modified: scummvm/trunk/gui/GuiManager.cpp
===================================================================
--- scummvm/trunk/gui/GuiManager.cpp 2009-02-06 22:16:04 UTC (rev 36225)
+++ scummvm/trunk/gui/GuiManager.cpp 2009-02-06 23:28:08 UTC (rev 36226)
@@ -139,21 +139,30 @@
if (_dialogStack.empty())
return;
- if (_dialogStack.size() > 1) {
- _theme->clearAll();
- _theme->openDialog(true);
+ switch (_redrawStatus) {
+ case kRedrawCloseDialog:
+ case kRedrawFull:
+ case kRedrawTopDialog:
+ _theme->clearAll();
+ _theme->openDialog(true);
- for (i = 0; i < _dialogStack.size() - 1; i++)
- _dialogStack[i]->drawDialog();
+ for (i = 0; i < _dialogStack.size() - 1; i++) {
+ _dialogStack[i]->drawDialog();
+ }
- _theme->finishBuffering();
- _theme->updateScreen();
- }
+ _theme->finishBuffering();
- _theme->openDialog(true, (ThemeEngine::ShadingStyle)xmlEval()->getVar("Dialog." + _dialogStack.top()->_name + ".Shading", 0));
- _dialogStack.top()->drawDialog();
- _theme->finishBuffering();
+ case kRedrawOpenDialog:
+ _theme->updateScreen();
+ _theme->openDialog(true, (ThemeEngine::ShadingStyle)xmlEval()->getVar("Dialog." + _dialogStack.top()->_name + ".Shading", 0));
+ _dialogStack.top()->drawDialog();
+ _theme->finishBuffering();
+ break;
+ default:
+ return;
+ }
+
_theme->updateScreen();
_redrawStatus = kRedrawDisabled;
}
@@ -238,6 +247,8 @@
if (_useStdCursor)
setupCursor();
+// _theme->refresh();
+
_themeChange = false;
_redrawStatus = kRedrawFull;
redraw();
@@ -336,7 +347,8 @@
void GuiManager::openDialog(Dialog *dialog) {
_dialogStack.push(dialog);
- _redrawStatus = kRedrawFull;
+ if (_redrawStatus != kRedrawFull)
+ _redrawStatus = kRedrawOpenDialog;
// We reflow the dialog just before opening it. If the screen changed
// since the last time we looked, also refresh the loaded theme,
@@ -352,7 +364,8 @@
// Remove the dialog from the stack
_dialogStack.pop();
- _redrawStatus = kRedrawFull;
+ if (_redrawStatus != kRedrawFull)
+ _redrawStatus = kRedrawCloseDialog;
}
void GuiManager::setupCursor() {
Modified: scummvm/trunk/gui/GuiManager.h
===================================================================
--- scummvm/trunk/gui/GuiManager.h 2009-02-06 22:16:04 UTC (rev 36225)
+++ scummvm/trunk/gui/GuiManager.h 2009-02-06 23:28:08 UTC (rev 36226)
@@ -91,6 +91,9 @@
protected:
enum RedrawStatus {
kRedrawDisabled = 0,
+ kRedrawOpenDialog,
+ kRedrawCloseDialog,
+ kRedrawTopDialog,
kRedrawFull
};
Modified: scummvm/trunk/gui/browser.cpp
===================================================================
--- scummvm/trunk/gui/browser.cpp 2009-02-06 22:16:04 UTC (rev 36225)
+++ scummvm/trunk/gui/browser.cpp 2009-02-06 23:28:08 UTC (rev 36226)
@@ -43,7 +43,7 @@
*/
BrowserDialog::BrowserDialog(const char *title, bool dirBrowser)
- : Dialog("Browser") {
+ : Dialog("browser") {
_titleRef = CFStringCreateWithCString(0, title, CFStringGetSystemEncoding());
_isDirBrowser = dirBrowser;
}
Modified: scummvm/trunk/gui/dialog.cpp
===================================================================
--- scummvm/trunk/gui/dialog.cpp 2009-02-06 22:16:04 UTC (rev 36225)
+++ scummvm/trunk/gui/dialog.cpp 2009-02-06 23:28:08 UTC (rev 36226)
@@ -131,7 +131,11 @@
}
void Dialog::draw() {
- g_gui._redrawStatus = GUI::GuiManager::kRedrawFull;
+ //TANOKU - FIXME when is this enabled? what does this do?
+ // Update: called on tab drawing, mainly...
+ // we can pass this as open a new dialog or something
+// g_gui._needRedraw = true;
+ g_gui._redrawStatus = GUI::GuiManager::kRedrawTopDialog;
}
void Dialog::drawDialog() {
Modified: scummvm/trunk/gui/options.cpp
===================================================================
--- scummvm/trunk/gui/options.cpp 2009-02-06 22:16:04 UTC (rev 36225)
+++ scummvm/trunk/gui/options.cpp 2009-02-06 23:28:08 UTC (rev 36226)
@@ -251,8 +251,6 @@
_subMode = getSubtitleMode(ConfMan.getBool("subtitles", _domain), ConfMan.getBool("speech_mute", _domain));
_subToggleButton->setLabel(_subModeDesc[_subMode]);
- _subToggleButton->draw();
-
// Engines that reuse the subtitle speed widget set their own max value.
// Scale the config value accordingly (see addSubtitleControls)
Modified: scummvm/trunk/gui/widget.cpp
===================================================================
--- scummvm/trunk/gui/widget.cpp 2009-02-06 22:16:04 UTC (rev 36225)
+++ scummvm/trunk/gui/widget.cpp 2009-02-06 23:28:08 UTC (rev 36226)
@@ -199,7 +199,15 @@
void StaticTextWidget::setLabel(const Common::String &label) {
_label = label;
- this->draw();
+
+ // get parent's size
+ const uint16 w = _boss->getWidth();
+ const uint16 h = _boss->getHeight();
+ const int16 x = _boss->getAbsX();
+ const int16 y = _boss->getAbsY();
+
+ // restore the parent's background and redraw it again.
+ g_gui.theme()->restoreBackground(Common::Rect(x, y, x + w, y + h));
_boss->draw();
}
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