summaryrefslogtreecommitdiff
path: root/widget.c
diff options
context:
space:
mode:
authortron <tron@openttd.org>2006-08-29 06:07:57 +0000
committertron <tron@openttd.org>2006-08-29 06:07:57 +0000
commit17c610c0f49142168d834cdb34c780d79b9ccfd1 (patch)
tree164b9142d238f73a8ae387c96a49c99228de05e2 /widget.c
parentfc7a80c4707ce31181b047e73ca9ceea56cb9e2d (diff)
downloadopenttd-17c610c0f49142168d834cdb34c780d79b9ccfd1.tar.xz
(svn r6209) Move DrawFrameRect() out of gfx.[ch], because it uses data (_color_list) which the renderer shouldn't have know about
Diffstat (limited to 'widget.c')
-rw-r--r--widget.c36
1 files changed, 36 insertions, 0 deletions
diff --git a/widget.c b/widget.c
index 24ca523cb..83ec93e22 100644
--- a/widget.c
+++ b/widget.c
@@ -150,6 +150,42 @@ int GetWidgetFromPos(const Window *w, int x, int y)
}
+void DrawFrameRect(int left, int top, int right, int bottom, int ctab, FrameFlags flags)
+{
+ uint dark = _color_list[ctab].window_color_1a;
+ uint medium_dark = _color_list[ctab].window_color_bga;
+ uint medium_light = _color_list[ctab].window_color_bgb;
+ uint light = _color_list[ctab].window_color_2;
+
+ if (flags & FR_NOBORDER) {
+ if (flags & FR_TRANSPARENT) {
+ GfxFillRect(left, top, right, bottom, 0x322 | USE_COLORTABLE);
+ } else {
+ GfxFillRect(left, top, right, bottom, medium_dark);
+ }
+ } else {
+ uint interior;
+
+ if (flags & FR_LOWERED) {
+ GfxFillRect(left, top, left, bottom, dark);
+ GfxFillRect(left + 1, top, right, top, dark);
+ GfxFillRect(right, top + 1, right, bottom - 1, light);
+ GfxFillRect(left + 1, bottom, right, bottom, light);
+ interior = (flags & FR_DARKENED ? medium_dark : medium_light);
+ } else {
+ GfxFillRect(left, top, left, bottom - 1, light);
+ GfxFillRect(left + 1, top, right - 1, top, light);
+ GfxFillRect(right, top, right, bottom - 1, dark);
+ GfxFillRect(left, bottom, right, bottom, dark);
+ interior = medium_dark;
+ }
+ if (!(flags & FR_BORDERONLY)) {
+ GfxFillRect(left + 1, top + 1, right - 1, bottom - 1, interior);
+ }
+ }
+}
+
+
void DrawWindowWidgets(const Window *w)
{
const Widget *wi;