aboutsummaryrefslogtreecommitdiff
path: root/gui
diff options
context:
space:
mode:
authorJohannes Schickel2006-05-29 14:38:56 +0000
committerJohannes Schickel2006-05-29 14:38:56 +0000
commit0165c98e00b6b7e6d8cdd74f540c29f8ded34bd7 (patch)
treef05976bbf55ac1b7d821112d7ad670ad3afbe045 /gui
parent2dd94dd247129026ca8d2b30e481052a389f4363 (diff)
downloadscummvm-rg350-0165c98e00b6b7e6d8cdd74f540c29f8ded34bd7.tar.gz
scummvm-rg350-0165c98e00b6b7e6d8cdd74f540c29f8ded34bd7.tar.bz2
scummvm-rg350-0165c98e00b6b7e6d8cdd74f540c29f8ded34bd7.zip
- adds option to fill GraphicsWidgets with a special color
- updates builtin theme config for my next commit - bumps theme config svn-id: r22743
Diffstat (limited to 'gui')
-rw-r--r--gui/theme-config.cpp3
-rw-r--r--gui/widget.cpp19
-rw-r--r--gui/widget.h1
3 files changed, 23 insertions, 0 deletions
diff --git a/gui/theme-config.cpp b/gui/theme-config.cpp
index b97ba3bd75..5ea0713984 100644
--- a/gui/theme-config.cpp
+++ b/gui/theme-config.cpp
@@ -293,6 +293,9 @@ const char *Theme::_defaultConfigINI =
"scummsaveload_thumbnail=(parent.w - (kThumbnailWidth + 18)) 22\n"
"scummsaveload_thumbnail.hPad=4\n"
"scummsaveload_thumbnail.vPad=4\n"
+"scummsaveload_thumbnail.fillR=0\n"
+"scummsaveload_thumbnail.fillG=0\n"
+"scummsaveload_thumbnail.fillB=0\n"
"scummsaveload_cancel=(parent.w - 2 * (buttonWidth + 10)) (parent.h - buttonHeight - 8) buttonWidth buttonHeight\n"
"scummsaveload_choose=(prev.x2 + 10) prev.y prev.w prev.h\n"
"scummsaveload_extinfo.visible=true\n"
diff --git a/gui/widget.cpp b/gui/widget.cpp
index 5ae42e6500..d715f6d075 100644
--- a/gui/widget.cpp
+++ b/gui/widget.cpp
@@ -350,6 +350,25 @@ void GraphicsWidget::setGfx(const Graphics::Surface *gfx) {
memcpy(_gfx.pixels, gfx->pixels, gfx->h * gfx->pitch);
}
+void GraphicsWidget::setGfx(int w, int h, int r, int g, int b) {
+ if (w == -1)
+ w = _w;
+ if (h == -1)
+ h = _h;
+
+ _gfx.free();
+ _gfx.create(w, h, sizeof(OverlayColor));
+
+ OverlayColor *dst = (OverlayColor*)_gfx.pixels;
+ // TODO: get rid of g_system usage
+ OverlayColor fillCol = g_system->RGBToColor(r, g, b);
+ while (h--) {
+ for (int i = 0; i < w; ++i) {
+ *dst++ = fillCol;
+ }
+ }
+}
+
void GraphicsWidget::drawWidget(bool hilite) {
if (sizeof(OverlayColor) == _gfx.bytesPerPixel && _gfx.pixels) {
g_gui.theme()->drawSurface(Common::Rect(_x, _y, _x+_w, _y+_h), _gfx, Theme::kStateEnabled, _alpha);
diff --git a/gui/widget.h b/gui/widget.h
index 9f366c46b7..883343511f 100644
--- a/gui/widget.h
+++ b/gui/widget.h
@@ -270,6 +270,7 @@ public:
~GraphicsWidget();
void setGfx(const Graphics::Surface *gfx);
+ void setGfx(int w, int h, int r, int g, int b);
void useAlpha(int alpha) { _alpha = alpha; }