summaryrefslogtreecommitdiff
path: root/src/fl_gtk.cxx
diff options
context:
space:
mode:
authorMichael R Sweet <michael.r.sweet@gmail.com>2006-10-03 02:35:12 +0000
committerMichael R Sweet <michael.r.sweet@gmail.com>2006-10-03 02:35:12 +0000
commit7febae3f9e6f340f775eac5bee3e783fdd361aaa (patch)
tree52e2b15a231fefb78c189971b7fae602cdd2ce59 /src/fl_gtk.cxx
parentad4a4ea0db2df3aa6befe601f48ec3f80434fe95 (diff)
Add GTK thin up/down box/frame types.
Update the GTK round up/down box types. Update radio/check box drawing for gtk+ scheme. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@5505 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'src/fl_gtk.cxx')
-rw-r--r--src/fl_gtk.cxx74
1 files changed, 71 insertions, 3 deletions
diff --git a/src/fl_gtk.cxx b/src/fl_gtk.cxx
index fc6ca6160..9925dac97 100644
--- a/src/fl_gtk.cxx
+++ b/src/fl_gtk.cxx
@@ -115,10 +115,74 @@ static void gtk_down_box(int x, int y, int w, int h, Fl_Color c) {
}
-static void gtk_round_box(int x, int y, int w, int h, Fl_Color c) {
+static void gtk_thin_up_frame(int x, int y, int w, int h, Fl_Color c) {
+ gtk_color(fl_color_average(FL_WHITE, c, 0.5));
+ fl_xyline(x + 1, y, x + w - 2);
+ fl_yxline(x, y + 1, y + h - 2);
+
+ gtk_color(fl_color_average(FL_BLACK, c, 0.5));
+ fl_xyline(x + 1, y + h - 1, x + w - 2);
+ fl_yxline(x + w - 1, y + 1, y + h - 2);
+}
+
+
+static void gtk_thin_up_box(int x, int y, int w, int h, Fl_Color c) {
+ gtk_thin_up_frame(x, y, w, h, c);
+
+ gtk_color(fl_color_average(FL_WHITE, c, 0.4));
+ fl_xyline(x + 1, y + 1, x + w - 2);
+ gtk_color(fl_color_average(FL_WHITE, c, 0.2));
+ fl_xyline(x + 1, y + 2, x + w - 2);
+ gtk_color(fl_color_average(FL_WHITE, c, 0.1));
+ fl_xyline(x + 1, y + 3, x + w - 2);
+ gtk_color(c);
+ fl_rectf(x + 1, y + 4, w - 2, h - 8);
+ gtk_color(fl_color_average(FL_BLACK, c, 0.025));
+ fl_xyline(x + 1, y + h - 4, x + w - 2);
+ gtk_color(fl_color_average(FL_BLACK, c, 0.05));
+ fl_xyline(x + 1, y + h - 3, x + w - 2);
+ gtk_color(fl_color_average(FL_BLACK, c, 0.1));
+ fl_xyline(x + 1, y + h - 2, x + w - 2);
+}
+
+
+static void gtk_thin_down_frame(int x, int y, int w, int h, Fl_Color c) {
+ gtk_color(fl_color_average(FL_BLACK, c, 0.5));
+ fl_xyline(x + 1, y, x + w - 2);
+ fl_yxline(x, y + 1, y + h - 2);
+
+ gtk_color(fl_color_average(FL_WHITE, c, 0.5));
+ fl_xyline(x + 1, y + h - 1, x + w - 2);
+ fl_yxline(x + w - 1, y + 1, y + h - 2);
+}
+
+
+static void gtk_thin_down_box(int x, int y, int w, int h, Fl_Color c) {
+ gtk_thin_down_frame(x, y, w, h, c);
+
+ gtk_color(c);
+ fl_rectf(x + 1, y + 1, w - 2, h - 2);
+}
+
+
+static void gtk_round_up_box(int x, int y, int w, int h, Fl_Color c) {
gtk_color(c);
fl_pie(x, y, w, h, 0.0, 360.0);
+ gtk_color(fl_color_average(FL_WHITE, c, 0.5));
+ fl_arc(x, y, w, h, 45.0, 180.0);
+ gtk_color(fl_color_average(FL_WHITE, c, 0.25));
+ fl_arc(x, y, w, h, 180.0, 405.0);
gtk_color(fl_color_average(FL_BLACK, c, 0.5));
+ fl_arc(x, y, w, h, 225.0, 360.0);
+}
+
+
+static void gtk_round_down_box(int x, int y, int w, int h, Fl_Color c) {
+ gtk_color(c);
+ fl_pie(x, y, w, h, 0.0, 360.0);
+ gtk_color(fl_color_average(FL_BLACK, c, 0.2));
+ fl_arc(x + 1, y, w, h, 90.0, 210.0);
+ gtk_color(fl_color_average(FL_BLACK, c, 0.6));
fl_arc(x, y, w, h, 0.0, 360.0);
}
@@ -128,8 +192,12 @@ Fl_Boxtype fl_define_FL_GTK_UP_BOX() {
fl_internal_boxtype(_FL_GTK_DOWN_BOX, gtk_down_box);
fl_internal_boxtype(_FL_GTK_UP_FRAME, gtk_up_frame);
fl_internal_boxtype(_FL_GTK_DOWN_FRAME, gtk_down_frame);
- fl_internal_boxtype(_FL_GTK_ROUND_UP_BOX, gtk_round_box);
- fl_internal_boxtype(_FL_GTK_ROUND_DOWN_BOX, gtk_round_box);
+ fl_internal_boxtype(_FL_GTK_THIN_UP_BOX, gtk_thin_up_box);
+ fl_internal_boxtype(_FL_GTK_THIN_DOWN_BOX, gtk_thin_down_box);
+ fl_internal_boxtype(_FL_GTK_THIN_UP_FRAME, gtk_thin_up_frame);
+ fl_internal_boxtype(_FL_GTK_THIN_DOWN_FRAME, gtk_thin_down_frame);
+ fl_internal_boxtype(_FL_GTK_ROUND_UP_BOX, gtk_round_up_box);
+ fl_internal_boxtype(_FL_GTK_ROUND_DOWN_BOX, gtk_round_down_box);
return _FL_GTK_UP_BOX;
}