DO NOT REPLY TO THIS MESSAGE. INSTEAD, POST ANY RESPONSES TO THE LINK BELOW.
[STR New]
Link: http://www.fltk.org/str.php?L2675
Version: 1.4-feature
Attached file "patchscheme.diff"...
Link: http://www.fltk.org/str.php?L2675
Version: 1.4-feature
diff -Naurp src/fltk-1.3.2/src/fl_gleam-3.0.cxx
tmp/fltk-1.3.2/src/fl_gleam-3.0.cxx
--- src/fltk-1.3.2/src/fl_gleam-3.0.cxx 1969-12-31 19:00:00 -0500
+++ tmp/fltk-1.3.2/src/fl_gleam-3.0.cxx
@@ -0,0 +1,181 @@
+//
+// "Gleam" drawing routines for the Fast Light Tool Kit (FLTK).
+//
+// These box types provide a sort of Clearlooks Glossy scheme
+// for FLTK.
+//
+// Copyright 2001-2005 by Colin Jones.
+//
+// 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 seperate files so they are not linked
+// in if not used.
+
+#include <FL/Fl.H>
+#include <FL/fl_draw.H>
+
+static void gleam_color(Fl_Color c) {
+ if (Fl::draw_box_active()) fl_color(c);
+ else fl_color(fl_inactive(c));
+}
+ static void frame_rect(int x, int y, int w, int h, Fl_Color bc) {
+
+ // Draw the outline around the perimeter of the box
+ gleam_color(bc);
+ fl_line(x, y, x + w, y);
+ fl_line(x + w, y, x + w, y + h);
+ fl_line(x + w, y +h, x, y + h);
+ fl_line(x, y +h, x, y);
+
+}
+
+ static void shade_rect_up(int x, int y, int w, int h, Fl_Color bc) {
+ // Draws the shiny
+ int half = h / 2;
+ //gleam_color(bc);
+ //fl_rectf(x, y, w, h);
+
+ gleam_color(fl_color_average(bc, FL_WHITE, .50f));
+ fl_rectf(x, y, w, half + 1);
+
+ float step_size=0.10;
+ int j = 0;
+ step_size = (1.0 / (float)half);
+ //printf("1 / %i = %f \n", half, (1.0/half));
+
+ /**
+ * This loop generates the nice gradient at the bottom of the
+ * widget
+ **/
+ for (float k = 1; k >= 0; k -= step_size)
+ {
+ j++;
+ gleam_color(fl_color_average(bc, FL_WHITE, k));
+ fl_line(x, y+j+half-1, x + w -1, y+j+half-1);
+ }
+
+}
+
+static void frame_rect_up(int x, int y, int w, int h, Fl_Color bc) {
+
+ // Draw the outline around the perimeter of the box
+ gleam_color(bc);
+ fl_line(x + 1, y, x + w - 1, y); //Go across.
+ fl_line(x, y + (h/2), x, y + 1); //Go to top
+ fl_line(x + w, y + (h/2), x + w, y + 1); //Go to top
+
+ gleam_color(fl_darker(bc));
+ fl_line(x + 1, y +h, x + w - 1, y + h); //Go across again!
+ fl_line(x, y + (h/2), x, y + h - 1); //Go to top
+ fl_line(x + w, y + (h/2), x + w, y + h - 1); //Go to top
+
+}
+
+static void frame_rect_down(int x, int y, int w, int h, Fl_Color bc) {
+
+ // Draw the outline around the perimeter of the box
+ gleam_color(fl_darker(bc));
+ fl_line(x + 1, y, x + w - 1, y); //Go across.
+ fl_line(x, y + (h/2), x, y + 1); //Go to top
+ fl_line(x + w, y + (h/2), x + w, y + 1); //Go to top
+
+ //gleam_color(bc);
+ fl_line(x + 1, y +h, x + w - 1, y + h); //Go across again!
+ fl_line(x, y + (h/2), x, y + h - 1); //Go to top
+ fl_line(x + w, y + (h/2), x + w, y + h - 1); //Go to top
+
+}
+
+
+ static void shade_rect_down(int x, int y, int w, int h, Fl_Color bc) {
+
+ gleam_color(bc);
+ Fl_Color color = fl_color();
+ fl_rectf(x, y, w, h);
+ gleam_color(fl_color_average(bc, fl_darker(color), 0.65));
+ fl_line(x, y+1, x + w, y+1);
+ fl_line(x, y+1, x, y+h-2);
+ gleam_color(fl_color_average(bc, fl_darker(color), 0.85));
+ fl_line(x+1, y+2, x + w, y+2);
+ fl_line(x+1, y+2, x +1, y + h-2);
+
+}
+
+
+ static void up_frame(int x, int y, int w, int h, Fl_Color c) {
+ frame_rect_up(x, y, w - 1, h - 1, fl_darker(c));
+}
+
+
+ static void thin_up_box(int x, int y, int w, int h, Fl_Color c) {
+
+ shade_rect_up(x + 1, y, w - 2, h - 1, c);
+ frame_rect(x + 1, y + 1, w - 3, h - 3, fl_color_average(c, FL_WHITE,
.25f));
+ frame_rect_up(x, y, w - 1, h - 1, fl_darker(c));
+
+}
+
+
+
+
+ static void up_box(int x, int y, int w, int h, Fl_Color c) {
+ shade_rect_up(x + 1, y, w - 2, h - 1, c);
+ frame_rect_up(x, y, w - 1, h - 1, fl_darker(c));
+ //draw the inner rect.
+ frame_rect(x + 1, y + 1, w - 3, h - 3, fl_color_average(c, FL_WHITE,
.25f));
+
+}
+
+
+static void down_frame(int x, int y, int w, int h, Fl_Color c) {
+ frame_rect_down(x, y, w - 1, h - 1, fl_darker(c));
+}
+
+
+ static void down_box(int x, int y, int w, int h, Fl_Color c) {
+ shade_rect_down(x + 1, y, w - 2, h, c);
+ down_frame(x, y, w, h, fl_darker(c));
+ //draw the inner rect.
+ //frame_rect(x + 1, y + 1, w - 3, h - 3, fl_color_average(c, FL_BLACK,
.65));
+}
+
+ static void thin_down_box(int x, int y, int w, int h, Fl_Color c) {
+
+ down_box(x, y, w, h, c);
+
+}
+
+extern void fl_internal_boxtype(Fl_Boxtype, Fl_Box_Draw_F*);
+
+
+Fl_Boxtype fl_define_FL_GLEAM_UP_BOX() {
+ fl_internal_boxtype(_FL_GLEAM_UP_BOX, up_box);
+ fl_internal_boxtype(_FL_GLEAM_DOWN_BOX, down_box);
+ fl_internal_boxtype(_FL_GLEAM_UP_FRAME, up_frame);
+ fl_internal_boxtype(_FL_GLEAM_DOWN_FRAME, down_frame);
+ fl_internal_boxtype(_FL_GLEAM_THIN_UP_BOX, thin_up_box);
+ fl_internal_boxtype(_FL_GLEAM_THIN_DOWN_BOX, thin_down_box);
+ fl_internal_boxtype(_FL_GLEAM_ROUND_UP_BOX, up_box);
+ fl_internal_boxtype(_FL_GLEAM_ROUND_DOWN_BOX, down_box);
+
+ return _FL_GLEAM_UP_BOX;
+}
diff -Naurp src/fltk-1.3.0/src/fl_grad1_theme.cxx
tmp/fltk-1.3.0/src/fl_grad1_theme.cxx
--- src/fltk-1.3.0/src/fl_grad1_theme.cxx 1969-12-31 19:00:00 -0500
+++ tmp/fltk-1.3.0/src/fl_grad1_theme.cxx
@@ -0,0 +1,349 @@
+//
+// "Grad1 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_grad1_theme_cxx
+#define fl_grad1_theme_cxx
+
+#include <FL/Fl.H>
+#include <FL/fl_draw.H>
+#include "fl_grad1_theme.h"
+
+
+#define GROFF 0.45f // gradients offset
+
+
+ // draw gradient from South to Nord
+ static void _grad1_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 _grad1_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 _grad1_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 _grad1_button_down_box_(int x, int y, int w, int h, Fl_Color bg){
+ int half_h = h/2;
+ float gradoffset;
+ float stepoffset = (1.0/(float)half_h);
+ Fl_Color c = fl_color_average(bg, FL_WHITE, 0.65);
+ int xw = x+w-1;
+ fl_color(c);
+ for(int _y = y; _y <= y+half_h; _y++){
+ fl_line(x, _y, xw, _y);
+ }
+ gradoffset = 0.20f;
+ c = fl_color_average(bg, FL_WHITE, 0.55);
+ 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 _grad1_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
+ }
+ }
+
+
+enum {
+ GRAD1_UP_BOX,
+ GRAD1_DOWN_BOX,
+
+ GRAD1_UP_BUTTON,
+ GRAD1_DOWN_BUTTON,
+
+ GRAD1_UP_ROUND,
+ GRAD1_DOWN_ROUND,
+
+ GRAD1_UP_FRAME,
+ GRAD1_DOWN_FRAME
+};
+
+
+static Fl_Color grad1_color(Fl_Color c) {
+ if(Fl::draw_box_active()){ return c; }
+ else { return fl_inactive(c); }
+}
+
+
+
+static void grad1_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 != GRAD1_UP_FRAME && typebox != GRAD1_DOWN_FRAME){
+
+ X = x+1; Y = y+1; W = w-2; H = h-2;
+
+ switch(typebox){
+ case GRAD1_UP_BOX: { _grad1_up_box_(X, Y, W, H, grad1_color(c)); break; }
+ case GRAD1_DOWN_BOX: { _grad1_down_box_(X, Y, W, H, grad1_color(c)); break;
}
+ case GRAD1_UP_BUTTON: { _grad1_button_up_box_(X, Y, W, H, grad1_color(c));
break; }
+ case GRAD1_DOWN_BUTTON: { _grad1_button_down_box_(X, Y, W, H,
grad1_color(c)); break; }
+ case GRAD1_UP_ROUND:
+ case GRAD1_DOWN_ROUND:
+ _grad1_rounded_box_(x, y, w, h, grad1_color(fl_color_average(c, FL_WHITE,
0.82)));
+ break;
+ default: { break; }
+ }
+ }
+
+ Fl_Color leftline = c, topline = c, rightline = c, bottomline = c;
+
+ if(typebox == GRAD1_UP_ROUND || typebox == GRAD1_DOWN_ROUND){
+ leftline = fl_color_average(c, FL_WHITE, 0.88);
+ leftline = topline = rightline = bottomline = fl_color_average(leftline,
FL_BLACK, 0.97);
+ }
+
+ else if(typebox == GRAD1_UP_BOX || typebox == GRAD1_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 == GRAD1_DOWN_BOX || typebox == GRAD1_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);
+ }
+
+ // draw border
+ if(typebox != GRAD1_UP_ROUND && typebox != GRAD1_DOWN_ROUND){
+ // bottom side
+ fl_color(grad1_color(bottomline));
+ fl_line(x+1, y+h-1, x+w-2, y+h-1);
+ // right side
+ fl_color(grad1_color(rightline));
+ fl_line(x+w-1, y+1, x+w-1, y+h-2);
+ // top side
+ fl_color(grad1_color(topline));
+ fl_line(x+1, y, x+w-2, y);
+ // left side
+ fl_color(grad1_color(leftline));
+ fl_line(x, y+1, x, y+h-2);
+ }
+
+ // draw shadow
+ if(is_shadow){
+
+ if(typebox == GRAD1_UP_ROUND){
+ topline = fl_color_average(c, FL_WHITE, 0.35);
+ bottomline = fl_color_average(c, FL_BLACK, 0.94);
+ }
+
+ else if(typebox == GRAD1_DOWN_ROUND){
+ topline = fl_color_average(c, FL_BLACK, 0.94);
+ bottomline = fl_color_average(c, FL_WHITE, 0.35);
+ }
+
+ else if(typebox == GRAD1_UP_BOX || typebox == GRAD1_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 == GRAD1_DOWN_BOX || typebox == GRAD1_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 == GRAD1_UP_BOX || typebox == GRAD1_UP_FRAME){
+ fl_color(grad1_color(topline));
+ X=x+1;Y=y+1;X1=xw2;Y1=y+1;
+ fl_line(X, Y, X1, Y1); // top line
+
+ fl_color(grad1_color(leftline));
+ X=x+1;Y=yh2;X1=x+1;Y1=y+2;
+ fl_line(X, Y, X1, Y1); // left line
+
+ fl_color(grad1_color(rightline));
+ X=xw2;Y=y+2;X1=xw2;Y1=yh2;
+ fl_line(X, Y, X1, Y1); // right line
+
+ fl_color(grad1_color(bottomline));
+ X=xw2;Y=yh2;X1=x+1;Y1=yh2;
+ fl_line(X, Y, X1, Y1); // bottom line
+ }
+
+ else if(typebox == GRAD1_DOWN_BOX || typebox == GRAD1_DOWN_FRAME){
+ fl_color(grad1_color(topline));
+ X=x+1;Y=y+1;X1=xw2;Y1=y+1;
+ fl_line(X, Y, X1, Y1); // top line
+
+ fl_color(grad1_color(leftline));
+ X=x+1;Y=yh2;X1=x+1;Y1=y+2;
+ fl_line(X, Y, X1, Y1); // left line
+
+ fl_color(grad1_color(rightline));
+ X=xw2;Y=y+2;X1=xw2;Y1=yh2;
+ fl_line(X, Y, X1, Y1); // right line
+
+ fl_color(grad1_color(bottomline));
+ X=xw3;Y=yh2;X1=x+2;Y1=yh2;
+ fl_line(X, Y, X1, Y1); // bottom line
+ }
+
+ else if(typebox == GRAD1_UP_ROUND || typebox == GRAD1_DOWN_ROUND){
+
+ int Radius, smooth;
+ int r_offset1, 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_offset1 = smooth/4; r_offset2 = smooth/2;
+
+ Radius = smooth*3;
+ if(Radius == 3){ Radius = 4; }
+
+ fl_color(grad1_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 == GRAD1_DOWN_ROUND){ 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 == GRAD1_DOWN_ROUND){ 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(grad1_color(bottomline));
+ fl_arc(x+1, yh1-Radius, Radius, Radius, 200.0, 270.0); // left-bottom corner
+ if(typebox == GRAD1_UP_ROUND){ 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 == GRAD1_UP_ROUND){ fl_arc(xw1-Radius, yh1-Radius, Radius+1,
Radius+1, 270.0, 340.0); } // right-bottom corner
+ }
+
+ } /// end `if(is_shadow)'
+
+} /// end `static void grad1_draw(...)'
+
+
+
+void grad1_button_up_box(int x, int y, int w, int h, Fl_Color c){
grad1_draw(x, y, w, h, c, GRAD1_UP_BUTTON, true); }
+void grad1_button_down_box(int x, int y, int w, int h, Fl_Color c){
grad1_draw(x, y, w, h, c, GRAD1_DOWN_BUTTON, true); }
+void grad1_up_box(int x, int y, int w, int h, Fl_Color c){ grad1_draw(x, y, w,
h, c, GRAD1_UP_BOX, true); }
+void grad1_down_box(int x, int y, int w, int h, Fl_Color c){ grad1_draw(x, y,
w, h, c, GRAD1_DOWN_BOX, true); }
+void grad1_thin_up_box(int x, int y, int w, int h, Fl_Color c){ grad1_draw(x,
y, w, h, c, GRAD1_UP_BOX, false); }
+void grad1_thin_down_box(int x, int y, int w, int h, Fl_Color c){
grad1_draw(x, y, w, h, c, GRAD1_DOWN_BOX, false); }
+void grad1_up_frame(int x, int y, int w, int h, Fl_Color c){ grad1_draw(x, y,
w, h, c, GRAD1_UP_FRAME, true); }
+void grad1_down_frame(int x, int y, int w, int h, Fl_Color c){ grad1_draw(x,
y, w, h, c, GRAD1_DOWN_FRAME, true); }
+void grad1_thin_up_frame(int x, int y, int w, int h, Fl_Color c){
grad1_draw(x, y, w, h, c, GRAD1_UP_FRAME, false); }
+void grad1_thin_down_frame(int x, int y, int w, int h, Fl_Color c){
grad1_draw(x, y, w, h, c, GRAD1_DOWN_FRAME, false); }
+void grad1_round_up_box(int x, int y, int w, int h, Fl_Color c){ grad1_draw(x,
y, w, h, c, GRAD1_UP_ROUND, true); }
+void grad1_round_down_box(int x, int y, int w, int h, Fl_Color c){
grad1_draw(x, y, w, h, c, GRAD1_DOWN_ROUND, true); }
+
+
+
+extern void fl_internal_boxtype(Fl_Boxtype, Fl_Box_Draw_F*);
+
+Fl_Boxtype fl_define_FL_GRAD1_UP_BOX(){
+
+ fl_internal_boxtype(_FL_GRAD1_UP_BOX, grad1_up_box);
+ fl_internal_boxtype(_FL_GRAD1_DOWN_BOX, grad1_down_box);
+ fl_internal_boxtype(_FL_GRAD1_UP_FRAME, grad1_up_frame);
+ fl_internal_boxtype(_FL_GRAD1_DOWN_FRAME, grad1_down_frame);
+ fl_internal_boxtype(_FL_GRAD1_THIN_UP_BOX, grad1_thin_up_box);
+ fl_internal_boxtype(_FL_GRAD1_THIN_DOWN_BOX, grad1_thin_down_box);
+ fl_internal_boxtype(_FL_GRAD1_THIN_UP_FRAME, grad1_thin_up_frame);
+ fl_internal_boxtype(_FL_GRAD1_THIN_DOWN_FRAME, grad1_thin_down_frame);
+ fl_internal_boxtype(_FL_GRAD1_ROUND_UP_BOX, grad1_round_up_box);
+ fl_internal_boxtype(_FL_GRAD1_ROUND_DOWN_BOX, grad1_round_down_box);
+ fl_internal_boxtype(_FL_GRAD1_BUTTON_UP_BOX, grad1_button_up_box);
+ fl_internal_boxtype(_FL_GRAD1_BUTTON_DOWN_BOX, grad1_button_down_box);
+
+ return _FL_GRAD1_UP_BOX;
+
+}
+
+#endif
diff -Naurp src/fltk-1.3.2/src/fl_grad1_theme.h
tmp/fltk-1.3.2/src/fl_grad1_theme.h
--- src/fltk-1.3.2/src/fl_grad1_theme.h 1969-12-31 19:00:00 -0500
+++ tmp/fltk-1.3.2/src/fl_grad1_theme.h
@@ -0,0 +1,35 @@
+//
+// "Grad1 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_grad_theme_h
+#define fl_grad_theme_h
+
+#include <FL/Fl.H>
+
+extern FL_EXPORT void grad1_up_box(int x, int y, int w, int h, Fl_Color c);
+extern FL_EXPORT void grad1_down_box(int x, int y, int w, int h, Fl_Color c);
+extern FL_EXPORT void grad1_up_frame(int x, int y, int w, int h, Fl_Color c);
+extern FL_EXPORT void grad1_down_frame(int x, int y, int w, int h, Fl_Color c);
+extern FL_EXPORT void grad1_thin_up_box(int x, int y, int w, int h, Fl_Color
c);
+extern FL_EXPORT void grad1_thin_down_box(int x, int y, int w, int h, Fl_Color
c);
+extern FL_EXPORT void grad1_thin_up_frame(int x, int y, int w, int h, Fl_Color
c);
+extern FL_EXPORT void grad1_thin_down_frame(int x, int y, int w, int h,
Fl_Color c);
+extern FL_EXPORT void grad1_round_up_box(int x, int y, int w, int h, Fl_Color
c);
+extern FL_EXPORT void grad1_round_down_box(int x, int y, int w, int h,
Fl_Color c);
+extern FL_EXPORT void grad1_button_up_box(int x, int y, int w, int h, Fl_Color
c);
+extern FL_EXPORT void grad1_button_down_box(int x, int y, int w, int h,
Fl_Color c);
+
+#endif
diff -Naurp src/fltk-1.3.2/FL/Enumerations.H tmp/fltk-1.3.2/FL/Enumerations.H
--- src/fltk-1.3.2/FL/Enumerations.H 2012-12-09 13:45:57 -0500
+++ tmp/fltk-1.3.2/FL/Enumerations.H
@@ -516,6 +516,26 @@ enum Fl_Boxtype { // boxtypes (if you ch
_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_GRAD1_UP_BOX,
+ _FL_GRAD1_DOWN_BOX,
+ _FL_GRAD1_UP_FRAME,
+ _FL_GRAD1_DOWN_FRAME,
+ _FL_GRAD1_THIN_UP_BOX,
+ _FL_GRAD1_THIN_DOWN_BOX,
+ _FL_GRAD1_THIN_UP_FRAME,
+ _FL_GRAD1_THIN_DOWN_FRAME,
+ _FL_GRAD1_ROUND_UP_BOX,
+ _FL_GRAD1_ROUND_DOWN_BOX,
+ _FL_GRAD1_BUTTON_UP_BOX,
+ _FL_GRAD1_BUTTON_DOWN_BOX,
+ _FL_GLEAM_UP_BOX,
+ _FL_GLEAM_DOWN_BOX,
+ _FL_GLEAM_UP_FRAME,
+ _FL_GLEAM_DOWN_FRAME,
+ _FL_GLEAM_THIN_UP_BOX,
+ _FL_GLEAM_THIN_DOWN_BOX,
+ _FL_GLEAM_ROUND_UP_BOX,
+ _FL_GLEAM_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();
@@ -562,6 +582,30 @@ extern FL_EXPORT Fl_Boxtype fl_define_FL
#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)
+extern FL_EXPORT Fl_Boxtype fl_define_FL_GRAD1_UP_BOX();
+#define FL_GRAD1_UP_BOX fl_define_FL_GRAD1_UP_BOX()
+#define FL_GRAD1_DOWN_BOX (Fl_Boxtype)(fl_define_FL_GRAD1_UP_BOX()+1)
+#define FL_GRAD1_UP_FRAME (Fl_Boxtype)(fl_define_FL_GRAD1_UP_BOX()+2)
+#define FL_GRAD1_DOWN_FRAME (Fl_Boxtype)(fl_define_FL_GRAD1_UP_BOX()+3)
+#define FL_GRAD1_THIN_UP_BOX (Fl_Boxtype)(fl_define_FL_GRAD1_UP_BOX()+4)
+#define FL_GRAD1_THIN_DOWN_BOX (Fl_Boxtype)(fl_define_FL_GRAD1_UP_BOX()+5)
+#define FL_GRAD1_THIN_UP_FRAME (Fl_Boxtype)(fl_define_FL_GRAD1_UP_BOX()+6)
+#define FL_GRAD1_THIN_DOWN_FRAME (Fl_Boxtype)(fl_define_FL_GRAD1_UP_BOX()+7)
+#define FL_GRAD1_ROUND_UP_BOX (Fl_Boxtype)(fl_define_FL_GRAD1_UP_BOX()+8)
+#define FL_GRAD1_ROUND_DOWN_BOX (Fl_Boxtype)(fl_define_FL_GRAD1_UP_BOX()+9)
+#define FL_GRAD1_BUTTON_UP_BOX (Fl_Boxtype)(fl_define_FL_GRAD1_UP_BOX()+10)
+#define FL_GRAD1_BUTTON_DOWN_BOX (Fl_Boxtype)(fl_define_FL_GRAD1_UP_BOX()+11)
+
+extern FL_EXPORT Fl_Boxtype fl_define_FL_GLEAM_UP_BOX();
+#define FL_GLEAM_UP_BOX fl_define_FL_GLEAM_UP_BOX()
+#define FL_GLEAM_DOWN_BOX (Fl_Boxtype)(fl_define_FL_GLEAM_UP_BOX()+1)
+#define FL_GLEAM_UP_FRAME (Fl_Boxtype)(fl_define_FL_GLEAM_UP_BOX()+2)
+#define FL_GLEAM_DOWN_FRAME (Fl_Boxtype)(fl_define_FL_GLEAM_UP_BOX()+3)
+#define FL_GLEAM_THIN_UP_BOX (Fl_Boxtype)(fl_define_FL_GLEAM_UP_BOX()+4)
+#define FL_GLEAM_THIN_DOWN_BOX (Fl_Boxtype)(fl_define_FL_GLEAM_UP_BOX()+5)
+#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)
+
// conversions of box types to other boxtypes:
/**
Get the filled version of a frame.
diff -Naurp src/fltk-1.3.2/fluid/Fl_Widget_Type.cxx
tmp/fltk-1.3.2/fluid/Fl_Widget_Type.cxx
--- src/fltk-1.3.2/fluid/Fl_Widget_Type.cxx 2011-09-28 16:43:05 -0400
+++ tmp/fltk-1.3.2/fluid/Fl_Widget_Type.cxx
@@ -678,6 +678,20 @@ Fl_Menu_Item boxmenu[] = {
{"GTK_THIN_DOWN_BOX",0,0,(void *)FL_GTK_THIN_DOWN_BOX},
{"GTK_ROUND_UP_BOX",0,0,(void *)FL_GTK_ROUND_UP_BOX},
{"GTK_ROUND_DOWN_BOX",0,0,(void *)FL_GTK_ROUND_DOWN_BOX},
+{"GRAD1_UP_BOX",0,0,(void *)FL_GRAD1_UP_BOX},
+{"GRAD1_DOWN_BOX",0,0,(void *)FL_GRAD1_DOWN_BOX},
+{"GRAD1_THIN_UP_BOX",0,0,(void *)FL_GRAD1_THIN_UP_BOX},
+{"GRAD1_THIN_DOWN_BOX",0,0,(void *)FL_GRAD1_THIN_DOWN_BOX},
+{"GRAD1_ROUND_UP_BOX",0,0,(void *)FL_GRAD1_ROUND_UP_BOX},
+{"GRAD1_ROUND_DOWN_BOX",0,0,(void *)FL_GRAD1_ROUND_DOWN_BOX},
+{"GRAD1_BUTTON_UP_BOX",0,0,(void *)FL_GRAD1_BUTTON_UP_BOX},
+{"GRAD1_BUTTON_DOWN_BOX",0,0,(void *)FL_GRAD1_BUTTON_DOWN_BOX},
+{"GLEAM_UP_BOX",0,0,(void *)FL_GLEAM_UP_BOX},
+{"GLEAM_DOWN_BOX",0,0,(void *)FL_GLEAM_DOWN_BOX},
+{"GLEAM_THIN_UP_BOX",0,0,(void *)FL_GLEAM_THIN_UP_BOX},
+{"GLEAM_THIN_DOWN_BOX",0,0,(void *)FL_GLEAM_THIN_DOWN_BOX},
+{"GLEAM_ROUND_UP_BOX",0,0,(void *)FL_GLEAM_ROUND_UP_BOX},
+{"GLEAM_ROUND_DOWN_BOX",0,0,(void *)FL_GLEAM_ROUND_DOWN_BOX},
{0},
{"frames",0,0,0,FL_SUBMENU},
{"UP_FRAME",0,0,(void *)FL_UP_FRAME},
@@ -696,6 +710,12 @@ Fl_Menu_Item boxmenu[] = {
{"GTK_DOWN_FRAME",0,0,(void *)FL_GTK_DOWN_FRAME},
{"GTK_THIN_UP_FRAME",0,0,(void *)FL_GTK_THIN_UP_FRAME},
{"GTK_THIN_DOWN_FRAME",0,0,(void *)FL_GTK_THIN_DOWN_FRAME},
+{"GRAD1_UP_FRAME",0,0,(void *)FL_GRAD1_UP_FRAME},
+{"GRAD1_DOWN_FRAME",0,0,(void *)FL_GRAD1_DOWN_FRAME},
+{"GRAD1_THIN_UP_FRAME",0,0,(void *)FL_GRAD1_THIN_UP_FRAME},
+{"GRAD1_THIN_DOWN_FRAME",0,0,(void *)FL_GRAD1_THIN_DOWN_FRAME},
+{"GLEAM_UP_FRAME",0,0,(void *)FL_GLEAM_UP_FRAME},
+{"GLEAM_DOWN_FRAME",0,0,(void *)FL_GLEAM_DOWN_FRAME},
{0},
{0}};
diff -Naurp src/fltk-1.3.2/fluid/alignment_panel.cxx
tmp/fltk-1.3.2/fluid/alignment_panel.cxx
--- src/fltk-1.3.2/fluid/alignment_panel.cxx 2011-07-19 00:49:30 -0400
+++ tmp/fltk-1.3.2/fluid/alignment_panel.cxx
@@ -153,6 +153,8 @@ Fl_Menu_Item menu_scheme_choice[] = {
{"None", 0, 0, 0, 0, FL_NORMAL_LABEL, 0, 14, 0},
{"Plastic", 0, 0, 0, 0, FL_NORMAL_LABEL, 0, 14, 0},
{"GTK+", 0, 0, 0, 0, FL_NORMAL_LABEL, 0, 14, 0},
+ {"Grad1", 0, 0, 0, 0, FL_NORMAL_LABEL, 0, 14, 0},
+ {"Gleam", 0, 0, 0, 0, FL_NORMAL_LABEL, 0, 14, 0},
{0,0,0,0,0,0,0,0,0}
};
diff -Naurp src/fltk-1.3.2/fluid/alignment_panel.fl
tmp/fltk-1.3.2/fluid/alignment_panel.fl
--- src/fltk-1.3.2/fluid/alignment_panel.fl 2011-07-19 00:49:30 -0400
+++ tmp/fltk-1.3.2/fluid/alignment_panel.fl
@@ -187,6 +187,14 @@ Function {make_settings_window()} {} {
label {GTK+}
xywh {10 10 35 25}
}
+ MenuItem {} {
+ label {Grad1}
+ xywh {20 20 35 25}
+ }
+ MenuItem {} {
+ label {Gleam}
+ xywh {20 20 35 25}
+ }
}
Fl_Group {} {open
xywh {116 43 220 126} labelfont 1 align 0
diff -Naurp src/fltk-1.3.2/fluid/fluid.cxx tmp/fltk-1.3.2/fluid/fluid.cxx
--- src/fltk-1.3.2/fluid/fluid.cxx 2012-04-05 01:12:30 -0400
+++ tmp/fltk-1.3.2/fluid/fluid.cxx
@@ -1113,6 +1113,12 @@ void scheme_cb(Fl_Choice *, void *) {
case 3 : // GTK+
Fl::scheme("gtk+");
break;
+ case 4 : // Grad1
+ Fl::scheme("grad1");
+ break;
+ case 5 : // Gleam
+ Fl::scheme("gleam");
+ break;
}
fluid_prefs.set("scheme", scheme_choice->value());
diff -Naurp src/fltk-1.3.2/src/CMakeLists.txt tmp/fltk-1.3.2/src/CMakeLists.txt
--- src/fltk-1.3.2/src/CMakeLists.txt 2011-01-12 04:24:03 -0500
+++ tmp/fltk-1.3.2/src/CMakeLists.txt
@@ -117,6 +117,8 @@ set(CPPFILES
fl_file_dir.cxx
fl_font.cxx
fl_gtk.cxx
+ fl_grad1_theme.cxx
+ fl_gleam-3.0.cxx
fl_labeltype.cxx
fl_line_style.cxx
fl_open_uri.cxx
diff -Naurp src/fltk-1.3.2/src/Fl_Browser_.cxx
tmp/fltk-1.3.2/src/Fl_Browser_.cxx
--- src/fltk-1.3.2/src/Fl_Browser_.cxx 2012-12-05 12:17:31 -0500
+++ tmp/fltk-1.3.2/src/Fl_Browser_.cxx
@@ -409,7 +409,8 @@ J1:
item_draw(l, X-hposition_, yy+Y, W+hposition_, hh);
if (l == selection_ && Fl::focus() == this) {
draw_box(FL_BORDER_FRAME, X, yy+Y, W, hh, color());
- draw_focus(FL_NO_BOX, X, yy+Y, W+1, hh+1);
+ bool flag_grad1 = (Fl::scheme() && !strcasecmp(Fl::scheme(), "grad1"));
+ draw_focus(FL_NO_BOX, X, yy+Y, flag_grad1?W:W+1, hh+1);
}
int ww = item_width(l);
if (ww > max_width) {max_width = ww; max_width_item = l;}
diff -Naurp src/fltk-1.3.2/src/Fl_Choice.cxx tmp/fltk-1.3.2/src/Fl_Choice.cxx
--- src/fltk-1.3.2/src/Fl_Choice.cxx 2011-07-19 00:49:30 -0400
+++ tmp/fltk-1.3.2/src/Fl_Choice.cxx
@@ -26,10 +26,11 @@
// button: it draws the text of the current pick and a down-arrow.
void Fl_Choice::draw() {
+ bool flag_grad1 = (Fl::scheme() && !strcasecmp(Fl::scheme(), "grad1"));
int dx = Fl::box_dx(FL_DOWN_BOX);
int dy = Fl::box_dy(FL_DOWN_BOX);
int H = h() - 2 * dy;
- int W = (H > 20) ? 20 : H;
+ int W = (H > 20) ? 20 : H; if (flag_grad1) { W = 17; }
int X = x() + w() - W - dx;
int Y = y() + dy;
int w1 = (W - 4) / 3; if (w1 < 1) w1 = 1;
@@ -46,16 +47,35 @@ void Fl_Choice::draw() {
fl_polygon(x1, y1 + 1, x1 + w1, y1 - w1 + 1, x1 + 2 * w1, y1 + 1);
} else {
// Show smaller up/down arrows with a divider...
- x1 = x() + w() - 13 - dx;
- y1 = y() + h() / 2;
- fl_polygon(x1, y1 - 2, x1 + 3, y1 - 5, x1 + 6, y1 - 2);
- fl_polygon(x1, y1 + 2, x1 + 3, y1 + 5, x1 + 6, y1 + 2);
-
- fl_color(fl_darker(color()));
- fl_yxline(x1 - 7, y1 - 8, y1 + 8);
-
- fl_color(fl_lighter(color()));
- fl_yxline(x1 - 6, y1 - 8, y1 + 8);
+ Fl_Color drcol = 0x0;
+
+ if (flag_grad1) { // if was seted the theme `grad1'
+ x1 = x() + w() - dx/2 - W/2 - 4;
+ y1 = y()-1 + h()/2 - 3;
+ fl_polygon(x1, y1 + 2, x1 + 3, y1 + 5, x1 + 6, y1 + 2);
+
+ drcol = fl_color_average(color(), FL_BLACK, 0.88);
+ fl_color(active_r()?drcol:fl_inactive(drcol));
+ fl_yxline(X, y()+dy, y()+h()-dx-2);
+
+ drcol = fl_lighter(color());
+ fl_color(active_r()?drcol:fl_inactive(drcol));
+ fl_yxline(X+1, y()+dy, y()+h()-dx-2);
+ } else {
+ x1 = x() + w() - 13 - dx;
+ y1 = y() + h() / 2; if (flag_grad1) { y1 -= 1; }
+ fl_polygon(x1, y1 - 2, x1 + 3, y1 - 5, x1 + 6, y1 - 2);
+ fl_polygon(x1, y1 + 2, x1 + 3, y1 + 5, x1 + 6, y1 + 2);
+
+ drcol = fl_darker(color());
+ fl_color(active_r()?drcol:fl_inactive(drcol));
+ fl_yxline(x1 - 7, y1 - 8, y1 + 8);
+
+ drcol = fl_lighter(color());
+ fl_color(active_r()?drcol:fl_inactive(drcol));
+ fl_yxline(x1 - 6, y1 - 8, y1 + 8);
+ }
+
}
} else {
if (fl_contrast(textcolor(), FL_BACKGROUND2_COLOR) == textcolor()) {
@@ -78,7 +98,8 @@ void Fl_Choice::draw() {
// ERCO
int xx = x() + dx, yy = y() + dy + 1, ww = w() - W, hh = H - 2;
- fl_push_clip(xx, yy, ww, hh);
+ if(flag_grad1) fl_push_clip(xx, yy-1, ww-dx-2, h()-dy-dy/2-1);
+ else fl_push_clip(xx, yy, ww, hh);
if ( Fl::scheme()) {
Fl_Label l;
@@ -91,9 +112,9 @@ void Fl_Choice::draw() {
l.color= m.labelcolor_ ? m.labelcolor_ : textcolor();
if (!m.active()) l.color = fl_inactive((Fl_Color)l.color);
fl_draw_shortcut = 2; // hack value to make '&' disappear
- l.draw(xx+3, yy, ww>6 ? ww-6 : 0, hh, FL_ALIGN_LEFT);
+ if(flag_grad1) l.draw(xx+2, yy, ww-dx/2-3, hh, FL_ALIGN_LEFT);
+ else l.draw(xx+3, yy, ww>6 ? ww-6 : 0, hh, FL_ALIGN_LEFT);
fl_draw_shortcut = 0;
- if ( Fl::focus() == this ) draw_focus(box(), xx, yy, ww, hh);
}
else {
fl_draw_shortcut = 2; // hack value to make '&' disappear
@@ -102,6 +123,9 @@ void Fl_Choice::draw() {
}
fl_pop_clip();
+
+ if ( Fl::focus() == this ) draw_focus(box(), xx, yy-1,
flag_grad1?ww-dx/2:ww, flag_grad1?h()-dy-dy:hh);
+
}
draw_label();
@@ -155,6 +179,7 @@ int Fl_Choice::value(int v) {
int Fl_Choice::handle(int e) {
if (!menu() || !menu()->text) return 0;
const Fl_Menu_Item* v;
+ bool flag_grad1 = (Fl::scheme() && !strcasecmp(Fl::scheme(), "grad1"));
switch (e) {
case FL_ENTER:
case FL_LEAVE:
@@ -168,24 +193,24 @@ int Fl_Choice::handle(int e) {
J1:
if (Fl::scheme()
|| fl_contrast(textcolor(), FL_BACKGROUND2_COLOR) != textcolor()) {
- v = menu()->pulldown(x(), y(), w(), h(), mvalue(), this);
+ v = menu()->pulldown(x(), y(), w(), h(), flag_grad1?0:mvalue(), this);
} else {
// In order to preserve the old look-n-feel of "white" menus,
// temporarily override the color() of this widget...
Fl_Color c = color();
color(FL_BACKGROUND2_COLOR);
- v = menu()->pulldown(x(), y(), w(), h(), mvalue(), this);
+ v = menu()->pulldown(x(), y(), w(), h(), flag_grad1?0:mvalue(), this);
color(c);
}
if (!v || v->submenu()) return 1;
- if (v != mvalue()) redraw();
+ /*if (v != mvalue())*/ redraw(); // NOTE: for see the focus (kdiman)
picked(v);
return 1;
case FL_SHORTCUT:
if (Fl_Widget::test_shortcut()) goto J1;
v = menu()->test_shortcut();
if (!v) return 0;
- if (v != mvalue()) redraw();
+ /*if (v != mvalue())*/ redraw(); // NOTE: for see the focus (kdiman)
picked(v);
return 1;
case FL_FOCUS:
diff -Naurp src/fltk-1.3.2/src/Fl_Light_Button.cxx
tmp/fltk-1.3.2/src/Fl_Light_Button.cxx
--- src/fltk-1.3.2/src/Fl_Light_Button.cxx 2012-12-07 11:29:49 -0500
+++ tmp/fltk-1.3.2/src/Fl_Light_Button.cxx
@@ -36,7 +36,8 @@ void Fl_Light_Button::draw() {
int W;
int dx, dy;
- W = labelsize();
+ if(down_box() && Fl::scheme() && !strcasecmp(Fl::scheme(), "grad1")){ W =
15; } // for theme `grad1' - fixing size of box
+ else { W = labelsize(); }
dx = Fl::box_dx(box()) + 2;
dy = (h() - W) / 2;
// if (dy < 0) dy = 0; // neg. offset o.k. for vertical centering
@@ -84,6 +85,8 @@ void Fl_Light_Button::draw() {
fl_color(fl_color_average(FL_WHITE, FL_SELECTION_COLOR, 0.2f));
} else fl_color(col);
+ if(Fl::scheme() && !strcasecmp(Fl::scheme(), "grad1")){ tW = 5; } //
for theme `grad1' - fixing size of inline circle
+
switch (tW) {
// Larger circles draw fine...
default :
diff -Naurp src/fltk-1.3.2/src/Fl_Menu.cxx tmp/fltk-1.3.2/src/Fl_Menu.cxx
--- src/fltk-1.3.2/src/Fl_Menu.cxx 2012-12-07 11:29:49 -0500
+++ tmp/fltk-1.3.2/src/Fl_Menu.cxx
@@ -182,6 +182,8 @@ void Fl_Menu_Item::draw(int x, int y, in
if (flags & (FL_MENU_TOGGLE|FL_MENU_RADIO)) {
int d = (h - FL_NORMAL_SIZE + 1) / 2;
int W = h - 2 * d;
+ bool flag_grad1 = (Fl::scheme() && !strcasecmp(Fl::scheme(), "grad1"));
+ if (flag_grad1){ W = 15; d--; } // for theme `grad1' - fixing size of box
if (flags & FL_MENU_RADIO) {
fl_draw_box(FL_ROUND_DOWN_BOX, x+2, y+d, W, W, FL_BACKGROUND2_COLOR);
@@ -198,6 +200,7 @@ void Fl_Menu_Item::draw(int x, int y, in
} else fl_color(labelcolor_);
} else fl_color(labelcolor_);
+ if (flag_grad1) tW = 5; // for theme `grad1' - fixing size of inline circle
switch (tW) {
// Larger circles draw fine...
default :
diff -Naurp src/fltk-1.3.2/src/Fl_Tree_Prefs.cxx
tmp/fltk-1.3.2/src/Fl_Tree_Prefs.cxx
--- src/fltk-1.3.2/src/Fl_Tree_Prefs.cxx 2012-11-06 15:46:14 -0500
+++ tmp/fltk-1.3.2/src/Fl_Tree_Prefs.cxx
@@ -162,6 +162,8 @@ Fl_Tree_Prefs::Fl_Tree_Prefs() {
_selectbox = _FL_GTK_THIN_UP_BOX;
} else if ( strcmp(Fl::scheme(), "plastic") == 0 ) {
_selectbox = _FL_PLASTIC_THIN_UP_BOX;
+ } else if ( strcasecmp(Fl::scheme(), "grad1") == 0 ) {
+ _selectbox = _FL_GRAD1_THIN_UP_BOX;
}
}
}
diff -Naurp src/fltk-1.3.2/src/Fl_Widget.cxx tmp/fltk-1.3.2/src/Fl_Widget.cxx
--- src/fltk-1.3.2/src/Fl_Widget.cxx 2012-05-07 03:18:11 -0400
+++ tmp/fltk-1.3.2/src/Fl_Widget.cxx
@@ -177,12 +177,14 @@ Fl_Widget::~Fl_Widget() {
void
Fl_Widget::draw_focus(Fl_Boxtype B, int X, int Y, int W, int H) const {
if (!Fl::visible_focus()) return;
+ bool flag_grad1 = (Fl::scheme() && !strcasecmp(Fl::scheme(), "grad1"));
+ if (flag_grad1) W++;
switch (B) {
case FL_DOWN_BOX:
case FL_DOWN_FRAME:
case FL_THIN_DOWN_BOX:
case FL_THIN_DOWN_FRAME:
- X ++;
+ if (!flag_grad1) X ++;
Y ++;
default:
break;
diff -Naurp src/fltk-1.3.2/src/Fl_get_system_colors.cxx
tmp/fltk-1.3.2/src/Fl_get_system_colors.cxx
--- src/fltk-1.3.2/src/Fl_get_system_colors.cxx 2012-12-09 12:45:24 -0500
+++ tmp/fltk-1.3.2/src/Fl_get_system_colors.cxx
@@ -375,6 +375,48 @@ int Fl::reload_scheme() {
// Use slightly thinner scrollbars...
Fl::scrollbar_size(15);
+ } else if (scheme_ && !strcasecmp(scheme_, "grad1")) {
+ // Grad1 scheme
+ if (scheme_bg_) {
+ delete scheme_bg_;
+ scheme_bg_ = (Fl_Image *)0;
+ }
+
+ set_boxtype(FL_UP_FRAME, FL_GRAD1_UP_FRAME);
+ set_boxtype(FL_DOWN_FRAME, FL_GRAD1_DOWN_FRAME);
+ set_boxtype(FL_THIN_UP_FRAME, FL_GRAD1_THIN_UP_FRAME);
+ set_boxtype(FL_THIN_DOWN_FRAME, FL_GRAD1_THIN_DOWN_FRAME);
+
+ set_boxtype(FL_UP_BOX, FL_GRAD1_UP_BOX);
+ set_boxtype(FL_DOWN_BOX, FL_GRAD1_DOWN_BOX);
+ set_boxtype(FL_THIN_UP_BOX, FL_GRAD1_THIN_UP_BOX);
+ set_boxtype(FL_THIN_DOWN_BOX, FL_GRAD1_THIN_DOWN_BOX);
+ set_boxtype(_FL_ROUND_UP_BOX, FL_GRAD1_ROUND_UP_BOX);
+ set_boxtype(_FL_ROUND_DOWN_BOX, FL_GRAD1_ROUND_DOWN_BOX);
+
+ // Use slightly thinner scrollbars...
+ Fl::scrollbar_size(15);
+ } else if (scheme_ && !strcasecmp(scheme_, "gleam")) {
+ // Use a Gleam look-and-feel, similar to Clearlooks Glossy, made by Colin
Jones
+ if (scheme_bg_) {
+ delete scheme_bg_;
+ scheme_bg_ = (Fl_Image *)0;
+ }
+
+ set_boxtype(FL_UP_FRAME, FL_GLEAM_UP_FRAME);
+ set_boxtype(FL_DOWN_FRAME, FL_GLEAM_DOWN_FRAME);
+ set_boxtype(FL_THIN_UP_FRAME, FL_GLEAM_UP_FRAME);
+ set_boxtype(FL_THIN_DOWN_FRAME, FL_GLEAM_DOWN_FRAME);
+
+ set_boxtype(FL_UP_BOX, FL_GLEAM_UP_BOX);
+ set_boxtype(FL_DOWN_BOX, FL_GLEAM_DOWN_BOX);
+ set_boxtype(FL_THIN_UP_BOX, FL_GLEAM_THIN_UP_BOX);
+ set_boxtype(FL_THIN_DOWN_BOX, FL_GLEAM_THIN_DOWN_BOX);
+ set_boxtype(_FL_ROUND_UP_BOX, FL_GLEAM_ROUND_UP_BOX);
+ set_boxtype(_FL_ROUND_DOWN_BOX, FL_GLEAM_ROUND_DOWN_BOX);
+
+ // Use slightly thinner scrollbars...
+ Fl::scrollbar_size(10);
} else {
// Use the standard FLTK look-n-feel...
if (scheme_bg_) {
diff -Naurp src/fltk-1.3.2/src/Makefile tmp/fltk-1.3.2/src/Makefile
--- src/fltk-1.3.2/src/Makefile 2012-11-06 16:13:54 -0500
+++ tmp/fltk-1.3.2/src/Makefile
@@ -135,6 +135,8 @@ CPPFILES = \
fl_file_dir.cxx \
fl_font.cxx \
fl_gtk.cxx \
+ fl_grad1_theme.cxx \
+ fl_gleam-3.0.cxx \
fl_labeltype.cxx \
fl_line_style.cxx \
fl_open_uri.cxx \
diff -Naurp src/fltk-1.3.2/src/fl_boxtype.cxx tmp/fltk-1.3.2/src/fl_boxtype.cxx
--- src/fltk-1.3.2/src/fl_boxtype.cxx 2011-07-19 00:49:30 -0400
+++ tmp/fltk-1.3.2/src/fl_boxtype.cxx
@@ -28,6 +28,7 @@
#include <FL/Fl.H>
#include <FL/Fl_Widget.H>
#include <FL/fl_draw.H>
+#include "fl_grad1_theme.h"
#include <config.h>
////////////////////////////////////////////////////////////////
@@ -293,6 +294,26 @@ static struct {
{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,
+ {grad1_up_box, 2,2,4,4,0}, // _FL_GRAD1_UP_BOX,
+ {grad1_down_box, 2,2,4,4,0}, // _FL_GRAD1_DOWN_BOX,
+ {grad1_up_frame, 2,2,4,4,0}, // _FL_GRAD1_UP_FRAME,
+ {grad1_down_frame, 2,2,4,4,0}, // _FL_GRAD1_DOWN_FRAME,
+ {grad1_thin_up_box, 1,1,2,2,0}, // _FL_GRAD1_THIN_UP_BOX,
+ {grad1_thin_down_box, 1,1,2,2,0}, // _FL_GRAD1_THIN_DOWN_BOX,
+ {grad1_thin_up_frame, 1,1,2,2,0}, // _FL_GRAD1_THIN_UP_FRAME,
+ {grad1_thin_down_frame, 1,1,2,2,0}, // _FL_GRAD1_THIN_DOWN_FRAME,
+ {grad1_round_up_box, 4,4,8,8,0}, // _FL_GRAD1_ROUND_UP_BOX,
+ {grad1_round_down_box, 4,4,8,8,0}, // _FL_GRAD1_ROUND_DOWN_BOX,
+ {grad1_button_up_box, 2,2,4,4,0}, // _FL_GRAD1_BUTTON_UP_BOX,
+ {grad1_button_down_box, 2,2,4,4,0}, // _FL_GRAD1_BUTTON_DOWN_BOX,
+ {fl_up_box, 2,2,3,3,0}, // _FL_GLEAM_UP_BOX,
+ {fl_down_box, 2,2,3,3,0}, // _FL_GLEAM_DOWN_BOX,
+ {fl_up_frame, 2,2,3,3,0}, // _FL_GLEAM_UP_FRAME,
+ {fl_down_frame, 2,2,3,3,0}, // _FL_GLEAM_DOWN_FRAME,
+ {fl_up_box, 1,1,1,1,0}, // _FL_GLEAM_THIN_UP_BOX,
+ {fl_down_box, 1,1,1,1,0}, // _FL_GLEAM_THIN_DOWN_BOX,
+ {fl_up_box, 2,2,3,3,0}, // _FL_GLEAM_ROUND_UP_BOX,
+ {fl_down_box, 2,2,3,3,0}, // _FL_GLEAM_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 -Naurp src/fltk-1.3.2/src/makedepend tmp/fltk-1.3.2/src/makedepend
--- src/fltk-1.3.2/src/makedepend 2011-06-11 05:11:08 -0400
+++ tmp/fltk-1.3.2/src/makedepend
@@ -821,6 +821,13 @@ fl_gtk.o: ../FL/Fl_Group.H ../FL/Fl_Widg
fl_gtk.o: ../FL/Fl_Plugin.H ../FL/Fl_Preferences.H ../FL/Fl_Image.H
fl_gtk.o: ../FL/Fl_Bitmap.H ../FL/Fl_Image.H ../FL/Fl_Pixmap.H
fl_gtk.o: ../FL/Fl_RGB_Image.H
+fl_gleam-3.0.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
+fl_gleam-3.0.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/fl_draw.H ../FL/x.H
+fl_gleam-3.0.o: ../FL/Fl_Window.H ../FL/Enumerations.H ../FL/Fl_Window.H
+fl_gleam-3.0.o: ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Device.H
+fl_gleam-3.0.o: ../FL/Fl_Plugin.H ../FL/Fl_Preferences.H ../FL/Fl_Image.H
+fl_gleam-3.0.o: ../FL/Fl_Bitmap.H ../FL/Fl_Image.H ../FL/Fl_Pixmap.H
+fl_gleam-3.0.o: ../FL/Fl_RGB_Image.H ../FL/Fl_Export.H ../config.h
fl_labeltype.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
fl_labeltype.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Widget.H
fl_labeltype.o: ../FL/Fl_Group.H ../FL/fl_draw.H ../FL/x.H ../FL/Fl_Window.H
_______________________________________________
fltk-dev mailing list
fltk-dev@easysw.com
http://lists.easysw.com/mailman/listinfo/fltk-dev