|  |  | @@ -37,6 +37,45 @@ public: | 
		
	
		
			
			|  |  |  | //            step( 0.1f ); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | private: | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | /** This simple box is suitable for use with knob-type widgets. It | 
		
	
		
			
			|  |  |  | * comprises a border with shadow, and a cap with glare-lines akin | 
		
	
		
			
			|  |  |  | * to those seen on burnished aluminum knobs. */ | 
		
	
		
			
			|  |  |  | static void | 
		
	
		
			
			|  |  |  | draw_burnished_oval_box ( int x, int y, int w, int h, Fl_Color c ) | 
		
	
		
			
			|  |  |  | { | 
		
	
		
			
			|  |  |  | /* draw background */ | 
		
	
		
			
			|  |  |  | fl_color( fl_darker( c ) ); | 
		
	
		
			
			|  |  |  | fl_pie( x, y, w, h, 0, 360 ); | 
		
	
		
			
			|  |  |  | fl_color( fl_darker( fl_darker( c ) ) ); | 
		
	
		
			
			|  |  |  | fl_pie( x, y, w, h, 180 + 215, 180 + 45 ); | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | /* shrink */ | 
		
	
		
			
			|  |  |  | x += w / 8; | 
		
	
		
			
			|  |  |  | y += h / 8; | 
		
	
		
			
			|  |  |  | h -= h / 4; | 
		
	
		
			
			|  |  |  | w -= w / 4; | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | /* draw cap */ | 
		
	
		
			
			|  |  |  | fl_color( c ); | 
		
	
		
			
			|  |  |  | fl_pie( x, y, w, h, 0, 360 ); | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | /* draw glare */ | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | const int a1 = 10; | 
		
	
		
			
			|  |  |  | const int a2 = 90; | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | fl_color( fl_lighter( c ) ); | 
		
	
		
			
			|  |  |  | fl_pie( x, y, w, h, a1, a2 ); | 
		
	
		
			
			|  |  |  | fl_pie( x, y, w, h, 180 + a1, 180 + a2 ); | 
		
	
		
			
			|  |  |  | fl_color( fl_lighter( fl_lighter( c ) ) ); | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | const int d = (a2 - a1) / 2; | 
		
	
		
			
			|  |  |  | fl_pie( x, y, w, h, a1 + (d / 2), a2 - (d / 2) ); | 
		
	
		
			
			|  |  |  | fl_pie( x, y, w, h, 180 + a1 + (d / 2), 180 + a2 - (d / 2) ); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | protected: | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | int handle ( int m ) | 
		
	
	
		
			
				|  |  | @@ -87,7 +126,9 @@ protected: | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | double angle = ( angle2() - angle1() ) * ( value() - minimum()) / ( maximum() - minimum() ) + angle1(); | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | draw_box(); | 
		
	
		
			
			|  |  |  | //            draw_box(); | 
		
	
		
			
			|  |  |  | draw_burnished_oval_box( x(), y(), w(), h(), color() ); | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | draw_label(); | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | fl_line_style( FL_SOLID, W / 6 ); | 
		
	
	
		
			
				|  |  | @@ -97,9 +138,12 @@ protected: | 
		
	
		
			
			|  |  |  | W -= W / 4; | 
		
	
		
			
			|  |  |  | H -= H / 4; | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | fl_color( fl_color_average( FL_BLACK, selection_color(), 0.80f ) ); | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | fl_arc( X, Y, W, H, 270 - angle1(), 270 - angle2() ); | 
		
	
		
			
			|  |  |  | if ( box() == FL_NO_BOX ) | 
		
	
		
			
			|  |  |  | { | 
		
	
		
			
			|  |  |  | /* draw backgrond arc */ | 
		
	
		
			
			|  |  |  | fl_color( fl_color_average( FL_BLACK, selection_color(), 0.80f ) ); | 
		
	
		
			
			|  |  |  | fl_arc( X, Y, W, H, 270 - angle1(), 270 - angle2() ); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | fl_color( selection_color() ); | 
		
	
		
			
			|  |  |  | 
 | 
		
	
	
		
			
				|  |  | 
 |