00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef _FL_VALUATOR_H_
00023 #define _FL_VALUATOR_H_
00024
00025 #include "Fl_Widget.h"
00026
00028 class FL_API Fl_Valuator : public Fl_Widget {
00029 public:
00030 double value() const {return value_;}
00031 int value(double);
00032
00033 float minimum() const {return minimum_;}
00034 void minimum(double a) {minimum_ = float(a);}
00035
00036 float maximum() const {return maximum_;}
00037 void maximum(double a) {maximum_ = float(a);}
00038
00039 void range(double a, double b) {minimum_ = float(a); maximum_ = float(b);}
00040
00041 float step() const {return step_;}
00042 void step(double a) {step_ = float(a);}
00043
00044 float linesize() const {return linesize_;}
00045 void linesize(double a) {linesize_ = float(a);}
00046
00047 virtual int format(char*);
00048 virtual void reset() { value(0); }
00049
00050 int handle(int);
00051
00052 protected:
00054 Fl_Valuator(int X, int Y, int W, int H, const char* L);
00055
00057 Fl_Valuator(const char* l = 0,int layout_size=30,Fl_Align layout_al=FL_ALIGN_TOP,int label_w=100);
00058
00059 void ctor_init();
00060
00061 double previous_value() const { return previous_value_; }
00062 void handle_push() { previous_value_ = value_; }
00063 void handle_drag(double newvalue);
00064 void handle_release();
00065
00066 virtual void value_damage();
00067 void set_value(double v) {value_ = v;}
00068
00069 private:
00070 double value_;
00071 static double previous_value_;
00072 float minimum_;
00073 float maximum_;
00074 float step_;
00075 float linesize_;
00076 };
00077
00078 #endif