// generated by Fast Light User Interface Designer (fluid) version 1.0010 #include "Fl_DragBar.H" #include 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()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; }