aboutsummaryrefslogtreecommitdiff
path: root/gui/ThemeRenderer.cpp
diff options
context:
space:
mode:
authorVicent Marti2008-07-15 10:50:31 +0000
committerVicent Marti2008-07-15 10:50:31 +0000
commitb44b37d4ca4f0bbfe2b578dc72d84ba71286cc92 (patch)
treebc9e53aa065e524cef9cfe7de3b9764ad929a18c /gui/ThemeRenderer.cpp
parentd3d34ef2959c6cf77dcf71689a747d6167a0873f (diff)
downloadscummvm-rg350-b44b37d4ca4f0bbfe2b578dc72d84ba71286cc92.tar.gz
scummvm-rg350-b44b37d4ca4f0bbfe2b578dc72d84ba71286cc92.tar.bz2
scummvm-rg350-b44b37d4ca4f0bbfe2b578dc72d84ba71286cc92.zip
More widgets.
svn-id: r33071
Diffstat (limited to 'gui/ThemeRenderer.cpp')
-rw-r--r--gui/ThemeRenderer.cpp30
1 files changed, 28 insertions, 2 deletions
diff --git a/gui/ThemeRenderer.cpp b/gui/ThemeRenderer.cpp
index 15d8b7d67b..0b3fbe1064 100644
--- a/gui/ThemeRenderer.cpp
+++ b/gui/ThemeRenderer.cpp
@@ -69,7 +69,8 @@ const char *ThemeRenderer::kDrawDataStrings[] = {
"popup_hover",
"caret",
- "separator"
+ "separator",
+ "default_text"
};
ThemeRenderer::ThemeRenderer(Common::String themeName, GraphicsMode mode) :
@@ -234,7 +235,20 @@ bool ThemeRenderer::loadTheme(Common::String themeName) {
// draw the cached widget to the cache surface
}
}
+
+ int r, g, b;
+
+#define __LOAD_COLOR(id, name) { \
+ if (parser()->getPaletteColor(name, r, g, b))\
+ _textColors[id] = _vectorRenderer->buildColor(r, g, b); \
+}
+
+ __LOAD_COLOR(kTextColorDefault, "text_default");
+ __LOAD_COLOR(kTextColorHover, "text_hover");
+ __LOAD_COLOR(kTextColorDisabled, "text_disabled");
+#undef __LOAD_COLOR
+
_themeOk = true;
return true;
}
@@ -360,6 +374,9 @@ void ThemeRenderer::drawSlider(const Common::Rect &r, int width, WidgetStateInfo
void ThemeRenderer::drawScrollbar(const Common::Rect &r, int sliderY, int sliderHeight, ScrollbarState sb_state, WidgetStateInfo state) {
if (!ready())
return;
+
+ drawDD(kDDScrollbarBase, r);
+
debugWidgetPosition("SCB", r);
}
@@ -399,7 +416,7 @@ void ThemeRenderer::drawPopUpWidget(const Common::Rect &r, const Common::String
if (!sel.empty()) {
Common::Rect text(r.left, r.top, r.right - 16, r.bottom);
drawDDText(dd, text, sel);
- }
+ }
debugWidgetPosition("Popup Widget", r);
}
@@ -443,6 +460,15 @@ void ThemeRenderer::drawTab(const Common::Rect &r, int tabHeight, int tabWidth,
debugWidgetPosition("Tab widget", r);
}
+void ThemeRenderer::drawText(const Common::Rect &r, const Common::String &str, WidgetStateInfo state, TextAlign align, bool inverted, int deltax, bool useEllipsis, FontStyle font) {
+ if (!_initOk)
+ return;
+
+ getFont(font)->drawString(_screen, str, r.left, r.top, r.width(), getTextColor(state), convertAligment(align), deltax, useEllipsis);
+ addDirtyRect(r);
+}
+
+
void ThemeRenderer::debugWidgetPosition(const char *name, const Common::Rect &r) {
// _font->drawString(_screen, name, r.left, r.top, r.width(), 0xFFFF, Graphics::kTextAlignRight, 0, true);
// _screen->hLine(r.left, r.top, r.right, 0xFFFF);