|
Author: matt
Date: 2011-08-24 12:24:48 -0700 (Wed, 24 Aug 2011)
New Revision: 9002
Log:
FLTK3: added some more crispness to the default scheme. Added some fancyness: check out test/input ;-)
Modified:
branches/branch-3.0/include/fltk3/Widget.h
branches/branch-3.0/include/fltk3/enumerations.h
branches/branch-3.0/include/fltk3/run.h
branches/branch-3.0/src/core/Fl_Button.cxx
branches/branch-3.0/src/core/Fl_Chart.cxx
branches/branch-3.0/src/core/Fl_Light_Button.cxx
branches/branch-3.0/src/core/Fl_get_system_colors.cxx
branches/branch-3.0/src/core/fl_boxtype.cxx
branches/branch-3.0/src/core/fl_diamond_box.cxx
branches/branch-3.0/src/core/fl_gtk.cxx
branches/branch-3.0/src/core/fl_oval_box.cxx
branches/branch-3.0/src/core/fl_plastic.cxx
branches/branch-3.0/src/core/fl_round_box.cxx
branches/branch-3.0/src/core/fl_rounded_box.cxx
branches/branch-3.0/src/core/fl_shadow_box.cxx
branches/branch-3.0/test/input.cxx
Modified: branches/branch-3.0/include/fltk3/Widget.h
===================================================================
--- branches/branch-3.0/include/fltk3/Widget.h 2011-08-24 13:51:27 UTC (rev 9001)
+++ branches/branch-3.0/include/fltk3/Widget.h 2011-08-24 19:24:48 UTC (rev 9002)
@@ -127,7 +127,7 @@
Color color2_;
uchar type_;
uchar damage_;
- uchar box_;
+ Boxtype box_;
uchar when_;
const char *tooltip_;
Modified: branches/branch-3.0/include/fltk3/enumerations.h
===================================================================
--- branches/branch-3.0/include/fltk3/enumerations.h 2011-08-24 13:51:27 UTC (rev 9001)
+++ branches/branch-3.0/include/fltk3/enumerations.h 2011-08-24 19:24:48 UTC (rev 9002)
@@ -529,6 +529,11 @@
GTK_THIN_DOWN_FRAME = THIN_DOWN_FRAME,///< gtk+ version of fltk3::THIN_DOWN_FRAME
GTK_ROUND_UP_BOX = ROUND_UP_BOX, ///< gtk+ version of fltk3::ROUND_UP_BOX
GTK_ROUND_DOWN_BOX = ROUND_DOWN_BOX, ///< gtk+ version of fltk3::ROUND_DOWN_BOX
+
+ TIE_LEFT = 0x10000000,
+ TIE_RIGHT = 0x20000000,
+ TIE_TOP = 0x40000000,
+ TIE_BOTTOM = 0x80000000,
};
// conversions of box types to other boxtypes:
Modified: branches/branch-3.0/include/fltk3/run.h
===================================================================
--- branches/branch-3.0/include/fltk3/run.h 2011-08-24 13:51:27 UTC (rev 9001)
+++ branches/branch-3.0/include/fltk3/run.h 2011-08-24 19:24:48 UTC (rev 9002)
@@ -72,7 +72,7 @@
typedef void (LabelMeasureF)(const fltk3::Label *label, int &width, int &height);
/** Signature of some box drawing functions passed as parameters */
- typedef void (BoxDrawF)(int x, int y, int w, int h, fltk3::Color color);
+ typedef void (BoxDrawF)(int x, int y, int w, int h, fltk3::Color color, fltk3::Boxtype type);
/** Signature of some timeout callback functions passed as parameters */
typedef void (*TimeoutHandler)(void *data);
Modified: branches/branch-3.0/src/core/Fl_Button.cxx
===================================================================
--- branches/branch-3.0/src/core/Fl_Button.cxx 2011-08-24 13:51:27 UTC (rev 9001)
+++ branches/branch-3.0/src/core/Fl_Button.cxx 2011-08-24 19:24:48 UTC (rev 9002)
@@ -75,7 +75,15 @@
void fltk3::Button::draw() {
FLTK3_OBJECT_VCALLS_WRAPPER(draw(), Draw)
if (type() == fltk3::HIDDEN_BUTTON) return;
- fltk3::Color col = value() ? selection_color() : color();
+ fltk3::Color col;
+ if (value()) {
+ if (selection_color()==fltk3::GRAY)
+ col = fltk3::color_average(fltk3::BLACK, color(), 0.2f);
+ else
+ col = selection_color();
+ } else {
+ col = color();
+ }
draw_box(value() ? (down_box()?down_box():fltk3::down(box())) : box(), col);
draw_backdrop();
if (labeltype() == fltk3::NORMAL_LABEL && value()) {
Modified: branches/branch-3.0/src/core/Fl_Chart.cxx
===================================================================
--- branches/branch-3.0/src/core/Fl_Chart.cxx 2011-08-24 13:51:27 UTC (rev 9001)
+++ branches/branch-3.0/src/core/Fl_Chart.cxx 2011-08-24 19:24:48 UTC (rev 9002)
@@ -35,7 +35,7 @@
#define ARCINC (2.0*M_PI/360.0)
// this function is in fl_boxtype.cxx:
-void fl_rectbound(int x,int y,int w,int h, fltk3::Color color);
+void fl_rectbound(int x,int y,int w,int h, fltk3::Color color, fltk3::Boxtype);
/* Widget specific information */
@@ -67,9 +67,9 @@
for (i=0; i<numb; i++) {
int hh = (int)rint(entries[i].val*incr);
if (hh < 0)
- fl_rectbound(x+i*bwidth,zeroh,bwidth+1,-hh+1, (fltk3::Color)entries[i].col);
+ fl_rectbound(x+i*bwidth,zeroh,bwidth+1,-hh+1, (fltk3::Color)entries[i].col, (fltk3::Boxtype)0);
else if (hh > 0)
- fl_rectbound(x+i*bwidth,zeroh-hh,bwidth+1,hh+1,(fltk3::Color)entries[i].col);
+ fl_rectbound(x+i*bwidth,zeroh-hh,bwidth+1,hh+1,(fltk3::Color)entries[i].col, (fltk3::Boxtype)0);
}
/* Draw the labels */
fltk3::color(textcolor);
@@ -113,9 +113,9 @@
for (i=0; i<numb; i++) {
int ww = (int)rint(entries[i].val*incr);
if (ww > 0)
- fl_rectbound(zeroh,y+i*bwidth,ww+1,bwidth+1, (fltk3::Color)entries[i].col);
+ fl_rectbound(zeroh,y+i*bwidth,ww+1,bwidth+1, (fltk3::Color)entries[i].col, (fltk3::Boxtype)0);
else if (ww < 0)
- fl_rectbound(zeroh+ww,y+i*bwidth,-ww+1,bwidth+1,(fltk3::Color)entries[i].col);
+ fl_rectbound(zeroh+ww,y+i*bwidth,-ww+1,bwidth+1,(fltk3::Color)entries[i].col, (fltk3::Boxtype)0);
}
/* Draw the labels */
fltk3::color(textcolor);
Modified: branches/branch-3.0/src/core/Fl_Light_Button.cxx
===================================================================
--- branches/branch-3.0/src/core/Fl_Light_Button.cxx 2011-08-24 13:51:27 UTC (rev 9001)
+++ branches/branch-3.0/src/core/Fl_Light_Button.cxx 2011-08-24 19:24:48 UTC (rev 9002)
@@ -39,8 +39,14 @@
void fltk3::LightButton::draw() {
FLTK3_OBJECT_VCALLS_WRAPPER(draw(), Draw)
- if (box()) draw_box(this==fltk3::pushed() ? fltk3::down(box()) : box(), color());
- fltk3::Color col = value() ? (active_r() ? selection_color() :
+ fltk3::Color col;
+ if (this==fltk3::pushed()) {
+ col = fltk3::color_average(fltk3::BLACK, color(), 0.2f);
+ } else {
+ col = color();
+ }
+ if (box()) draw_box(this==fltk3::pushed() ? fltk3::down(box()) : box(), col);
+ col = value() ? (active_r() ? selection_color() :
fltk3::inactive(selection_color())) : color();
int W;
int dx, dy;
Modified: branches/branch-3.0/src/core/Fl_get_system_colors.cxx
===================================================================
--- branches/branch-3.0/src/core/Fl_get_system_colors.cxx 2011-08-24 13:51:27 UTC (rev 9001)
+++ branches/branch-3.0/src/core/Fl_get_system_colors.cxx 2011-08-24 19:24:48 UTC (rev 9002)
@@ -247,17 +247,17 @@
#define D1 BORDER_WIDTH
#define D2 (BORDER_WIDTH+BORDER_WIDTH)
-extern void fl_gtk_up_box(int, int, int, int, fltk3::Color);
-extern void fl_gtk_down_box(int, int, int, int, fltk3::Color);
-extern void fl_gtk_thin_up_box(int, int, int, int, fltk3::Color);
-extern void fl_gtk_thin_down_box(int, int, int, int, fltk3::Color);
-extern void fl_gtk_round_up_box(int, int, int, int, fltk3::Color);
-extern void fl_gtk_round_down_box(int, int, int, int, fltk3::Color);
+extern void fl_gtk_up_box(int, int, int, int, fltk3::Color, fltk3::Boxtype);
+extern void fl_gtk_down_box(int, int, int, int, fltk3::Color, fltk3::Boxtype);
+extern void fl_gtk_thin_up_box(int, int, int, int, fltk3::Color, fltk3::Boxtype);
+extern void fl_gtk_thin_down_box(int, int, int, int, fltk3::Color, fltk3::Boxtype);
+extern void fl_gtk_round_up_box(int, int, int, int, fltk3::Color, fltk3::Boxtype);
+extern void fl_gtk_round_down_box(int, int, int, int, fltk3::Color, fltk3::Boxtype);
-extern void fl_gtk_up_frame(int, int, int, int, fltk3::Color);
-extern void fl_gtk_down_frame(int, int, int, int, fltk3::Color);
-extern void fl_gtk_thin_up_frame(int, int, int, int, fltk3::Color);
-extern void fl_gtk_thin_down_frame(int, int, int, int, fltk3::Color);
+extern void fl_gtk_up_frame(int, int, int, int, fltk3::Color, fltk3::Boxtype);
+extern void fl_gtk_down_frame(int, int, int, int, fltk3::Color, fltk3::Boxtype);
+extern void fl_gtk_thin_up_frame(int, int, int, int, fltk3::Color, fltk3::Boxtype);
+extern void fl_gtk_thin_down_frame(int, int, int, int, fltk3::Color, fltk3::Boxtype);
#ifndef FLTK3_DOXYGEN
const char *fltk3::scheme_ = (const char *)0; // current scheme
Modified: branches/branch-3.0/src/core/fl_boxtype.cxx
===================================================================
--- branches/branch-3.0/src/core/fl_boxtype.cxx 2011-08-24 13:51:27 UTC (rev 9001)
+++ branches/branch-3.0/src/core/fl_boxtype.cxx 2011-08-24 19:24:48 UTC (rev 9002)
@@ -136,34 +136,38 @@
}
/** Draws a box of type fltk3::NO_BOX */
-void fl_no_box(int, int, int, int, fltk3::Color) {}
+void fl_no_box(int, int, int, int, fltk3::Color, fltk3::Boxtype) {}
+void fl_flat_box(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype) {
+ fltk3::rectf(x, y, w, h, c);
+}
+
/** Draws a frame of type fltk3::THIN_DOWN_FRAME */
-void fl_classic_thin_down_frame(int x, int y, int w, int h, fltk3::Color) {
+void fl_classic_thin_down_frame(int x, int y, int w, int h, fltk3::Color, fltk3::Boxtype) {
fltk3::frame2("WWHH",x,y,w,h);
}
/** Draws a box of type fltk3::THIN_DOWN_BOX */
-void fl_classic_thin_down_box(int x, int y, int w, int h, fltk3::Color c) {
- fl_classic_thin_down_frame(x,y,w,h,c);
+void fl_classic_thin_down_box(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype t) {
+ fl_classic_thin_down_frame(x,y,w,h,c,t);
fltk3::color(draw_it_active ? c : fltk3::inactive(c));
fltk3::rectf(x+1, y+1, w-2, h-2);
}
/** Draws a frame of type fltk3::THIN_UP_FRAME */
-void fl_classic_thin_up_frame(int x, int y, int w, int h, fltk3::Color) {
+void fl_classic_thin_up_frame(int x, int y, int w, int h, fltk3::Color, fltk3::Boxtype) {
fltk3::frame2("HHWW",x,y,w,h);
}
/** Draws a box of type fltk3::THIN_UP_BOX */
-void fl_classic_thin_up_box(int x, int y, int w, int h, fltk3::Color c) {
- fl_classic_thin_up_frame(x,y,w,h,c);
+void fl_classic_thin_up_box(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype t) {
+ fl_classic_thin_up_frame(x,y,w,h,c,t);
fltk3::color(draw_it_active ? c : fltk3::inactive(c));
fltk3::rectf(x+1, y+1, w-2, h-2);
}
/** Draws a frame of type fltk3::UP_FRAME */
-void fl_classic_up_frame(int x, int y, int w, int h, fltk3::Color) {
+void fl_classic_up_frame(int x, int y, int w, int h, fltk3::Color, fltk3::Boxtype) {
#if BORDER_WIDTH == 1
fltk3::frame2("HHWW",x,y,w,h);
#else
@@ -179,14 +183,14 @@
#define D2 (BORDER_WIDTH+BORDER_WIDTH)
/** Draws a box of type fltk3::UP_BOX */
-void fl_classic_up_box(int x, int y, int w, int h, fltk3::Color c) {
- fl_classic_up_frame(x,y,w,h,c);
+void fl_classic_up_box(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype t) {
+ fl_classic_up_frame(x,y,w,h,c,t);
fltk3::color(draw_it_active ? c : fltk3::inactive(c));
fltk3::rectf(x+D1, y+D1, w-D2, h-D2);
}
/** Draws a frame of type fltk3::DOWN_FRAME */
-void fl_classic_down_frame(int x, int y, int w, int h, fltk3::Color) {
+void fl_classic_down_frame(int x, int y, int w, int h, fltk3::Color, fltk3::Boxtype) {
#if BORDER_WIDTH == 1
fltk3::frame2("WWHH",x,y,w,h);
#else
@@ -199,31 +203,31 @@
}
/** Draws a box of type fltk3::DOWN_BOX */
-void fl_classic_down_box(int x, int y, int w, int h, fltk3::Color c) {
- fl_classic_down_frame(x,y,w,h,c);
+void fl_classic_down_box(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype t) {
+ fl_classic_down_frame(x,y,w,h,c,t);
fltk3::color(c); fltk3::rectf(x+D1, y+D1, w-D2, h-D2);
}
/** Draws a frame of type fltk3::ENGRAVED_FRAME */
-void fl_engraved_frame(int x, int y, int w, int h, fltk3::Color) {
+void fl_engraved_frame(int x, int y, int w, int h, fltk3::Color, fltk3::Boxtype) {
fltk3::frame("HHWWWWHH",x,y,w,h);
}
/** Draws a box of type fltk3::ENGRAVED_BOX */
-void fl_engraved_box(int x, int y, int w, int h, fltk3::Color c) {
- fl_engraved_frame(x,y,w,h,c);
+void fl_engraved_box(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype t) {
+ fl_engraved_frame(x,y,w,h,c,t);
fltk3::color(draw_it_active ? c : fltk3::inactive(c));
fltk3::rectf(x+2, y+2, w-4, h-4);
}
/** Draws a frame of type fltk3::EMBOSSED_FRAME */
-void fl_embossed_frame(int x, int y, int w, int h, fltk3::Color) {
+void fl_embossed_frame(int x, int y, int w, int h, fltk3::Color, fltk3::Boxtype) {
fltk3::frame("WWHHHHWW",x,y,w,h);
}
/** Draws a box of type fltk3::EMBOSSED_BOX */
-void fl_embossed_box(int x, int y, int w, int h, fltk3::Color c) {
- fl_embossed_frame(x,y,w,h,c);
+void fl_embossed_box(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype t) {
+ fl_embossed_frame(x,y,w,h,c,t);
fltk3::color(draw_it_active ? c : fltk3::inactive(c));
fltk3::rectf(x+2, y+2, w-4, h-4);
}
@@ -232,7 +236,7 @@
Draws a bounded rectangle with a given position, size and color.
Equivalent to drawing a box of type fltk3::BORDER_BOX.
*/
-void fl_rectbound(int x, int y, int w, int h, fltk3::Color bgcolor) {
+void fl_rectbound(int x, int y, int w, int h, fltk3::Color bgcolor, fltk3::Boxtype) {
fltk3::color(draw_it_active ? fltk3::BLACK : fltk3::inactive(fltk3::BLACK));
fltk3::rect(x, y, w, h);
fltk3::color(draw_it_active ? bgcolor : fltk3::inactive(bgcolor));
@@ -243,48 +247,48 @@
/**
Draws a frame of type fltk3::BORDER_FRAME.
*/
-void fl_border_frame(int x, int y, int w, int h, fltk3::Color c) {
+void fl_border_frame(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype) {
fltk3::color(draw_it_active ? c : fltk3::inactive(c));
fltk3::rect(x, y, w, h);
}
////////////////////////////////////////////////////////////////
-void fl_diamond_down_box(int x,int y,int w,int h,fltk3::Color bgcolor);
-void fl_diamond_up_box(int x,int y,int w,int h,fltk3::Color bgcolor);
-void fl_shadow_frame(int x, int y, int w, int h, fltk3::Color c);
-void fl_shadow_box(int x, int y, int w, int h, fltk3::Color c);
+void fl_diamond_down_box(int x,int y,int w,int h,fltk3::Color bgcolor, fltk3::Boxtype);
+void fl_diamond_up_box(int x,int y,int w,int h,fltk3::Color bgcolor, fltk3::Boxtype);
+void fl_shadow_frame(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype);
+void fl_shadow_box(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype);
-void fl_classic_round_up_box(int x, int y, int w, int h, fltk3::Color bgcolor);
-void fl_classic_round_down_box(int x, int y, int w, int h, fltk3::Color bgcolor);
-void fl_rflat_box(int x, int y, int w, int h, fltk3::Color c);
-void fl_rounded_frame(int x, int y, int w, int h, fltk3::Color c);
-void fl_rounded_box(int x, int y, int w, int h, fltk3::Color c);
-void fl_rshadow_box(int x, int y, int w, int h, fltk3::Color c);
+void fl_classic_round_up_box(int x, int y, int w, int h, fltk3::Color bgcolor, fltk3::Boxtype);
+void fl_classic_round_down_box(int x, int y, int w, int h, fltk3::Color bgcolor, fltk3::Boxtype);
+void fl_rflat_box(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype);
+void fl_rounded_frame(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype);
+void fl_rounded_box(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype);
+void fl_rshadow_box(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype);
-void fl_oval_shadow_box(int x, int y, int w, int h, fltk3::Color c);
-void fl_oval_box(int x, int y, int w, int h, fltk3::Color c);
-void fl_oval_frame(int x, int y, int w, int h, fltk3::Color c);
-void fl_oval_flat_box(int x, int y, int w, int h, fltk3::Color c);
+void fl_oval_shadow_box(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype);
+void fl_oval_box(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype);
+void fl_oval_frame(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype);
+void fl_oval_flat_box(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype);
-void fl_plastic_up_box(int x, int y, int w, int h, fltk3::Color c);
-void fl_plastic_down_box(int x, int y, int w, int h, fltk3::Color c);
-void fl_plastic_up_frame(int x, int y, int w, int h, fltk3::Color c);
-void fl_plastic_down_frame(int x, int y, int w, int h, fltk3::Color c);
-void fl_plastic_thin_up_box(int x, int y, int w, int h, fltk3::Color c);
-void fl_plastic_up_round(int x, int y, int w, int h, fltk3::Color c);
-void fl_plastic_down_round(int x, int y, int w, int h, fltk3::Color c);
+void fl_plastic_up_box(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype);
+void fl_plastic_down_box(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype);
+void fl_plastic_up_frame(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype);
+void fl_plastic_down_frame(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype);
+void fl_plastic_thin_up_box(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype);
+void fl_plastic_up_round(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype);
+void fl_plastic_down_round(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype);
-void fl_gtk_up_frame(int x, int y, int w, int h, fltk3::Color c);
-void fl_gtk_up_box(int x, int y, int w, int h, fltk3::Color c);
-void fl_gtk_down_frame(int x, int y, int w, int h, fltk3::Color c);
-void fl_gtk_down_box(int x, int y, int w, int h, fltk3::Color c);
-void fl_gtk_thin_up_frame(int x, int y, int w, int h, fltk3::Color c);
-void fl_gtk_thin_up_box(int x, int y, int w, int h, fltk3::Color c);
-void fl_gtk_thin_down_frame(int x, int y, int w, int h, fltk3::Color c);
-void fl_gtk_thin_down_box(int x, int y, int w, int h, fltk3::Color c);
-void fl_gtk_round_up_box(int x, int y, int w, int h, fltk3::Color c);
-void fl_gtk_round_down_box(int x, int y, int w, int h, fltk3::Color c);
+void fl_gtk_up_frame(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype);
+void fl_gtk_up_box(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype);
+void fl_gtk_down_frame(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype);
+void fl_gtk_down_box(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype);
+void fl_gtk_thin_up_frame(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype);
+void fl_gtk_thin_up_box(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype);
+void fl_gtk_thin_down_frame(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype);
+void fl_gtk_thin_down_box(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype);
+void fl_gtk_round_up_box(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype);
+void fl_gtk_round_down_box(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype);
static struct {
fltk3::BoxDrawF *f;
@@ -293,7 +297,7 @@
} fl_box_table[256] = {
// must match list in enumerations.h!!!
{fl_no_box, 0,0,0,0,1},
- {fltk3::rectf, 0,0,0,0,1}, // fltk3::FLAT_BOX
+ {fl_flat_box, 0,0,0,0,1}, // fltk3::FLAT_BOX
{fl_gtk_up_box, 2,2,4,4,0}, // FL_GTK_UP_BOX,
{fl_gtk_down_box, 2,2,4,4,0}, // FL_GTK_DOWN_BOX,
{fl_gtk_up_frame, 2,2,4,4,0}, // FL_GTK_UP_FRAME,
@@ -359,7 +363,7 @@
Returns the X offset for the given boxtype.
\see box_dy()
*/
-int fltk3::box_dx(fltk3::Boxtype t) {return fl_box_table[t].dx;}
+int fltk3::box_dx(fltk3::Boxtype t) {return fl_box_table[t&255].dx;}
/**
Returns the Y offset for the given boxtype.
@@ -384,19 +388,19 @@
for deriving custom widgets, where one wants to avoid drawing
over the widget's own border box().
*/
-int fltk3::box_dy(fltk3::Boxtype t) {return fl_box_table[t].dy;}
+int fltk3::box_dy(fltk3::Boxtype t) {return fl_box_table[t&255].dy;}
/**
Returns the width offset for the given boxtype.
\see box_dy().
*/
-int fltk3::box_dw(fltk3::Boxtype t) {return fl_box_table[t].dw;}
+int fltk3::box_dw(fltk3::Boxtype t) {return fl_box_table[t&255].dw;}
/**
Returns the height offset for the given boxtype.
\see box_dy().
*/
-int fltk3::box_dh(fltk3::Boxtype t) {return fl_box_table[t].dh;}
+int fltk3::box_dh(fltk3::Boxtype t) {return fl_box_table[t&255].dh;}
/**
Sets the drawing function for a given box type.
@@ -404,29 +408,29 @@
\param[in] f box drawing function
*/
void fl_internal_boxtype(fltk3::Boxtype t, fltk3::BoxDrawF* f) {
- if (!fl_box_table[t].set) {
- fl_box_table[t].f = f;
- fl_box_table[t].set = 1;
+ if (!fl_box_table[t&255].set) {
+ fl_box_table[t&255].f = f;
+ fl_box_table[t&255].set = 1;
}
}
/** Gets the current box drawing function for the specified box type. */
fltk3::BoxDrawF *fltk3::get_boxtype(fltk3::Boxtype t) {
- return fl_box_table[t].f;
+ return fl_box_table[t&255].f;
}
/** Sets the function to call to draw a specific boxtype. */
void fltk3::set_boxtype(fltk3::Boxtype t, fltk3::BoxDrawF* f,
uchar a, uchar b, uchar c, uchar d) {
- fl_box_table[t].f = f;
- fl_box_table[t].set = 1;
- fl_box_table[t].dx = a;
- fl_box_table[t].dy = b;
- fl_box_table[t].dw = c;
- fl_box_table[t].dh = d;
+ fl_box_table[t&255].f = f;
+ fl_box_table[t&255].set = 1;
+ fl_box_table[t&255].dx = a;
+ fl_box_table[t&255].dy = b;
+ fl_box_table[t&255].dw = c;
+ fl_box_table[t&255].dh = d;
}
/** Copies the from boxtype. */
void fltk3::set_boxtype(fltk3::Boxtype to, fltk3::Boxtype from) {
- fl_box_table[to] = fl_box_table[from];
+ fl_box_table[to&255] = fl_box_table[from&255];
}
/**
@@ -436,7 +440,7 @@
\param[in] c color
*/
void fltk3::draw_box(fltk3::Boxtype t, int x, int y, int w, int h, fltk3::Color c) {
- if (t && fl_box_table[t].f) fl_box_table[t].f(x,y,w,h,c);
+ if (t && fl_box_table[t&255].f) fl_box_table[t&255].f(x,y,w,h,c,t);
}
//extern fltk3::Widget *fl_boxcheat; // hack set by fltk3::Window.cxx
@@ -463,7 +467,7 @@
/** Draws a box of type t, of color c at the position X,Y and size W,H. */
void fltk3::Widget::draw_box(fltk3::Boxtype t, int X, int Y, int W, int H, fltk3::Color c) const {
draw_it_active = active_r();
- fl_box_table[t].f(X, Y, W, H, c);
+ fl_box_table[t&255].f(X, Y, W, H, c, t);
draw_it_active = 1;
}
Modified: branches/branch-3.0/src/core/fl_diamond_box.cxx
===================================================================
--- branches/branch-3.0/src/core/fl_diamond_box.cxx 2011-08-24 13:51:27 UTC (rev 9001)
+++ branches/branch-3.0/src/core/fl_diamond_box.cxx 2011-08-24 19:24:48 UTC (rev 9002)
@@ -38,7 +38,7 @@
extern uchar* gray_ramp();
}
-void fl_diamond_up_box(int x,int y,int w,int h,fltk3::Color bgcolor) {
+void fl_diamond_up_box(int x,int y,int w,int h,fltk3::Color bgcolor, fltk3::Boxtype) {
w &= -2;
h &= -2;
int x1 = x+w/2;
@@ -54,7 +54,7 @@
fltk3::color(g['A']); fltk3::loop(x, y1, x1, y, x+w, y1, x1, y+h);
}
-void fl_diamond_down_box(int x,int y,int w,int h,fltk3::Color bgcolor) {
+void fl_diamond_down_box(int x,int y,int w,int h,fltk3::Color bgcolor, fltk3::Boxtype) {
w &= -2;
h &= -2;
int x1 = x+w/2;
Modified: branches/branch-3.0/src/core/fl_gtk.cxx
===================================================================
--- branches/branch-3.0/src/core/fl_gtk.cxx 2011-08-24 13:51:27 UTC (rev 9001)
+++ branches/branch-3.0/src/core/fl_gtk.cxx 2011-08-24 19:24:48 UTC (rev 9002)
@@ -37,20 +37,125 @@
extern void fl_internal_boxtype(fltk3::Boxtype, fltk3::BoxDrawF*);
+static const int tie_gap = 5;
+static const float tie_dk = 0.3f;
+static const float tie_lt = 0.45f;
+static const int use_tie_lt = 1;
+
+static fltk3::Color gtk_get_color(fltk3::Color c) {
+ if (fltk3::draw_box_active()) return c;
+ else return fltk3::inactive(c);
+}
+
static void gtk_color(fltk3::Color c) {
- if (fltk3::draw_box_active()) fltk3::color(c);
- else fltk3::color(fltk3::inactive(c));
+ fltk3::color(gtk_get_color(c));
}
+/*
+fltk3::color(hi);
+fltk3::yxline(x+1, y+2, b-2);
+fltk3::xyline(x+2, y+1, r-2);
+fltk3::color(ol);
+*/
-void fl_gtk_up_frame(int x, int y, int w, int h, fltk3::Color c) {
- gtk_color(fltk3::color_average(fltk3::WHITE, c, 0.5));
- fltk3::xyline(x + 2, y + 1, x + w - 3);
- fltk3::yxline(x + 1, y + 2, y + h - 3);
- gtk_color(fltk3::color_average(fltk3::BLACK, c, 0.5));
- fltk3::begin_loop();
+static void draw_frame(int x, int y, int w, int h, fltk3::Color c, fltk3::Color lt, fltk3::Color dk, fltk3::Boxtype t) {
+ float f = (dk==fltk3::WHITE) ? 0.2 : 0.5;
+ fltk3::Color ol = gtk_get_color(fltk3::color_average(fltk3::BLACK, c, f));
+ fltk3::Color hi = gtk_get_color(fltk3::color_average(lt, c, 0.5));
+ if (t & 0xff000000) {
+ int r = x+w-1, b = y+h-1, xr = x+w/2, yb = y+h/2;
+ fltk3::color(ol);
+ switch (t & (fltk3::TIE_LEFT|fltk3::TIE_TOP)) {
+ case 0:
+ fltk3::color(hi);
+ fltk3::yxline(x+1, y+2, yb);
+ fltk3::xyline(x+2, y+1, xr);
+ fltk3::color(ol);
+ fltk3::begin_line();
+ fltk3::vertex(x, yb);
+ fltk3::vertex(x, y+2);
+ fltk3::vertex(x+2, y);
+ fltk3::vertex(xr, y);
+ fltk3::end_line();
+ break;
+ case fltk3::TIE_LEFT:
+ fltk3::color(hi);
+ fltk3::xyline(x, y+1, xr);
+ fltk3::color(ol);
+ fltk3::xyline(x, y, xr);
+ break;
+ case fltk3::TIE_TOP:
+ fltk3::color(hi);
+ fltk3::yxline(x+1, y, yb);
+ fltk3::color(ol);
+ fltk3::yxline(x, yb, y);
+ }
+ switch (t & (fltk3::TIE_RIGHT|fltk3::TIE_TOP)) {
+ case 0:
+ fltk3::color(hi);
+ fltk3::xyline(xr, y+1, r-2);
+ fltk3::color(ol);
+ fltk3::begin_line();
+ fltk3::vertex(xr, y);
+ fltk3::vertex(r-2, y);
+ fltk3::vertex(r, y+2);
+ fltk3::vertex(r, yb);
+ fltk3::end_line();
+ break;
+ case fltk3::TIE_RIGHT:
+ fltk3::color(hi);
+ fltk3::xyline(xr, y+1, r);
+ fltk3::color(ol);
+ fltk3::xyline(xr, y, r);
+ break;
+ case fltk3::TIE_TOP:
+ fltk3::yxline(r, y, yb);
+ }
+ switch (t & (fltk3::TIE_RIGHT|fltk3::TIE_BOTTOM)) {
+ case 0:
+ fltk3::begin_line();
+ fltk3::vertex(r, yb);
+ fltk3::vertex(r, b-2);
+ fltk3::vertex(r-2, b);
+ fltk3::vertex(xr, b);
+ fltk3::end_line();
+ break;
+ case fltk3::TIE_RIGHT:
+ fltk3::xyline(xr, b, r);
+ break;
+ case fltk3::TIE_BOTTOM:
+ fltk3::yxline(r, yb, b);
+ }
+ switch (t & (fltk3::TIE_LEFT|fltk3::TIE_BOTTOM)) {
+ case 0:
+ fltk3::color(hi);
+ fltk3::yxline(x+1, yb, b-2);
+ fltk3::color(ol);
+ fltk3::begin_line();
+ fltk3::vertex(xr, b);
+ fltk3::vertex(x+2, b);
+ fltk3::vertex(x, b-2);
+ fltk3::vertex(x, yb);
+ fltk3::end_line();
+ break;
+ case fltk3::TIE_LEFT:
+ fltk3::xyline(x, b, xr);
+ break;
+ case fltk3::TIE_BOTTOM:
+ fltk3::color(hi);
+ fltk3::yxline(x+1, yb, b);
+ fltk3::color(ol);
+ fltk3::yxline(x, yb, b);
+ }
+ } else {
+ fltk3::color(hi);
+ fltk3::xyline(x + 2, y + 1, x + w - 3);
+ fltk3::yxline(x + 1, y + 2, y + h - 3);
+
+ fltk3::color(ol);
+ fltk3::begin_loop();
fltk3::vertex(x, y + 2);
fltk3::vertex(x + 2, y);
fltk3::vertex(x + w - 3, y);
@@ -59,32 +164,105 @@
fltk3::vertex(x + w - 3, y + h - 1);
fltk3::vertex(x + 2, y + h - 1);
fltk3::vertex(x, y + h - 3);
- fltk3::end_loop();
+ fltk3::end_loop();
+ }
}
+static void draw_box(int x, int y, int w, int h, fltk3::Color c, fltk3::Color lt, fltk3::Color dk, fltk3::Boxtype t) {
+ float f = (dk==fltk3::WHITE) ? 0.5 : 1.0;
+ draw_frame(x, y, w, h, c, lt, dk, t);
+ if (t & 0xff000000) {
+ int r = x+w-1, b = y+h-1;
+ int x2 = x+2, r2 = r-2;
+ int y2 = y+2, b2 = b-2;
+ if (t & fltk3::TIE_LEFT) x2 = x;
+ if (t & fltk3::TIE_RIGHT) r2 = r;
+ if (t & fltk3::TIE_TOP) {
+ y2 = y;
+ if (use_tie_lt) {
+ gtk_color(fltk3::color_average(fltk3::WHITE, c, tie_lt));
+ fltk3::xyline(x+tie_gap, y, r-tie_gap);
+ fltk3::color(c);
+ fltk3::xyline(x2, y, x+tie_gap-1);
+ fltk3::xyline(r-tie_gap+1, y, r2+1);
+ fltk3::rectf(x2, y+1, r2-x2+1, 4);
+ } else {
+ fltk3::color(c);
+ fltk3::rectf(x2, y, r2-x2+2, 5);
+ }
+ } else {
+ gtk_color(fltk3::color_average(lt, c, 0.4f*f));
+ fltk3::xyline(x2, y+2, r2);
+ gtk_color(fltk3::color_average(lt, c, 0.2f*f));
+ fltk3::xyline(x2, y+3, r2);
+ gtk_color(fltk3::color_average(lt, c, 0.1f*f));
+ fltk3::xyline(x2, y+4, r2);
+ }
+ gtk_color(c);
+ fltk3::rectf(x2, y + 5, r2-x2+1, h - 7);
+ if (t & fltk3::TIE_BOTTOM) {
+ b2 = b;
+ gtk_color(fltk3::color_average(fltk3::BLACK, c, tie_dk));
+ fltk3::xyline(x+tie_gap, b, r-tie_gap);
+ fltk3::color(c);
+ fltk3::xyline(x2, b, x+tie_gap-1);
+ fltk3::xyline(r-tie_gap+1, b, r2);
+ fltk3::rectf(x2, y+h-4, r2-x2+1, 3);
+ } else {
+ gtk_color(fltk3::color_average(dk, c, 0.025f/f));
+ fltk3::xyline(x2, b-3, r2);
+ gtk_color(fltk3::color_average(dk, c, 0.05f/f));
+ fltk3::xyline(x2, b-2, r2);
+ gtk_color(fltk3::color_average(dk, c, 0.1f/f));
+ fltk3::xyline(x2, b-1, r2);
+ }
+ if (t & fltk3::TIE_LEFT) {
+ if (use_tie_lt) {
+ gtk_color(fltk3::color_average(fltk3::WHITE, c, tie_lt));
+ fltk3::yxline(x, y+tie_gap, b-tie_gap);
+ //gtk_color(c);
+ //fltk3::yxline(x, y2, y+tie_gap-1);
+ //fltk3::yxline(x, b-tie_gap+1, b2);
+ }
+ }
+ if (t & fltk3::TIE_RIGHT) {
+ gtk_color(fltk3::color_average(fltk3::BLACK, c, tie_dk));
+ fltk3::yxline(r, y+tie_gap, b-tie_gap);
+ } else {
+ gtk_color(fltk3::color_average(dk, c, 0.1f));
+ fltk3::yxline(r-1, y2, b2);
+ }
+ } else {
+ gtk_color(fltk3::color_average(lt, c, 0.4f));
+ fltk3::xyline(x + 2, y + 2, x + w - 3);
+ gtk_color(fltk3::color_average(lt, c, 0.2f));
+ fltk3::xyline(x + 2, y + 3, x + w - 3);
+ gtk_color(fltk3::color_average(lt, c, 0.1f));
+ fltk3::xyline(x + 2, y + 4, x + w - 3);
+ gtk_color(c);
+ fltk3::rectf(x + 2, y + 5, w - 4, h - 7);
+ gtk_color(fltk3::color_average(dk, c, 0.025f));
+ fltk3::xyline(x + 2, y + h - 4, x + w - 3);
+ gtk_color(fltk3::color_average(dk, c, 0.05f));
+ fltk3::xyline(x + 2, y + h - 3, x + w - 3);
+ gtk_color(fltk3::color_average(dk, c, 0.1f));
+ fltk3::xyline(x + 2, y + h - 2, x + w - 3);
+ fltk3::yxline(x + w - 2, y + 2, y + h - 3);
+ }
+}
-void fl_gtk_up_box(int x, int y, int w, int h, fltk3::Color c) {
- fl_gtk_up_frame(x, y, w, h, c);
+void fl_gtk_up_frame(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype t) {
+ draw_frame(x, y, w, h, c, fltk3::WHITE, fltk3::BLACK, t);
+}
- gtk_color(fltk3::color_average(fltk3::WHITE, c, 0.4f));
- fltk3::xyline(x + 2, y + 2, x + w - 3);
- gtk_color(fltk3::color_average(fltk3::WHITE, c, 0.2f));
- fltk3::xyline(x + 2, y + 3, x + w - 3);
- gtk_color(fltk3::color_average(fltk3::WHITE, c, 0.1f));
- fltk3::xyline(x + 2, y + 4, x + w - 3);
- gtk_color(c);
- fltk3::rectf(x + 2, y + 5, w - 4, h - 7);
- gtk_color(fltk3::color_average(fltk3::BLACK, c, 0.025f));
- fltk3::xyline(x + 2, y + h - 4, x + w - 3);
- gtk_color(fltk3::color_average(fltk3::BLACK, c, 0.05f));
- fltk3::xyline(x + 2, y + h - 3, x + w - 3);
- gtk_color(fltk3::color_average(fltk3::BLACK, c, 0.1f));
- fltk3::xyline(x + 2, y + h - 2, x + w - 3);
- fltk3::yxline(x + w - 2, y + 2, y + h - 3);
+void fl_gtk_up_box(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype t) {
+ draw_box(x, y, w, h, c, fltk3::WHITE, fltk3::BLACK, t);
}
-
-void fl_gtk_down_frame(int x, int y, int w, int h, fltk3::Color c) {
+void fl_gtk_down_frame(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype t) {
+#if 1
+ draw_frame(x, y, w, h, c, fltk3::BLACK, fltk3::WHITE, t);
+#else
gtk_color(fltk3::color_average(fltk3::BLACK, c, 0.5));
fltk3::begin_loop();
fltk3::vertex(x, y + 2);
@@ -103,19 +281,24 @@
gtk_color(fltk3::color_average(fltk3::BLACK, c, 0.05f));
fltk3::yxline(x + 2, y + h - 2, y + 2, x + w - 2);
+#endif
}
-void fl_gtk_down_box(int x, int y, int w, int h, fltk3::Color c) {
- fl_gtk_down_frame(x, y, w, h, c);
+void fl_gtk_down_box(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype t) {
+#if 1
+ draw_box(x, y, w, h, c, fltk3::BLACK, fltk3::WHITE, t);
+#else
+ fl_gtk_down_frame(x, y, w, h, c, t);
gtk_color(c);
fltk3::rectf(x + 3, y + 3, w - 5, h - 4);
fltk3::yxline(x + w - 2, y + 3, y + h - 3);
+#endif
}
-void fl_gtk_thin_up_frame(int x, int y, int w, int h, fltk3::Color c) {
+void fl_gtk_thin_up_frame(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype) {
gtk_color(fltk3::color_average(fltk3::WHITE, c, 0.6f));
fltk3::xyline(x + 1, y, x + w - 2);
fltk3::yxline(x, y + 1, y + h - 2);
@@ -126,8 +309,8 @@
}
-void fl_gtk_thin_up_box(int x, int y, int w, int h, fltk3::Color c) {
- fl_gtk_thin_up_frame(x, y, w, h, c);
+void fl_gtk_thin_up_box(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype t) {
+ fl_gtk_thin_up_frame(x, y, w, h, c, t);
gtk_color(fltk3::color_average(fltk3::WHITE, c, 0.4f));
fltk3::xyline(x + 1, y + 1, x + w - 2);
@@ -146,7 +329,7 @@
}
-void fl_gtk_thin_down_frame(int x, int y, int w, int h, fltk3::Color c) {
+void fl_gtk_thin_down_frame(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype) {
gtk_color(fltk3::color_average(fltk3::BLACK, c, 0.4f));
fltk3::xyline(x + 1, y, x + w - 2);
fltk3::yxline(x, y + 1, y + h - 2);
@@ -157,8 +340,8 @@
}
-void fl_gtk_thin_down_box(int x, int y, int w, int h, fltk3::Color c) {
- fl_gtk_thin_down_frame(x, y, w, h, c);
+void fl_gtk_thin_down_box(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype t) {
+ fl_gtk_thin_down_frame(x, y, w, h, c, t);
gtk_color(c);
fltk3::rectf(x + 1, y + 1, w - 2, h - 2);
@@ -212,7 +395,7 @@
}
}
-void fl_gtk_round_up_box(int x, int y, int w, int h, fltk3::Color c) {
+void fl_gtk_round_up_box(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype) {
fltk3::color(c);
draw(FILL, x, y, w, h, 2);
@@ -243,7 +426,7 @@
draw(CLOSED, x, y, w, h, 0);
}
-void fl_gtk_round_down_box(int x, int y, int w, int h, fltk3::Color c) {
+void fl_gtk_round_down_box(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype) {
fltk3::color(c);
draw(FILL, x, y, w, h, 2);
@@ -260,7 +443,7 @@
#else
-void fl_gtk_round_up_box(int x, int y, int w, int h, fltk3::Color c) {
+void fl_gtk_round_up_box(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype) {
gtk_color(c);
fltk3::pie(x, y, w, h, 0.0, 360.0);
gtk_color(fltk3::color_average(fltk3::WHITE, c, 0.5f));
@@ -272,7 +455,7 @@
}
-void fl_gtk_round_down_box(int x, int y, int w, int h, fltk3::Color c) {
+void fl_gtk_round_down_box(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype) {
gtk_color(c);
fltk3::pie(x, y, w, h, 0.0, 360.0);
gtk_color(fltk3::color_average(fltk3::BLACK, c, 0.2));
Modified: branches/branch-3.0/src/core/fl_oval_box.cxx
===================================================================
--- branches/branch-3.0/src/core/fl_oval_box.cxx 2011-08-24 13:51:27 UTC (rev 9001)
+++ branches/branch-3.0/src/core/fl_oval_box.cxx 2011-08-24 19:24:48 UTC (rev 9002)
@@ -32,24 +32,24 @@
#include <fltk3/run.h>
#include <fltk3/draw.h>
-void fl_oval_flat_box(int x, int y, int w, int h, fltk3::Color c) {
+void fl_oval_flat_box(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype) {
fltk3::color(c);
fltk3::pie(x, y, w, h, 0, 360);
}
-void fl_oval_frame(int x, int y, int w, int h, fltk3::Color c) {
+void fl_oval_frame(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype) {
fltk3::color(c);
fltk3::arc(x, y, w, h, 0, 360);
}
-void fl_oval_box(int x, int y, int w, int h, fltk3::Color c) {
- fl_oval_flat_box(x,y,w,h,c);
- fl_oval_frame(x,y,w,h,fltk3::BLACK);
+void fl_oval_box(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype t) {
+ fl_oval_flat_box(x,y,w,h,c,t);
+ fl_oval_frame(x,y,w,h,fltk3::BLACK,t);
}
-void fl_oval_shadow_box(int x, int y, int w, int h, fltk3::Color c) {
- fl_oval_flat_box(x+3,y+3,w,h,fltk3::DARK3);
- fl_oval_box(x,y,w,h,c);
+void fl_oval_shadow_box(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype t) {
+ fl_oval_flat_box(x+3,y+3,w,h,fltk3::DARK3,t);
+ fl_oval_box(x,y,w,h,c,t);
}
//
Modified: branches/branch-3.0/src/core/fl_plastic.cxx
===================================================================
--- branches/branch-3.0/src/core/fl_plastic.cxx 2011-08-24 13:51:27 UTC (rev 9001)
+++ branches/branch-3.0/src/core/fl_plastic.cxx 2011-08-24 19:24:48 UTC (rev 9002)
@@ -282,7 +282,7 @@
}
-void fl_plastic_up_frame(int x, int y, int w, int h, fltk3::Color c) {
+void fl_plastic_up_frame(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype) {
frame_rect(x, y, w, h - 1, "KLDIIJLM", c);
}
@@ -304,7 +304,7 @@
}
-void fl_plastic_thin_up_box(int x, int y, int w, int h, fltk3::Color c) {
+void fl_plastic_thin_up_box(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype) {
#ifdef USE_OLD_PLASTIC_BOX
shade_rect(x + 2, y + 2, w - 4, h - 5, "RVQNOPQRSTUVWVQ", c);
up_frame(x, y, w, h, c);
@@ -319,7 +319,7 @@
}
-void fl_plastic_up_box(int x, int y, int w, int h, fltk3::Color c) {
+void fl_plastic_up_box(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype t) {
#ifdef USE_OLD_PLASTIC_BOX
shade_rect(x + 2, y + 2, w - 4, h - 5, "RVQNOPQRSTUVWVQ", c);
up_frame(x, y, w, h, c);
@@ -328,27 +328,27 @@
shade_rect(x + 1, y + 1, w - 2, h - 3, "RVQNOPQRSTUVWVQ", c);
frame_rect(x, y, w, h - 1, "IJLM", c);
} else {
- fl_plastic_thin_up_box(x, y, w, h, c);
+ fl_plastic_thin_up_box(x, y, w, h, c, t);
}
#endif // USE_OLD_PLASTIC_BOX
}
-void fl_plastic_up_round(int x, int y, int w, int h, fltk3::Color c) {
+void fl_plastic_up_round(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype) {
shade_round(x, y, w, h, "RVQNOPQRSTUVWVQ", c);
frame_round(x, y, w, h, "IJLM", c);
}
-void fl_plastic_down_frame(int x, int y, int w, int h, fltk3::Color c) {
+void fl_plastic_down_frame(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype) {
frame_rect(x, y, w, h - 1, "LLLLTTRR", c);
}
-void fl_plastic_down_box(int x, int y, int w, int h, fltk3::Color c) {
+void fl_plastic_down_box(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype t) {
if (w > 6 && h > 6) {
shade_rect(x + 2, y + 2, w - 4, h - 5, "STUVWWWVT", c);
- fl_plastic_down_frame(x, y, w, h, c);
+ fl_plastic_down_frame(x, y, w, h, c, t);
}
else {
narrow_thin_box(x, y, w, h, c);
@@ -356,7 +356,7 @@
}
-void fl_plastic_down_round(int x, int y, int w, int h, fltk3::Color c) {
+void fl_plastic_down_round(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype) {
shade_round(x, y, w, h, "STUVWWWVT", c);
frame_round(x, y, w, h, "IJLM", c);
}
Modified: branches/branch-3.0/src/core/fl_round_box.cxx
===================================================================
--- branches/branch-3.0/src/core/fl_round_box.cxx 2011-08-24 13:51:27 UTC (rev 9001)
+++ branches/branch-3.0/src/core/fl_round_box.cxx 2011-08-24 19:24:48 UTC (rev 9002)
@@ -87,7 +87,7 @@
fltk3::line_style(0);
}
-void fl_classic_round_down_box(int x, int y, int w, int h, fltk3::Color bgcolor) {
+void fl_classic_round_down_box(int x, int y, int w, int h, fltk3::Color bgcolor, fltk3::Boxtype) {
uchar *g = fltk3::gray_ramp();
draw(FILL, x, y, w, h, 2, bgcolor);
draw(UPPER_LEFT, x+1, y, w-2, h, 0, (fltk3::Color)g['N']);
@@ -101,7 +101,7 @@
draw(CLOSED, x, y, w, h, 2, (fltk3::Color)g['A']);
}
-void fl_classic_round_up_box(int x, int y, int w, int h, fltk3::Color bgcolor) {
+void fl_classic_round_up_box(int x, int y, int w, int h, fltk3::Color bgcolor, fltk3::Boxtype) {
uchar *g = fltk3::gray_ramp();
draw(FILL, x, y, w, h, 2, bgcolor);
draw(LOWER_RIGHT, x+1, y, w-2, h, 0, (fltk3::Color)g['H']);
Modified: branches/branch-3.0/src/core/fl_rounded_box.cxx
===================================================================
--- branches/branch-3.0/src/core/fl_rounded_box.cxx 2011-08-24 13:51:27 UTC (rev 9001)
+++ branches/branch-3.0/src/core/fl_rounded_box.cxx 2011-08-24 19:24:48 UTC (rev 9002)
@@ -54,26 +54,26 @@
if (fill) fltk3::end_polygon(); else fltk3::end_loop();
}
-void fl_rflat_box(int x, int y, int w, int h, fltk3::Color c) {
+void fl_rflat_box(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype) {
fltk3::color(c); rbox(1, x, y, w, h); rbox(0, x, y, w, h);
}
-void fl_rounded_frame(int x, int y, int w, int h, fltk3::Color c) {
+void fl_rounded_frame(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype) {
fltk3::color(c); rbox(0, x, y, w, h);
}
-void fl_rounded_box(int x, int y, int w, int h, fltk3::Color c) {
+void fl_rounded_box(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype) {
fltk3::color(c); rbox(1, x, y, w, h);
fltk3::color(fltk3::BLACK); rbox(0, x, y, w, h);
}
-void fl_rshadow_box(int x, int y, int w, int h, fltk3::Color c) {
+void fl_rshadow_box(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype t) {
// draw shadow:
fltk3::color(fltk3::DARK3);
rbox(1, x+BW, y+BW, w, h);
rbox(0, x+BW, y+BW, w, h);
// draw the box:
- fl_rounded_box(x, y, w, h, c);
+ fl_rounded_box(x, y, w, h, c, t);
}
//
Modified: branches/branch-3.0/src/core/fl_shadow_box.cxx
===================================================================
--- branches/branch-3.0/src/core/fl_shadow_box.cxx 2011-08-24 13:51:27 UTC (rev 9001)
+++ branches/branch-3.0/src/core/fl_shadow_box.cxx 2011-08-24 19:24:48 UTC (rev 9002)
@@ -30,7 +30,7 @@
#define BW 3
-void fl_shadow_frame(int x, int y, int w, int h, fltk3::Color c) {
+void fl_shadow_frame(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype) {
fltk3::color(fltk3::DARK3);
fltk3::rectf(x+BW, y+h-BW, w - BW, BW);
fltk3::rectf(x+w-BW, y+BW, BW, h - BW);
@@ -38,10 +38,10 @@
fltk3::rect(x,y,w-BW,h-BW);
}
-void fl_shadow_box(int x, int y, int w, int h, fltk3::Color c) {
+void fl_shadow_box(int x, int y, int w, int h, fltk3::Color c, fltk3::Boxtype t) {
fltk3::color(c);
fltk3::rectf(x+1,y+1,w-2-BW,h-2-BW);
- fl_shadow_frame(x,y,w,h,fltk3::GRAY0);
+ fl_shadow_frame(x,y,w,h,fltk3::GRAY0,t);
}
Modified: branches/branch-3.0/test/input.cxx
===================================================================
--- branches/branch-3.0/test/input.cxx 2011-08-24 13:51:27 UTC (rev 9001)
+++ branches/branch-3.0/test/input.cxx 2011-08-24 19:24:48 UTC (rev 9002)
@@ -95,7 +95,8 @@
// calling fltk3::contrast below will return good results
fltk3::args(argc, argv);
fltk3::get_system_colors();
- fltk3::Window *window = new fltk3::Window(400,420);
+ fltk3::Window *window = new fltk3::Window(400,425);
+ window->color(0x99bb9900);
int y = 10;
input[0] = new fltk3::Input(70,y,300,30,"Normal:"); y += 35;
@@ -122,27 +123,35 @@
fltk3::Button *b;
b = new fltk3::ToggleButton(10,y,200,25,"fltk3::WHEN_CHANGED");
+ b->box(fltk3::Boxtype(fltk3::TIE_BOTTOM|fltk3::UP_BOX));
b->callback(toggle_cb, fltk3::WHEN_CHANGED); y += 25;
b->tooltip("Do callback each time the text changes");
b = new fltk3::ToggleButton(10,y,200,25,"fltk3::WHEN_RELEASE");
+ b->box(fltk3::Boxtype(fltk3::TIE_BOTTOM|fltk3::TIE_TOP|fltk3::UP_BOX));
b->callback(toggle_cb, fltk3::WHEN_RELEASE); y += 25;
b->tooltip("Do callback when widget loses focus");
b = new fltk3::ToggleButton(10,y,200,25,"fltk3::WHEN_ENTER_KEY");
+ b->box(fltk3::Boxtype(fltk3::TIE_BOTTOM|fltk3::TIE_TOP|fltk3::UP_BOX));
b->callback(toggle_cb, fltk3::WHEN_ENTER_KEY); y += 25;
b->tooltip("Do callback when user hits Enter key");
b = new fltk3::ToggleButton(10,y,200,25,"fltk3::WHEN_NOT_CHANGED");
+ b->box(fltk3::Boxtype(fltk3::TIE_TOP|fltk3::UP_BOX));
b->callback(toggle_cb, fltk3::WHEN_NOT_CHANGED); y += 25;
b->tooltip("Do callback even if the text is not changed");
y += 5;
+
b = new fltk3::Button(10,y,200,25,"&print changed()"); y += 25;
b->callback(button_cb);
b->tooltip("Print widgets that have changed() flag set");
+ y += 5;
b = new fltk3::LightButton(10,y,100,25," Tab Nav");
+ b->box(fltk3::Boxtype(fltk3::TIE_RIGHT|fltk3::UP_BOX));
b->tooltip("Control tab navigation for the multiline input field");
b->callback(tabnav_cb, (void*)input[4]);
b->value(input[4]->tab_nav() ? 1 : 0);
b = new fltk3::LightButton(110,y,100,25," Arrow Nav"); y += 25;
+ b->box(fltk3::Boxtype(fltk3::TIE_LEFT|fltk3::UP_BOX));
b->tooltip("Control horizontal arrow key focus navigation behavior.\n"
"e.g. fltk3::OPTION_ARROW_FOCUS");
b->callback(arrownav_cb);
@@ -150,13 +159,16 @@
b->value(fltk3::option(fltk3::OPTION_ARROW_FOCUS) ? 1 : 0);
b = new fltk3::Button(220,y1,120,25,"color"); y1 += 25;
+ b->box(fltk3::Boxtype(fltk3::TIE_BOTTOM|fltk3::UP_BOX));
b->color(input[0]->color()); b->callback(color_cb, (void*)0);
b->tooltip("Color behind the text");
b = new fltk3::Button(220,y1,120,25,"selection_color"); y1 += 25;
+ b->box(fltk3::Boxtype(fltk3::TIE_BOTTOM|fltk3::TIE_TOP|fltk3::UP_BOX));
b->color(input[0]->selection_color()); b->callback(color_cb, (void*)1);
b->labelcolor(fltk3::contrast(fltk3::BLACK,b->color()));
b->tooltip("Color behind selected text");
b = new fltk3::Button(220,y1,120,25,"textcolor"); y1 += 25;
+ b->box(fltk3::Boxtype(fltk3::TIE_TOP|fltk3::UP_BOX));
b->color(input[0]->textcolor()); b->callback(color_cb, (void*)2);
b->labelcolor(fltk3::contrast(fltk3::BLACK,b->color()));
b->tooltip("Color of the text");
[ Direct Link to Message ] | |