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