diff options
Diffstat (limited to 'src/fl_boxtype.cxx')
| -rw-r--r-- | src/fl_boxtype.cxx | 223 |
1 files changed, 135 insertions, 88 deletions
diff --git a/src/fl_boxtype.cxx b/src/fl_boxtype.cxx index cdd396eaf..5d81fae10 100644 --- a/src/fl_boxtype.cxx +++ b/src/fl_boxtype.cxx @@ -324,6 +324,62 @@ void fl_border_frame(int x, int y, int w, int h, Fl_Color c) { fl_rect(x, y, w, h); } +void fl_rounded_focus(Fl_Boxtype bt, int x, int y, int w, int h, Fl_Color fg, Fl_Color bg); +void fl_round_focus(Fl_Boxtype, int, int, int, int, Fl_Color, Fl_Color); +void fl_diamond_focus(Fl_Boxtype, int, int, int, int, Fl_Color, Fl_Color); + +void fl_shadow_frame(int x, int y, int w, int h, Fl_Color c); +void fl_shadow_box(int x, int y, int w, int h, Fl_Color c); +void fl_rounded_box(int x, int y, int w, int h, Fl_Color c); +void fl_rshadow_box(int x, int y, int w, int h, Fl_Color c); +void fl_rounded_frame(int x, int y, int w, int h, Fl_Color c); +void fl_rflat_box(int x, int y, int w, int h, Fl_Color c); +void fl_round_up_box(int x, int y, int w, int h, Fl_Color bgcolor); +void fl_round_down_box(int x, int y, int w, int h, Fl_Color bgcolor); +void fl_diamond_up_box(int x,int y,int w,int h,Fl_Color bgcolor); +void fl_diamond_down_box(int x,int y,int w,int h,Fl_Color bgcolor); +void fl_oval_focus(Fl_Boxtype bt, int x, int y, int w, int h, Fl_Color fg, Fl_Color bg); +void fl_oval_shadow_box(int x, int y, int w, int h, Fl_Color c); +void fl_oval_box(int x, int y, int w, int h, Fl_Color c); +void fl_oval_frame(int x, int y, int w, int h, Fl_Color c); +void fl_oval_flat_box(int x, int y, int w, int h, Fl_Color c); +void fl_plastic_up_box(int x, int y, int w, int h, Fl_Color c); +void fl_plastic_up_round(int x, int y, int w, int h, Fl_Color c); +void fl_plastic_down_frame(int x, int y, int w, int h, Fl_Color c); +void fl_plastic_down_box(int x, int y, int w, int h, Fl_Color c); +void fl_plastic_down_round(int x, int y, int w, int h, Fl_Color c); +void fl_plastic_up_frame(int x, int y, int w, int h, Fl_Color c); +void fl_plastic_thin_up_box(int x, int y, int w, int h, Fl_Color c); +void fl_gtk_up_frame(int x, int y, int w, int h, Fl_Color c); +void fl_gtk_up_box(int x, int y, int w, int h, Fl_Color c); +void fl_gtk_down_frame(int x, int y, int w, int h, Fl_Color c); +void fl_gtk_down_box(int x, int y, int w, int h, Fl_Color c); +void fl_gtk_thin_up_frame(int x, int y, int w, int h, Fl_Color c); +void fl_gtk_thin_up_box(int x, int y, int w, int h, Fl_Color c); +void fl_gtk_thin_down_frame(int x, int y, int w, int h, Fl_Color c); +void fl_gtk_thin_down_box(int x, int y, int w, int h, Fl_Color c); +void fl_gtk_round_up_box(int x, int y, int w, int h, Fl_Color c); +void fl_gtk_round_down_box(int x, int y, int w, int h, Fl_Color c); +void fl_gleam_up_frame(int x, int y, int w, int h, Fl_Color c); +void fl_gleam_up_box(int x, int y, int w, int h, Fl_Color c); +void fl_gleam_thin_up_box(int x, int y, int w, int h, Fl_Color c); +void fl_gleam_down_frame(int x, int y, int w, int h, Fl_Color c); +void fl_gleam_down_box(int x, int y, int w, int h, Fl_Color c); +void fl_gleam_thin_down_box(int x, int y, int w, int h, Fl_Color c); +void fl_oxy_button_up_box(int x, int y, int w, int h, Fl_Color col); +void fl_oxy_button_down_box(int x, int y, int w, int h, Fl_Color col); +void fl_oxy_up_box(int x, int y, int w, int h, Fl_Color col); +void fl_oxy_down_box(int x, int y, int w, int h, Fl_Color col); +void fl_oxy_thin_up_box(int x, int y, int w, int h, Fl_Color col); +void fl_oxy_thin_down_box(int x, int y, int w, int h, Fl_Color col); +void fl_oxy_up_frame(int x, int y, int w, int h, Fl_Color col); +void fl_oxy_down_frame(int x, int y, int w, int h, Fl_Color col); +void fl_oxy_thin_up_frame(int x, int y, int w, int h, Fl_Color col); +void fl_oxy_thin_down_frame(int x, int y, int w, int h, Fl_Color col); +void fl_oxy_round_up_box(int x, int y, int w, int h, Fl_Color col); +void fl_oxy_round_down_box(int x, int y, int w, int h, Fl_Color col); + + // ///////////////////////////////////////////////////////////////////// // Up to FLTK 1.4 the 6th element of the following struct was named 'set' // and could only be 0 or 1: whether the boxtype was "set" or not. @@ -349,82 +405,82 @@ static struct { bool bg() { return !(flags & 2); } } fl_box_table[FL_MAX_BOXTYPE+1] = { // must match list in Enumerations.H !!! - {fl_no_box, 0,0,0,0,3}, // FL_NO_BOX - {fl_flat_box, 0,0,0,0,1}, // FL_FLAT_BOX - {fl_up_box, D1,D1,D2,D2,1}, // FL_UP_BOX - {fl_down_box, D1,D1,D2,D2,1}, // FL_DOWN_BOX - {fl_up_frame, D1,D1,D2,D2,3}, // FL_UP_FRAME - {fl_down_frame, D1,D1,D2,D2,3}, // FL_DOWN_FRAME - {fl_thin_up_box, 1,1,2,2,1}, // FL_THIN_UP_BOX - {fl_thin_down_box, 1,1,2,2,1}, // FL_THIN_DOWN_BOX, - {fl_thin_up_frame, 1,1,2,2,3}, // FL_THIN_UP_FRAME, - {fl_thin_down_frame, 1,1,2,2,3}, // FL_THIN_DOWN_FRAME, - {fl_engraved_box, 2,2,4,4,1}, // FL_ENGRAVED_BOX, - {fl_embossed_box, 2,2,4,4,1}, // FL_EMBOSSED_BOX, - {fl_engraved_frame, 2,2,4,4,3}, // FL_ENGRAVED_FRAME - {fl_embossed_frame, 2,2,4,4,3}, // FL_EMBOSSED_FRAME - {fl_border_box, 1,1,2,2,1}, // FL_BORDER_BOX - {fl_border_box, 1,1,5,5,0}, // _FL_SHADOW_BOX - {fl_border_frame, 1,1,2,2,3}, // FL_BORDER_FRAME, - {fl_border_frame, 1,1,5,5,2}, // _FL_SHADOW_FRAME - {fl_border_box, 1,1,2,2,0}, // _FL_ROUNDED_BOX - {fl_border_box, 1,1,2,2,0}, // _FL_RSHADOW_BOX - {fl_border_frame, 1,1,2,2,2}, // _FL_ROUNDED_FRAME - {fl_flat_box, 0,0,0,0,0}, // _FL_RFLAT_BOX - {fl_up_box, 3,3,6,6,0}, // _FL_ROUND_UP_BOX - {fl_down_box, 3,3,6,6,0}, // _FL_ROUND_DOWN_BOX - {fl_up_box, 0,0,0,0,0}, // _FL_DIAMOND_UP_BOX - {fl_down_box, 0,0,0,0,0}, // _FL_DIAMOND_DOWN_BOX - {fl_border_box, 1,1,2,2,0}, // _FL_OVAL_BOX - {fl_border_box, 1,1,2,2,0}, // _FL_OVAL_SHADOW_BOX - {fl_border_frame, 1,1,2,2,2}, // _FL_OVAL_FRAME - {fl_flat_box, 0,0,0,0,0}, // _FL_OVAL_FLAT_BOX - {fl_up_box, 2,2,4,4,0}, // _FL_PLASTIC_UP_BOX - {fl_down_box, 2,2,4,4,0}, // _FL_PLASTIC_DOWN_BOX - {fl_up_frame, 2,2,4,4,2}, // _FL_PLASTIC_UP_FRAME - {fl_down_frame, 2,2,4,4,2}, // _FL_PLASTIC_DOWN_FRAME - {fl_up_box, 2,2,4,4,0}, // _FL_PLASTIC_THIN_UP_BOX - {fl_down_box, 2,2,4,4,0}, // _FL_PLASTIC_THIN_DOWN_BOX - {fl_up_box, 2,2,4,4,0}, // _FL_PLASTIC_ROUND_UP_BOX - {fl_down_box, 2,2,4,4,0}, // _FL_PLASTIC_ROUND_DOWN_BOX - {fl_up_box, 2,2,4,4,0}, // _FL_GTK_UP_BOX - {fl_down_box, 2,2,4,4,0}, // _FL_GTK_DOWN_BOX - {fl_up_frame, 2,2,4,4,2}, // _FL_GTK_UP_FRAME - {fl_down_frame, 2,2,4,4,2}, // _FL_GTK_DOWN_FRAME - {fl_up_frame, 1,1,2,2,2}, // _FL_GTK_THIN_UP_FRAME - {fl_down_frame, 1,1,2,2,2}, // _FL_GTK_THIN_DOWN_FRAME - {fl_up_box, 1,1,2,2,0}, // _FL_GTK_THIN_ROUND_UP_BOX - {fl_down_box, 1,1,2,2,0}, // _FL_GTK_THIN_ROUND_DOWN_BOX - {fl_up_box, 2,2,4,4,0}, // _FL_GTK_ROUND_UP_BOX - {fl_down_box, 2,2,4,4,0}, // _FL_GTK_ROUND_DOWN_BOX - {fl_up_box, 2,2,4,4,0}, // _FL_GLEAM_UP_BOX - {fl_down_box, 2,2,4,4,0}, // _FL_GLEAM_DOWN_BOX - {fl_up_frame, 2,2,4,4,2}, // _FL_GLEAM_UP_FRAME - {fl_down_frame, 2,2,4,4,2}, // _FL_GLEAM_DOWN_FRAME - {fl_up_box, 2,2,4,4,0}, // _FL_GLEAM_THIN_UP_BOX - {fl_down_box, 2,2,4,4,0}, // _FL_GLEAM_THIN_DOWN_BOX - {fl_up_box, 2,2,4,4,0}, // _FL_GLEAM_ROUND_UP_BOX - {fl_down_box, 2,2,4,4,0}, // _FL_GLEAM_ROUND_DOWN_BOX - {fl_up_box, 2,2,4,4,0}, // _FL_OXY_UP_BOX, - {fl_down_box, 2,2,4,4,0}, // _FL_OXY_DOWN_BOX, - {fl_up_frame, 2,2,4,4,2}, // _FL_OXY_UP_FRAME, - {fl_down_frame, 2,2,4,4,2}, // _FL_OXY_DOWN_FRAME, - {fl_thin_up_box, 1,1,2,2,0}, // _FL_OXY_THIN_UP_BOX, - {fl_thin_down_box, 1,1,2,2,0}, // _FL_OXY_THIN_DOWN_BOX, - {fl_thin_up_frame, 1,1,2,2,2}, // _FL_OXY_THIN_UP_FRAME, - {fl_thin_down_frame, 1,1,2,2,2}, // _FL_OXY_THIN_DOWN_FRAME, - {fl_up_box, 2,2,4,4,0}, // _FL_OXY_ROUND_UP_BOX, - {fl_down_box, 2,2,4,4,0}, // _FL_OXY_ROUND_DOWN_BOX, - {fl_up_box, 2,2,4,4,0}, // _FL_OXY_BUTTON_UP_BOX, - {fl_down_box, 2,2,4,4,0}, // _FL_OXY_BUTTON_DOWN_BOX, - {fl_up_box, 3,3,6,6,0}, // FL_FREE_BOX+0 - {fl_down_box, 3,3,6,6,0}, // FL_FREE_BOX+1 - {fl_up_box, 3,3,6,6,0}, // FL_FREE_BOX+2 - {fl_down_box, 3,3,6,6,0}, // FL_FREE_BOX+3 - {fl_up_box, 3,3,6,6,0}, // FL_FREE_BOX+4 - {fl_down_box, 3,3,6,6,0}, // FL_FREE_BOX+5 - {fl_up_box, 3,3,6,6,0}, // FL_FREE_BOX+6 - {fl_down_box, 3,3,6,6,0} // FL_FREE_BOX+7 + { fl_no_box, 0, 0, 0, 0, 3 }, // FL_NO_BOX + { fl_flat_box, 0, 0, 0, 0, 1 }, // FL_FLAT_BOX + { fl_up_box, D1, D1, D2, D2, 1 }, // FL_UP_BOX + { fl_down_box, D1, D1, D2, D2, 1 }, // FL_DOWN_BOX + { fl_up_frame, D1, D1, D2, D2, 3 }, // FL_UP_FRAME + { fl_down_frame, D1, D1, D2, D2, 3 }, // FL_DOWN_FRAME + { fl_thin_up_box, 1, 1, 2, 2, 1 }, // FL_THIN_UP_BOX + { fl_thin_down_box, 1, 1, 2, 2, 1 }, // FL_THIN_DOWN_BOX, + { fl_thin_up_frame, 1, 1, 2, 2, 3 }, // FL_THIN_UP_FRAME, + { fl_thin_down_frame, 1, 1, 2, 2, 3 }, // FL_THIN_DOWN_FRAME, + { fl_engraved_box, 2, 2, 4, 4, 1 }, // FL_ENGRAVED_BOX, + { fl_embossed_box, 2, 2, 4, 4, 1 }, // FL_EMBOSSED_BOX, + { fl_engraved_frame, 2, 2, 4, 4, 3 }, // FL_ENGRAVED_FRAME + { fl_embossed_frame, 2, 2, 4, 4, 3 }, // FL_EMBOSSED_FRAME + { fl_border_box, 1, 1, 2, 2, 1 }, // FL_BORDER_BOX + { fl_shadow_box, 1, 1, 5, 5, 1 }, // FL_SHADOW_BOX + { fl_border_frame, 1, 1, 2, 2, 3 }, // FL_BORDER_FRAME, + { fl_shadow_frame, 1, 1, 5, 5, 3 }, // FL_SHADOW_FRAME + { fl_rounded_box, 1, 1, 2, 2, 1, fl_rounded_focus }, // FL_ROUNDED_BOX + { fl_rshadow_box, 1, 1, 2, 2, 1, fl_rounded_focus }, // FL_RSHADOW_BOX + { fl_rounded_frame, 1, 1, 2, 2, 3, fl_rounded_focus }, // FL_ROUNDED_FRAME + { fl_rflat_box, 0, 0, 0, 0, 1, fl_rounded_focus }, // FL_RFLAT_BOX + { fl_round_up_box, 3, 3, 6, 6, 1, fl_round_focus }, // FL_ROUND_UP_BOX + { fl_round_down_box, 3, 3, 6, 6, 1, fl_round_focus }, // FL_ROUND_DOWN_BOX + { fl_diamond_up_box, 0, 0, 0, 0, 1, fl_diamond_focus }, // FL_DIAMOND_UP_BOX + { fl_diamond_down_box, 0, 0, 0, 0, 1, fl_diamond_focus }, // FL_DIAMOND_DOWN_BOX + { fl_oval_box, 1, 1, 2, 2, 1, fl_oval_focus }, // FL_OVAL_BOX + { fl_oval_shadow_box, 1, 1, 2, 2, 1, fl_oval_focus }, // FL_OSHADOW_BOX + { fl_oval_frame, 1, 1, 2, 2, 2, fl_oval_focus }, // FL_OVAL_FRAME + { fl_oval_flat_box, 0, 0, 0, 0, 1, fl_oval_focus }, // FL_OFLAT_BOX + { fl_plastic_up_box, 2, 2, 4, 4, 1 }, // _FL_PLASTIC_UP_BOX + { fl_plastic_down_box, 2, 2, 4, 4, 1 }, // _FL_PLASTIC_DOWN_BOX + { fl_plastic_up_frame, 2, 2, 4, 4, 3 }, // _FL_PLASTIC_UP_FRAME + { fl_plastic_down_frame, 2, 2, 4, 4, 3 }, // _FL_PLASTIC_DOWN_FRAME + { fl_plastic_thin_up_box, 2, 2, 4, 4, 1 }, // _FL_PLASTIC_THIN_UP_BOX + { fl_plastic_down_box, 2, 2, 4, 4, 1 }, // _FL_PLASTIC_THIN_DOWN_BOX + { fl_plastic_up_round, 2, 2, 4, 4, 1, fl_round_focus }, // _FL_PLASTIC_ROUND_UP_BOX + { fl_plastic_down_round, 2, 2, 4, 4, 1, fl_round_focus }, // _FL_PLASTIC_ROUND_DOWN_BOX + { fl_gtk_up_box, 2, 2, 4, 4, 1 }, // _FL_GTK_UP_BOX + { fl_gtk_down_box, 2, 2, 4, 4, 1 }, // _FL_GTK_DOWN_BOX + { fl_gtk_up_frame, 2, 2, 4, 4, 3 }, // _FL_GTK_UP_FRAME + { fl_gtk_down_frame, 2, 2, 4, 4, 3 }, // _FL_GTK_DOWN_FRAME + { fl_gtk_thin_up_box, 1, 1, 2, 2, 3 }, // FL_GTK_THIN_UP_BOX + { fl_gtk_thin_down_box, 1, 1, 2, 2, 3 }, // FL_GTK_THIN_DOWN_BOX + { fl_gtk_thin_up_frame, 1, 1, 2, 2, 1 }, // FL_GTK_THIN_UP_FRAME + { fl_gtk_thin_down_frame, 1, 1, 2, 2, 1 }, // FL_GTK_THIN_DOWN_FRAME + { fl_gtk_round_up_box, 2, 2, 4, 4, 1, fl_round_focus }, // FL_GTK_ROUND_UP_BOX + { fl_gtk_round_down_box, 2, 2, 4, 4, 1, fl_round_focus }, // FL_GTK_ROUND_DOWN_BOX + { fl_gleam_up_box, 2, 2, 4, 4, 1 }, // _FL_GLEAM_UP_BOX + { fl_gleam_down_box, 2, 2, 4, 4, 1 }, // _FL_GLEAM_DOWN_BOX + { fl_gleam_up_frame, 2, 2, 4, 4, 3 }, // _FL_GLEAM_UP_FRAME + { fl_gleam_down_frame, 2, 2, 4, 4, 3 }, // _FL_GLEAM_DOWN_FRAME + { fl_gleam_thin_up_box, 2, 2, 4, 4, 1 }, // _FL_GLEAM_THIN_UP_BOX + { fl_gleam_thin_down_box, 2, 2, 4, 4, 1 }, // _FL_GLEAM_THIN_DOWN_BOX + { fl_gleam_up_box, 2, 2, 4, 4, 1 }, // _FL_GLEAM_ROUND_UP_BOX + { fl_gleam_down_box, 2, 2, 4, 4, 1 }, // _FL_GLEAM_ROUND_DOWN_BOX + { fl_oxy_up_box, 2, 2, 4, 4, 1 }, // _FL_OXY_UP_BOX, + { fl_oxy_down_box, 2, 2, 4, 4, 1 }, // _FL_OXY_DOWN_BOX, + { fl_oxy_up_frame, 2, 2, 4, 4, 3 }, // _FL_OXY_UP_FRAME, + { fl_oxy_down_frame, 2, 2, 4, 4, 3 }, // _FL_OXY_DOWN_FRAME, + { fl_oxy_thin_up_box, 1, 1, 2, 2, 1 }, // _FL_OXY_THIN_UP_BOX, + { fl_oxy_thin_down_box, 1, 1, 2, 2, 1 }, // _FL_OXY_THIN_DOWN_BOX, + { fl_oxy_thin_up_frame, 1, 1, 2, 2, 3 }, // _FL_OXY_THIN_UP_FRAME, + { fl_oxy_thin_down_frame, 1, 1, 2, 2, 3 }, // _FL_OXY_THIN_DOWN_FRAME, + { fl_oxy_round_up_box, 2, 2, 4, 4, 1, fl_round_focus }, // _FL_OXY_ROUND_UP_BOX, + { fl_oxy_round_down_box, 2, 2, 4, 4, 1, fl_round_focus }, // _FL_OXY_ROUND_DOWN_BOX, + { fl_oxy_button_up_box, 2, 2, 4, 4, 1 }, // _FL_OXY_BUTTON_UP_BOX, + { fl_oxy_button_down_box, 2, 2, 4, 4, 1 }, // _FL_OXY_BUTTON_DOWN_BOX, + { fl_up_box, 3, 3, 6, 6, 1 }, // FL_FREE_BOX+0 + { fl_down_box, 3, 3, 6, 6, 1 }, // FL_FREE_BOX+1 + { fl_up_box, 3, 3, 6, 6, 1 }, // FL_FREE_BOX+2 + { fl_down_box, 3, 3, 6, 6, 1 }, // FL_FREE_BOX+3 + { fl_up_box, 3, 3, 6, 6, 1 }, // FL_FREE_BOX+4 + { fl_down_box, 3, 3, 6, 6, 1 }, // FL_FREE_BOX+5 + { fl_up_box, 3, 3, 6, 6, 1 }, // FL_FREE_BOX+6 + { fl_down_box, 3, 3, 6, 6, 1 } // FL_FREE_BOX+7 }; /** @@ -487,19 +543,10 @@ extern bool Fl::box_bg(Fl_Boxtype bt) { return fl_box_table[bt].bg(); } -/** - Sets the drawing function for a given box type. - \param[in] t box type - \param[in] f box drawing function - \param[in] ff optional box focus rectangle drawing function +/* + Starting with FLTK version 1.5, this is no longer needed. Use Fl::set_boxtype(). + void fl_internal_boxtype(Fl_Boxtype t, Fl_Box_Draw_F* f, Fl_Box_Draw_Focus_F* ff) */ -void fl_internal_boxtype(Fl_Boxtype t, Fl_Box_Draw_F* f, Fl_Box_Draw_Focus_F* ff) { - if (!fl_box_table[t].set()) { - fl_box_table[t].f = f; - fl_box_table[t].ff = ff; - fl_box_table[t].flags |= 1; - } -} /** Gets the current box drawing function for the specified box type. */ Fl_Box_Draw_F *Fl::get_boxtype(Fl_Boxtype t) { |
