FLTK 1.3.0
|
00001 // 00002 // "$Id$" 00003 // 00004 // Forms emulation header file for the Fast Light Tool Kit (FLTK). 00005 // 00006 // Copyright 1998-2010 by Bill Spitzak and others. 00007 // 00008 // This library is free software; you can redistribute it and/or 00009 // modify it under the terms of the GNU Library General Public 00010 // License as published by the Free Software Foundation; either 00011 // version 2 of the License, or (at your option) any later version. 00012 // 00013 // This library is distributed in the hope that it will be useful, 00014 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00015 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00016 // Library General Public License for more details. 00017 // 00018 // You should have received a copy of the GNU Library General Public 00019 // License along with this library; if not, write to the Free Software 00020 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 00021 // USA. 00022 // 00023 // Please report all bugs and problems on the following page: 00024 // 00025 // http://www.fltk.org/str.php 00026 // 00027 00028 #ifndef __FORMS_H__ 00029 #define __FORMS_H__ 00030 00031 #include "Fl.H" 00032 #include "Fl_Group.H" 00033 #include "Fl_Window.H" 00034 #include "fl_draw.H" 00035 00036 typedef Fl_Widget FL_OBJECT; 00037 typedef Fl_Window FL_FORM; 00038 00040 // Random constants & symbols defined by forms.h file: 00041 00042 #ifndef NULL 00043 #define NULL 0 00044 #endif 00045 #ifndef FALSE 00046 #define FALSE 0 00047 #define TRUE 1 00048 #endif 00049 00050 #define FL_ON 1 00051 #define FL_OK 1 00052 #define FL_VALID 1 00053 #define FL_PREEMPT 1 00054 #define FL_AUTO 2 00055 #define FL_WHEN_NEEDED FL_AUTO 00056 #define FL_OFF 0 00057 #define FL_NONE 0 00058 #define FL_CANCEL 0 00059 #define FL_INVALID 0 00060 #define FL_IGNORE -1 00061 //#define FL_CLOSE -2 // this variable is never used in FLTK Forms. It is removed becaus it conflicts with the window FL_CLOSE event 00062 00063 #define FL_LCOL FL_BLACK 00064 #define FL_COL1 FL_GRAY 00065 #define FL_MCOL FL_LIGHT1 00066 #define FL_LEFT_BCOL FL_LIGHT3 // 53 is better match 00067 #define FL_TOP_BCOL FL_LIGHT2 // 51 00068 #define FL_BOTTOM_BCOL FL_DARK2 // 40 00069 #define FL_RIGHT_BCOL FL_DARK3 // 36 00070 #define FL_INACTIVE FL_INACTIVE_COLOR 00071 #define FL_INACTIVE_COL FL_INACTIVE_COLOR 00072 #define FL_FREE_COL1 FL_FREE_COLOR 00073 #define FL_FREE_COL2 ((Fl_Color)(FL_FREE_COLOR+1)) 00074 #define FL_FREE_COL3 ((Fl_Color)(FL_FREE_COLOR+2)) 00075 #define FL_FREE_COL4 ((Fl_Color)(FL_FREE_COLOR+3)) 00076 #define FL_FREE_COL5 ((Fl_Color)(FL_FREE_COLOR+4)) 00077 #define FL_FREE_COL6 ((Fl_Color)(FL_FREE_COLOR+5)) 00078 #define FL_FREE_COL7 ((Fl_Color)(FL_FREE_COLOR+6)) 00079 #define FL_FREE_COL8 ((Fl_Color)(FL_FREE_COLOR+7)) 00080 #define FL_FREE_COL9 ((Fl_Color)(FL_FREE_COLOR+8)) 00081 #define FL_FREE_COL10 ((Fl_Color)(FL_FREE_COLOR+9)) 00082 #define FL_FREE_COL11 ((Fl_Color)(FL_FREE_COLOR+10)) 00083 #define FL_FREE_COL12 ((Fl_Color)(FL_FREE_COLOR+11)) 00084 #define FL_FREE_COL13 ((Fl_Color)(FL_FREE_COLOR+12)) 00085 #define FL_FREE_COL14 ((Fl_Color)(FL_FREE_COLOR+13)) 00086 #define FL_FREE_COL15 ((Fl_Color)(FL_FREE_COLOR+14)) 00087 #define FL_FREE_COL16 ((Fl_Color)(FL_FREE_COLOR+15)) 00088 #define FL_TOMATO ((Fl_Color)(131)) 00089 #define FL_INDIANRED ((Fl_Color)(164)) 00090 #define FL_SLATEBLUE ((Fl_Color)(195)) 00091 #define FL_DARKGOLD ((Fl_Color)(84)) 00092 #define FL_PALEGREEN ((Fl_Color)(157)) 00093 #define FL_ORCHID ((Fl_Color)(203)) 00094 #define FL_DARKCYAN ((Fl_Color)(189)) 00095 #define FL_DARKTOMATO ((Fl_Color)(113)) 00096 #define FL_WHEAT ((Fl_Color)(174)) 00097 00098 #define FL_ALIGN_BESIDE FL_ALIGN_INSIDE 00099 00100 #define FL_PUP_TOGGLE 2 // FL_MENU_TOGGLE 00101 #define FL_PUP_INACTIVE 1 // FL_MENU_INACTIVE 00102 #define FL_NO_FRAME FL_NO_BOX 00103 #define FL_ROUNDED3D_UPBOX FL_ROUND_UP_BOX 00104 #define FL_ROUNDED3D_DOWNBOX FL_ROUND_DOWN_BOX 00105 #define FL_OVAL3D_UPBOX FL_ROUND_UP_BOX 00106 #define FL_OVAL3D_DOWNBOX FL_ROUND_DOWN_BOX 00107 00108 #define FL_MBUTTON1 1 00109 #define FL_LEFTMOUSE 1 00110 #define FL_MBUTTON2 2 00111 #define FL_MIDDLEMOUSE 2 00112 #define FL_MBUTTON3 3 00113 #define FL_RIGHTMOUSE 3 00114 #define FL_MBUTTON4 4 00115 #define FL_MBUTTON5 5 00116 00117 #define FL_INVALID_STYLE 255 00118 #define FL_NORMAL_STYLE FL_HELVETICA 00119 #define FL_BOLD_STYLE FL_HELVETICA_BOLD 00120 #define FL_ITALIC_STYLE FL_HELVETICA_ITALIC 00121 #define FL_BOLDITALIC_STYLE FL_HELVETICA_BOLD_ITALIC 00122 #define FL_FIXED_STYLE FL_COURIER 00123 #define FL_FIXEDBOLD_STYLE FL_COURIER_BOLD 00124 #define FL_FIXEDITALIC_STYLE FL_COURIER_ITALIC 00125 #define FL_FIXEDBOLDITALIC_STYLE FL_COURIER_BOLD_ITALIC 00126 #define FL_TIMES_STYLE FL_TIMES 00127 #define FL_TIMESBOLD_STYLE FL_TIMES_BOLD 00128 #define FL_TIMESITALIC_STYLE FL_TIMES_ITALIC 00129 #define FL_TIMESBOLDITALIC_STYLE FL_TIMES_BOLD_ITALIC 00130 00131 // hacks to change the labeltype() when passed to fl_set_object_lstyle(): 00132 #define FL_SHADOW_STYLE (FL_SHADOW_LABEL<<8) 00133 #define FL_ENGRAVED_STYLE (FL_ENGRAVED_LABEL<<8) 00134 #define FL_EMBOSSED_STYLE (FL_EMBOSSED_LABEL<<0) 00135 00136 // size values are different from XForms, match older Forms: 00137 #define FL_TINY_SIZE 8 00138 #define FL_SMALL_SIZE 11 // 10 00139 //#define FL_NORMAL_SIZE 14 // 12 00140 #define FL_MEDIUM_SIZE 18 // 14 00141 #define FL_LARGE_SIZE 24 // 18 00142 #define FL_HUGE_SIZE 32 // 24 00143 #define FL_DEFAULT_SIZE FL_SMALL_SIZE 00144 #define FL_TINY_FONT FL_TINY_SIZE 00145 #define FL_SMALL_FONT FL_SMALL_SIZE 00146 #define FL_NORMAL_FONT FL_NORMAL_SIZE 00147 #define FL_MEDIUM_FONT FL_MEDIUM_SIZE 00148 #define FL_LARGE_FONT FL_LARGE_SIZE 00149 #define FL_HUGE_FONT FL_HUGE_SIZE 00150 #define FL_NORMAL_FONT1 FL_SMALL_FONT 00151 #define FL_NORMAL_FONT2 FL_NORMAL_FONT 00152 #define FL_DEFAULT_FONT FL_SMALL_FONT 00153 00154 #define FL_RETURN_END_CHANGED FL_WHEN_RELEASE 00155 #define FL_RETURN_CHANGED FL_WHEN_CHANGED 00156 #define FL_RETURN_END FL_WHEN_RELEASE_ALWAYS 00157 #define FL_RETURN_ALWAYS (FL_WHEN_CHANGED|FL_WHEN_NOT_CHANGED) 00158 00159 #define FL_BOUND_WIDTH 3 00160 00161 typedef int FL_Coord; 00162 typedef int FL_COLOR; 00163 00165 // fltk interaction: 00166 00167 #define FL_CMD_OPT void 00168 extern FL_EXPORT void fl_initialize(int*, char*[], const char*, FL_CMD_OPT*, int); 00169 inline void fl_finish() {} 00170 00171 typedef void (*FL_IO_CALLBACK) (int, void*); 00172 inline void fl_add_io_callback(int fd, short w, FL_IO_CALLBACK cb, void* v) { 00173 Fl::add_fd(fd,w,cb,v);} 00174 inline void fl_remove_io_callback(int fd, short, FL_IO_CALLBACK) { 00175 Fl::remove_fd(fd);} // removes all the callbacks! 00176 00177 // type of callback is different and no "id" number is returned: 00178 inline void fl_add_timeout(long msec, void (*cb)(void*), void* v) { 00179 Fl::add_timeout(msec*.001, cb, v);} 00180 inline void fl_remove_timeout(int) {} 00181 00182 // type of callback is different! 00183 inline void fl_set_idle_callback(void (*cb)()) {Fl::set_idle(cb);} 00184 00185 FL_EXPORT Fl_Widget* fl_do_forms(void); 00186 FL_EXPORT Fl_Widget* fl_check_forms(); 00187 inline Fl_Widget* fl_do_only_forms(void) {return fl_do_forms();} 00188 inline Fl_Widget* fl_check_only_forms(void) {return fl_check_forms();} 00189 00190 // because of new redraw behavior, these are no-ops: 00191 inline void fl_freeze_object(Fl_Widget*) {} 00192 inline void fl_unfreeze_object(Fl_Widget*) {} 00193 inline void fl_freeze_form(Fl_Window*) {} 00194 inline void fl_unfreeze_form(Fl_Window*) {} 00195 inline void fl_freeze_all_forms() {} 00196 inline void fl_unfreeze_all_forms() {} 00197 00198 inline void fl_set_focus_object(Fl_Window*, Fl_Widget* o) {Fl::focus(o);} 00199 inline void fl_reset_focus_object(Fl_Widget* o) {Fl::focus(o);} 00200 #define fl_set_object_focus fl_set_focus_object 00201 00202 // void fl_set_form_atclose(Fl_Window*w,int (*cb)(Fl_Window*,void*),void* v) 00203 // void fl_set_atclose(int (*cb)(Fl_Window*,void*),void*) 00204 // fl_set_form_atactivate/atdeactivate not implemented! 00205 00207 // Fl_Widget: 00208 00209 inline void fl_set_object_boxtype(Fl_Widget* o, Fl_Boxtype a) {o->box(a);} 00210 inline void fl_set_object_lsize(Fl_Widget* o,int s) {o->labelsize(s);} 00211 00212 /* forms lib font indexes must be byte sized - extract correct byte from style word */ 00213 inline void fl_set_object_lstyle(Fl_Widget* o,int a) { 00214 o->labelfont((Fl_Font)(a&0xff)); o->labeltype((Fl_Labeltype)(a>>8));} 00215 inline void fl_set_object_lcol(Fl_Widget* o, Fl_Color a) {o->labelcolor(a);} 00216 #define fl_set_object_lcolor fl_set_object_lcol 00217 inline void fl_set_object_lalign(Fl_Widget* o, Fl_Align a) {o->align(a);} 00218 #define fl_set_object_align fl_set_object_lalign 00219 inline void fl_set_object_color(Fl_Widget* o,Fl_Color a,Fl_Color b) {o->color(a,b);} 00220 inline void fl_set_object_label(Fl_Widget* o, const char* a) {o->label(a); o->redraw();} 00221 inline void fl_set_object_position(Fl_Widget*o,int x,int y) {o->position(x,y);} 00222 inline void fl_set_object_size(Fl_Widget* o, int w, int h) {o->size(w,h);} 00223 inline void fl_set_object_geometry(Fl_Widget* o,int x,int y,int w,int h) {o->resize(x,y,w,h);} 00224 00225 inline void fl_get_object_geometry(Fl_Widget* o,int*x,int*y,int*w,int*h) { 00226 *x = o->x(); *y = o->y(); *w = o->w(); *h = o->h();} 00227 inline void fl_get_object_position(Fl_Widget* o,int*x,int*y) { 00228 *x = o->x(); *y = o->y();} 00229 00230 typedef void (*Forms_CB)(Fl_Widget*, long); 00231 inline void fl_set_object_callback(Fl_Widget*o,Forms_CB c,long a) {o->callback(c,a);} 00232 #define fl_set_call_back fl_set_object_callback 00233 inline void fl_call_object_callback(Fl_Widget* o) {o->do_callback();} 00234 inline void fl_trigger_object(Fl_Widget* o) {o->do_callback();} 00235 inline void fl_set_object_return(Fl_Widget* o, int v) { 00236 o->when((Fl_When)(v|FL_WHEN_RELEASE));} 00237 00238 inline void fl_redraw_object(Fl_Widget* o) {o->redraw();} 00239 inline void fl_show_object(Fl_Widget* o) {o->show();} 00240 inline void fl_hide_object(Fl_Widget* o) {o->hide();} 00241 inline void fl_free_object(Fl_Widget* x) {delete x;} 00242 inline void fl_delete_object(Fl_Widget* o) {o->parent()->remove(*o);} 00243 inline void fl_activate_object(Fl_Widget* o) {o->activate();} 00244 inline void fl_deactivate_object(Fl_Widget* o) {o->deactivate();} 00245 00246 inline void fl_add_object(Fl_Window* f, Fl_Widget* x) {f->add(x);} 00247 inline void fl_insert_object(Fl_Widget* o, Fl_Widget* b) {b->parent()->insert(*o,b);} 00248 00249 inline Fl_Window* FL_ObjWin(Fl_Widget* o) {return o->window();} 00250 00252 // things that appered in the demos a lot that I don't emulate, but 00253 // I did not want to edit out of all the demos... 00254 00255 inline int fl_get_border_width() {return 3;} 00256 inline void fl_set_border_width(int) {} 00257 inline void fl_set_object_dblbuffer(Fl_Widget*, int) {} 00258 inline void fl_set_form_dblbuffer(Fl_Window*, int) {} 00259 00261 // Fl_Window: 00262 00263 inline void fl_free_form(Fl_Window* x) {delete x;} 00264 inline void fl_redraw_form(Fl_Window* f) {f->redraw();} 00265 00266 inline Fl_Window* fl_bgn_form(Fl_Boxtype b,int w,int h) { 00267 Fl_Window* g = new Fl_Window(w,h,0); 00268 g->box(b); 00269 return g; 00270 } 00271 FL_EXPORT void fl_end_form(); 00272 inline void fl_addto_form(Fl_Window* f) {f->begin();} 00273 inline Fl_Group* fl_bgn_group() {return new Fl_Group(0,0,0,0,0);} 00274 inline void fl_end_group() {Fl_Group::current()->forms_end();} 00275 inline void fl_addto_group(Fl_Widget* o) {((Fl_Group* )o)->begin();} 00276 #define resizebox _ddfdesign_kludge() 00277 00278 inline void fl_scale_form(Fl_Window* f, double x, double y) { 00279 f->resizable(f); f->size(int(f->w()*x),int(f->h()*y));} 00280 inline void fl_set_form_position(Fl_Window* f,int x,int y) {f->position(x,y);} 00281 inline void fl_set_form_size(Fl_Window* f, int w, int h) {f->size(w,h);} 00282 inline void fl_set_form_geometry(Fl_Window* f,int x,int y,int w,int h) { 00283 f->resize(x,y,w,h);} 00284 #define fl_set_initial_placement fl_set_form_geometry 00285 inline void fl_adjust_form_size(Fl_Window*) {} 00286 00287 FL_EXPORT void fl_show_form(Fl_Window* f,int p,int b,const char* n); 00288 enum { // "p" argument values: 00289 FL_PLACE_FREE = 0, // make resizable 00290 FL_PLACE_MOUSE = 1, // mouse centered on form 00291 FL_PLACE_CENTER = 2, // center of the screen 00292 FL_PLACE_POSITION = 4,// fixed position, resizable 00293 FL_PLACE_SIZE = 8, // fixed size, normal fltk behavior 00294 FL_PLACE_GEOMETRY =16,// fixed size and position 00295 FL_PLACE_ASPECT = 32, // keep aspect ratio (ignored) 00296 FL_PLACE_FULLSCREEN=64,// fill screen 00297 FL_PLACE_HOTSPOT = 128,// enables hotspot 00298 FL_PLACE_ICONIC = 256,// iconic (ignored) 00299 FL_FREE_SIZE=(1<<14), // force resizable 00300 FL_FIX_SIZE =(1<<15) // force off resizable 00301 }; 00302 #define FL_PLACE_FREE_CENTER (FL_PLACE_CENTER|FL_FREE_SIZE) 00303 #define FL_PLACE_CENTERFREE (FL_PLACE_CENTER|FL_FREE_SIZE) 00304 enum { // "b" arguement values: 00305 FL_NOBORDER = 0, 00306 FL_FULLBORDER, 00307 FL_TRANSIENT 00308 //FL_MODAL = (1<<8) // not implemented yet in Forms 00309 }; 00310 inline void fl_set_form_hotspot(Fl_Window* w,int x,int y) {w->hotspot(x,y);} 00311 inline void fl_set_form_hotobject(Fl_Window* w, Fl_Widget* o) {w->hotspot(o);} 00312 extern FL_EXPORT char fl_flip; // in forms.C 00313 inline void fl_flip_yorigin() {fl_flip = 1;} 00314 00315 #define fl_prepare_form_window fl_show_form 00316 inline void fl_show_form_window(Fl_Window*) {} 00317 00318 inline void fl_raise_form(Fl_Window* f) {f->show();} 00319 00320 inline void fl_hide_form(Fl_Window* f) {f->hide();} 00321 inline void fl_pop_form(Fl_Window* f) {f->show();} 00322 00323 extern FL_EXPORT char fl_modal_next; // in forms.C 00324 inline void fl_activate_all_forms() {} 00325 inline void fl_deactivate_all_forms() {fl_modal_next = 1;} 00326 inline void fl_deactivate_form(Fl_Window*w) {w->deactivate();} 00327 inline void fl_activate_form(Fl_Window*w) {w->activate();} 00328 00329 inline void fl_set_form_title(Fl_Window* f, const char* s) {f->label(s);} 00330 inline void fl_title_form(Fl_Window* f, const char* s) {f->label(s);} 00331 00332 typedef void (*Forms_FormCB)(Fl_Widget*); 00333 inline void fl_set_form_callback(Fl_Window* f,Forms_FormCB c) {f->callback(c);} 00334 #define fl_set_form_call_back fl_set_form_callback 00335 00336 inline void fl_init() {} 00337 FL_EXPORT void fl_set_graphics_mode(int,int); 00338 00339 inline int fl_form_is_visible(Fl_Window* f) {return f->visible();} 00340 00341 inline int fl_mouse_button() {return Fl::event_button();} 00342 #define fl_mousebutton fl_mouse_button 00343 00344 #define fl_free free 00345 #define fl_malloc malloc 00346 #define fl_calloc calloc 00347 #define fl_realloc realloc 00348 00350 // Drawing functions. Only usable inside an Fl_Free object? 00351 00352 inline void fl_drw_box(Fl_Boxtype b,int x,int y,int w,int h,Fl_Color bgc,int=3) { 00353 fl_draw_box(b,x,y,w,h,bgc);} 00354 inline void fl_drw_frame(Fl_Boxtype b,int x,int y,int w,int h,Fl_Color bgc,int=3) { 00355 fl_draw_box(b,x,y,w,h,bgc);} 00356 00357 inline void fl_drw_text(Fl_Align align, int x, int y, int w, int h, 00358 Fl_Color fgcolor, int size, Fl_Font style, 00359 const char* s) { 00360 fl_font(style,size); 00361 fl_color(fgcolor); 00362 fl_draw(s,x,y,w,h,align); 00363 } 00364 00365 // this does not work except for CENTER... 00366 inline void fl_drw_text_beside(Fl_Align align, int x, int y, int w, int h, 00367 Fl_Color fgcolor, int size, Fl_Font style, 00368 const char* s) { 00369 fl_font(style,size); 00370 fl_color(fgcolor); 00371 fl_draw(s,x,y,w,h,align); 00372 } 00373 00374 inline void fl_set_font_name(Fl_Font n,const char* s) {Fl::set_font(n,s);} 00375 00376 inline void fl_mapcolor(Fl_Color c, uchar r, uchar g, uchar b) {Fl::set_color(c,r,g,b);} 00377 00378 #define fl_set_clipping(x,y,w,h) fl_push_clip(x,y,w,h) 00379 #define fl_unset_clipping() fl_pop_clip() 00380 00382 // Forms classes: 00383 00384 inline Fl_Widget* fl_add_new(Fl_Widget* p) {return p;} 00385 inline Fl_Widget* fl_add_new(uchar t,Fl_Widget* p) {p->type(t); return p;} 00386 00387 #define forms_constructor(type,name) \ 00388 inline type* name(uchar t,int x,int y,int w,int h,const char* l) { \ 00389 return (type*)(fl_add_new(t, new type(x,y,w,h,l)));} 00390 #define forms_constructort(type,name) \ 00391 inline type* name(uchar t,int x,int y,int w,int h,const char* l) { \ 00392 return (type*)(fl_add_new(new type(t,x,y,w,h,l)));} 00393 #define forms_constructorb(type,name) \ 00394 inline type* name(Fl_Boxtype t,int x,int y,int w,int h,const char* l) { \ 00395 return (type*)(fl_add_new(new type(t,x,y,w,h,l)));} 00396 00397 #include "Fl_FormsBitmap.H" 00398 #define FL_NORMAL_BITMAP FL_NO_BOX 00399 forms_constructorb(Fl_FormsBitmap, fl_add_bitmap) 00400 inline void fl_set_bitmap_data(Fl_Widget* o, int w, int h, const uchar* b) { 00401 ((Fl_FormsBitmap*)o)->set(w,h,b); 00402 } 00403 00404 #include "Fl_FormsPixmap.H" 00405 #define FL_NORMAL_PIXMAP FL_NO_BOX 00406 forms_constructorb(Fl_FormsPixmap, fl_add_pixmap) 00407 inline void fl_set_pixmap_data(Fl_Widget* o, char*const* b) { 00408 ((Fl_FormsPixmap*)o)->set(b); 00409 } 00410 //inline void fl_set_pixmap_file(Fl_Widget*, const char*); 00411 inline void fl_set_pixmap_align(Fl_Widget* o,Fl_Align a,int,int) {o->align(a);} 00412 //inline void fl_set_pixmap_colorcloseness(int, int, int); 00413 00414 #include "Fl_Box.H" 00415 forms_constructorb(Fl_Box, fl_add_box) 00416 00417 #include "Fl_Browser.H" 00418 forms_constructor(Fl_Browser, fl_add_browser) 00419 00420 inline void fl_clear_browser(Fl_Widget* o) { 00421 ((Fl_Browser*)o)->clear();} 00422 inline void fl_add_browser_line(Fl_Widget* o, const char* s) { 00423 ((Fl_Browser*)o)->add(s);} 00424 inline void fl_addto_browser(Fl_Widget* o, const char* s) { 00425 ((Fl_Browser*)o)->add(s);} /* should also scroll to bottom */ 00426 //inline void fl_addto_browser_chars(Fl_Widget*, const char*) 00427 //#define fl_append_browser fl_addto_browser_chars 00428 inline void fl_insert_browser_line(Fl_Widget* o, int n, const char* s) { 00429 ((Fl_Browser*)o)->insert(n,s);} 00430 inline void fl_delete_browser_line(Fl_Widget* o, int n) { 00431 ((Fl_Browser*)o)->remove(n);} 00432 inline void fl_replace_browser_line(Fl_Widget* o, int n, const char* s) { 00433 ((Fl_Browser*)o)->replace(n,s);} 00434 inline char* fl_get_browser_line(Fl_Widget* o, int n) { 00435 return (char*)(((Fl_Browser*)o)->text(n));} 00436 inline int fl_load_browser(Fl_Widget* o, const char* f) { 00437 return ((Fl_Browser*)o)->load(f);} 00438 inline void fl_select_browser_line(Fl_Widget* o, int n) { 00439 ((Fl_Browser*)o)->select(n,1);} 00440 inline void fl_deselect_browser_line(Fl_Widget* o, int n) { 00441 ((Fl_Browser*)o)->select(n,0);} 00442 inline void fl_deselect_browser(Fl_Widget* o) { 00443 ((Fl_Browser*)o)->deselect();} 00444 inline int fl_isselected_browser_line(Fl_Widget* o, int n) { 00445 return ((Fl_Browser*)o)->selected(n);} 00446 inline int fl_get_browser_topline(Fl_Widget* o) { 00447 return ((Fl_Browser*)o)->topline();} 00448 inline int fl_get_browser(Fl_Widget* o) { 00449 return ((Fl_Browser*)o)->value();} 00450 inline int fl_get_browser_maxline(Fl_Widget* o) { 00451 return ((Fl_Browser*)o)->size();} 00452 //linline int fl_get_browser_screenlines(Fl_Widget*); 00453 inline void fl_set_browser_topline(Fl_Widget* o, int n) { 00454 ((Fl_Browser*)o)->topline(n);} 00455 inline void fl_set_browser_fontsize(Fl_Widget* o, int s) { 00456 ((Fl_Browser*)o)->textsize(s);} 00457 inline void fl_set_browser_fontstyle(Fl_Widget* o, Fl_Font s) { 00458 ((Fl_Browser*)o)->textfont(s);} 00459 inline void fl_set_browser_specialkey(Fl_Widget* o, char c) { 00460 ((Fl_Browser*)o)->format_char(c);} 00461 //inline void fl_set_browser_vscrollbar(Fl_Widget*, int); 00462 //inline void fl_set_browser_hscrollbar(Fl_Widget*, int); 00463 //inline void fl_set_browser_leftslider(Fl_Widget*, int); 00464 //#define fl_set_browser_leftscrollbar fl_set_browser_leftslider 00465 //inline void fl_set_browser_line_selectable(Fl_Widget*, int, int); 00466 //inline void fl_get_browser_dimension(Fl_Widget*,int*,int*,int*,int*); 00467 //inline void fl_set_browser_dblclick_callback(Fl_Widget*,FL_CALLBACKPTR,long); 00468 //inline void fl_set_browser_xoffset(Fl_Widget*, FL_Coord); 00469 //inline void fl_set_browser_scrollbarsize(Fl_Widget*, int, int); 00470 inline void fl_setdisplayed_browser_line(Fl_Widget* o, int n, int i) { 00471 ((Fl_Browser*)o)->display(n,i);} 00472 inline int fl_isdisplayed_browser_line(Fl_Widget* o, int n) { 00473 return ((Fl_Browser*)o)->displayed(n);} 00474 00475 #include "Fl_Button.H" 00476 00477 #define FL_NORMAL_BUTTON 0 00478 #define FL_TOUCH_BUTTON 4 00479 #define FL_INOUT_BUTTON 5 00480 #define FL_RETURN_BUTTON 6 00481 #define FL_HIDDEN_RET_BUTTON 7 00482 #define FL_PUSH_BUTTON FL_TOGGLE_BUTTON 00483 #define FL_MENU_BUTTON 9 00484 00485 FL_EXPORT Fl_Button* fl_add_button(uchar t,int x,int y,int w,int h,const char* l); 00486 inline int fl_get_button(Fl_Widget* b) {return ((Fl_Button*)b)->value();} 00487 inline void fl_set_button(Fl_Widget* b, int v) {((Fl_Button*)b)->value(v);} 00488 inline int fl_get_button_numb(Fl_Widget*) {return Fl::event_button();} 00489 inline void fl_set_button_shortcut(Fl_Widget* b, const char* s,int=0) { 00490 ((Fl_Button*)b)->shortcut(s);} 00491 //#define fl_set_object_shortcut(b,s) fl_set_button_shortcut(b,s) 00492 00493 #include "Fl_Light_Button.H" 00494 forms_constructor(Fl_Light_Button, fl_add_lightbutton) 00495 00496 #include "Fl_Round_Button.H" 00497 forms_constructor(Fl_Round_Button, fl_add_roundbutton) 00498 forms_constructor(Fl_Round_Button, fl_add_round3dbutton) 00499 00500 #include "Fl_Check_Button.H" 00501 forms_constructor(Fl_Check_Button, fl_add_checkbutton) 00502 00503 inline Fl_Widget* fl_add_bitmapbutton(int t,int x,int y,int w,int h,const char* l) {Fl_Widget* o = fl_add_button(t,x,y,w,h,l); return o;} 00504 inline void fl_set_bitmapbutton_data(Fl_Widget* o,int a,int b,uchar* c) { 00505 (new Fl_Bitmap(c,a,b))->label(o);} // does not delete old Fl_Bitmap! 00506 00507 inline Fl_Widget* fl_add_pixmapbutton(int t,int x,int y,int w,int h,const char* l) {Fl_Widget* o = fl_add_button(t,x,y,w,h,l); return o;} 00508 inline void fl_set_pixmapbutton_data(Fl_Widget* o, const char*const* c) { 00509 (new Fl_Pixmap(c))->label(o);} // does not delete old Fl_Pixmap! 00510 00511 // Fl_Canvas object not yet implemented! 00512 00513 #include "Fl_Chart.H" 00514 00515 forms_constructor(Fl_Chart, fl_add_chart) 00516 inline void fl_clear_chart(Fl_Widget* o) { 00517 ((Fl_Chart*)o)->clear();} 00518 inline void fl_add_chart_value(Fl_Widget* o,double v,const char* s,uchar c){ 00519 ((Fl_Chart*)o)->add(v,s,c);} 00520 inline void fl_insert_chart_value(Fl_Widget* o, int i, double v, const char* s, uchar c) { 00521 ((Fl_Chart*)o)->insert(i,v,s,c);} 00522 inline void fl_replace_chart_value(Fl_Widget* o, int i, double v, const char* s, uchar c) { 00523 ((Fl_Chart*)o)->replace(i,v,s,c);} 00524 inline void fl_set_chart_bounds(Fl_Widget* o, double a, double b) { 00525 ((Fl_Chart*)o)->bounds(a,b);} 00526 inline void fl_set_chart_maxnumb(Fl_Widget* o, int v) { 00527 ((Fl_Chart*)o)->maxsize(v);} 00528 inline void fl_set_chart_autosize(Fl_Widget* o, int v) { 00529 ((Fl_Chart*)o)->autosize(v);} 00530 inline void fl_set_chart_lstyle(Fl_Widget* o, Fl_Font v) { 00531 ((Fl_Chart*)o)->textfont(v);} 00532 inline void fl_set_chart_lsize(Fl_Widget* o, int v) { 00533 ((Fl_Chart*)o)->textsize(v);} 00534 inline void fl_set_chart_lcolor(Fl_Widget* o, Fl_Color v) { 00535 ((Fl_Chart*)o)->textcolor(v);} 00536 #define fl_set_chart_lcol fl_set_chart_lcolor 00537 00538 #include "Fl_Choice.H" 00539 00540 #define FL_NORMAL_CHOICE 0 00541 #define FL_NORMAL_CHOICE2 0 00542 #define FL_DROPLIST_CHOICE 0 00543 00544 forms_constructor(Fl_Choice, fl_add_choice) 00545 inline void fl_clear_choice(Fl_Widget* o) { 00546 ((Fl_Choice*)o)->clear();} 00547 inline void fl_addto_choice(Fl_Widget* o, const char* s) { 00548 ((Fl_Choice*)o)->add(s);} 00549 inline void fl_replace_choice(Fl_Widget* o, int i, const char* s) { 00550 ((Fl_Choice*)o)->replace(i-1,s);} 00551 inline void fl_delete_choice(Fl_Widget* o, int i) { 00552 ((Fl_Choice*)o)->remove(i-1);} 00553 inline void fl_set_choice(Fl_Widget* o, int i) { 00554 ((Fl_Choice*)o)->value(i-1);} 00555 // inline void fl_set_choice_text(Fl_Widget*, const char*); 00556 inline int fl_get_choice(Fl_Widget* o) { 00557 return ((Fl_Choice*)o)->value()+1;} 00558 // inline const char* fl_get_choice_item_text(Fl_Widget*, int); 00559 // inline int fl_get_choice_maxitems(Fl_Widget*); 00560 inline const char* fl_get_choice_text(Fl_Widget* o) { 00561 return ((Fl_Choice*)o)->text();} 00562 inline void fl_set_choice_fontsize(Fl_Widget* o, int x) { 00563 ((Fl_Choice*)o)->textsize(x);} 00564 inline void fl_set_choice_fontstyle(Fl_Widget* o, Fl_Font x) { 00565 ((Fl_Choice*)o)->textfont(x);} 00566 // inline void fl_set_choice_item_mode(Fl_Widget*, int, unsigned); 00567 // inline void fl_set_choice_item_shortcut(Fl_Widget*, int, const char*); 00568 00569 #include "Fl_Clock.H" 00570 forms_constructort(Fl_Clock, fl_add_clock) 00571 inline void fl_get_clock(Fl_Widget* o, int* h, int* m, int* s) { 00572 *h = ((Fl_Clock*)o)->hour(); 00573 *m = ((Fl_Clock*)o)->minute(); 00574 *s = ((Fl_Clock*)o)->second(); 00575 } 00576 00577 #include "Fl_Counter.H" 00578 forms_constructor(Fl_Counter, fl_add_counter) 00579 inline void fl_set_counter_value(Fl_Widget* o, double v) { 00580 ((Fl_Counter*)o)->value(v);} 00581 inline void fl_set_counter_bounds(Fl_Widget* o, double a, double b) { 00582 ((Fl_Counter*)o)->bounds(a,b);} 00583 inline void fl_set_counter_step(Fl_Widget* o, double a, double b) { 00584 ((Fl_Counter*)o)->step(a,b);} 00585 inline void fl_set_counter_precision(Fl_Widget* o, int v) { 00586 ((Fl_Counter*)o)->precision(v);} 00587 inline void fl_set_counter_return(Fl_Widget* o, int v) { 00588 ((Fl_Counter*)o)->when((Fl_When)(v|FL_WHEN_RELEASE));} 00589 inline double fl_get_counter_value(Fl_Widget* o) { 00590 return ((Fl_Counter*)o)->value();} 00591 inline void fl_get_counter_bounds(Fl_Widget* o, float* a, float* b) { 00592 *a = float(((Fl_Counter*)o)->minimum()); 00593 *b = float(((Fl_Counter*)o)->maximum()); 00594 } 00595 //inline void fl_set_counter_filter(Fl_Widget*,const char* (*)(Fl_Widget*,double,int)); 00596 00597 // Cursor stuff cannot be emulated because it uses X stuff 00598 inline void fl_set_cursor(Fl_Window* w, Fl_Cursor c) {w->cursor(c);} 00599 #define FL_INVISIBLE_CURSOR FL_CURSOR_NONE 00600 #define FL_DEFAULT_CURSOR FL_CURSOR_DEFAULT 00601 00602 #include "Fl_Dial.H" 00603 00604 #define FL_DIAL_COL1 FL_GRAY 00605 #define FL_DIAL_COL2 37 00606 00607 forms_constructor(Fl_Dial, fl_add_dial) 00608 inline void fl_set_dial_value(Fl_Widget* o, double v) { 00609 ((Fl_Dial*)o)->value(v);} 00610 inline double fl_get_dial_value(Fl_Widget* o) { 00611 return ((Fl_Dial*)o)->value();} 00612 inline void fl_set_dial_bounds(Fl_Widget* o, double a, double b) { 00613 ((Fl_Dial*)o)->bounds(a, b);} 00614 inline void fl_get_dial_bounds(Fl_Widget* o, float* a, float* b) { 00615 *a = float(((Fl_Dial*)o)->minimum()); 00616 *b = float(((Fl_Dial*)o)->maximum()); 00617 } 00618 inline void fl_set_dial_return(Fl_Widget* o, int i) { 00619 ((Fl_Dial*)o)->when((Fl_When)(i|FL_WHEN_RELEASE));} 00620 inline void fl_set_dial_angles(Fl_Widget* o, int a, int b) { 00621 ((Fl_Dial*)o)->angles((short)a, (short)b);} 00622 //inline void fl_set_dial_cross(Fl_Widget* o, int); 00623 // inline void fl_set_dial_direction(Fl_Widget* o, uchar d) { 00624 // ((Fl_Dial*)o)->direction(d);} 00625 inline void fl_set_dial_step(Fl_Widget* o, double v) { 00626 ((Fl_Dial*)o)->step(v);} 00627 00628 // Frames: 00629 00630 inline Fl_Widget* fl_add_frame(Fl_Boxtype i,int x,int y,int w,int h,const char* l) { 00631 return fl_add_box(i,x-3,y-3,w+6,h+6,l);} 00632 00633 // labelframe nyi 00634 inline Fl_Widget* fl_add_labelframe(Fl_Boxtype i,int x,int y,int w,int h,const char* l) { 00635 Fl_Widget* o = fl_add_box(i,x-3,y-3,w+6,h+6,l); 00636 o->align(FL_ALIGN_TOP_LEFT); 00637 return o; 00638 } 00639 00640 #include "Fl_Free.H" 00641 inline Fl_Free* 00642 fl_add_free(int t,double x,double y,double w,double h,const char* l, 00643 FL_HANDLEPTR hdl) { 00644 return (Fl_Free*)(fl_add_new( 00645 new Fl_Free(t,int(x),int(y),int(w),int(h),l,hdl))); 00646 } 00647 00648 #include "fl_ask.H" 00649 #include "fl_show_colormap.H" 00650 00651 inline int fl_show_question(const char* c, int = 0) {return fl_choice("%s",fl_no,fl_yes,0L,c);} 00652 FL_EXPORT void fl_show_message(const char *,const char *,const char *); 00653 FL_EXPORT void fl_show_alert(const char *,const char *,const char *,int=0); 00654 FL_EXPORT int fl_show_question(const char *,const char *,const char *); 00655 inline const char *fl_show_input(const char *l,const char*d=0) {return fl_input("%s",d,l);} 00656 FL_EXPORT /*const*/ char *fl_show_simple_input(const char *label, const char *deflt = 0); 00657 FL_EXPORT int fl_show_choice( 00658 const char *m1, 00659 const char *m2, 00660 const char *m3, 00661 int numb, 00662 const char *b0, 00663 const char *b1, 00664 const char *b2); 00665 00666 inline void fl_set_goodies_font(Fl_Font a, Fl_Fontsize b) {fl_message_font(a,b);} 00667 #define fl_show_messages fl_message 00668 inline int fl_show_choices(const char* c,int n,const char* b1,const char* b2, 00669 const char* b3, int) { 00670 return fl_show_choice(0,c,0,n,b1,b2,b3); 00671 } 00672 00673 #include "filename.H" 00674 #include "Fl_File_Chooser.H" 00675 inline int do_matching(char* a, const char* b) {return fl_filename_match(a,b);} 00676 00677 // Forms-compatable file chooser (implementation in fselect.C): 00678 FL_EXPORT char* fl_show_file_selector(const char* message,const char* dir, 00679 const char* pat,const char* fname); 00680 FL_EXPORT char* fl_get_directory(); 00681 FL_EXPORT char* fl_get_pattern(); 00682 FL_EXPORT char* fl_get_filename(); 00683 00684 #include "Fl_Input.H" 00685 forms_constructor(Fl_Input, fl_add_input) 00686 inline void fl_set_input(Fl_Widget* o, const char* v) { 00687 ((Fl_Input*)o)->value(v);} 00688 inline void fl_set_input_return(Fl_Widget* o, int x) { 00689 ((Fl_Input*)o)->when((Fl_When)(x | FL_WHEN_RELEASE));} 00690 inline void fl_set_input_color(Fl_Widget* o, Fl_Color a, Fl_Color b) { 00691 ((Fl_Input*)o)->textcolor(a); 00692 ((Fl_Input*)o)->cursor_color(b); 00693 } 00694 // inline void fl_set_input_scroll(Fl_Widget*, int); 00695 inline void fl_set_input_cursorpos(Fl_Widget* o, int x, int /*y*/) { 00696 ((Fl_Input*)o)->position(x);} 00697 // inline void fl_set_input_selected(Fl_Widget*, int); 00698 // inline void fl_set_input_selected_range(Fl_Widget*, int, int); 00699 // inline void fl_set_input_maxchars(Fl_Widget*, int); 00700 // inline void fl_set_input_format(Fl_Widget*, int, int); 00701 // inline void fl_set_input_hscrollbar(Fl_Widget*, int); 00702 // inline void fl_set_input_vscrollbar(Fl_Widget*, int); 00703 // inline void fl_set_input_xoffset(Fl_Widget*, int); 00704 // inline void fl_set_input_topline(Fl_Widget*, int); 00705 // inline void fl_set_input_scrollbarsize(Fl_Widget*, int, int); 00706 // inline int fl_get_input_topline(Fl_Widget*); 00707 // inline int fl_get_input_screenlines(Fl_Widget*); 00708 inline int fl_get_input_cursorpos(Fl_Widget* o, int*x, int*y) { 00709 *x = ((Fl_Input*)o)->position(); *y = 0; return *x;} 00710 // inline int fl_get_input_numberoflines(Fl_Widget*); 00711 // inline void fl_get_input_format(Fl_Widget*, int*, int*); 00712 inline const char* fl_get_input(Fl_Widget* o) {return ((Fl_Input*)o)->value();} 00713 00714 #include "Fl_Menu_Button.H" 00715 00716 // types are not implemented, they all act like FL_PUSH_MENU: 00717 #define FL_TOUCH_MENU 0 00718 #define FL_PUSH_MENU 1 00719 #define FL_PULLDOWN_MENU 2 00720 forms_constructor(Fl_Menu_Button, fl_add_menu) 00721 00722 inline void fl_clear_menu(Fl_Widget* o) { 00723 ((Fl_Menu_Button*)o)->clear();} 00724 inline void fl_set_menu(Fl_Widget* o, const char* s) { 00725 ((Fl_Menu_Button*)o)->clear(); ((Fl_Menu_Button*)o)->add(s);} 00726 inline void fl_addto_menu(Fl_Widget* o, const char* s) { 00727 ((Fl_Menu_Button*)o)->add(s);} 00728 inline void fl_replace_menu_item(Fl_Widget* o, int i, const char* s) { 00729 ((Fl_Menu_Button*)o)->replace(i-1,s);} 00730 inline void fl_delete_menu_item(Fl_Widget* o, int i) { 00731 ((Fl_Menu_Button*)o)->remove(i-1);} 00732 inline void fl_set_menu_item_shortcut(Fl_Widget* o, int i, const char* s) { 00733 ((Fl_Menu_Button*)o)->shortcut(i-1,fl_old_shortcut(s));} 00734 inline void fl_set_menu_item_mode(Fl_Widget* o, int i, long x) { 00735 ((Fl_Menu_Button*)o)->mode(i-1,x);} 00736 inline void fl_show_menu_symbol(Fl_Widget*, int ) { 00737 /* ((Fl_Menu_Button*)o)->show_menu_symbol(i); */} 00738 // inline void fl_set_menu_popup(Fl_Widget*, int); 00739 inline int fl_get_menu(Fl_Widget* o) { 00740 return ((Fl_Menu_Button*)o)->value()+1;} 00741 inline const char* fl_get_menu_item_text(Fl_Widget* o, int i) { 00742 return ((Fl_Menu_Button*)o)->text(i);} 00743 inline int fl_get_menu_maxitems(Fl_Widget* o) { 00744 return ((Fl_Menu_Button*)o)->size();} 00745 inline int fl_get_menu_item_mode(Fl_Widget* o, int i) { 00746 return ((Fl_Menu_Button*)o)->mode(i);} 00747 inline const char* fl_get_menu_text(Fl_Widget* o) { 00748 return ((Fl_Menu_Button*)o)->text();} 00749 00750 #include "Fl_Positioner.H" 00751 #define FL_NORMAL_POSITIONER 0 00752 forms_constructor(Fl_Positioner, fl_add_positioner) 00753 inline void fl_set_positioner_xvalue(Fl_Widget* o, double v) { 00754 ((Fl_Positioner*)o)->xvalue(v);} 00755 inline double fl_get_positioner_xvalue(Fl_Widget* o) { 00756 return ((Fl_Positioner*)o)->xvalue();} 00757 inline void fl_set_positioner_xbounds(Fl_Widget* o, double a, double b) { 00758 ((Fl_Positioner*)o)->xbounds(a,b);} 00759 inline void fl_get_positioner_xbounds(Fl_Widget* o, float* a, float* b) { 00760 *a = float(((Fl_Positioner*)o)->xminimum()); 00761 *b = float(((Fl_Positioner*)o)->xmaximum()); 00762 } 00763 inline void fl_set_positioner_yvalue(Fl_Widget* o, double v) { 00764 ((Fl_Positioner*)o)->yvalue(v);} 00765 inline double fl_get_positioner_yvalue(Fl_Widget* o) { 00766 return ((Fl_Positioner*)o)->yvalue();} 00767 inline void fl_set_positioner_ybounds(Fl_Widget* o, double a, double b) { 00768 ((Fl_Positioner*)o)->ybounds(a,b);} 00769 inline void fl_get_positioner_ybounds(Fl_Widget* o, float* a, float* b) { 00770 *a = float(((Fl_Positioner*)o)->yminimum()); 00771 *b = float(((Fl_Positioner*)o)->ymaximum()); 00772 } 00773 inline void fl_set_positioner_xstep(Fl_Widget* o, double v) { 00774 ((Fl_Positioner*)o)->xstep(v);} 00775 inline void fl_set_positioner_ystep(Fl_Widget* o, double v) { 00776 ((Fl_Positioner*)o)->ystep(v);} 00777 inline void fl_set_positioner_return(Fl_Widget* o, int v) { 00778 ((Fl_Positioner*)o)->when((Fl_When)(v|FL_WHEN_RELEASE));} 00779 00780 #include "Fl_Slider.H" 00781 00782 #define FL_HOR_BROWSER_SLIDER FL_HOR_SLIDER 00783 #define FL_VERT_BROWSER_SLIDER FL_VERT_SLIDER 00784 00785 forms_constructort(Fl_Slider, fl_add_slider) 00786 #define FL_SLIDER_COL1 FL_GRAY 00787 inline void fl_set_slider_value(Fl_Widget* o, double v) { 00788 ((Fl_Slider*)o)->value(v);} 00789 inline double fl_get_slider_value(Fl_Widget* o) { 00790 return ((Fl_Slider*)o)->value();} 00791 inline void fl_set_slider_bounds(Fl_Widget* o, double a, double b) { 00792 ((Fl_Slider*)o)->bounds(a, b);} 00793 inline void fl_get_slider_bounds(Fl_Widget* o, float* a, float* b) { 00794 *a = float(((Fl_Slider*)o)->minimum()); 00795 *b = float(((Fl_Slider*)o)->maximum()); 00796 } 00797 inline void fl_set_slider_return(Fl_Widget* o, int i) { 00798 ((Fl_Slider*)o)->when((Fl_When)(i|FL_WHEN_RELEASE));} 00799 inline void fl_set_slider_step(Fl_Widget* o, double v) { 00800 ((Fl_Slider*)o)->step(v);} 00801 // inline void fl_set_slider_increment(Fl_Widget* o, double v, double); 00802 inline void fl_set_slider_size(Fl_Widget* o, double v) { 00803 ((Fl_Slider*)o)->slider_size(v);} 00804 00805 #include "Fl_Value_Slider.H" 00806 forms_constructor(Fl_Value_Slider, fl_add_valslider) 00807 00808 inline void fl_set_slider_precision(Fl_Widget* o, int i) { 00809 ((Fl_Value_Slider*)o)->precision(i);} 00810 // filter function! 00811 00812 // The forms text object was the same as an Fl_Box except it inverted the 00813 // meaning of FL_ALIGN_INSIDE. Implementation in forms.cxx 00814 class FL_EXPORT Fl_FormsText : public Fl_Widget { 00815 protected: 00816 void draw(); 00817 public: 00818 Fl_FormsText(Fl_Boxtype b, int X, int Y, int W, int H, const char* l=0) 00819 : Fl_Widget(X,Y,W,H,l) {box(b); align(FL_ALIGN_LEFT);} 00820 }; 00821 #define FL_NORMAL_TEXT FL_NO_BOX 00822 forms_constructorb(Fl_FormsText, fl_add_text) 00823 00824 #include "Fl_Timer.H" 00825 forms_constructort(Fl_Timer, fl_add_timer) 00826 inline void fl_set_timer(Fl_Widget* o, double v) {((Fl_Timer*)o)->value(v);} 00827 inline double fl_get_timer(Fl_Widget* o) {return ((Fl_Timer*)o)->value();} 00828 inline void fl_suspend_timer(Fl_Widget* o) {((Fl_Timer*)o)->suspended(1);} 00829 inline void fl_resume_timer(Fl_Widget* o) {((Fl_Timer*)o)->suspended(0);} 00830 inline void fl_set_timer_countup(Fl_Widget* o,char d) {((Fl_Timer*)o)->direction(d);} 00831 void fl_gettime(long* sec, long* usec); 00832 00833 // Fl_XYPlot nyi 00834 00835 00836 // stuff from DDForms: 00837 00838 inline int fl_double_click() {return Fl::event_clicks();} 00839 inline void fl_draw() {Fl::flush();} 00840 00841 #endif /* define __FORMS_H__ */ 00842 00843 // 00844 // End of "$Id$". 00845 //