|
- # data file for the Fltk User Interface Designer (fluid)
- version 1.0010
- header_name {.H}
- code_name {.cxx}
- gridx 2
- gridy 2
- snap 1
- decl {\#include <FL/fl_draw.H>} {public
- }
-
- decl {\#include <FL/Fl_Widget.H>} {public
- }
-
- decl {\#include <FL/Fl_Window.H>} {public
- }
-
- class Fl_DragBar {open : {public Fl_Widget}
- } {
- decl {int old_rx,old_ry;} {}
- decl {int _type;} {}
- decl {enum DragType {WINDRAG=0,NICEWINDRAG,FLDRAG,NICEFLDRAG};} {public
- }
- Function {Fl_DragBar(int x,int y,int w,int h,const char *l=0): Fl_Widget(x,y,w,h,l)} {open
- } {
- code {_type = Fl_DragBar::NICEFLDRAG;} {}
- }
- Function {~Fl_DragBar()} {} {}
- Function {draw()} {private
- } {
- code {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);
- }} {selected
- }
- }
- Function {handle(int event)} {private return_type int
- } {
- code {int rx,ry,xx,yy;
- int mx,my;
-
- 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;
- }} {}
- }
- Function {type(int t)} {} {
- code {_type = t;} {}
- }
- }
|