diff --git a/FL/Enumerations.H b/FL/Enumerations.H index 80ec2fe..c530668 100644 --- a/FL/Enumerations.H +++ b/FL/Enumerations.H @@ -493,24 +493,6 @@ enum Fl_Boxtype { // boxtypes (if you change these you must fix fl_boxtype.C): _FL_OSHADOW_BOX, ///< see figure 1 _FL_OVAL_FRAME, ///< see figure 1 _FL_OFLAT_BOX, ///< see figure 1 - _FL_PLASTIC_UP_BOX, ///< plastic version of FL_UP_BOX - _FL_PLASTIC_DOWN_BOX, ///< plastic version of FL_DOWN_BOX - _FL_PLASTIC_UP_FRAME, ///< plastic version of FL_UP_FRAME - _FL_PLASTIC_DOWN_FRAME, ///< plastic version of FL_DOWN_FRAME - _FL_PLASTIC_THIN_UP_BOX, ///< plastic version of FL_THIN_UP_BOX - _FL_PLASTIC_THIN_DOWN_BOX, ///< plastic version of FL_THIN_DOWN_BOX - _FL_PLASTIC_ROUND_UP_BOX, ///< plastic version of FL_ROUND_UP_BOX - _FL_PLASTIC_ROUND_DOWN_BOX, ///< plastic version of FL_ROUND_DOWN_BOX - _FL_GTK_UP_BOX, ///< gtk+ version of FL_UP_BOX - _FL_GTK_DOWN_BOX, ///< gtk+ version of FL_DOWN_BOX - _FL_GTK_UP_FRAME, ///< gtk+ version of FL_UP_FRAME - _FL_GTK_DOWN_FRAME, ///< gtk+ version of FL_DOWN_RAME - _FL_GTK_THIN_UP_BOX, ///< gtk+ version of FL_THIN_UP_BOX - _FL_GTK_THIN_DOWN_BOX, ///< gtk+ version of FL_THIN_DOWN_BOX - _FL_GTK_THIN_UP_FRAME, ///< gtk+ version of FL_UP_FRAME - _FL_GTK_THIN_DOWN_FRAME, ///< gtk+ version of FL_THIN_DOWN_FRAME - _FL_GTK_ROUND_UP_BOX, ///< gtk+ version of FL_ROUND_UP_BOX - _FL_GTK_ROUND_DOWN_BOX, ///< gtk+ version of FL_ROUND_DOWN_BOX FL_FREE_BOXTYPE ///< the first free box type for creation of new box types }; extern FL_EXPORT Fl_Boxtype fl_define_FL_ROUND_UP_BOX(); @@ -535,27 +517,25 @@ extern FL_EXPORT Fl_Boxtype fl_define_FL_OVAL_BOX(); #define FL_OVAL_FRAME (Fl_Boxtype)(fl_define_FL_OVAL_BOX()+2) #define FL_OFLAT_BOX (Fl_Boxtype)(fl_define_FL_OVAL_BOX()+3) -extern FL_EXPORT Fl_Boxtype fl_define_FL_PLASTIC_UP_BOX(); -#define FL_PLASTIC_UP_BOX fl_define_FL_PLASTIC_UP_BOX() -#define FL_PLASTIC_DOWN_BOX (Fl_Boxtype)(fl_define_FL_PLASTIC_UP_BOX()+1) -#define FL_PLASTIC_UP_FRAME (Fl_Boxtype)(fl_define_FL_PLASTIC_UP_BOX()+2) -#define FL_PLASTIC_DOWN_FRAME (Fl_Boxtype)(fl_define_FL_PLASTIC_UP_BOX()+3) -#define FL_PLASTIC_THIN_UP_BOX (Fl_Boxtype)(fl_define_FL_PLASTIC_UP_BOX()+4) -#define FL_PLASTIC_THIN_DOWN_BOX (Fl_Boxtype)(fl_define_FL_PLASTIC_UP_BOX()+5) -#define FL_PLASTIC_ROUND_UP_BOX (Fl_Boxtype)(fl_define_FL_PLASTIC_UP_BOX()+6) -#define FL_PLASTIC_ROUND_DOWN_BOX (Fl_Boxtype)(fl_define_FL_PLASTIC_UP_BOX()+7) - -extern FL_EXPORT Fl_Boxtype fl_define_FL_GTK_UP_BOX(); -#define FL_GTK_UP_BOX fl_define_FL_GTK_UP_BOX() -#define FL_GTK_DOWN_BOX (Fl_Boxtype)(fl_define_FL_GTK_UP_BOX()+1) -#define FL_GTK_UP_FRAME (Fl_Boxtype)(fl_define_FL_GTK_UP_BOX()+2) -#define FL_GTK_DOWN_FRAME (Fl_Boxtype)(fl_define_FL_GTK_UP_BOX()+3) -#define FL_GTK_THIN_UP_BOX (Fl_Boxtype)(fl_define_FL_GTK_UP_BOX()+4) -#define FL_GTK_THIN_DOWN_BOX (Fl_Boxtype)(fl_define_FL_GTK_UP_BOX()+5) -#define FL_GTK_THIN_UP_FRAME (Fl_Boxtype)(fl_define_FL_GTK_UP_BOX()+6) -#define FL_GTK_THIN_DOWN_FRAME (Fl_Boxtype)(fl_define_FL_GTK_UP_BOX()+7) -#define FL_GTK_ROUND_UP_BOX (Fl_Boxtype)(fl_define_FL_GTK_UP_BOX()+8) -#define FL_GTK_ROUND_DOWN_BOX (Fl_Boxtype)(fl_define_FL_GTK_UP_BOX()+9) +#define FL_PLASTIC_UP_BOX FL_UP_BOX +#define FL_PLASTIC_DOWN_BOX FL_DOWN_BOX +#define FL_PLASTIC_UP_FRAME FL_UP_FRAME +#define FL_PLASTIC_DOWN_FRAME FL_DOWN_FRAME +#define FL_PLASTIC_THIN_UP_BOX FL_THIN_UP_BOX +#define FL_PLASTIC_THIN_DOWN_BOX FL_THIN_DOWN_BOX +#define FL_PLASTIC_ROUND_UP_BOX FL_ROUND_UP_BOX +#define FL_PLASTIC_ROUND_DOWN_BOX FL_ROUND_DOWN_BOX + +#define FL_GTK_UP_BOX FL_UP_BOX +#define FL_GTK_DOWN_BOX FL_DOWN_BOX +#define FL_GTK_UP_FRAME FL_UP_FRAME +#define FL_GTK_DOWN_FRAME FL_DOWN_FRAME +#define FL_GTK_THIN_UP_BOX FL_THIN_UP_BOX +#define FL_GTK_THIN_UP_FRAME FL_THIN_UP_FRAME +#define FL_GTK_THIN_DOWN_FRAME FL_THIN_DOWN_FRAME +#define FL_GTK_THIN_DOWN_BOX FL_THIN_DOWN_BOX +#define FL_GTK_ROUND_UP_BOX FL_ROUND_UP_BOX +#define FL_GTK_ROUND_DOWN_BOX FL_ROUND_DOWN_BOX // conversions of box types to other boxtypes: /** diff --git a/src/Fl_Light_Button.cxx b/src/Fl_Light_Button.cxx index 9025fcf..5da26e7 100644 --- a/src/Fl_Light_Button.cxx +++ b/src/Fl_Light_Button.cxx @@ -54,8 +54,6 @@ void Fl_Light_Button::draw() { switch (down_box()) { case FL_DOWN_BOX : case FL_UP_BOX : - case _FL_PLASTIC_DOWN_BOX : - case _FL_PLASTIC_UP_BOX : // Check box... draw_box(down_box(), x()+dx, y()+dy, W, W, FL_BACKGROUND2_COLOR); if (value()) { @@ -135,13 +133,13 @@ void Fl_Light_Button::draw() { int ww = W/2+1; int xx = dx; if (w()parent() == (Fl_Group *)s->window() && Fl::scheme_bg_) { Fl::scheme_bg_->draw(X-(X%((Fl_Tiled_Image *)Fl::scheme_bg_)->image()->w()), Y-(Y%((Fl_Tiled_Image *)Fl::scheme_bg_)->image()->h()), diff --git a/src/Fl_Tree_Prefs.cxx b/src/Fl_Tree_Prefs.cxx index 796c219..7a55310 100644 --- a/src/Fl_Tree_Prefs.cxx +++ b/src/Fl_Tree_Prefs.cxx @@ -153,14 +153,6 @@ Fl_Tree_Prefs::Fl_Tree_Prefs() { _sortorder = FL_TREE_SORT_NONE; _selectbox = FL_FLAT_BOX; _selectmode = FL_TREE_SELECT_SINGLE; - // Let fltk's current 'scheme' affect defaults - if ( Fl::scheme() ) { - if ( strcmp(Fl::scheme(), "gtk+") == 0 ) { - _selectbox = _FL_GTK_THIN_UP_BOX; - } else if ( strcmp(Fl::scheme(), "plastic") == 0 ) { - _selectbox = _FL_PLASTIC_THIN_UP_BOX; - } - } } // diff --git a/src/Fl_get_system_colors.cxx b/src/Fl_get_system_colors.cxx index 35e9a9f..de18ca0 100644 --- a/src/Fl_get_system_colors.cxx +++ b/src/Fl_get_system_colors.cxx @@ -266,158 +266,46 @@ Fl_Image *Fl::scheme_bg_ = (Fl_Image *)0; // current background image for the static Fl_Pixmap tile(tile_xpm); -/** - Gets or sets the current widget scheme. NULL will use - the scheme defined in the FLTK_SCHEME environment - variable or the scheme resource under X11. Otherwise, - any of the following schemes can be used:

- - -*/ int Fl::scheme(const char *s) { - if (!s) { - if ((s = getenv("FLTK_SCHEME")) == NULL) { -#if !defined(WIN32) && !defined(__APPLE__) - const char* key = 0; - if (Fl::first_window()) key = Fl::first_window()->xclass(); - if (!key) key = "fltk"; - fl_open_display(); - s = XGetDefault(fl_display, key, "scheme"); -#endif // !WIN32 && !__APPLE__ - } - } - - if (s) { - if (!strcasecmp(s, "none") || !strcasecmp(s, "base") || !*s) s = 0; - else s = strdup(s); - } - if (scheme_) free((void*)scheme_); - scheme_ = s; - - // Save the new scheme in the FLTK_SCHEME env var so that child processes - // inherit it... - static char e[1024]; - strcpy(e,"FLTK_SCHEME="); - if (s) strlcat(e,s,sizeof(e)); - putenv(e); + printf( "Setting Fl::scheme() is obsolete" ); // Load the scheme... return reload_scheme(); } int Fl::reload_scheme() { - Fl_Window *win; - - if (scheme_ && !strcasecmp(scheme_, "plastic")) { - // Update the tile image to match the background color... - uchar r, g, b; - int nr, ng, nb; - int i; -// static uchar levels[3] = { 0xff, 0xef, 0xe8 }; - // OSX 10.3 and higher use a background with less contrast... - static uchar levels[3] = { 0xff, 0xf8, 0xf4 }; - - get_color(FL_GRAY, r, g, b); - -// printf("FL_GRAY = 0x%02x 0x%02x 0x%02x\n", r, g, b); - - for (i = 0; i < 3; i ++) { - nr = levels[i] * r / 0xe8; - if (nr > 255) nr = 255; - - ng = levels[i] * g / 0xe8; - if (ng > 255) ng = 255; - - nb = levels[i] * b / 0xe8; - if (nb > 255) nb = 255; - - sprintf(tile_cmap[i], "%c c #%02x%02x%02x", "Oo."[i], nr, ng, nb); -// puts(tile_cmap[i]); - } - - tile.uncache(); - - if (!scheme_bg_) scheme_bg_ = new Fl_Tiled_Image(&tile, w(), h()); + Fl_Window *win; - // Load plastic buttons, etc... - set_boxtype(FL_UP_FRAME, FL_PLASTIC_UP_FRAME); - set_boxtype(FL_DOWN_FRAME, FL_PLASTIC_DOWN_FRAME); - set_boxtype(FL_THIN_UP_FRAME, FL_PLASTIC_UP_FRAME); - set_boxtype(FL_THIN_DOWN_FRAME, FL_PLASTIC_DOWN_FRAME); - - set_boxtype(FL_UP_BOX, FL_PLASTIC_UP_BOX); - set_boxtype(FL_DOWN_BOX, FL_PLASTIC_DOWN_BOX); - set_boxtype(FL_THIN_UP_BOX, FL_PLASTIC_THIN_UP_BOX); - set_boxtype(FL_THIN_DOWN_BOX, FL_PLASTIC_THIN_DOWN_BOX); - set_boxtype(_FL_ROUND_UP_BOX, FL_PLASTIC_ROUND_UP_BOX); - set_boxtype(_FL_ROUND_DOWN_BOX, FL_PLASTIC_ROUND_DOWN_BOX); - - // Use standard size scrollbars... - Fl::scrollbar_size(16); - } else if (scheme_ && !strcasecmp(scheme_, "gtk+")) { - // Use a GTK+ inspired look-n-feel... - if (scheme_bg_) { - delete scheme_bg_; - scheme_bg_ = (Fl_Image *)0; - } - - set_boxtype(FL_UP_FRAME, FL_GTK_UP_FRAME); - set_boxtype(FL_DOWN_FRAME, FL_GTK_DOWN_FRAME); - set_boxtype(FL_THIN_UP_FRAME, FL_GTK_THIN_UP_FRAME); - set_boxtype(FL_THIN_DOWN_FRAME, FL_GTK_THIN_DOWN_FRAME); - - set_boxtype(FL_UP_BOX, FL_GTK_UP_BOX); - set_boxtype(FL_DOWN_BOX, FL_GTK_DOWN_BOX); - set_boxtype(FL_THIN_UP_BOX, FL_GTK_THIN_UP_BOX); - set_boxtype(FL_THIN_DOWN_BOX, FL_GTK_THIN_DOWN_BOX); - set_boxtype(_FL_ROUND_UP_BOX, FL_GTK_ROUND_UP_BOX); - set_boxtype(_FL_ROUND_DOWN_BOX, FL_GTK_ROUND_DOWN_BOX); - - // Use slightly thinner scrollbars... - Fl::scrollbar_size(15); - } else { // Use the standard FLTK look-n-feel... if (scheme_bg_) { - delete scheme_bg_; - scheme_bg_ = (Fl_Image *)0; + delete scheme_bg_; + scheme_bg_ = (Fl_Image *)0; } - + set_boxtype(FL_UP_FRAME, fl_up_frame, D1, D1, D2, D2); set_boxtype(FL_DOWN_FRAME, fl_down_frame, D1, D1, D2, D2); set_boxtype(FL_THIN_UP_FRAME, fl_thin_up_frame, 1, 1, 2, 2); set_boxtype(FL_THIN_DOWN_FRAME, fl_thin_down_frame, 1, 1, 2, 2); - + set_boxtype(FL_UP_BOX, fl_up_box, D1, D1, D2, D2); set_boxtype(FL_DOWN_BOX, fl_down_box, D1, D1, D2, D2); set_boxtype(FL_THIN_UP_BOX, fl_thin_up_box, 1, 1, 2, 2); set_boxtype(FL_THIN_DOWN_BOX, fl_thin_down_box, 1, 1, 2, 2); set_boxtype(_FL_ROUND_UP_BOX, fl_round_up_box, 3, 3, 6, 6); set_boxtype(_FL_ROUND_DOWN_BOX, fl_round_down_box, 3, 3, 6, 6); - + // Use standard size scrollbars... Fl::scrollbar_size(16); - } - // Set (or clear) the background tile for all windows... - for (win = first_window(); win; win = next_window(win)) { - win->labeltype(scheme_bg_ ? FL_NORMAL_LABEL : FL_NO_LABEL); - win->align(FL_ALIGN_CENTER | FL_ALIGN_INSIDE | FL_ALIGN_CLIP); - win->image(scheme_bg_); - win->redraw(); - } +// Set (or clear) the background tile for all windows... + for (win = first_window(); win; win = next_window(win)) { + win->labeltype(scheme_bg_ ? FL_NORMAL_LABEL : FL_NO_LABEL); + win->align(FL_ALIGN_CENTER | FL_ALIGN_INSIDE | FL_ALIGN_CLIP); + win->image(scheme_bg_); + win->redraw(); + } - return 1; + return 1; } diff --git a/src/Makefile b/src/Makefile index cca4f02..fbdba5f 100644 --- a/src/Makefile +++ b/src/Makefile @@ -145,13 +145,11 @@ CPPFILES = \ fl_engraved_label.cxx \ fl_file_dir.cxx \ fl_font.cxx \ - fl_gtk.cxx \ fl_labeltype.cxx \ fl_line_style.cxx \ fl_open_uri.cxx \ fl_oval_box.cxx \ fl_overlay.cxx \ - fl_plastic.cxx \ fl_read_image.cxx \ fl_rect.cxx \ fl_round_box.cxx \ diff --git a/src/fl_boxtype.cxx b/src/fl_boxtype.cxx index ffbc698..409ef3d 100644 --- a/src/fl_boxtype.cxx +++ b/src/fl_boxtype.cxx @@ -284,24 +284,6 @@ static struct { {fl_border_box, 1,1,2,2,0}, // _FL_OVAL_SHADOW_BOX, {fl_border_frame, 1,1,2,2,0}, // _FL_OVAL_FRAME {fl_rectf, 0,0,0,0,0}, // _FL_OVAL_FLAT_BOX, - {fl_up_box, 4,4,8,8,0}, // _FL_PLASTIC_UP_BOX, - {fl_down_box, 2,2,4,4,0}, // _FL_PLASTIC_DOWN_BOX, - {fl_up_frame, 2,2,4,4,0}, // _FL_PLASTIC_UP_FRAME, - {fl_down_frame, 2,2,4,4,0}, // _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,0}, // _FL_GTK_UP_FRAME, - {fl_down_frame, 2,2,4,4,0}, // _FL_GTK_DOWN_FRAME, - {fl_up_frame, 1,1,2,2,0}, // _FL_GTK_THIN_UP_FRAME, - {fl_down_frame, 1,1,2,2,0}, // _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, 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 diff --git a/src/fl_gtk.cxx b/src/fl_gtk.cxx deleted file mode 100644 index 76cbe4c..0000000 --- a/src/fl_gtk.cxx +++ /dev/null @@ -1,304 +0,0 @@ -// -// "$Id: fl_gtk.cxx 7903 2010-11-28 21:06:39Z matt $" -// -// "GTK" drawing routines for the Fast Light Tool Kit (FLTK). -// -// These box types provide a GTK+ look, based on Red Hat's Bluecurve -// theme... -// -// Copyright 2006-2010 by Michael Sweet. -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Library General Public -// License as published by the Free Software Foundation; either -// version 2 of the License, or (at your option) any later version. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Library General Public License for more details. -// -// You should have received a copy of the GNU Library General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 -// USA. -// -// Please report all bugs and problems on the following page: -// -// http://www.fltk.org/str.php -// - -// Box drawing code for an obscure box type. -// These box types are in separate files so they are not linked -// in if not used. - -#include -#include - -extern void fl_internal_boxtype(Fl_Boxtype, Fl_Box_Draw_F*); - - -static void gtk_color(Fl_Color c) { - if (Fl::draw_box_active()) fl_color(c); - else fl_color(fl_inactive(c)); -} - - -static void gtk_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 + 2, y + 1, x + w - 3); - fl_yxline(x + 1, y + 2, y + h - 3); - - gtk_color(fl_color_average(FL_BLACK, c, 0.5)); - fl_begin_loop(); - fl_vertex(x, y + 2); - fl_vertex(x + 2, y); - fl_vertex(x + w - 3, y); - fl_vertex(x + w - 1, y + 2); - fl_vertex(x + w - 1, y + h - 3); - fl_vertex(x + w - 3, y + h - 1); - fl_vertex(x + 2, y + h - 1); - fl_vertex(x, y + h - 3); - fl_end_loop(); -} - - -static void gtk_up_box(int x, int y, int w, int h, Fl_Color c) { - gtk_up_frame(x, y, w, h, c); - - gtk_color(fl_color_average(FL_WHITE, c, 0.4f)); - fl_xyline(x + 2, y + 2, x + w - 3); - gtk_color(fl_color_average(FL_WHITE, c, 0.2f)); - fl_xyline(x + 2, y + 3, x + w - 3); - gtk_color(fl_color_average(FL_WHITE, c, 0.1f)); - fl_xyline(x + 2, y + 4, x + w - 3); - gtk_color(c); - fl_rectf(x + 2, y + 5, w - 4, h - 7); - gtk_color(fl_color_average(FL_BLACK, c, 0.025f)); - fl_xyline(x + 2, y + h - 4, x + w - 3); - gtk_color(fl_color_average(FL_BLACK, c, 0.05f)); - fl_xyline(x + 2, y + h - 3, x + w - 3); - gtk_color(fl_color_average(FL_BLACK, c, 0.1f)); - fl_xyline(x + 2, y + h - 2, x + w - 3); - fl_yxline(x + w - 2, y + 2, y + h - 3); -} - - -static void gtk_down_frame(int x, int y, int w, int h, Fl_Color c) { - gtk_color(fl_color_average(FL_BLACK, c, 0.5)); - fl_begin_loop(); - fl_vertex(x, y + 2); - fl_vertex(x + 2, y); - fl_vertex(x + w - 3, y); - fl_vertex(x + w - 1, y + 2); - fl_vertex(x + w - 1, y + h - 3); - fl_vertex(x + w - 3, y + h - 1); - fl_vertex(x + 2, y + h - 1); - fl_vertex(x, y + h - 3); - fl_end_loop(); - - gtk_color(fl_color_average(FL_BLACK, c, 0.1f)); - fl_xyline(x + 2, y + 1, x + w - 3); - fl_yxline(x + 1, y + 2, y + h - 3); - - gtk_color(fl_color_average(FL_BLACK, c, 0.05f)); - fl_yxline(x + 2, y + h - 2, y + 2, x + w - 2); -} - - -static void gtk_down_box(int x, int y, int w, int h, Fl_Color c) { - gtk_down_frame(x, y, w, h, c); - - gtk_color(c); - fl_rectf(x + 3, y + 3, w - 5, h - 4); - fl_yxline(x + w - 2, y + 3, y + h - 3); -} - - -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.6f)); - 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.4f)); - 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.4f)); - fl_xyline(x + 1, y + 1, x + w - 2); - gtk_color(fl_color_average(FL_WHITE, c, 0.2f)); - fl_xyline(x + 1, y + 2, x + w - 2); - gtk_color(fl_color_average(FL_WHITE, c, 0.1f)); - 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.025f)); - fl_xyline(x + 1, y + h - 4, x + w - 2); - gtk_color(fl_color_average(FL_BLACK, c, 0.05f)); - fl_xyline(x + 1, y + h - 3, x + w - 2); - gtk_color(fl_color_average(FL_BLACK, c, 0.1f)); - 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.4f)); - 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.6f)); - 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); -} - -//------------------------ -// new GTK+ style for round buttons -#if 1 - -static void fl_arc_i(int x,int y,int w,int h,double a1,double a2) { - fl_arc(x,y,w,h,a1,a2); -} - -enum {UPPER_LEFT, LOWER_RIGHT, CLOSED, FILL}; - -static void draw(int which, int x,int y,int w,int h, int inset) -{ - if (inset*2 >= w) inset = (w-1)/2; - if (inset*2 >= h) inset = (h-1)/2; - x += inset; - y += inset; - w -= 2*inset; - h -= 2*inset; - int d = w <= h ? w : h; - if (d <= 1) return; - void (*f)(int,int,int,int,double,double); - f = (which==FILL) ? fl_pie : fl_arc_i; - if (which >= CLOSED) { - f(x+w-d, y, d, d, w<=h ? 0 : -90, w<=h ? 180 : 90); - f(x, y+h-d, d, d, w<=h ? 180 : 90, w<=h ? 360 : 270); - } else if (which == UPPER_LEFT) { - f(x+w-d, y, d, d, 45, w<=h ? 180 : 90); - f(x, y+h-d, d, d, w<=h ? 180 : 90, 225); - } else { // LOWER_RIGHT - f(x, y+h-d, d, d, 225, w<=h ? 360 : 270); - f(x+w-d, y, d, d, w<=h ? 360 : 270, 360+45); - } - if (which == FILL) { - if (w < h) - fl_rectf(x, y+d/2, w, h-(d&-2)); - else if (w > h) - fl_rectf(x+d/2, y, w-(d&-2), h); - } else { - if (w < h) { - if (which != UPPER_LEFT) fl_yxline(x+w-1, y+d/2-1, y+h-d/2+1); - if (which != LOWER_RIGHT) fl_yxline(x, y+d/2-1, y+h-d/2+1); - } else if (w > h) { - if (which != UPPER_LEFT) fl_xyline(x+d/2-1, y+h-1, x+w-d/2+1); - if (which != LOWER_RIGHT) fl_xyline(x+d/2-1, y, x+w-d/2+1); - } - } -} - -void gtk_round_up_box(int x, int y, int w, int h, Fl_Color c) { - fl_color(c); - draw(FILL, x, y, w, h, 2); - - gtk_color(fl_color_average(FL_BLACK, c, 0.025f)); - draw(LOWER_RIGHT, x+1, y, w-2, h, 2); - draw(LOWER_RIGHT, x, y, w, h, 3); - gtk_color(fl_color_average(FL_BLACK, c, 0.05f)); - draw(LOWER_RIGHT, x+1, y, w-2, h, 1); - draw(LOWER_RIGHT, x, y, w, h, 2); - gtk_color(fl_color_average(FL_BLACK, c, 0.1f)); - draw(LOWER_RIGHT, x+1, y, w-2, h, 0); - draw(LOWER_RIGHT, x, y, w, h, 1); - - gtk_color(fl_color_average(FL_WHITE, c, 0.1f)); - draw(UPPER_LEFT, x, y, w, h, 4); - draw(UPPER_LEFT, x+1, y, w-2, h, 3); - gtk_color(fl_color_average(FL_WHITE, c, 0.2f)); - draw(UPPER_LEFT, x, y, w, h, 3); - draw(UPPER_LEFT, x+1, y, w-2, h, 2); - gtk_color(fl_color_average(FL_WHITE, c, 0.4f)); - draw(UPPER_LEFT, x, y, w, h, 2); - draw(UPPER_LEFT, x+1, y, w-2, h, 1); - gtk_color(fl_color_average(FL_WHITE, c, 0.5f)); - draw(UPPER_LEFT, x, y, w, h, 1); - draw(UPPER_LEFT, x+1, y, w-2, h, 0); - - gtk_color(fl_color_average(FL_BLACK, c, 0.5f)); - draw(CLOSED, x, y, w, h, 0); -} - -void gtk_round_down_box(int x, int y, int w, int h, Fl_Color c) { - fl_color(c); - draw(FILL, x, y, w, h, 2); - - gtk_color(fl_color_average(FL_BLACK, c, 0.05f)); - draw(UPPER_LEFT, x, y, w, h, 2); - draw(UPPER_LEFT, x+1, y, w-2, h, 1); - gtk_color(fl_color_average(FL_BLACK, c, 0.1f)); - draw(UPPER_LEFT, x, y, w, h, 1); - draw(UPPER_LEFT, x+1, y, w-2, h, 0); - - gtk_color(fl_color_average(FL_BLACK, c, 0.5f)); - draw(CLOSED, x, y, w, h, 0); -} - -#else - -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.5f)); - fl_arc(x, y, w, h, 45.0, 180.0); - gtk_color(fl_color_average(FL_WHITE, c, 0.25f)); - fl_arc(x, y, w, h, 180.0, 405.0); - gtk_color(fl_color_average(FL_BLACK, c, 0.5f)); - 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); -} - -#endif - -Fl_Boxtype fl_define_FL_GTK_UP_BOX() { - fl_internal_boxtype(_FL_GTK_UP_BOX, 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_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; -} - - -// -// End of "$Id: fl_gtk.cxx 7903 2010-11-28 21:06:39Z matt $". -// diff --git a/src/fl_plastic.cxx b/src/fl_plastic.cxx deleted file mode 100644 index 28a50c7..0000000 --- a/src/fl_plastic.cxx +++ /dev/null @@ -1,381 +0,0 @@ -// -// "$Id: fl_plastic.cxx 7903 2010-11-28 21:06:39Z matt $" -// -// "Plastic" drawing routines for the Fast Light Tool Kit (FLTK). -// -// These box types provide a cross between Aqua and KDE buttons; kindof -// like translucent plastic buttons... -// -// Copyright 2001-2010 by Michael Sweet. -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Library General Public -// License as published by the Free Software Foundation; either -// version 2 of the License, or (at your option) any later version. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Library General Public License for more details. -// -// You should have received a copy of the GNU Library General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 -// USA. -// -// Please report all bugs and problems on the following page: -// -// http://www.fltk.org/str.php -// - -// Box drawing code for an obscure box type. -// These box types are in separate files so they are not linked -// in if not used. - -#include -#include -#include "flstring.h" - -// -// Uncomment the following line to restore the old plastic box type -// appearance. -// - -//#define USE_OLD_PLASTIC_BOX -#define USE_OLD_PLASTIC_COLOR - -extern uchar *fl_gray_ramp(); - -inline Fl_Color shade_color(uchar gc, Fl_Color bc) { -#ifdef USE_OLD_PLASTIC_COLOR - return fl_color_average((Fl_Color)gc, bc, 0.75f); -#else - unsigned grgb = Fl::get_color((Fl_Color)gc), - brgb = Fl::get_color(bc); - int red, green, blue, gray; - - - gray = ((grgb >> 24) & 255); - red = gray * ((brgb >> 24) & 255) / 255 + gray * gray / 510; - gray = ((grgb >> 16) & 255); - green = gray * ((brgb >> 16) & 255) / 255 + gray * gray / 510; - gray = ((grgb >> 8) & 255); - blue = gray * ((brgb >> 8) & 255) / 255 + gray * gray / 510; - - if (red > 255) - red = 255; - - if (green > 255) - green = 255; - - if (blue > 255) - blue = 255; - - if (Fl::draw_box_active()) - return fl_rgb_color(red, green, blue); - else - return fl_color_average(FL_GRAY, fl_rgb_color(red, green, blue), 0.75f); -#endif // USE_OLD_PLASTIC_COLOR -} - - -static void frame_rect(int x, int y, int w, int h, const char *c, Fl_Color bc) { - uchar *g = fl_gray_ramp(); - int b = strlen(c) / 4 + 1; - - for (x += b, y += b, w -= 2 * b, h -= 2 * b; b > 1; b --) - { - // Draw lines around the perimeter of the button, 4 colors per - // circuit. - fl_color(shade_color(g[(int)*c++], bc)); - fl_line(x, y + h + b, x + w - 1, y + h + b, x + w + b - 1, y + h); - fl_color(shade_color(g[(int)*c++], bc)); - fl_line(x + w + b - 1, y + h, x + w + b - 1, y, x + w - 1, y - b); - fl_color(shade_color(g[(int)*c++], bc)); - fl_line(x + w - 1, y - b, x, y - b, x - b, y); - fl_color(shade_color(g[(int)*c++], bc)); - fl_line(x - b, y, x - b, y + h, x, y + h + b); - } -} - - -static void frame_round(int x, int y, int w, int h, const char *c, Fl_Color bc) { - uchar *g = fl_gray_ramp(); - int b = strlen(c) / 4 + 1; - - if (w==h) { - for (; b > 1; b --, x ++, y ++, w -= 2, h -= 2) - { - fl_color(shade_color(g[(int)*c++], bc)); - fl_arc(x, y, w, h, 45.0, 135.0); - fl_color(shade_color(g[(int)*c++], bc)); - fl_arc(x, y, w, h, 315.0, 405.0); - fl_color(shade_color(g[(int)*c++], bc)); - fl_arc(x, y, w, h, 225.0, 315.0); - fl_color(shade_color(g[(int)*c++], bc)); - fl_arc(x, y, w, h, 135.0, 225.0); - } - } else if (w>h) { - int d = h/2; - for (; b > 1; d--, b --, x ++, y ++, w -= 2, h -= 2) - { - fl_color(shade_color(g[(int)*c++], bc)); - fl_arc(x, y, h, h, 90.0, 135.0); - fl_xyline(x+d, y, x+w-d); - fl_arc(x+w-h, y, h, h, 45.0, 90.0); - fl_color(shade_color(g[(int)*c++], bc)); - fl_arc(x+w-h, y, h, h, 315.0, 405.0); - fl_color(shade_color(g[(int)*c++], bc)); - fl_arc(x+w-h, y, h, h, 270.0, 315.0); - fl_xyline(x+d, y+h-1, x+w-d); - fl_arc(x, y, h, h, 225.0, 270.0); - fl_color(shade_color(g[(int)*c++], bc)); - fl_arc(x, y, h, h, 135.0, 225.0); - } - } else if (w 1; d--, b --, x ++, y ++, w -= 2, h -= 2) - { - fl_color(shade_color(g[(int)*c++], bc)); - fl_arc(x, y, w, w, 45.0, 135.0); - fl_color(shade_color(g[(int)*c++], bc)); - fl_arc(x, y, w, w, 0.0, 45.0); - fl_yxline(x+w-1, y+d, y+h-d); - fl_arc(x, y+h-w, w, w, 315.0, 360.0); - fl_color(shade_color(g[(int)*c++], bc)); - fl_arc(x, y+h-w, w, w, 225.0, 315.0); - fl_color(shade_color(g[(int)*c++], bc)); - fl_arc(x, y+h-w, w, w, 180.0, 225.0); - fl_yxline(x, y+d, y+h-d); - fl_arc(x, y, w, w, 135.0, 180.0); - } - } -} - - -static void shade_rect(int x, int y, int w, int h, const char *c, Fl_Color bc) { - uchar *g = fl_gray_ramp(); - int i, j; - int clen = strlen(c) - 1; - int chalf = clen / 2; - int cstep = 1; - - if (h < (w * 2)) { - // Horizontal shading... - if (clen >= h) cstep = 2; - - for (i = 0, j = 0; j < chalf; i ++, j += cstep) { - // Draw the top line and points... - fl_color(shade_color(g[(int)c[i]], bc)); - fl_xyline(x + 1, y + i, x + w - 2); - - fl_color(shade_color(g[c[i] - 2], bc)); - fl_point(x, y + i + 1); - fl_point(x + w - 1, y + i + 1); - - // Draw the bottom line and points... - fl_color(shade_color(g[(int)c[clen - i]], bc)); - fl_xyline(x + 1, y + h - i, x + w - 2); - - fl_color(shade_color(g[c[clen - i] - 2], bc)); - fl_point(x, y + h - i); - fl_point(x + w - 1, y + h - i); - } - - // Draw the interior and sides... - i = chalf / cstep; - - fl_color(shade_color(g[(int)c[chalf]], bc)); - fl_rectf(x + 1, y + i, w - 2, h - 2 * i + 1); - - fl_color(shade_color(g[c[chalf] - 2], bc)); - fl_yxline(x, y + i, y + h - i); - fl_yxline(x + w - 1, y + i, y + h - i); - } else { - // Vertical shading... - if (clen >= w) cstep = 2; - - for (i = 0, j = 0; j < chalf; i ++, j += cstep) { - // Draw the left line and points... - fl_color(shade_color(g[(int)c[i]], bc)); - fl_yxline(x + i, y + 1, y + h - 1); - - fl_color(shade_color(g[c[i] - 2], bc)); - fl_point(x + i + 1, y); - fl_point(x + i + 1, y + h); - - // Draw the right line and points... - fl_color(shade_color(g[(int)c[clen - i]], bc)); - fl_yxline(x + w - 1 - i, y + 1, y + h - 1); - - fl_color(shade_color(g[c[clen - i] - 2], bc)); - fl_point(x + w - 2 - i, y); - fl_point(x + w - 2 - i, y + h); - } - - // Draw the interior, top, and bottom... - i = chalf / cstep; - - fl_color(shade_color(g[(int)c[chalf]], bc)); - fl_rectf(x + i, y + 1, w - 2 * i, h - 1); - - fl_color(shade_color(g[c[chalf] - 2], bc)); - fl_xyline(x + i, y, x + w - i); - fl_xyline(x + i, y + h, x + w - i); - } -} - -static void shade_round(int x, int y, int w, int h, const char *c, Fl_Color bc) { - uchar *g = fl_gray_ramp(); - int i; - int clen = strlen(c) - 1; - int chalf = clen / 2; - - if (w>h) { - int d = h/2; - const int na = 8; - for (i=0; i 1) { - fl_xyline(x+1, y, x+w-2); - fl_xyline(x+1, y+h-1, x+w-2); - } - if (h > 1) { - fl_yxline(x, y+1, y+h-2); - fl_yxline(x+w-1, y+1, y+h-2); - } -} - - -static void thin_up_box(int x, int y, int w, int h, Fl_Color c) { -#ifdef USE_OLD_PLASTIC_BOX - shade_rect(x + 2, y + 2, w - 4, h - 5, "RVQNOPQRSTUVWVQ", c); - up_frame(x, y, w, h, c); -#else - if (w > 4 && h > 4) { - shade_rect(x + 1, y + 1, w - 2, h - 3, "RQOQSUWQ", c); - frame_rect(x, y, w, h - 1, "IJLM", c); - } else { - narrow_thin_box(x, y, w, h, c); - } -#endif // USE_OLD_PLASTIC_BOX -} - - -static void up_box(int x, int y, int w, int h, Fl_Color c) { -#ifdef USE_OLD_PLASTIC_BOX - shade_rect(x + 2, y + 2, w - 4, h - 5, "RVQNOPQRSTUVWVQ", c); - up_frame(x, y, w, h, c); -#else - if (w > 8 && h > 8) { - shade_rect(x + 1, y + 1, w - 2, h - 3, "RVQNOPQRSTUVWVQ", c); - frame_rect(x, y, w, h - 1, "IJLM", c); - } else { - thin_up_box(x, y, w, h, c); - } -#endif // USE_OLD_PLASTIC_BOX -} - - -static void up_round(int x, int y, int w, int h, Fl_Color c) { - shade_round(x, y, w, h, "RVQNOPQRSTUVWVQ", c); - frame_round(x, y, w, h, "IJLM", c); -} - - -static void down_frame(int x, int y, int w, int h, Fl_Color c) { - frame_rect(x, y, w, h - 1, "LLLLTTRR", c); -} - - -static void down_box(int x, int y, int w, int h, Fl_Color c) { - if (w > 6 && h > 6) { - shade_rect(x + 2, y + 2, w - 4, h - 5, "STUVWWWVT", c); - down_frame(x, y, w, h, c); - } - else { - narrow_thin_box(x, y, w, h, c); - } -} - - -static void down_round(int x, int y, int w, int h, Fl_Color c) { - shade_round(x, y, w, h, "STUVWWWVT", c); - frame_round(x, y, w, h, "IJLM", c); -} - - -extern void fl_internal_boxtype(Fl_Boxtype, Fl_Box_Draw_F*); - - -Fl_Boxtype fl_define_FL_PLASTIC_UP_BOX() { - fl_internal_boxtype(_FL_PLASTIC_UP_BOX, up_box); - fl_internal_boxtype(_FL_PLASTIC_DOWN_BOX, down_box); - fl_internal_boxtype(_FL_PLASTIC_UP_FRAME, up_frame); - fl_internal_boxtype(_FL_PLASTIC_DOWN_FRAME, down_frame); - fl_internal_boxtype(_FL_PLASTIC_THIN_UP_BOX, thin_up_box); - fl_internal_boxtype(_FL_PLASTIC_THIN_DOWN_BOX, down_box); - fl_internal_boxtype(_FL_PLASTIC_ROUND_UP_BOX, up_round); - fl_internal_boxtype(_FL_PLASTIC_ROUND_DOWN_BOX, down_round); - - return _FL_PLASTIC_UP_BOX; -} - - -// -// End of "$Id: fl_plastic.cxx 7903 2010-11-28 21:06:39Z matt $". -//