|
Author: matt
Date: 2011-09-16 14:30:05 -0700 (Fri, 16 Sep 2011)
New Revision: 9041
Log:
FLTK3: move more attribute into Style class. Tied composite widgets together to make them look more like a unity (check valuators demo).
Modified:
branches/branch-3.0/include/fltk3/MultiLabel.h
branches/branch-3.0/include/fltk3/Spinner.h
branches/branch-3.0/include/fltk3/Style.h
branches/branch-3.0/include/fltk3/Widget.h
branches/branch-3.0/src/fltk3/Adjuster.cxx
branches/branch-3.0/src/fltk3/Choice.cxx
branches/branch-3.0/src/fltk3/Counter.cxx
branches/branch-3.0/src/fltk3/Menu.cxx
branches/branch-3.0/src/fltk3/Style.cxx
branches/branch-3.0/src/fltk3/ValueSlider.cxx
branches/branch-3.0/src/fltk3/Widget.cxx
branches/branch-3.0/src/fltk3/gtk.cxx
Modified: branches/branch-3.0/include/fltk3/MultiLabel.h
===================================================================
--- branches/branch-3.0/include/fltk3/MultiLabel.h 2011-09-16 08:41:27 UTC (rev 9040)
+++ branches/branch-3.0/include/fltk3/MultiLabel.h 2011-09-16 21:30:05 UTC (rev 9041)
@@ -36,8 +36,8 @@
struct FLTK3_EXPORT MultiLabel {
const char* labela;
const char* labelb;
- uchar typea;
- uchar typeb;
+ Labeltype typea;
+ Labeltype typeb;
void label(fltk3::Widget*);
void label(fltk3::MenuItem*);
};
Modified: branches/branch-3.0/include/fltk3/Spinner.h
===================================================================
--- branches/branch-3.0/include/fltk3/Spinner.h 2011-09-16 08:41:27 UTC (rev 9040)
+++ branches/branch-3.0/include/fltk3/Spinner.h 2011-09-16 21:30:05 UTC (rev 9041)
@@ -144,10 +144,13 @@
input_.type(fltk3::INT_INPUT);
input_.when(fltk3::WHEN_ENTER_KEY | fltk3::WHEN_RELEASE);
input_.callback((fltk3::Callback *)sb_cb, this);
+ input_.box(Boxtype(input_.box()|TIE_RIGHT));
up_button_.callback((fltk3::Callback *)sb_cb, this);
+ up_button_.box(Boxtype(up_button_.box()|TIE_LEFT|TIE_BOTTOM));
down_button_.callback((fltk3::Callback *)sb_cb, this);
+ down_button_.box(Boxtype(down_button_.box()|TIE_LEFT|TIE_TOP));
}
/** Sets or returns the format string for the value. */
Modified: branches/branch-3.0/include/fltk3/Style.h
===================================================================
--- branches/branch-3.0/include/fltk3/Style.h 2011-09-16 08:41:27 UTC (rev 9040)
+++ branches/branch-3.0/include/fltk3/Style.h 2011-09-16 21:30:05 UTC (rev 9041)
@@ -48,10 +48,22 @@
Font labelfont_;
Fontsize labelsize_;
+ Labeltype labeltype_;
+ Color labelcolor_;
+ Align align_;
+ Font textfont_;
+ Fontsize textsize_;
+ Color textcolor_;
unsigned int private_:1;
unsigned int labelfont_set_:1;
unsigned int labelsize_set_:1;
+ unsigned int labeltype_set_:1;
+ unsigned int labelcolor_set_:1;
+ unsigned int align_set_:1;
+ unsigned int textfont_set_:1;
+ unsigned int textsize_set_:1;
+ unsigned int textcolor_set_:1;
void update();
void refresh() const { if (version_ != current_) ((Style*)this)->update(); }
@@ -70,7 +82,31 @@
Fontsize labelsize() const { refresh(); return labelsize_;}
void labelsize(fltk3::Fontsize s) { labelsize_=s; labelsize_set_ = 1; invalidate(); }
void clear_labelsize() { labelsize_set_=0; invalidate(); }
+
+ Labeltype labeltype() const { refresh(); return labeltype_;}
+ void labeltype(fltk3::Labeltype s) { labeltype_=s; labeltype_set_ = 1; invalidate(); }
+ void clear_labeltype() { labeltype_set_=0; invalidate(); }
+
+ Color labelcolor() const { refresh(); return labelcolor_;}
+ void labelcolor(Color s) { labelcolor_=s; labelcolor_set_ = 1; invalidate(); }
+ void clear_labelcolor() { labelcolor_set_=0; invalidate(); }
+
+ Align align() const { refresh(); return align_;}
+ void align(Align s) { align_=s; align_set_ = 1; invalidate(); }
+ void clear_align() { align_set_=0; invalidate(); }
+ Font textfont() const { refresh(); return textfont_;}
+ void textfont(fltk3::Font f) { textfont_=f; textfont_set_ = 1; invalidate(); }
+ void clear_textfont() { textfont_set_=0; invalidate(); }
+
+ Fontsize textsize() const { refresh(); return textsize_;}
+ void textsize(fltk3::Fontsize s) { textsize_=s; textsize_set_ = 1; invalidate(); }
+ void clear_textsize() { textsize_set_=0; invalidate(); }
+
+ Color textcolor() const { refresh(); return textcolor_;}
+ void textcolor(Color s) { textcolor_=s; textcolor_set_ = 1; invalidate(); }
+ void clear_textcolor() { textcolor_set_=0; invalidate(); }
+
Style *make_private();
};
Modified: branches/branch-3.0/include/fltk3/Widget.h
===================================================================
--- branches/branch-3.0/include/fltk3/Widget.h 2011-09-16 08:41:27 UTC (rev 9040)
+++ branches/branch-3.0/include/fltk3/Widget.h 2011-09-16 21:30:05 UTC (rev 9041)
@@ -82,20 +82,8 @@
Style *style_;
/** label text */
const char* labeltext_;
- /** type of label. \see fltk3::Labeltype */
- uchar labeltype_;
- /** text color */
- fltk3::Color labelcolor_;
- /** alignment of label */
- fltk3::Align align_;
/** various flags for the label and derived classes */
unsigned int flags_;
- /** \internal The font used for the entire text. */
- fltk3::Font textfont_;
- /** \internal Height of the font used for the entire text. */
- fltk3::Fontsize textsize_;
- /** \internal color of the entire text */
- fltk3::Color textcolor_;
/** optional image for an active label */
fltk3::Image* image_;
/** optional image for a deactivated label */
@@ -157,19 +145,19 @@
/** Shortcut to set the label text and type in one call.
\see label(const char *), labeltype(fltk3::Labeltype)
*/
- void label(fltk3::Labeltype a, const char* b) { Label::labeltype_ = a; labeltext_ = b; }
+ void label(fltk3::Labeltype a, const char* b) { labeltype(a); labeltext_ = b; }
/** Gets the label color.
The default color is fltk3::FOREGROUND_COLOR.
\return the current label color
*/
- fltk3::Color labelcolor() const {return labelcolor_;}
+ fltk3::Color labelcolor() const {return style()->labelcolor();}
/** Sets the label color.
The default color is fltk3::FOREGROUND_COLOR.
\param[in] c the new label color
*/
- void labelcolor(fltk3::Color c) {labelcolor_=c;}
+ void labelcolor(fltk3::Color c) { private_style()->labelcolor(c);}
/** Gets the font to use.
Fonts are identified by indexes into a table. The default value
@@ -205,7 +193,7 @@
\return the current label type.
\see fltk3::Labeltype
*/
- fltk3::Labeltype labeltype() const {return (fltk3::Labeltype)labeltype_;}
+ fltk3::Labeltype labeltype() const {return style()->labeltype();}
/** Sets the label type.
The label type identifies the function that draws the label of the widget.
@@ -215,13 +203,13 @@
\param[in] a new label type
\see fltk3::Labeltype
*/
- void labeltype(int a) {labeltype_ = (fltk3::Labeltype)a;}
+ void labeltype(Labeltype a) { private_style()->labeltype(a); }
/** Gets the label alignment.
\return label alignment
\see label(), align(fltk3::Align), fltk3::Align
*/
- Align align() const {return align_;}
+ Align align() const {return style()->align();}
/** Sets the label alignment.
This controls how the label is displayed next to or inside the widget.
@@ -230,7 +218,7 @@
\param[in] alignment new label alignment
\see align(), fltk3::Align
*/
- void align(Align alignment) {align_ = alignment;}
+ void align(Align alignment) { private_style()->align(alignment); }
/** Gets the widget flags mask */
unsigned int flags() const {return flags_;}
@@ -256,32 +244,32 @@
/** Gets the font of the text in the input field.
\return the current fltk3::Font index */
- fltk3::Font textfont() const {return textfont_;}
+ fltk3::Font textfont() const { return style()->textfont(); }
/** Sets the font of the text in the input field.
The text font defaults to \c fltk3::HELVETICA.
\param [in] s the new text font */
- void textfont(fltk3::Font s) {textfont_ = s;}
+ void textfont(fltk3::Font s) { private_style()->textfont(s); }
/** Gets the size of the text in the input field.
\return the text height in pixels */
- fltk3::Fontsize textsize() const {return textsize_;}
+ fltk3::Fontsize textsize() const { return style()->textsize(); }
/** Sets the size of the text in the input field.
The text height defaults to \c fltk3::NORMAL_SIZE.
\param [in] s the new font height in pixel units */
- void textsize(fltk3::Fontsize s) {textsize_ = s;}
+ void textsize(fltk3::Fontsize s) { private_style()->textsize(s); }
/** Gets the color of the text in the input field.
\return the text color
\see textcolor(fltk3::Color) */
- fltk3::Color textcolor() const {return textcolor_;}
+ fltk3::Color textcolor() const { return style()->textcolor(); }
/** Sets the color of the text in the input field.
The text color defaults to \c fltk3::FOREGROUND_COLOR.
\param [in] n new text color
\see textcolor() */
- void textcolor(fltk3::Color n) {textcolor_ = n;}
+ void textcolor(fltk3::Color n) { private_style()->textcolor(n); }
/** Gets the image that is used as part of the widget label.
This image is used when drawing the widget in the active state.
@@ -344,9 +332,9 @@
void* user_data_;
Color color_;
Color color2_;
+ Boxtype box_;
uchar type_;
uchar damage_;
- Boxtype box_;
uchar when_;
const char *tooltip_;
Modified: branches/branch-3.0/src/fltk3/Adjuster.cxx
===================================================================
--- branches/branch-3.0/src/fltk3/Adjuster.cxx 2011-09-16 08:41:27 UTC (rev 9040)
+++ branches/branch-3.0/src/fltk3/Adjuster.cxx 2011-09-16 21:30:05 UTC (rev 9041)
@@ -42,17 +42,17 @@
void fltk3::Adjuster::value_damage() {}
void fltk3::Adjuster::draw() {
- int dx, dy, W, H;
- if (w()>=h()) {
+ int dx, dy, W, H, hor = (w()>=h());
+ if (hor) {
dx = W = w()/3;
dy = 0; H = h();
} else {
dx = 0; W = w();
dy = H = h()/3;
}
- draw_box(drag==1?fltk3::DOWN_BOX:box(), x(), y()+2*dy, W, H, color());
- draw_box(drag==2?fltk3::DOWN_BOX:box(), x()+dx, y()+dy, W, H, color());
- draw_box(drag==3?fltk3::DOWN_BOX:box(), x()+2*dx, y(), W, H, color());
+ draw_box(Boxtype((drag==1?DOWN_BOX:box())|(hor?TIE_RIGHT:TIE_TOP)), x(), y()+2*dy, W, H, color());
+ draw_box(Boxtype((drag==2?fltk3::DOWN_BOX:box())|(hor?TIE_LEFT|TIE_RIGHT:TIE_TOP|TIE_BOTTOM)), x()+dx, y()+dy, W, H, color());
+ draw_box(Boxtype((drag==3?fltk3::DOWN_BOX:box())|(hor?TIE_LEFT:TIE_BOTTOM)), x()+2*dx, y(), W, H, color());
if (active_r())
fltk3::color(selection_color());
else
Modified: branches/branch-3.0/src/fltk3/Choice.cxx
===================================================================
--- branches/branch-3.0/src/fltk3/Choice.cxx 2011-09-16 08:41:27 UTC (rev 9040)
+++ branches/branch-3.0/src/fltk3/Choice.cxx 2011-09-16 21:30:05 UTC (rev 9041)
@@ -96,10 +96,10 @@
l.label(m.text);
l.image(0);
l.deimage(0);
- l.labeltype( m.labeltype_ );
- l.labelfont( m.labelsize_ || m.labelfont_ ? m.labelfont_ : textfont() );
- l.labelsize( m.labelsize_ ? m.labelsize_ : textsize() );
- l.labelcolor( m.labelcolor_ ? m.labelcolor_ : textcolor() );
+ l.labeltype( m.labeltype() );
+ l.labelfont( m.labelsize() || m.labelfont() ? m.labelfont() : textfont() );
+ l.labelsize( m.labelsize() ? m.labelsize() : textsize() );
+ l.labelcolor( m.labelcolor() ? m.labelcolor() : textcolor() );
if (!m.active()) l.labelcolor( fltk3::inactive((fltk3::Color)l.labelcolor()) );
fltk3::draw_shortcut = 2; // hack value to make '&' disappear
l.draw(xx+3, yy, ww>6 ? ww-6 : 0, hh, fltk3::ALIGN_LEFT);
Modified: branches/branch-3.0/src/fltk3/Counter.cxx
===================================================================
--- branches/branch-3.0/src/fltk3/Counter.cxx 2011-09-16 08:41:27 UTC (rev 9040)
+++ branches/branch-3.0/src/fltk3/Counter.cxx 2011-09-16 21:30:05 UTC (rev 9041)
@@ -60,7 +60,7 @@
xx[4] = 0; ww[4] = 0;
}
- draw_box(boxtype[0], xx[0], y(), ww[0], h(), fltk3::BACKGROUND2_COLOR);
+ draw_box(Boxtype(boxtype[0]|TIE_LEFT|TIE_RIGHT), xx[0], y(), ww[0], h(), fltk3::BACKGROUND2_COLOR);
fltk3::font(textfont(), textsize());
fltk3::color(active_r() ? textcolor() : fltk3::inactive(textcolor()));
char str[128]; format(str);
@@ -74,16 +74,22 @@
selcolor = fltk3::inactive(labelcolor());
if (type() == fltk3::NORMAL_COUNTER) {
- draw_box(boxtype[1], xx[1], y(), ww[1], h(), color());
+ draw_box(Boxtype(boxtype[1]|TIE_RIGHT), xx[1], y(), ww[1], h(), color());
fltk3::draw_symbol("@-4<<", xx[1], y(), ww[1], h(), selcolor);
+ draw_box(Boxtype(boxtype[2]|TIE_LEFT|TIE_RIGHT), xx[2], y(), ww[2], h(), color());
+ fltk3::draw_symbol("@-4<", xx[2], y(), ww[2], h(), selcolor);
+ } else {
+ draw_box(Boxtype(boxtype[2]|TIE_RIGHT), xx[2], y(), ww[2], h(), color());
+ fltk3::draw_symbol("@-4<", xx[2], y(), ww[2], h(), selcolor);
}
- draw_box(boxtype[2], xx[2], y(), ww[2], h(), color());
- fltk3::draw_symbol("@-4<", xx[2], y(), ww[2], h(), selcolor);
- draw_box(boxtype[3], xx[3], y(), ww[3], h(), color());
- fltk3::draw_symbol("@-4>", xx[3], y(), ww[3], h(), selcolor);
if (type() == fltk3::NORMAL_COUNTER) {
- draw_box(boxtype[4], xx[4], y(), ww[4], h(), color());
+ draw_box(Boxtype(boxtype[3]|TIE_LEFT|TIE_RIGHT), xx[3], y(), ww[3], h(), color());
+ fltk3::draw_symbol("@-4>", xx[3], y(), ww[3], h(), selcolor);
+ draw_box(Boxtype(boxtype[4]|TIE_LEFT), xx[4], y(), ww[4], h(), color());
fltk3::draw_symbol("@-4>>", xx[4], y(), ww[4], h(), selcolor);
+ } else {
+ draw_box(Boxtype(boxtype[3]|TIE_LEFT), xx[3], y(), ww[3], h(), color());
+ fltk3::draw_symbol("@-4>", xx[3], y(), ww[3], h(), selcolor);
}
}
Modified: branches/branch-3.0/src/fltk3/Menu.cxx
===================================================================
--- branches/branch-3.0/src/fltk3/Menu.cxx 2011-09-16 08:41:27 UTC (rev 9040)
+++ branches/branch-3.0/src/fltk3/Menu.cxx 2011-09-16 21:30:05 UTC (rev 9041)
@@ -140,9 +140,9 @@
l.label(text);
l.image(0);
l.deimage(0);
- l.labeltype( labeltype_ );
- l.labelfont( labelsize_ || labelfont_ ? labelfont_ : (m ? m->textfont() : fltk3::HELVETICA) );
- l.labelsize( labelsize_ ? labelsize_ : m ? m->textsize() : fltk3::NORMAL_SIZE );
+ l.labeltype( labeltype() );
+ l.labelfont( labelsize() || labelfont() ? labelfont() : (m ? m->textfont() : fltk3::HELVETICA) );
+ l.labelsize( labelsize() ? labelsize() : m ? m->textsize() : fltk3::NORMAL_SIZE );
l.labelcolor( fltk3::FOREGROUND_COLOR ); // this makes no difference?
fltk3::draw_shortcut = 1;
int w = 0; int h = 0;
@@ -159,10 +159,10 @@
l.label(text);
l.image(0);
l.deimage(0);
- l.labeltype( labeltype_ );
- l.labelfont( labelsize_ || labelfont_ ? labelfont_ : (m ? m->textfont() : fltk3::HELVETICA) );
- l.labelsize( labelsize_ ? labelsize_ : m ? m->textsize() : fltk3::NORMAL_SIZE );
- l.labelcolor( labelcolor_ ? labelcolor_ : m ? m->textcolor() : int(fltk3::FOREGROUND_COLOR) );
+ l.labeltype( labeltype() );
+ l.labelfont( labelsize() || labelfont() ? labelfont() : (m ? m->textfont() : fltk3::HELVETICA) );
+ l.labelsize( labelsize() ? labelsize() : m ? m->textsize() : fltk3::NORMAL_SIZE );
+ l.labelcolor( labelcolor() ? labelcolor() : m ? m->textcolor() : int(fltk3::FOREGROUND_COLOR) );
if (!active()) l.labelcolor( fltk3::inactive((fltk3::Color)l.labelcolor()) );
fltk3::Color color = m ? m->color() : fltk3::GRAY;
if (selected) {
Modified: branches/branch-3.0/src/fltk3/Style.cxx
===================================================================
--- branches/branch-3.0/src/fltk3/Style.cxx 2011-09-16 08:41:27 UTC (rev 9040)
+++ branches/branch-3.0/src/fltk3/Style.cxx 2011-09-16 21:30:05 UTC (rev 9041)
@@ -37,9 +37,21 @@
parent_(0),
labelfont_(fltk3::HELVETICA),
labelsize_(fltk3::NORMAL_SIZE),
+ labeltype_(fltk3::NORMAL_LABEL),
+ labelcolor_(fltk3::FOREGROUND_COLOR),
+ align_(fltk3::ALIGN_CENTER),
+ textfont_(fltk3::HELVETICA),
+ textsize_(fltk3::NORMAL_SIZE),
+ textcolor_(fltk3::FOREGROUND_COLOR),
private_(0),
labelfont_set_(1),
- labelsize_set_(1)
+ labelsize_set_(1),
+ labeltype_set_(1),
+ labelcolor_set_(1),
+ align_set_(1),
+ textfont_set_(1),
+ textsize_set_(1),
+ textcolor_set_(1)
{
}
@@ -49,9 +61,21 @@
parent_(parent),
labelfont_(parent->labelfont_),
labelsize_(parent->labelsize_),
+ labeltype_(parent->labeltype_),
+ labelcolor_(parent->labelcolor_),
+ align_(parent->align_),
+ textfont_(parent->textfont_),
+ textsize_(parent->textsize_),
+ textcolor_(parent->textcolor_),
private_(0),
labelfont_set_(0),
- labelsize_set_(0)
+ labelsize_set_(0),
+ labeltype_set_(0),
+ labelcolor_set_(0),
+ align_set_(0),
+ textfont_set_(0),
+ textsize_set_(0),
+ textcolor_set_(0)
{
}
@@ -83,6 +107,18 @@
labelfont_ = parent_->labelfont_;
if (!labelsize_set_)
labelsize_ = parent_->labelsize_;
+ if (!labeltype_set_)
+ labeltype_ = parent_->labeltype_;
+ if (!labelcolor_set_)
+ labelcolor_ = parent_->labelcolor_;
+ if (!align_set_)
+ align_ = parent_->align_;
+ if (!textfont_set_)
+ textfont_ = parent_->textfont_;
+ if (!textsize_set_)
+ textsize_ = parent_->textsize_;
+ if (!textcolor_set_)
+ textcolor_ = parent_->textcolor_;
version_ = current_;
}
Modified: branches/branch-3.0/src/fltk3/ValueSlider.cxx
===================================================================
--- branches/branch-3.0/src/fltk3/ValueSlider.cxx 2011-09-16 08:41:27 UTC (rev 9040)
+++ branches/branch-3.0/src/fltk3/ValueSlider.cxx 2011-09-16 21:30:05 UTC (rev 9041)
@@ -51,12 +51,13 @@
} else {
syy += 25; bhh = 25; shh -= 25;
}
- if (damage()&fltk3::DAMAGE_ALL) draw_box(box(),sxx,syy,sww,shh,color());
+ if (damage()&fltk3::DAMAGE_ALL)
+ draw_box(Boxtype(box()|(horizontal()?TIE_LEFT:TIE_TOP)),sxx,syy,sww,shh,color());
Slider::draw(sxx+fltk3::box_dx(box()),
syy+fltk3::box_dy(box()),
sww-fltk3::box_dw(box()),
shh-fltk3::box_dh(box()));
- draw_box(box(),bxx,byy,bww,bhh,color());
+ draw_box(Boxtype(box()|(horizontal()?TIE_RIGHT:TIE_BOTTOM)),bxx,byy,bww,bhh,color());
char buf[128];
format(buf);
fltk3::font(textfont(), textsize());
Modified: branches/branch-3.0/src/fltk3/Widget.cxx
===================================================================
--- branches/branch-3.0/src/fltk3/Widget.cxx 2011-09-16 08:41:27 UTC (rev 9040)
+++ branches/branch-3.0/src/fltk3/Widget.cxx 2011-09-16 21:30:05 UTC (rev 9041)
@@ -108,13 +108,7 @@
: fltk3::Rectangle(X, Y, W, H),
style_(&fltk3::default_style),
labeltext_(L),
- labeltype_(fltk3::NORMAL_LABEL),
- labelcolor_(fltk3::FOREGROUND_COLOR),
- align_(fltk3::ALIGN_CENTER),
flags_(0),
- textfont_(0),
- textsize_(0),
- textcolor_(0),
image_(0),
deimage_(0)
{
@@ -124,13 +118,7 @@
: fltk3::Rectangle(s),
style_(s.style_), // FIXME: do not just link to private styles
labeltext_(0L),
- labeltype_(s.labeltype_),
- labelcolor_(s.labelcolor_),
- align_(s.align_),
flags_(s.flags_),
- textfont_(s.textfont_),
- textsize_(s.textsize_),
- textcolor_(s.textcolor_),
image_(s.image_),
deimage_(s.deimage_)
{
@@ -146,13 +134,7 @@
fltk3::Label::Label()
: fltk3::Rectangle(),
style_(&fltk3::default_style),
- labeltype_(fltk3::NORMAL_LABEL),
- labelcolor_(fltk3::FOREGROUND_COLOR),
- align_(fltk3::ALIGN_CENTER),
flags_(0),
- textfont_(fltk3::HELVETICA),
- textsize_(fltk3::NORMAL_SIZE),
- textcolor_(fltk3::FOREGROUND_COLOR),
image_(0),
deimage_(0)
{
Modified: branches/branch-3.0/src/fltk3/gtk.cxx
===================================================================
--- branches/branch-3.0/src/fltk3/gtk.cxx 2011-09-16 08:41:27 UTC (rev 9040)
+++ branches/branch-3.0/src/fltk3/gtk.cxx 2011-09-16 21:30:05 UTC (rev 9041)
@@ -41,6 +41,12 @@
static const float tie_dk = 0.3f;
static const float tie_lt = 0.45f;
static const int use_tie_lt = 1;
+// a high number creates a very intense shadow and steep ramp,
+// a low number brightens the shadow and flattens the ramp
+static const float tie_dk_ramp = 0.25;
+// a high number creates a very intense highlight and steep ramp,
+// a low number lowers the highlight and flattens the ramp
+static const float tie_lt_ramp = 0.9;
static fltk3::Color gtk_get_color(fltk3::Color c) {
@@ -61,9 +67,9 @@
static void draw_frame(int x, int y, int w, int h, fltk3::Color c, fltk3::Color lt, fltk3::Color dk, fltk3::Boxtype t) {
- float f = (dk==fltk3::WHITE) ? 0.2 : 0.5;
- fltk3::Color ol = gtk_get_color(fltk3::color_average(fltk3::BLACK, c, f));
- fltk3::Color hi = gtk_get_color(fltk3::color_average(lt, c, 0.5));
+ float f = (dk==fltk3::WHITE) ? tie_dk_ramp : tie_lt_ramp;
+ fltk3::Color ol = gtk_get_color(fltk3::color_average(fltk3::BLACK, c, 0.7f));
+ fltk3::Color hi = gtk_get_color(fltk3::color_average(lt, c, f));
if (t & 0xff000000) {
int r = x+w-1, b = y+h-1, xr = x+w/2, yb = y+h/2;
fltk3::color(ol);
@@ -169,7 +175,13 @@
}
static void draw_box(int x, int y, int w, int h, fltk3::Color c, fltk3::Color lt, fltk3::Color dk, fltk3::Boxtype t) {
- float f = (dk==fltk3::WHITE) ? 0.5 : 1.0;
+ float f = (dk==fltk3::WHITE) ? tie_dk_ramp : tie_lt_ramp;
+ fltk3::Color tc1 = gtk_get_color(fltk3::color_average(lt, c, f*0.8f));
+ fltk3::Color tc2 = gtk_get_color(fltk3::color_average(lt, c, f*0.4f));
+ fltk3::Color tc3 = gtk_get_color(fltk3::color_average(lt, c, f*0.2f));
+ fltk3::Color bc1 = gtk_get_color(fltk3::color_average(dk, c, f*0.6f));
+ fltk3::Color bc2 = gtk_get_color(fltk3::color_average(dk, c, f*0.3f));
+ fltk3::Color bc3 = gtk_get_color(fltk3::color_average(dk, c, f*0.1f));
draw_frame(x, y, w, h, c, lt, dk, t);
if (t & 0xff000000) {
int r = x+w-1, b = y+h-1;
@@ -191,11 +203,11 @@
fltk3::rectf(x2, y, r2-x2+2, 5);
}
} else {
- gtk_color(fltk3::color_average(lt, c, 0.4f*f));
+ gtk_color(tc1);
fltk3::xyline(x2, y+2, r2);
- gtk_color(fltk3::color_average(lt, c, 0.2f*f));
+ gtk_color(tc2);
fltk3::xyline(x2, y+3, r2);
- gtk_color(fltk3::color_average(lt, c, 0.1f*f));
+ gtk_color(tc3);
fltk3::xyline(x2, y+4, r2);
}
gtk_color(c);
@@ -209,11 +221,11 @@
fltk3::xyline(r-tie_gap+1, b, r2);
fltk3::rectf(x2, y+h-4, r2-x2+1, 3);
} else {
- gtk_color(fltk3::color_average(dk, c, 0.025f/f));
+ gtk_color(bc3);
fltk3::xyline(x2, b-3, r2);
- gtk_color(fltk3::color_average(dk, c, 0.05f/f));
+ gtk_color(bc2);
fltk3::xyline(x2, b-2, r2);
- gtk_color(fltk3::color_average(dk, c, 0.1f/f));
+ gtk_color(bc1);
fltk3::xyline(x2, b-1, r2);
}
if (t & fltk3::TIE_LEFT) {
@@ -233,19 +245,19 @@
fltk3::yxline(r-1, y2, b2);
}
} else {
- gtk_color(fltk3::color_average(lt, c, 0.4f));
+ gtk_color(tc1);
fltk3::xyline(x + 2, y + 2, x + w - 3);
- gtk_color(fltk3::color_average(lt, c, 0.2f));
+ gtk_color(tc2);
fltk3::xyline(x + 2, y + 3, x + w - 3);
- gtk_color(fltk3::color_average(lt, c, 0.1f));
+ gtk_color(tc3);
fltk3::xyline(x + 2, y + 4, x + w - 3);
gtk_color(c);
fltk3::rectf(x + 2, y + 5, w - 4, h - 7);
- gtk_color(fltk3::color_average(dk, c, 0.025f));
+ gtk_color(bc3);
fltk3::xyline(x + 2, y + h - 4, x + w - 3);
- gtk_color(fltk3::color_average(dk, c, 0.05f));
+ gtk_color(bc2);
fltk3::xyline(x + 2, y + h - 3, x + w - 3);
- gtk_color(fltk3::color_average(dk, c, 0.1f));
+ gtk_color(bc1);
fltk3::xyline(x + 2, y + h - 2, x + w - 3);
fltk3::yxline(x + w - 2, y + 2, y + h - 3);
}
[ Direct Link to Message ] | |