[Scummvm-cvs-logs] CVS: scummvm/gui ThemeNew.cpp,1.17,1.18 theme.h,1.5,1.6
Johannes Schickel
lordhoto at users.sourceforge.net
Tue Jan 31 13:32:05 CET 2006
Update of /cvsroot/scummvm/scummvm/gui
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27687
Modified Files:
ThemeNew.cpp theme.h
Log Message:
Fixes color bugs with the new theme when switching to fullscreen on Mac OS X.
Index: ThemeNew.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/gui/ThemeNew.cpp,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -d -r1.17 -r1.18
--- ThemeNew.cpp 31 Jan 2006 19:35:33 -0000 1.17
+++ ThemeNew.cpp 31 Jan 2006 21:31:30 -0000 1.18
@@ -59,7 +59,7 @@
namespace GUI {
ThemeNew::ThemeNew(OSystem *system, Common::String stylefile) : Theme(), _system(system), _screen(), _initOk(false),
-_forceRedraw(false), _font(0), _imageHandles(0), _images(0), _colors(), _gradientFactors() {
+_lastUsedBitMask(0), _forceRedraw(false), _font(0), _imageHandles(0), _images(0), _colors(), _gradientFactors() {
_initOk = false;
memset(&_screen, 0, sizeof(_screen));
memset(&_dialog, 0, sizeof(_dialog));
@@ -179,45 +179,7 @@
_configFile.getKey("button_bkgd", "pixmaps", imageHandlesTable[kButtonBkgd]);
// load the colors from the config file
- getColorFromConfig(_configFile, "main_dialog_start", _colors[kMainDialogStart]);
- getColorFromConfig(_configFile, "main_dialog_end", _colors[kMainDialogEnd]);
-
- getColorFromConfig(_configFile, "dialog_start", _colors[kDialogStart]);
- getColorFromConfig(_configFile, "dialog_end", _colors[kDialogEnd]);
-
- getColorFromConfig(_configFile, "color_state_disabled", _colors[kColorStateDisabled]);
- getColorFromConfig(_configFile, "color_state_highlight", _colors[kColorStateHighlight]);
- getColorFromConfig(_configFile, "color_state_enabled", _colors[kColorStateEnabled]);
- getColorFromConfig(_configFile, "color_transparency", _colors[kColorTransparency]);
-
- getColorFromConfig(_configFile, "text_inverted_background", _colors[kTextInvertedBackground]);
- getColorFromConfig(_configFile, "text_inverted_color", _colors[kTextInvertedColor]);
-
- getColorFromConfig(_configFile, "widget_bkgd_start", _colors[kWidgetBackgroundStart]);
- getColorFromConfig(_configFile, "widget_bkgd_end", _colors[kWidgetBackgroundEnd]);
- getColorFromConfig(_configFile, "widget_bkgd_small_start", _colors[kWidgetBackgroundSmallStart]);
- getColorFromConfig(_configFile, "widget_bkgd_small_end", _colors[kWidgetBackgroundSmallEnd]);
-
- getColorFromConfig(_configFile, "button_bkgd_start", _colors[kButtonBackgroundStart]);
- getColorFromConfig(_configFile, "button_bkgd_end", _colors[kButtonBackgroundEnd]);
- getColorFromConfig(_configFile, "button_text_enabled", _colors[kButtonTextEnabled]);
- getColorFromConfig(_configFile, "button_text_disabled", _colors[kButtonTextDisabled]);
- getColorFromConfig(_configFile, "button_text_highlight", _colors[kButtonTextHighlight]);
-
- getColorFromConfig(_configFile, "slider_background_start", _colors[kSliderBackgroundStart]);
- getColorFromConfig(_configFile, "slider_background_end", _colors[kSliderBackgroundEnd]);
- getColorFromConfig(_configFile, "slider_start", _colors[kSliderStart]);
- getColorFromConfig(_configFile, "slider_end", _colors[kSliderEnd]);
-
- getColorFromConfig(_configFile, "tab_background_start", _colors[kTabBackgroundStart]);
- getColorFromConfig(_configFile, "tab_background_end", _colors[kTabBackgroundEnd]);
-
- getColorFromConfig(_configFile, "scrollbar_background_start", _colors[kScrollbarBackgroundStart]);
- getColorFromConfig(_configFile, "scrollbar_background_end", _colors[kScrollbarBackgroundEnd]);
- getColorFromConfig(_configFile, "scrollbar_button_start", _colors[kScrollbarButtonStart]);
- getColorFromConfig(_configFile, "scrollbar_button_end", _colors[kScrollbarButtonEnd]);
- getColorFromConfig(_configFile, "scrollbar_slider_start", _colors[kScrollbarSliderStart]);
- getColorFromConfig(_configFile, "scrollbar_slider_end", _colors[kScrollbarSliderEnd]);
+ setupColors();
getColorFromConfig(_configFile, "caret_color", _colors[kCaretColor]);
@@ -248,6 +210,8 @@
ImageMan.registerSurface(_imageHandles[i], 0);
_images[i] = ImageMan.getSurface(_imageHandles[i]);
}
+
+ _lastUsedBitMask = gBitFormat;
}
ThemeNew::~ThemeNew() {
@@ -295,11 +259,13 @@
void ThemeNew::refresh() {
init();
+ resetupGuiRenderer();
_system->showOverlay();
}
void ThemeNew::enable() {
init();
+ resetupGuiRenderer();
resetDrawArea();
_system->showOverlay();
clearAll();
@@ -896,4 +862,66 @@
return _colors[kColorStateEnabled];
}
+void ThemeNew::resetupGuiRenderer() {
+ if (_lastUsedBitMask == gBitFormat || !_initOk) {
+ // ok same format no need to reload
+ return;
+ }
+
+ _lastUsedBitMask = gBitFormat;
+
+ for (int i = 0; i < kImageHandlesMax; ++i) {
+ ImageMan.unregisterSurface(_imageHandles[i]);
+ }
+
+ for (int i = 0; i < kImageHandlesMax; ++i) {
+ ImageMan.registerSurface(_imageHandles[i], 0);
+ _images[i] = ImageMan.getSurface(_imageHandles[i]);
+ }
+
+ setupColors();
+}
+
+void ThemeNew::setupColors() {
+ // load the colors from the config file
+ getColorFromConfig(_configFile, "main_dialog_start", _colors[kMainDialogStart]);
+ getColorFromConfig(_configFile, "main_dialog_end", _colors[kMainDialogEnd]);
+
+ getColorFromConfig(_configFile, "dialog_start", _colors[kDialogStart]);
+ getColorFromConfig(_configFile, "dialog_end", _colors[kDialogEnd]);
+
+ getColorFromConfig(_configFile, "color_state_disabled", _colors[kColorStateDisabled]);
+ getColorFromConfig(_configFile, "color_state_highlight", _colors[kColorStateHighlight]);
+ getColorFromConfig(_configFile, "color_state_enabled", _colors[kColorStateEnabled]);
+ getColorFromConfig(_configFile, "color_transparency", _colors[kColorTransparency]);
+
+ getColorFromConfig(_configFile, "text_inverted_background", _colors[kTextInvertedBackground]);
+ getColorFromConfig(_configFile, "text_inverted_color", _colors[kTextInvertedColor]);
+
+ getColorFromConfig(_configFile, "widget_bkgd_start", _colors[kWidgetBackgroundStart]);
+ getColorFromConfig(_configFile, "widget_bkgd_end", _colors[kWidgetBackgroundEnd]);
+ getColorFromConfig(_configFile, "widget_bkgd_small_start", _colors[kWidgetBackgroundSmallStart]);
+ getColorFromConfig(_configFile, "widget_bkgd_small_end", _colors[kWidgetBackgroundSmallEnd]);
+
+ getColorFromConfig(_configFile, "button_bkgd_start", _colors[kButtonBackgroundStart]);
+ getColorFromConfig(_configFile, "button_bkgd_end", _colors[kButtonBackgroundEnd]);
+ getColorFromConfig(_configFile, "button_text_enabled", _colors[kButtonTextEnabled]);
+ getColorFromConfig(_configFile, "button_text_disabled", _colors[kButtonTextDisabled]);
+ getColorFromConfig(_configFile, "button_text_highlight", _colors[kButtonTextHighlight]);
+
+ getColorFromConfig(_configFile, "slider_background_start", _colors[kSliderBackgroundStart]);
+ getColorFromConfig(_configFile, "slider_background_end", _colors[kSliderBackgroundEnd]);
+ getColorFromConfig(_configFile, "slider_start", _colors[kSliderStart]);
+ getColorFromConfig(_configFile, "slider_end", _colors[kSliderEnd]);
+
+ getColorFromConfig(_configFile, "tab_background_start", _colors[kTabBackgroundStart]);
+ getColorFromConfig(_configFile, "tab_background_end", _colors[kTabBackgroundEnd]);
+
+ getColorFromConfig(_configFile, "scrollbar_background_start", _colors[kScrollbarBackgroundStart]);
+ getColorFromConfig(_configFile, "scrollbar_background_end", _colors[kScrollbarBackgroundEnd]);
+ getColorFromConfig(_configFile, "scrollbar_button_start", _colors[kScrollbarButtonStart]);
+ getColorFromConfig(_configFile, "scrollbar_button_end", _colors[kScrollbarButtonEnd]);
+ getColorFromConfig(_configFile, "scrollbar_slider_start", _colors[kScrollbarSliderStart]);
+ getColorFromConfig(_configFile, "scrollbar_slider_end", _colors[kScrollbarSliderEnd]);
+}
} // end of namespace GUI
Index: theme.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/gui/theme.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- theme.h 31 Jan 2006 20:19:47 -0000 1.5
+++ theme.h 31 Jan 2006 21:31:31 -0000 1.6
@@ -286,6 +286,10 @@
bool _initOk;
bool _forceRedraw;
+
+ int _lastUsedBitMask;
+ void resetupGuiRenderer();
+ void setupColors();
void restoreBackground(Common::Rect r);
OverlayColor getColor(kState state);
More information about the Scummvm-git-logs
mailing list