diff -Naurp src/fltk-1.4.x-r12938/FL/Enumerations.H tmp/fltk-1.4.x-r12938/FL/Enumerations.H
--- src/fltk-1.4.x-r12938/FL/Enumerations.H	2018-03-09 16:21:23 -0500
+++ tmp/fltk-1.4.x-r12938/FL/Enumerations.H	2018-06-14 07:26:34 -0400
@@ -650,6 +650,18 @@ enum Fl_Boxtype { // boxtypes (if you ch
   _FL_GLEAM_THIN_DOWN_BOX,	///< gleam version of FL_THIN_DOWN_BOX, use FL_GLEAM_THIN_DOWN_BOX
   _FL_GLEAM_ROUND_UP_BOX,	///< gleam version of FL_ROUND_UP_BOX, use FL_GLEAM_ROUND_UP_BOX
   _FL_GLEAM_ROUND_DOWN_BOX,	///< gleam version of FL_ROUND_DOWN_BOX, use FL_GLEAM_ROUND_DOWN_BOX
+  _FL_OXY_UP_BOX,
+  _FL_OXY_DOWN_BOX,
+  _FL_OXY_UP_FRAME,
+  _FL_OXY_DOWN_FRAME,
+  _FL_OXY_THIN_UP_BOX,
+  _FL_OXY_THIN_DOWN_BOX,
+  _FL_OXY_THIN_UP_FRAME,
+  _FL_OXY_THIN_DOWN_FRAME,
+  _FL_OXY_ROUND_UP_BOX,
+  _FL_OXY_ROUND_DOWN_BOX,
+  _FL_OXY_BUTTON_UP_BOX,
+  _FL_OXY_BUTTON_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();
@@ -706,6 +718,20 @@ extern FL_EXPORT Fl_Boxtype fl_define_FL
 #define FL_GLEAM_ROUND_UP_BOX (Fl_Boxtype)(fl_define_FL_GLEAM_UP_BOX()+6)
 #define FL_GLEAM_ROUND_DOWN_BOX (Fl_Boxtype)(fl_define_FL_GLEAM_UP_BOX()+7)
 
+extern FL_EXPORT Fl_Boxtype fl_define_FL_OXY_UP_BOX();
+#define FL_OXY_UP_BOX fl_define_FL_OXY_UP_BOX()
+#define FL_OXY_DOWN_BOX (Fl_Boxtype)(fl_define_FL_OXY_UP_BOX()+1)
+#define FL_OXY_UP_FRAME (Fl_Boxtype)(fl_define_FL_OXY_UP_BOX()+2)
+#define FL_OXY_DOWN_FRAME (Fl_Boxtype)(fl_define_FL_OXY_UP_BOX()+3)
+#define FL_OXY_THIN_UP_BOX (Fl_Boxtype)(fl_define_FL_OXY_UP_BOX()+4)
+#define FL_OXY_THIN_DOWN_BOX (Fl_Boxtype)(fl_define_FL_OXY_UP_BOX()+5)
+#define FL_OXY_THIN_UP_FRAME (Fl_Boxtype)(fl_define_FL_OXY_UP_BOX()+6)
+#define FL_OXY_THIN_DOWN_FRAME (Fl_Boxtype)(fl_define_FL_OXY_UP_BOX()+7)
+#define FL_OXY_ROUND_UP_BOX (Fl_Boxtype)(fl_define_FL_OXY_UP_BOX()+8)
+#define FL_OXY_ROUND_DOWN_BOX (Fl_Boxtype)(fl_define_FL_OXY_UP_BOX()+9)
+#define FL_OXY_BUTTON_UP_BOX (Fl_Boxtype)(fl_define_FL_OXY_UP_BOX()+10)
+#define FL_OXY_BUTTON_DOWN_BOX (Fl_Boxtype)(fl_define_FL_OXY_UP_BOX()+11)
+
 // conversions of box types to other boxtypes:
 /**
   Get the filled version of a frame.
diff -Naurp src/fltk-1.4.x-r12938/FL/Fl.H tmp/fltk-1.4.x-r12938/FL/Fl.H
--- src/fltk-1.4.x-r12938/FL/Fl.H	2018-05-24 06:58:47 -0400
+++ tmp/fltk-1.4.x-r12938/FL/Fl.H	2018-06-14 11:52:51 -0400
@@ -397,9 +397,7 @@ public:
 
     \see Fl::scheme(const char *name)
   */
-  static int is_scheme(const char *name) {
-    return (scheme_ && name && !strcmp(name,scheme_));
-  }
+  static int is_scheme(const char *name);
   /**
     Called by scheme according to scheme name. 
     Loads or reloads the current scheme selection. 
diff -Naurp src/fltk-1.4.x-r12938/FL/fl_draw.H tmp/fltk-1.4.x-r12938/FL/fl_draw.H
--- src/fltk-1.4.x-r12938/FL/fl_draw.H	2018-05-24 15:48:41 -0400
+++ tmp/fltk-1.4.x-r12938/FL/fl_draw.H	2018-06-14 12:15:52 -0400
@@ -696,6 +696,9 @@ FL_EXPORT void fl_frame(const char* s, i
 FL_EXPORT void fl_frame2(const char* s, int x, int y, int w, int h);
 FL_EXPORT void fl_draw_box(Fl_Boxtype, int x, int y, int w, int h, Fl_Color);
 
+// arrows:
+FL_EXPORT void fl_draw_arrow(int x1, int y1, Fl_Align a, bool ac, Fl_Color c, Fl_Color hc);
+
 // images:
 
 /**
diff -Naurp src/fltk-1.4.x-r12938/fluid/alignment_panel.cxx tmp/fltk-1.4.x-r12938/fluid/alignment_panel.cxx
--- src/fltk-1.4.x-r12938/fluid/alignment_panel.cxx	2018-05-01 07:08:38 -0400
+++ tmp/fltk-1.4.x-r12938/fluid/alignment_panel.cxx	2018-06-14 07:27:49 -0400
@@ -154,6 +154,7 @@ Fl_Menu_Item menu_scheme_choice[] = {
  {"Plastic", 0,  0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
  {"GTK+", 0,  0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
  {"Gleam", 0,  0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
+ {"Oxy", 0,  0, 0, 0, FL_NORMAL_LABEL, 0, 14, 0}, 
  {0,0,0,0,0,0,0,0,0}
 };
 
diff -Naurp src/fltk-1.4.x-r12938/fluid/alignment_panel.fl tmp/fltk-1.4.x-r12938/fluid/alignment_panel.fl
--- src/fltk-1.4.x-r12938/fluid/alignment_panel.fl	2018-05-01 07:08:38 -0400
+++ tmp/fltk-1.4.x-r12938/fluid/alignment_panel.fl	2018-06-14 07:28:31 -0400
@@ -199,6 +199,10 @@ Function {make_settings_window()} {} {
         label Gleam
         xywh {20 20 35 25}
       }
+      MenuItem {} {
+        label {Oxy}
+        xywh {30 30 35 25}
+      }        
     }
     Fl_Group {} {open
       xywh {20 43 330 161} labelfont 1 align 0
diff -Naurp src/fltk-1.4.x-r12938/fluid/fluid.cxx tmp/fltk-1.4.x-r12938/fluid/fluid.cxx
--- src/fltk-1.4.x-r12938/fluid/fluid.cxx	2018-02-09 09:39:42 -0500
+++ tmp/fltk-1.4.x-r12938/fluid/fluid.cxx	2018-06-14 07:28:50 -0400
@@ -1156,6 +1156,9 @@ void scheme_cb(Fl_Choice *, void *) {
     case 4 : // Gleam
       Fl::scheme("gleam");
       break;
+    case 5 : // Oxy
+      Fl::scheme("oxy");
+      break;
   }
 
   fluid_prefs.set("scheme", scheme_choice->value());
diff -Naurp src/fltk-1.4.x-r12938/src/Fl_Choice.cxx tmp/fltk-1.4.x-r12938/src/Fl_Choice.cxx
--- src/fltk-1.4.x-r12938/src/Fl_Choice.cxx	2016-08-30 15:16:50 -0400
+++ tmp/fltk-1.4.x-r12938/src/Fl_Choice.cxx	2018-06-14 12:21:09 -0400
@@ -57,6 +57,20 @@ void Fl_Choice::draw() {
       // Show larger up/down arrows...
       fl_polygon(x1, y1 + 3, x1 + w1, y1 + w1 + 3, x1 + 2 * w1, y1 + 3);
       fl_polygon(x1, y1 + 1, x1 + w1, y1 - w1 + 1, x1 + 2 * w1, y1 + 1);
+    } else if (Fl::is_scheme("oxy")) {
+      // Show different arrow display...
+       Fl_Color hlcol = 0x0;
+       x1 = x() + w() - dx/2 - W/2 - 5;
+       y1 = y()-1 + h()/2 - 1;
+       // draw down arrow
+       fl_draw_arrow(x1, y1, FL_ALIGN_BOTTOM, active_r(), color(), FL_BLACK);
+       // draw the divider
+       hlcol = fl_color_average(color(), FL_BLACK, 0.88);
+       fl_color(active_r()?hlcol:fl_inactive(hlcol));
+       fl_yxline(X, y()+dy, y()+h()-dx-2);
+       hlcol = fl_lighter(color());
+       fl_color(active_r()?hlcol:fl_inactive(hlcol));
+       fl_yxline(X+1, y()+dy, y()+h()-dx-2);
     } else {
       // Show smaller up/down arrows with a divider...
       x1 = x() + w() - 13 - dx;
diff -Naurp src/fltk-1.4.x-r12938/src/Fl_Menu.cxx tmp/fltk-1.4.x-r12938/src/Fl_Menu.cxx
--- src/fltk-1.4.x-r12938/src/Fl_Menu.cxx	2018-03-31 13:17:37 -0400
+++ tmp/fltk-1.4.x-r12938/src/Fl_Menu.cxx	2018-06-14 12:28:36 -0400
@@ -472,7 +472,12 @@ void menuwindow::drawentry(const Fl_Menu
     int sz = (hh-7)&-2;
     int y1 = yy+(hh-sz)/2;
     int x1 = xx+ww-sz-3;
-    fl_polygon(x1+2, y1, x1+2, y1+sz, x1+sz/2+2, y1+sz/2);
+   // draw arrows for the OXY theme
+   if(Fl::is_scheme("oxy")) {
+    x1+=(sz/2-BW*2-1);
+    y1=yy+hh/2-4; // 4 is half of arrow height
+    fl_draw_arrow(x1, y1, FL_ALIGN_RIGHT, active_r(), color(), (n==selected)?selection_color():FL_BLACK);
+   } else { fl_polygon(x1+2, y1, x1+2, y1+sz, x1+sz/2+2, y1+sz/2); }
   } else if (m->shortcut_) {
     Fl_Font f = m->labelsize_ || m->labelfont_ ? (Fl_Font)m->labelfont_ :
                     button ? button->textfont() : FL_HELVETICA;
diff -Naurp src/fltk-1.4.x-r12938/src/Fl_Menu_Button.cxx tmp/fltk-1.4.x-r12938/src/Fl_Menu_Button.cxx
--- src/fltk-1.4.x-r12938/src/Fl_Menu_Button.cxx	2012-08-16 17:35:14 -0400
+++ tmp/fltk-1.4.x-r12938/src/Fl_Menu_Button.cxx	2018-06-14 12:21:21 -0400
@@ -20,7 +20,6 @@
 #include <FL/Fl_Menu_Button.H>
 #include <FL/fl_draw.H>
 
-
 static Fl_Menu_Button	*pressed_menu_button_ = 0;
 
 
@@ -33,10 +32,19 @@ void Fl_Menu_Button::draw() {
   draw_label(x()+Fl::box_dx(box()), y(), X-x()+2, h());
   if (Fl::focus() == this) draw_focus();
   // ** if (box() == FL_FLAT_BOX) return; // for XForms compatibility
+  if (Fl::is_scheme("oxy"))
+  {   
+    int x1 = X;
+    int y1 = Y+3;
+    fl_draw_arrow(x1, y1, FL_ALIGN_BOTTOM, active_r(), color(), FL_BLACK);
+  }
+  else
+  {   
   fl_color(active_r() ? FL_DARK3 : fl_inactive(FL_DARK3));
   fl_line(X+H/2, Y+H, X, Y, X+H, Y);
   fl_color(active_r() ? FL_LIGHT3 : fl_inactive(FL_LIGHT3));
   fl_line(X+H, Y, X+H/2, Y+H);
+  }   
 }
 
 
diff -Naurp src/fltk-1.4.x-r12938/src/Fl_Scrollbar.cxx tmp/fltk-1.4.x-r12938/src/Fl_Scrollbar.cxx
--- src/fltk-1.4.x-r12938/src/Fl_Scrollbar.cxx	2015-01-29 11:56:12 -0500
+++ tmp/fltk-1.4.x-r12938/src/Fl_Scrollbar.cxx	2018-06-14 12:20:53 -0400
@@ -222,6 +222,12 @@ void Fl_Scrollbar::draw() {
 	fl_polygon(x1, yy1+w1, x1+w1, yy1+2*w1, x1+w1-1, yy1+w1, x1+w1, yy1);
 	x1 += (W-H);
 	fl_polygon(x1, yy1, x1+1, yy1+w1, x1, yy1+2*w1, x1+w1, yy1+w1);
+      } else if(Fl::is_scheme("oxy")){
+       x1 = X+H/2+2;
+       int y1 = Y+H/2-3-2;
+       fl_draw_arrow(x1, y1, FL_ALIGN_LEFT, active_r(), color(), FL_BLACK); /// LEFT ARROW
+       x1 += (W-H)-4;
+       fl_draw_arrow(x1, y1, FL_ALIGN_RIGHT, active_r(), color(), FL_BLACK); /// RIGHT ARROW
       } else {
 	fl_polygon(x1, yy1+w1, x1+w1, yy1+2*w1, x1+w1, yy1);
 	x1 += (W-H);
@@ -248,6 +254,12 @@ void Fl_Scrollbar::draw() {
 	yy1 += H-W;
 	fl_polygon(x1, yy1, x1+w1, yy1+1, x1+w1, yy1+w1);
 	fl_polygon(x1+w1, yy1+1, x1+2*w1, yy1, x1+w1, yy1+w1);
+      } else if(Fl::is_scheme("oxy")){
+       x1 = X+W/2-4;
+       int y1 = Y+W/2+1;
+       fl_draw_arrow(x1, y1, FL_ALIGN_TOP, active_r(), color(), FL_BLACK); /// TOP ARROW
+      y1 += H-W-3;
+      fl_draw_arrow(x1, y1, FL_ALIGN_BOTTOM, active_r(), color(), FL_BLACK); /// BOTTOM ARROW
       } else {
 	fl_polygon(x1, yy1+w1, x1+2*w1, yy1+w1, x1+w1, yy1);
 	yy1 += H-W;
diff -Naurp src/fltk-1.4.x-r12938/src/Fl_Tree_Prefs.cxx tmp/fltk-1.4.x-r12938/src/Fl_Tree_Prefs.cxx
--- src/fltk-1.4.x-r12938/src/Fl_Tree_Prefs.cxx	2016-04-14 16:58:20 -0400
+++ tmp/fltk-1.4.x-r12938/src/Fl_Tree_Prefs.cxx	2018-06-14 07:41:25 -0400
@@ -213,6 +213,8 @@ Fl_Tree_Prefs::Fl_Tree_Prefs() {
     _selectbox = _FL_GTK_THIN_UP_BOX;
   } else if (Fl::is_scheme("plastic")) {
     _selectbox = _FL_PLASTIC_THIN_UP_BOX;
+  }else if ( strcasecmp(Fl::scheme(), "oxy") == 0 ) {
+    _selectbox = _FL_OXY_THIN_UP_BOX;
   }
 }
 
diff -Naurp src/fltk-1.4.x-r12938/src/Fl_get_system_colors.cxx tmp/fltk-1.4.x-r12938/src/Fl_get_system_colors.cxx
--- src/fltk-1.4.x-r12938/src/Fl_get_system_colors.cxx	2018-01-31 16:17:17 -0500
+++ tmp/fltk-1.4.x-r12938/src/Fl_get_system_colors.cxx	2018-06-14 11:53:41 -0400
@@ -149,6 +149,8 @@ static Fl_Pixmap	tile(tile_xpm);
 
         - "gleam" - This scheme is inspired by the Clearlooks Glossy scheme.
                     (Colin Jones and Edmanuel Torres).
+                    
+        - "oxy" - Subset of Dmitrij K's oxy scheme added by Laura Michaels
 
     Uppercase scheme names are equivalent, but the stored scheme name will
     always be lowercase and Fl::scheme() will return this lowercase name.
@@ -168,6 +170,7 @@ int Fl::scheme(const char *s) {
     else if (!fl_ascii_strcasecmp(s, "gtk+")) s = strdup("gtk+");
     else if (!fl_ascii_strcasecmp(s, "plastic")) s = strdup("plastic");
     else if (!fl_ascii_strcasecmp(s, "gleam")) s = strdup("gleam");
+    else if (!fl_ascii_strcasecmp(s, "oxy")) s = strdup("oxy");
     else s = 0;
   }
   if (scheme_) free((void*)scheme_);
@@ -184,11 +187,43 @@ int Fl::scheme(const char *s) {
   return reload_scheme();
 }
 
+/** Returns whether the current scheme is the given name.
+
+ This is a fast inline convenience function to support scheme-specific
+ code in widgets, e.g. in their draw() methods, if required.
+
+ Use a valid scheme name, not \p NULL (although \p NULL is allowed,
+ this is not a useful argument - see below).
+
+ If Fl::scheme() has not been set or has been set to the default
+ scheme ("none" or "base"), then this will always return 0 regardless
+ of the argument, because Fl::scheme() is \p NULL in this case.
+
+ \note The stored scheme name is always lowercase, and this method will
+ do a case-sensitive compare, so you \b must provide a lowercase string to
+ return the correct value. This is intentional for performance reasons.
+
+ Example:
+ \code
+   if (Fl::is_scheme("gtk+")) { your_code_here(); }
+ \endcode
+
+ \param[in] name \b lowercase string of requested scheme name.
+
+ \return 1 if the given scheme is active, 0 otherwise.
+
+ \see Fl::scheme(const char *name)
+*/
+int Fl::is_scheme(const char *name) {
+  return (scheme_ && name && !fl_ascii_strcasecmp(name,scheme_));
+}
+
+//const char* Fl::scheme() {return scheme_;}
 
 int Fl::reload_scheme() {
   Fl_Window *win;
 
-  if (scheme_ && !fl_ascii_strcasecmp(scheme_, "plastic")) {
+  if (Fl::is_scheme("plastic")) {
     // Update the tile image to match the background color...
     uchar r, g, b;
     int nr, ng, nb;
@@ -234,7 +269,7 @@ int Fl::reload_scheme() {
 
     // Use standard size scrollbars...
     Fl::scrollbar_size(16);
-  } else if (scheme_ && !fl_ascii_strcasecmp(scheme_, "gtk+")) {
+  } else if (Fl::is_scheme("gtk+")) {
     // Use a GTK+ inspired look-n-feel...
     if (scheme_bg_) {
       delete scheme_bg_;
@@ -255,7 +290,7 @@ int Fl::reload_scheme() {
 
     // Use slightly thinner scrollbars...
     Fl::scrollbar_size(15);
-  } else if (scheme_ && !fl_ascii_strcasecmp(scheme_, "gleam")) {
+  } else if (Fl::is_scheme("gleam")) {
     // Use a GTK+ inspired look-n-feel...
     if (scheme_bg_) {
       delete scheme_bg_;
@@ -276,6 +311,27 @@ int Fl::reload_scheme() {
 
     // Use slightly thinner scrollbars...
     Fl::scrollbar_size(15);
+  } else if (Fl::is_scheme("oxy")) {
+    // Oxy scheme
+    if (scheme_bg_) {
+      delete scheme_bg_;
+      scheme_bg_ = (Fl_Image *)0;
+    }
+
+    set_boxtype(FL_UP_FRAME,        FL_OXY_UP_FRAME);
+    set_boxtype(FL_DOWN_FRAME,      FL_OXY_DOWN_FRAME);
+    set_boxtype(FL_THIN_UP_FRAME,   FL_OXY_THIN_UP_FRAME);
+    set_boxtype(FL_THIN_DOWN_FRAME, FL_OXY_THIN_DOWN_FRAME);
+
+    set_boxtype(FL_UP_BOX,          FL_OXY_UP_BOX);
+    set_boxtype(FL_DOWN_BOX,        FL_OXY_DOWN_BOX);
+    set_boxtype(FL_THIN_UP_BOX,     FL_OXY_THIN_UP_BOX);
+    set_boxtype(FL_THIN_DOWN_BOX,   FL_OXY_THIN_DOWN_BOX);
+    set_boxtype(_FL_ROUND_UP_BOX,   FL_OXY_ROUND_UP_BOX);
+    set_boxtype(_FL_ROUND_DOWN_BOX, FL_OXY_ROUND_DOWN_BOX);
+
+    // Use slightly thinner scrollbars...
+    Fl::scrollbar_size(15);
   } else {
     // Use the standard FLTK look-n-feel...
     if (scheme_bg_) {
diff -Naurp src/fltk-1.4.x-r12938/src/Makefile tmp/fltk-1.4.x-r12938/src/Makefile
--- src/fltk-1.4.x-r12938/src/Makefile	2018-04-30 04:36:52 -0400
+++ tmp/fltk-1.4.x-r12938/src/Makefile	2018-06-14 07:43:45 -0400
@@ -149,6 +149,7 @@ CPPFILES = \
 	fl_oval_box.cxx \
 	fl_overlay.cxx \
 	fl_overlay_visual.cxx \
+	fl_oxy.cxx \
 	fl_plastic.cxx \
 	fl_read_image.cxx \
 	fl_rect.cxx \
diff -Naurp src/fltk-1.4.x-r12938/src/fl_boxtype.cxx tmp/fltk-1.4.x-r12938/src/fl_boxtype.cxx
--- src/fltk-1.4.x-r12938/src/fl_boxtype.cxx	2015-07-08 20:10:44 -0400
+++ tmp/fltk-1.4.x-r12938/src/fl_boxtype.cxx	2018-06-14 12:31:14 -0400
@@ -343,6 +343,18 @@ static struct {
   {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,0}, // _FL_OXY_UP_FRAME,
+  {fl_down_frame,        2,2,4,4,0}, // _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,0}, // _FL_OXY_THIN_UP_FRAME,
+  {fl_thin_down_frame,       1,1,2,2,0}, // _FL_OXY_THIN_DOWN_FRAME,
+  {fl_up_box,      4,4,8,8,0}, // _FL_OXY_ROUND_UP_BOX,
+  {fl_down_box,        4,4,8,8,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
diff -Naurp src/fltk-1.4.x-r12938/src/fl_draw.cxx tmp/fltk-1.4.x-r12938/src/fl_draw.cxx
--- src/fltk-1.4.x-r12938/src/fl_draw.cxx	2017-02-19 10:49:48 -0500
+++ tmp/fltk-1.4.x-r12938/src/fl_draw.cxx	2018-06-14 12:19:30 -0400
@@ -31,6 +31,7 @@
 #include "flstring.h"
 #include <ctype.h>
 #include <math.h>
+#include "fl_oxy.h"
 
 
 char fl_draw_shortcut;	// set by fl_labeltypes.cxx
@@ -444,6 +445,14 @@ int fl_height(int font, int size) {
     return(height);
 }
 
+void fl_draw_arrow(int x1, int y1, Fl_Align a, bool ac, Fl_Color c, Fl_Color hc)
+{
+   if (Fl::is_scheme("oxy"))
+   {
+      oxy_arrow(x1, y1, a, ac, c, hc);
+   }
+}
+
 //
 // End of "$Id: fl_draw.cxx 12176 2017-02-19 15:49:48Z manolo $".
 //
diff -Naurp src/fltk-1.4.x-r12938/src/fl_oxy.cxx tmp/fltk-1.4.x-r12938/src/fl_oxy.cxx
--- src/fltk-1.4.x-r12938/src/fl_oxy.cxx	1969-12-31 19:00:00 -0500
+++ tmp/fltk-1.4.x-r12938/src/fl_oxy.cxx	2018-06-14 08:32:27 -0400
@@ -0,0 +1,441 @@
+//
+// "Oxy theme" drawing routines for the Fast Light Tool Kit (FLTK).
+//
+// Copyright 2011 by Dmitrij K. e-mail: kdiman at live dot ru
+//
+// This library is free software. Distribution and use rights are outlined in
+// the file "COPYING" which should have been included with this file.  If this
+// file is missing or damaged, see the license at:
+//
+//     http://www.fltk.org/COPYING.php
+//
+// Please report all bugs and problems on the following page:
+//
+//     http://www.fltk.org/str.php
+//
+
+#ifndef fl_oxy_cxx
+#define fl_oxy_cxx
+
+#include <FL/Fl.H>
+#include <FL/fl_draw.H>
+#include "fl_oxy.h"
+
+
+#define GROFF 0.45f // gradients offset
+
+
+
+void oxy_arrow(int x1, int y1, Fl_Align a, bool ac, Fl_Color c, Fl_Color hc){
+ 
+ Fl_Color hlcol = 0x0;
+
+  switch(a){
+   case FL_ALIGN_TOP:{
+    
+    hlcol = fl_color_average(c, hc, 0.38);
+    fl_color(ac?hlcol:fl_inactive(hlcol));
+    fl_line(x1, y1, x1+4, y1-4);
+    fl_line(x1+4, y1-4, x1+8, y1);
+    
+    hlcol = fl_color_average(c, hc, 0.58);
+    fl_color(ac?hlcol:fl_inactive(hlcol));
+    y1++;
+    fl_line(x1+1, y1-1, x1+4, y1-4);
+    fl_line(x1+4, y1-4, x1+7, y1-1);
+    
+    hlcol = fl_color_average(c, hc, 0.78);
+    fl_color(ac?hlcol:fl_inactive(hlcol));
+    y1-=2;
+    fl_line(x1, y1, x1+4, y1-4);
+    fl_line(x1+4, y1-4, x1+8, y1);
+    
+    break;
+   }
+   
+   case FL_ALIGN_BOTTOM:{
+    L_BOTTOM:
+    
+    hlcol = fl_color_average(c, hc, 0.38);
+    fl_color(ac?hlcol:fl_inactive(hlcol));
+    fl_line(x1, y1, x1+4, y1+4);
+    fl_line(x1+4, y1+4, x1+8, y1);
+    
+    hlcol = fl_color_average(c, hc, 0.58);
+    fl_color(ac?hlcol:fl_inactive(hlcol));
+    y1--;
+    fl_line(x1+1, y1+1, x1+4, y1+4);
+    fl_line(x1+4, y1+4, x1+7, y1+1);
+    
+    hlcol = fl_color_average(c, hc, 0.78);
+    fl_color(ac?hlcol:fl_inactive(hlcol));
+    y1+=2;
+    fl_line(x1, y1, x1+4, y1+4);
+    fl_line(x1+4, y1+4, x1+8, y1);
+    
+    break;
+   }
+   
+   case FL_ALIGN_LEFT:{
+    
+    hlcol = fl_color_average(c, hc, 0.38);
+    fl_color(ac?hlcol:fl_inactive(hlcol));
+    fl_line(x1, y1, x1-4, y1+4);
+    fl_line(x1-4, y1+4, x1, y1+8);
+    
+    hlcol = fl_color_average(c, hc, 0.78);
+    fl_color(ac?hlcol:fl_inactive(hlcol));
+    x1--;
+    fl_line(x1, y1, x1-4, y1+4);
+    fl_line(x1-4, y1+4, x1, y1+8);
+    
+    hlcol = fl_color_average(c, hc, 0.58);
+    fl_color(ac?hlcol:fl_inactive(hlcol));
+    x1+=2;
+    fl_line(x1-1, y1+1, x1-4, y1+4);
+    fl_line(x1-4, y1+4, x1-1, y1+7);
+    
+    break;
+   }
+   
+   case FL_ALIGN_RIGHT:{
+    
+    hlcol = fl_color_average(c, hc, 0.38);
+    fl_color(ac?hlcol:fl_inactive(hlcol));
+    fl_line(x1, y1, x1+4, y1+4);
+    fl_line(x1+4, y1+4, x1, y1+8);
+    
+    hlcol = fl_color_average(c, hc, 0.58);
+    fl_color(ac?hlcol:fl_inactive(hlcol));
+    x1--;
+    fl_line(x1+1, y1+1, x1+4, y1+4);
+    fl_line(x1+4, y1+4, x1+1, y1+7);
+    
+    hlcol = fl_color_average(c, hc, 0.78);
+    fl_color(ac?hlcol:fl_inactive(hlcol));
+    x1+=2;
+    fl_line(x1, y1, x1+4, y1+4);
+    fl_line(x1+4, y1+4, x1, y1+8);
+    
+    break;
+   }
+   default: { goto L_BOTTOM; break; }
+  }
+ 
+}
+
+
+
+
+  // draw gradient from South to Nord
+  static void _oxy_up_box_(int x, int y, int w, int h, Fl_Color bg){
+   float groff = GROFF;
+   if(groff < 0.0){ groff = 0.0f; }
+   float gradoffset = groff;
+   float stepoffset = (1.0/(float)h);
+   int xw = x+w-1;
+//    from bottom to top
+   for (int _y = y; _y < y+h; _y++){
+    fl_color(fl_color_average(bg, FL_WHITE, (gradoffset<1.0)?gradoffset:1.0));
+    fl_line(x, _y, xw, _y);
+    gradoffset += stepoffset;
+   }
+  }
+  
+  
+  // draw gradient from Nord to South
+  static void _oxy_down_box_(int x, int y, int w, int h, Fl_Color bg){
+   float groff = GROFF;
+   if(groff < 0.0){ groff = 0.0f; }
+   float gradoffset = groff;
+   float stepoffset = (1.0/(float)h);
+   int xw = x+w-1;
+//    from top to bottom
+   for (int _y = y+h-1; _y >= y; _y--){
+    fl_color(fl_color_average(bg, FL_WHITE, (gradoffset<1.0)?gradoffset:1.0));
+    fl_line(x, _y, xw, _y);
+    gradoffset += stepoffset;
+   }
+  }
+
+  // draw gradient for button up box
+  static void _oxy_button_up_box_(int x, int y, int w, int h, Fl_Color bg){
+   int half_h = h/2;
+   float gradoffset = 0.15f;
+   float stepoffset = (1.0/(float)half_h);
+   Fl_Color c = fl_color_average(bg, FL_WHITE, 0.5);
+   int xw = x+w-1;
+   for(int _y = y; _y <= y+half_h; _y++){
+    fl_color(fl_color_average(c, FL_WHITE, (gradoffset<1.0)?gradoffset:1.0));
+    fl_line(x, _y, xw, _y);
+    gradoffset += stepoffset;
+   }
+   gradoffset = 0.0f;
+   c = bg;
+   for(int _y = y+h-1; _y >= y+half_h-1; _y--){
+    fl_color(fl_color_average(c, FL_WHITE, (gradoffset<1.0)?gradoffset:1.0));
+    fl_line(x, _y, xw, _y);
+    gradoffset += stepoffset;
+   }
+  }
+    
+  
+  // draw gradient for button down box
+  static void _oxy_button_down_box_(int x, int y, int w, int h, Fl_Color bg){
+   bg = fl_color_average(bg, FL_BLACK, 0.88);
+   int half_h = h/2, xw = x+w-1;
+   float gradoffset = 0.15f, stepoffset = (1.0/(float)half_h);
+   Fl_Color c = fl_color_average(bg, FL_WHITE, 0.5);
+   for(int _y = y; _y <= y+half_h; _y++){
+    fl_color(fl_color_average(c, FL_WHITE, (gradoffset<1.0)?gradoffset:1.0));
+    fl_line(x, _y, xw, _y);
+    gradoffset += stepoffset;
+   }
+   gradoffset = 0.0f;
+   c = bg;
+   for(int _y = y+h-1; _y >= y+half_h-1; _y--){
+    fl_color(fl_color_average(c, FL_WHITE, (gradoffset<1.0)?gradoffset:1.0));
+    fl_line(x, _y, xw, _y);
+    gradoffset += stepoffset;
+   }
+  }
+  
+  
+  // draw rounded box
+  static void _oxy_rounded_box_(int x, int y, int w, int h, Fl_Color bg){
+   fl_color(bg);
+   if(w > h){
+    fl_pie(x, y, h, h, 90.0, 270.0); // right half of circle
+    fl_rectf(x+h/2, y, w-h, h); // rectangle between left and right half-circle
+    fl_pie(x+w-h, y, h, h, 0.0, 90.0); // top-left quarter of circle
+    fl_pie(x+w-h, y, h, h, 270.0, 360.0); // bottom-left quarter of circle
+   }
+   else {
+    fl_pie(x, y, w, w, 0.0, 180.0); // top half of circle
+    fl_rectf(x, y+w/2, w, h-w); // rectangle between top and bottom half-circle
+    fl_pie(x, y+h-w, w, w, 180.0, 360.0); // bottom half of circle
+   }
+  }
+
+
+
+static Fl_Color oxy_color(Fl_Color c) {
+  if(Fl::draw_box_active()){ return c; }
+  else { return fl_inactive(c); }
+}
+
+
+
+static void oxy_draw(int x, int y, int w, int h, Fl_Color c, int typebox, bool is_shadow){
+ 
+ if(w < 1 || h < 1) return;
+ int X, Y, W, H, X1, Y1;
+ 
+ // draw bg
+ if(typebox != _FL_OXY_UP_FRAME && typebox != _FL_OXY_DOWN_FRAME){
+  
+  X = x+1; Y = y+1; W = w-2; H = h-2;
+  
+  switch(typebox){
+   case _FL_OXY_UP_BOX: { _oxy_up_box_(X, Y, W, H, oxy_color(c)); break; }
+   case _FL_OXY_DOWN_BOX: { _oxy_down_box_(X, Y, W, H, oxy_color(c)); break; }
+   case _FL_OXY_BUTTON_UP_BOX: { _oxy_button_up_box_(X, Y, W, H, oxy_color(c)); break; }
+   case _FL_OXY_BUTTON_DOWN_BOX: { _oxy_button_down_box_(X, Y, W, H, oxy_color(c)); break; }
+   case _FL_OXY_ROUND_UP_BOX:
+   case _FL_OXY_ROUND_DOWN_BOX:
+    _oxy_rounded_box_(x, y, w, h, oxy_color(fl_color_average(c, FL_WHITE, 0.82)));
+    break;
+   default: { break; }
+  }
+ }
+ 
+ Fl_Color leftline = c, topline = c, rightline = c, bottomline = c;
+ 
+ if(typebox == _FL_OXY_ROUND_UP_BOX || typebox == _FL_OXY_ROUND_DOWN_BOX){
+  leftline = fl_color_average(c, FL_WHITE, 0.88);
+  leftline = topline = rightline = bottomline = fl_color_average(leftline, FL_BLACK, 0.97);
+ }
+  
+ else if(typebox == _FL_OXY_UP_BOX || typebox == _FL_OXY_UP_FRAME){
+  topline = fl_color_average(c, FL_BLACK, 0.95);
+  leftline = fl_color_average(c, FL_BLACK, 0.85);
+  rightline = leftline;
+  bottomline = fl_color_average(c, FL_BLACK, 0.88);
+ }
+ 
+ else if(typebox == _FL_OXY_DOWN_BOX || typebox == _FL_OXY_DOWN_FRAME){
+  topline = fl_color_average(c, FL_BLACK, 0.88);
+  leftline = fl_color_average(c, FL_BLACK, 0.85);
+  rightline = leftline;
+  bottomline = fl_color_average(c, FL_BLACK, 0.95);
+ }
+
+ else if(typebox == _FL_OXY_BUTTON_UP_BOX || typebox == _FL_OXY_BUTTON_DOWN_BOX){
+  topline = leftline = rightline = bottomline = fl_color_average(c, FL_BLACK, 0.85);
+ }
+ 
+ // draw border
+ if(typebox != _FL_OXY_ROUND_UP_BOX && typebox != _FL_OXY_ROUND_DOWN_BOX){
+  // bottom side
+  fl_color(oxy_color(bottomline));
+  fl_line(x+1, y+h-1, x+w-2, y+h-1);
+  // right side
+  fl_color(oxy_color(rightline));
+  fl_line(x+w-1, y+1, x+w-1, y+h-2);
+  // top side
+  fl_color(oxy_color(topline));
+  fl_line(x+1, y, x+w-2, y);
+  // left side
+  fl_color(oxy_color(leftline));
+  fl_line(x, y+1, x, y+h-2);
+ }
+ 
+ // draw shadow
+ if(is_shadow){
+  
+  if(typebox == _FL_OXY_ROUND_UP_BOX){
+   topline = fl_color_average(c, FL_WHITE, 0.35);
+   bottomline = fl_color_average(c, FL_BLACK, 0.94);
+  }
+  
+  else if(typebox == _FL_OXY_ROUND_DOWN_BOX){
+   topline = fl_color_average(c, FL_BLACK, 0.94);
+   bottomline = fl_color_average(c, FL_WHITE, 0.35);
+  }
+  
+  else if(typebox == _FL_OXY_UP_BOX || typebox == _FL_OXY_UP_FRAME){
+   topline = fl_color_average(c, FL_WHITE, 0.35);
+   leftline = fl_color_average(c, FL_WHITE, 0.4);
+   rightline = leftline;
+   bottomline = fl_color_average(c, FL_BLACK, 0.8);
+  }
+  
+  else if(typebox == _FL_OXY_DOWN_BOX || typebox == _FL_OXY_DOWN_FRAME){
+   topline = fl_color_average(c, FL_BLACK, 0.8);
+   leftline = fl_color_average(c, FL_BLACK, 0.94);
+   rightline = leftline;
+   bottomline = fl_color_average(c, FL_WHITE, 0.35);
+  }
+  
+  int xw1=x+w-1;
+  int xw2=x+w-2;
+  int xw3=x+w-3;
+  int yh2=y+h-2;
+  int yh1=y+h-1;
+  
+  if(typebox == _FL_OXY_UP_BOX || typebox == _FL_OXY_UP_FRAME){
+   fl_color(oxy_color(topline));
+   X=x+1;Y=y+1;X1=xw2;Y1=y+1;
+   fl_line(X, Y, X1, Y1); // top line
+   
+   fl_color(oxy_color(leftline));
+   X=x+1;Y=yh2;X1=x+1;Y1=y+2;
+   fl_line(X, Y, X1, Y1); // left line
+   
+   fl_color(oxy_color(rightline));
+   X=xw2;Y=y+2;X1=xw2;Y1=yh2;
+   fl_line(X, Y, X1, Y1); // right line
+   
+   fl_color(oxy_color(bottomline));
+   X=xw2;Y=yh2;X1=x+1;Y1=yh2;
+   fl_line(X, Y, X1, Y1); // bottom line
+  }
+  
+  else if(typebox == _FL_OXY_DOWN_BOX || typebox == _FL_OXY_DOWN_FRAME){
+   fl_color(oxy_color(topline));
+   X=x+1;Y=y+1;X1=xw2;Y1=y+1;
+   fl_line(X, Y, X1, Y1); // top line
+   
+   fl_color(oxy_color(leftline));
+   X=x+1;Y=yh2;X1=x+1;Y1=y+2;
+   fl_line(X, Y, X1, Y1); // left line
+   
+   fl_color(oxy_color(rightline));
+   X=xw2;Y=y+2;X1=xw2;Y1=yh2;
+   fl_line(X, Y, X1, Y1); // right line
+   
+   fl_color(oxy_color(bottomline));
+   X=xw3;Y=yh2;X1=x+2;Y1=yh2;
+   fl_line(X, Y, X1, Y1); // bottom line
+  }
+  
+  else if(typebox == _FL_OXY_ROUND_UP_BOX || typebox == _FL_OXY_ROUND_DOWN_BOX){
+   
+   int Radius, smooth;
+   int r_offset2; // quarter of smooth and half of smooth
+   
+   if(w > h){ smooth = w; }
+   else { smooth = h; }
+   
+    // correcting `smooth'
+   if(smooth > 0 && (smooth*3 > w || smooth*3 > h)){
+    if(h < w){ smooth = h/3; }
+    else { smooth = w/3; }
+   }
+   
+   r_offset2 = smooth/2;
+   
+   Radius = smooth*3;
+   if(Radius == 3){ Radius = 4; }
+   
+   fl_color(oxy_color(topline));
+   fl_line(x+1, yh1-smooth-r_offset2, x+1, y+r_offset2+smooth); // left side
+   fl_arc(x+1, y+1, Radius, Radius, 90.0, 180.0); // left-top corner
+   if(typebox == _FL_OXY_ROUND_DOWN_BOX){ fl_arc(x+1, y+1, Radius+1, Radius+1, 90.0, 180.0); } // left-top corner (DOWN_BOX)
+   fl_line(x+smooth+r_offset2, y+1, xw1-smooth-r_offset2, y+1); // top side
+   fl_arc(xw1-Radius, y+1, Radius, Radius, 00.0, 90.0); // right-top corner
+   if(typebox == _FL_OXY_ROUND_DOWN_BOX){ fl_arc(xw1-Radius, y+1, Radius+1, Radius+1, 00.0, 90.0); } // right-top corner (DOWN_BOX)
+   fl_line(xw2, y+smooth+r_offset2, xw2, yh1-smooth-r_offset2); // right side
+   fl_arc(x+1, yh1-Radius, Radius, Radius, 180.0, 200.0); // left-bottom corner
+   fl_arc(xw1-Radius, yh1-Radius, Radius, Radius, 340.0, 360.0); // right-bottom
+   fl_color(oxy_color(bottomline));
+   fl_arc(x+1, yh1-Radius, Radius, Radius, 200.0, 270.0); // left-bottom corner
+   if(typebox == _FL_OXY_ROUND_UP_BOX){ fl_arc(x+1, yh1-Radius, Radius+1, Radius+1, 200.0, 270.0); } // left-bottom corner (UP_BOX)
+   fl_line(xw1-smooth-r_offset2, yh2, x+smooth+r_offset2, yh2); // bottom side
+   fl_arc(xw1-Radius, yh1-Radius, Radius, Radius, 270.0, 340.0); // right-bottom corner
+   if(typebox == _FL_OXY_ROUND_UP_BOX){ fl_arc(xw1-Radius, yh1-Radius, Radius+1, Radius+1, 270.0, 340.0); } // right-bottom corner
+  }
+  
+ } /// end `if(is_shadow)'
+ 
+} /// end `static void oxy_draw(...)'
+
+
+
+void button_up_box(int x, int y, int w, int h, Fl_Color c){ oxy_draw(x, y, w, h, c, _FL_OXY_BUTTON_UP_BOX, true); }
+void button_down_box(int x, int y, int w, int h, Fl_Color c){ oxy_draw(x, y, w, h, c, _FL_OXY_BUTTON_DOWN_BOX, true); }
+void up_box(int x, int y, int w, int h, Fl_Color c){ oxy_draw(x, y, w, h, c, _FL_OXY_UP_BOX, true); }
+void down_box(int x, int y, int w, int h, Fl_Color c){ oxy_draw(x, y, w, h, c, _FL_OXY_DOWN_BOX, true); }
+void thin_up_box(int x, int y, int w, int h, Fl_Color c){ oxy_draw(x, y, w, h, c, _FL_OXY_UP_BOX, false); }
+void thin_down_box(int x, int y, int w, int h, Fl_Color c){ oxy_draw(x, y, w, h, c, _FL_OXY_DOWN_BOX, false); }
+void up_frame(int x, int y, int w, int h, Fl_Color c){ oxy_draw(x, y, w, h, c, _FL_OXY_UP_FRAME, true); }
+void down_frame(int x, int y, int w, int h, Fl_Color c){ oxy_draw(x, y, w, h, c, _FL_OXY_DOWN_FRAME, true); }
+void thin_up_frame(int x, int y, int w, int h, Fl_Color c){ oxy_draw(x, y, w, h, c, _FL_OXY_UP_FRAME, false); }
+void thin_down_frame(int x, int y, int w, int h, Fl_Color c){ oxy_draw(x, y, w, h, c, _FL_OXY_DOWN_FRAME, false); }
+void round_up_box(int x, int y, int w, int h, Fl_Color c){ oxy_draw(x, y, w, h, c, _FL_OXY_ROUND_UP_BOX, true); }
+void round_down_box(int x, int y, int w, int h, Fl_Color c){ oxy_draw(x, y, w, h, c, _FL_OXY_ROUND_DOWN_BOX, true); }
+
+
+
+extern void fl_internal_boxtype(Fl_Boxtype, Fl_Box_Draw_F*);
+
+Fl_Boxtype fl_define_FL_OXY_UP_BOX(){
+
+ fl_internal_boxtype(_FL_OXY_UP_BOX, up_box);
+ fl_internal_boxtype(_FL_OXY_DOWN_BOX, down_box);
+ fl_internal_boxtype(_FL_OXY_UP_FRAME, up_frame);
+ fl_internal_boxtype(_FL_OXY_DOWN_FRAME, down_frame);
+ fl_internal_boxtype(_FL_OXY_THIN_UP_BOX, thin_up_box);
+ fl_internal_boxtype(_FL_OXY_THIN_DOWN_BOX, thin_down_box);
+ fl_internal_boxtype(_FL_OXY_THIN_UP_FRAME, thin_up_frame);
+ fl_internal_boxtype(_FL_OXY_THIN_DOWN_FRAME, thin_down_frame);
+ fl_internal_boxtype(_FL_OXY_ROUND_UP_BOX, round_up_box);
+ fl_internal_boxtype(_FL_OXY_ROUND_DOWN_BOX, round_down_box);
+ fl_internal_boxtype(_FL_OXY_BUTTON_UP_BOX, button_up_box);
+ fl_internal_boxtype(_FL_OXY_BUTTON_DOWN_BOX, button_down_box);
+ 
+ return _FL_OXY_UP_BOX;
+ 
+}
+
+#endif
diff -Naurp src/fltk-1.4.x-r12938/src/fl_oxy.h tmp/fltk-1.4.x-r12938/src/fl_oxy.h
--- src/fltk-1.4.x-r12938/src/fl_oxy.h	1969-12-31 19:00:00 -0500
+++ tmp/fltk-1.4.x-r12938/src/fl_oxy.h	2018-06-14 12:19:26 -0400
@@ -0,0 +1,25 @@
+//
+// "Oxy theme" drawing routines for the Fast Light Tool Kit (FLTK).
+//
+// Copyright 2011 by Dmitrij K. e-mail: kdiman at live dot ru
+//
+// This library is free software. Distribution and use rights are outlined in
+// the file "COPYING" which should have been included with this file.  If this
+// file is missing or damaged, see the license at:
+//
+//     http://www.fltk.org/COPYING.php
+//
+// Please report all bugs and problems on the following page:
+//
+//     http://www.fltk.org/str.php
+//
+
+#ifndef fl_oxy_h
+#define fl_oxy_h
+
+#include <FL/Fl.H>
+
+// to draw arrow, a - direction the arrow, ac - active widget?, c - color the arrow, hc - lighting the arrrow
+extern FL_EXPORT void oxy_arrow(int x1, int y1, Fl_Align a, bool ac, Fl_Color c, Fl_Color hc=FL_BLACK);
+
+#endif
diff -Naurp src/fltk-1.4.x-r12938/test/demo.cxx tmp/fltk-1.4.x-r12938/test/demo.cxx
--- src/fltk-1.4.x-r12938/test/demo.cxx	2018-02-09 09:39:42 -0500
+++ tmp/fltk-1.4.x-r12938/test/demo.cxx	2018-06-14 07:48:07 -0400
@@ -97,13 +97,15 @@ void create_the_forms() {
   choice->add("none");
   choice->add("gtk+");
   choice->add("gleam");
+  choice->add("oxy");
   choice->add("plastic");
   choice->callback((Fl_Callback *)doscheme);
   Fl::scheme(NULL);
   if (!Fl::scheme()) choice->value(0);
   else if (!strcmp(Fl::scheme(), "gtk+")) choice->value(1);
   else if (!strcmp(Fl::scheme(), "gleam")) choice->value(2);
-  else if (!strcmp(Fl::scheme(), "plastic")) choice->value(3);
+  else if (!strcmp(Fl::scheme(), "oxy")) choice->value(3);
+  else if (!strcmp(Fl::scheme(), "plastic")) choice->value(4);
   else choice->value(0);
   obj = new Fl_Button(10,15,330,380); obj->type(FL_HIDDEN_BUTTON);
   obj->callback(doback);
