| 
							- // generated by Fast Light User Interface Designer (fluid) version 1.0010
 - 
 - #include "Fl_DragBar.H"
 - #include <string.h>
 - 
 - Fl_DragBar::Fl_DragBar(int x,int y,int w,int h,const char *l): Fl_Widget(x,y,w,h,l) {
 -   _type = Fl_DragBar::NICEFLDRAG;
 - }
 - 
 - Fl_DragBar::~Fl_DragBar() {
 - fl_cursor(FL_CURSOR_DEFAULT);
 - }
 - 
 - void Fl_DragBar::draw() {
 -   int ww,hh;
 -   uchar r,g,b;
 -   uchar rb,gb,bb;
 -   uchar rd,gd,bd;
 -   int	val;
 -   
 - 	draw_box();
 - 	int x1 = x()+5;
 - 	int x2 = x()+w()-5;
 - 	int y1 = y()+5;
 - 	int y2 = y()+h()-5;
 - 	Fl::get_color(color(),r,g,b);
 - 	val = (int)r + 64; rb = val > 255 ? 255:val;
 - 	val = (int)g + 64; gb = val > 255 ? 255:val;
 - 	val = (int)b + 64; bb = val > 255 ? 255:val;
 - 	val = (int)r - 64; rd = val < 0 ? 0:val;
 - 	val = (int)g - 64; gd = val < 0 ? 0:val;
 - 	val = (int)b - 64; bd = val < 0 ? 0:val;
 - 	if (h()<w())
 - 	{
 - 		if ((_type==Fl_DragBar::NICEWINDRAG) || (_type==Fl_DragBar::NICEFLDRAG))
 - 		{
 - 			fl_line_style(FL_DASH);
 - 			for (int i = y() + 4; i < y()+h()-5;i+=3)
 - 			{
 - 				fl_line_style(FL_DASH);
 - 				fl_color(rb,gb,bb);
 - 				fl_line(x1,i,x2,i);
 - 				fl_color(rd,gd,bd);
 - 				fl_line(x1,i+1,x2,i+1);
 - 			}
 - 			fl_line_style(FL_SOLID);
 - 		}
 - 		fl_color(color());
 - 		const char *l = label();
 - 		ww = labelsize()*strlen(l)/2;
 - 		//ww = (int)fl_width(l);
 - 		hh = h() - 4;
 - 		if (align() & FL_ALIGN_RIGHT)
 - 		{
 - 			x1 = x() + w() - 5 - ww;
 - 		}
 - 		else
 - 		if (align() & FL_ALIGN_CENTER)
 - 		{
 - 			x1 = x() + 5;
 - 		}
 - 		else
 - 		{
 - 			x1 = x() + (w() - ww) / 2;
 - 		}
 - 		//fl_rectf(x1,y()+(h() - hh) / 2, ww, hh);
 - 		draw_label();
 - 	}
 - 	else
 - 	if ((_type==Fl_DragBar::NICEWINDRAG) || (_type==Fl_DragBar::NICEFLDRAG))
 - 	{
 - 		fl_line_style(FL_DASH);	
 - 		for (int i = x() + 4; i < x()+w()-5;i+=3)
 - 		{
 - 			fl_color(rb,gb,bb);
 - 			fl_line(i,y1,i,y2);
 - 			fl_color(rd,gd,bd);
 - 			fl_line(i+1,y1,i+1,y2);
 - 		}
 - 		fl_line_style(FL_SOLID);
 - 	}
 - }
 - 
 - int Fl_DragBar::handle(int event) {
 -   int rx,ry,xx,yy;
 - int mx,my;
 - 
 - 	if (Fl::event_button()!=1) return 0;
 - 
 - 	if (_type <  (int)Fl_DragBar::FLDRAG)
 - 	{
 - 		rx = Fl::event_x_root(); 
 - 		ry = Fl::event_y_root();
 - 	}
 - 	else
 - 	{ 
 - 		rx = Fl::event_x();
 - 		ry = Fl::event_y();
 - 	}
 - 	switch(event)
 - 	{
 - 		case FL_PUSH:
 - 		{
 - 			window()->show();
 - 			fl_cursor(FL_CURSOR_MOVE);
 - 			if (_type < (int)Fl_DragBar::FLDRAG)
 - 			{
 - 				old_rx = rx - window()->x();
 - 				old_ry = ry - window()->y();
 - 			}
 - 			else
 - 			{
 - 				old_rx = rx - parent()->x();
 - 				old_ry = ry - parent()->y();
 - 			}
 - 			return 1;
 - 		}
 - 		case FL_RELEASE:
 - 		{
 - 			fl_cursor(FL_CURSOR_DEFAULT);
 - 			do_callback();
 - 			return 1;
 - 		}
 - 		case FL_DRAG:
 - 		{
 - 			if ((rx != old_rx) || (ry != old_ry))
 - 			{
 - 				xx =  rx - old_rx;
 - 				yy =  ry - old_ry;
 - 				if (_type <  (int)Fl_DragBar::FLDRAG) 
 - 				{
 - 					window()->position(xx,yy);
 - 				}
 - 				else
 - 				{
 - 					parent()->position(xx,yy);
 - 					if (parent()->parent()) 
 - 						parent()->parent()->redraw();
 - 					else
 - 						window()->redraw();		
 - 				}		
 - 			}
 - 			return 1;
 - 		}
 - 		case FL_MOVE:
 - 		{
 - 			return 0;
 - 		}
 - 		case FL_ENTER :
 - 		{
 - 			return 0;
 - 		}
 - 		
 - 		case FL_LEAVE :
 - 		{
 - 			fl_cursor(FL_CURSOR_DEFAULT);
 - 			return 1;
 - 		}
 - 		default :
 - 			return 0;
 - 	}
 - }
 - 
 - void Fl_DragBar::type(int t) {
 -   _type = t;
 - }
 
 
  |