widget.c
changeset 4437 d06bb548e48d
parent 4345 dd12549ad473
child 4438 bfa7b06c0afe
--- a/widget.c	Tue Aug 29 06:03:26 2006 +0000
+++ b/widget.c	Tue Aug 29 06:07:57 2006 +0000
@@ -150,6 +150,42 @@
 }
 
 
+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;