|
fltk 1.3.0rc3
About: FLTK (Fast Light Tool Kit) is a cross-platform C++ GUI toolkit for UNIX/Linux (X11), Microsoft Windows, and MacOS X. Release candidate.
SfR Fresh Dox: fltk-1.3.0rc3-source.tar.gz ("inofficial" and yet experimental doxygen-generated source code documentation) ![]() |
00001 // 00002 // "$Id: Fl_Value_Slider.cxx 7903 2010-11-28 21:06:39Z matt $" 00003 // 00004 // Value slider widget for the Fast Light Tool Kit (FLTK). 00005 // 00006 // Copyright 1998-2010 by Bill Spitzak and others. 00007 // 00008 // This library is free software; you can redistribute it and/or 00009 // modify it under the terms of the GNU Library General Public 00010 // License as published by the Free Software Foundation; either 00011 // version 2 of the License, or (at your option) any later version. 00012 // 00013 // This library is distributed in the hope that it will be useful, 00014 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00015 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00016 // Library General Public License for more details. 00017 // 00018 // You should have received a copy of the GNU Library General Public 00019 // License along with this library; if not, write to the Free Software 00020 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 00021 // USA. 00022 // 00023 // Please report all bugs and problems on the following page: 00024 // 00025 // http://www.fltk.org/str.php 00026 // 00027 00028 #include <FL/Fl.H> 00029 #include <FL/Fl_Value_Slider.H> 00030 #include <FL/fl_draw.H> 00031 #include <math.h> 00032 00037 Fl_Value_Slider::Fl_Value_Slider(int X, int Y, int W, int H, const char*l) 00038 : Fl_Slider(X,Y,W,H,l) { 00039 step(1,100); 00040 textfont_ = FL_HELVETICA; 00041 textsize_ = 10; 00042 textcolor_ = FL_FOREGROUND_COLOR; 00043 } 00044 00045 void Fl_Value_Slider::draw() { 00046 int sxx = x(), syy = y(), sww = w(), shh = h(); 00047 int bxx = x(), byy = y(), bww = w(), bhh = h(); 00048 if (horizontal()) { 00049 bww = 35; sxx += 35; sww -= 35; 00050 } else { 00051 syy += 25; bhh = 25; shh -= 25; 00052 } 00053 if (damage()&FL_DAMAGE_ALL) draw_box(box(),sxx,syy,sww,shh,color()); 00054 Fl_Slider::draw(sxx+Fl::box_dx(box()), 00055 syy+Fl::box_dy(box()), 00056 sww-Fl::box_dw(box()), 00057 shh-Fl::box_dh(box())); 00058 draw_box(box(),bxx,byy,bww,bhh,color()); 00059 char buf[128]; 00060 format(buf); 00061 fl_font(textfont(), textsize()); 00062 fl_color(active_r() ? textcolor() : fl_inactive(textcolor())); 00063 fl_draw(buf, bxx, byy, bww, bhh, FL_ALIGN_CLIP); 00064 } 00065 00066 int Fl_Value_Slider::handle(int event) { 00067 if (event == FL_PUSH && Fl::visible_focus()) { 00068 Fl::focus(this); 00069 redraw(); 00070 } 00071 int sxx = x(), syy = y(), sww = w(), shh = h(); 00072 if (horizontal()) { 00073 sxx += 35; sww -= 35; 00074 } else { 00075 syy += 25; shh -= 25; 00076 } 00077 return Fl_Slider::handle(event, 00078 sxx+Fl::box_dx(box()), 00079 syy+Fl::box_dy(box()), 00080 sww-Fl::box_dw(box()), 00081 shh-Fl::box_dh(box())); 00082 } 00083 00084 // 00085 // End of "$Id: Fl_Value_Slider.cxx 7903 2010-11-28 21:06:39Z matt $". 00086 //