aboutsummaryrefslogtreecommitdiff
path: root/gui
diff options
context:
space:
mode:
authorJohannes Schickel2006-05-29 13:12:04 +0000
committerJohannes Schickel2006-05-29 13:12:04 +0000
commitf3e74f88de34658bb2e7b6594e24fcdecd9990cf (patch)
tree2a864c8e8b12d58d1ee856a8372a402d269e4342 /gui
parentba82b4a2353d6a291708a62ed73382890d08ba44 (diff)
downloadscummvm-rg350-f3e74f88de34658bb2e7b6594e24fcdecd9990cf.tar.gz
scummvm-rg350-f3e74f88de34658bb2e7b6594e24fcdecd9990cf.tar.bz2
scummvm-rg350-f3e74f88de34658bb2e7b6594e24fcdecd9990cf.zip
- Fixes disabled transparency for classic theme.
- Introduces check for define 'CT_NO_TRANSPARENCY' to disable transparency support. svn-id: r22735
Diffstat (limited to 'gui')
-rw-r--r--gui/ThemeClassic.cpp20
-rw-r--r--gui/theme.h5
2 files changed, 15 insertions, 10 deletions
diff --git a/gui/ThemeClassic.cpp b/gui/ThemeClassic.cpp
index 4130e4c00e..7f1f41e315 100644
--- a/gui/ThemeClassic.cpp
+++ b/gui/ThemeClassic.cpp
@@ -26,7 +26,7 @@ ThemeClassic::ThemeClassic(OSystem *system) : Theme() {
_system = system;
_initOk = false;
memset(&_screen, 0, sizeof(_screen));
-#ifdef OLDGUI_TRANSPARENCY
+#ifndef CT_NO_TRANSPARENCY
memset(&_dialog, 0, sizeof(_dialog));
#endif
_font = 0;
@@ -97,7 +97,7 @@ void ThemeClassic::disable() {
}
void ThemeClassic::openDialog(bool topDialog) {
-#ifdef OLDGUI_TRANSPARENCY
+#ifndef CT_NO_TRANSPARENCY
if (!_dialog) {
_dialog = new DialogState;
assert(_dialog);
@@ -110,7 +110,7 @@ void ThemeClassic::openDialog(bool topDialog) {
}
void ThemeClassic::closeDialog() {
-#ifdef OLDGUI_TRANSPARENCY
+#ifndef CT_NO_TRANSPARENCY
if (_dialog) {
_dialog->screen.free();
delete _dialog;
@@ -143,11 +143,13 @@ void ThemeClassic::drawDialogBackground(const Common::Rect &r, uint16 hints, kSt
return;
restoreBackground(r);
-
+
+#ifndef CT_NO_TRANSPARENCY
if ((hints & THEME_HINT_SAVE_BACKGROUND) && !(hints & THEME_HINT_FIRST_DRAW) && !_forceRedraw) {
addDirtyRect(r);
return;
}
+#endif
box(r.left, r.top, r.width(), r.height(), _color, _shadowcolor);
addDirtyRect(r, (hints & THEME_HINT_SAVE_BACKGROUND) != 0);
@@ -181,11 +183,13 @@ void ThemeClassic::drawWidgetBackground(const Common::Rect &r, uint16 hints, kWi
return;
restoreBackground(r);
-
+
+#ifndef CT_NO_TRANSPARENCY
if ((hints & THEME_HINT_SAVE_BACKGROUND) && !(hints & THEME_HINT_FIRST_DRAW) && !_forceRedraw) {
addDirtyRect(r);
return;
}
+#endif
switch (background) {
case kWidgetBackgroundBorder:
@@ -452,7 +456,7 @@ void ThemeClassic::drawLineSeparator(const Common::Rect &r, kState state) {
void ThemeClassic::restoreBackground(Common::Rect r, bool special) {
r.clip(_screen.w, _screen.h);
r.clip(_drawArea);
-#ifndef OLDGUI_TRANSPARENCY
+#ifdef CT_NO_TRANSPARENCY
_screen.fillRect(r, _bgcolor);
#else
if (_dialog) {
@@ -482,7 +486,7 @@ bool ThemeClassic::addDirtyRect(Common::Rect r, bool save, bool special) {
r.clip(_screen.w, _screen.h);
r.clip(_drawArea);
_system->copyRectToOverlay((OverlayColor*)_screen.getBasePtr(r.left, r.top), _screen.w, r.left, r.top, r.width(), r.height());
-#ifdef OLDGUI_TRANSPARENCY
+#ifndef CT_NO_TRANSPARENCY
if (_dialog && save) {
if (_dialog->screen.pixels) {
OverlayColor *dst = (OverlayColor*)_dialog->screen.getBasePtr(r.left, r.top);
@@ -544,7 +548,7 @@ OverlayColor ThemeClassic::getColor(kState state) {
return usedColor;
}
-#ifdef OLDGUI_TRANSPARENCY
+#ifndef CT_NO_TRANSPARENCY
void ThemeClassic::blendScreenToDialog() {
Common::Rect rect(0, 0, _screen.w, _screen.h);
diff --git a/gui/theme.h b/gui/theme.h
index a88229f1ca..06826d9860 100644
--- a/gui/theme.h
+++ b/gui/theme.h
@@ -206,7 +206,8 @@ private:
int _loadedThemeX, _loadedThemeY;
};
-#define OLDGUI_TRANSPARENCY
+// enable this to disable transparency support for the classic theme
+//#define CT_NO_TRANSPARENCY
class ThemeClassic : public Theme {
public:
@@ -263,7 +264,7 @@ private:
OSystem *_system;
Graphics::Surface _screen;
-#ifdef OLDGUI_TRANSPARENCY
+#ifndef CT_NO_TRANSPARENCY
struct DialogState {
Graphics::Surface screen;
} *_dialog;