FLTK
forms.H
1 //
2 // Forms emulation header file for the Fast Light Tool Kit (FLTK).
3 //
4 // Copyright 1998-2011 by Bill Spitzak and others.
5 //
6 // This library is free software. Distribution and use rights are outlined in
7 // the file "COPYING" which should have been included with this file. If this
8 // file is missing or damaged, see the license at:
9 //
10 // https://www.fltk.org/COPYING.php
11 //
12 // Please see the following page on how to report bugs and issues:
13 //
14 // https://www.fltk.org/bugs.php
15 //
16 
17 #ifndef __FORMS_H__
18 #define __FORMS_H__
19 
20 #include "Fl.H"
21 #include "Fl_Group.H"
22 #include "Fl_Window.H"
23 #include "fl_draw.H"
24 
25 typedef Fl_Widget FL_OBJECT;
26 typedef Fl_Window FL_FORM;
27 
29 // Random constants & symbols defined by forms.h file:
30 
31 #ifndef NULL
32 #define NULL 0
33 #endif
34 #ifndef FALSE
35 #define FALSE 0
36 #define TRUE 1
37 #endif
38 
39 #define FL_ON 1
40 #define FL_OK 1
41 #define FL_VALID 1
42 #define FL_PREEMPT 1
43 #define FL_AUTO 2
44 #define FL_WHEN_NEEDED FL_AUTO
45 #define FL_OFF 0
46 #define FL_NONE 0
47 #define FL_CANCEL 0
48 #define FL_INVALID 0
49 #define FL_IGNORE -1
50 //#define FL_CLOSE -2 // this variable is never used in FLTK Forms. It is removed becaus it conflicts with the window FL_CLOSE event
51 
52 #define FL_LCOL FL_BLACK
53 #define FL_COL1 FL_GRAY
54 #define FL_MCOL FL_LIGHT1
55 #define FL_LEFT_BCOL FL_LIGHT3 // 53 is better match
56 #define FL_TOP_BCOL FL_LIGHT2 // 51
57 #define FL_BOTTOM_BCOL FL_DARK2 // 40
58 #define FL_RIGHT_BCOL FL_DARK3 // 36
59 #define FL_INACTIVE FL_INACTIVE_COLOR
60 #define FL_INACTIVE_COL FL_INACTIVE_COLOR
61 #define FL_FREE_COL1 FL_FREE_COLOR
62 #define FL_FREE_COL2 ((Fl_Color)(FL_FREE_COLOR+1))
63 #define FL_FREE_COL3 ((Fl_Color)(FL_FREE_COLOR+2))
64 #define FL_FREE_COL4 ((Fl_Color)(FL_FREE_COLOR+3))
65 #define FL_FREE_COL5 ((Fl_Color)(FL_FREE_COLOR+4))
66 #define FL_FREE_COL6 ((Fl_Color)(FL_FREE_COLOR+5))
67 #define FL_FREE_COL7 ((Fl_Color)(FL_FREE_COLOR+6))
68 #define FL_FREE_COL8 ((Fl_Color)(FL_FREE_COLOR+7))
69 #define FL_FREE_COL9 ((Fl_Color)(FL_FREE_COLOR+8))
70 #define FL_FREE_COL10 ((Fl_Color)(FL_FREE_COLOR+9))
71 #define FL_FREE_COL11 ((Fl_Color)(FL_FREE_COLOR+10))
72 #define FL_FREE_COL12 ((Fl_Color)(FL_FREE_COLOR+11))
73 #define FL_FREE_COL13 ((Fl_Color)(FL_FREE_COLOR+12))
74 #define FL_FREE_COL14 ((Fl_Color)(FL_FREE_COLOR+13))
75 #define FL_FREE_COL15 ((Fl_Color)(FL_FREE_COLOR+14))
76 #define FL_FREE_COL16 ((Fl_Color)(FL_FREE_COLOR+15))
77 #define FL_TOMATO ((Fl_Color)(131))
78 #define FL_INDIANRED ((Fl_Color)(164))
79 #define FL_SLATEBLUE ((Fl_Color)(195))
80 #define FL_DARKGOLD ((Fl_Color)(84))
81 #define FL_PALEGREEN ((Fl_Color)(157))
82 #define FL_ORCHID ((Fl_Color)(203))
83 #define FL_DARKCYAN ((Fl_Color)(189))
84 #define FL_DARKTOMATO ((Fl_Color)(113))
85 #define FL_WHEAT ((Fl_Color)(174))
86 
87 #define FL_ALIGN_BESIDE FL_ALIGN_INSIDE
88 
89 #define FL_PUP_TOGGLE 2 // FL_MENU_TOGGLE
90 #define FL_PUP_INACTIVE 1 // FL_MENU_INACTIVE
91 #define FL_NO_FRAME FL_NO_BOX
92 #define FL_ROUNDED3D_UPBOX FL_ROUND_UP_BOX
93 #define FL_ROUNDED3D_DOWNBOX FL_ROUND_DOWN_BOX
94 #define FL_OVAL3D_UPBOX FL_ROUND_UP_BOX
95 #define FL_OVAL3D_DOWNBOX FL_ROUND_DOWN_BOX
96 
97 #define FL_MBUTTON1 1
98 #define FL_LEFTMOUSE 1
99 #define FL_MBUTTON2 2
100 #define FL_MIDDLEMOUSE 2
101 #define FL_MBUTTON3 3
102 #define FL_RIGHTMOUSE 3
103 #define FL_MBUTTON4 4
104 #define FL_MBUTTON5 5
105 
106 #define FL_INVALID_STYLE 255
107 #define FL_NORMAL_STYLE FL_HELVETICA
108 #define FL_BOLD_STYLE FL_HELVETICA_BOLD
109 #define FL_ITALIC_STYLE FL_HELVETICA_ITALIC
110 #define FL_BOLDITALIC_STYLE FL_HELVETICA_BOLD_ITALIC
111 #define FL_FIXED_STYLE FL_COURIER
112 #define FL_FIXEDBOLD_STYLE FL_COURIER_BOLD
113 #define FL_FIXEDITALIC_STYLE FL_COURIER_ITALIC
114 #define FL_FIXEDBOLDITALIC_STYLE FL_COURIER_BOLD_ITALIC
115 #define FL_TIMES_STYLE FL_TIMES
116 #define FL_TIMESBOLD_STYLE FL_TIMES_BOLD
117 #define FL_TIMESITALIC_STYLE FL_TIMES_ITALIC
118 #define FL_TIMESBOLDITALIC_STYLE FL_TIMES_BOLD_ITALIC
119 
120 // hacks to change the labeltype() when passed to fl_set_object_lstyle():
121 #define FL_SHADOW_STYLE (FL_SHADOW_LABEL<<8)
122 #define FL_ENGRAVED_STYLE (FL_ENGRAVED_LABEL<<8)
123 #define FL_EMBOSSED_STYLE (FL_EMBOSSED_LABEL<<0)
124 
125 // size values are different from XForms, match older Forms:
126 #define FL_TINY_SIZE 8
127 #define FL_SMALL_SIZE 11 // 10
128 //#define FL_NORMAL_SIZE 14 // 12
129 #define FL_MEDIUM_SIZE 18 // 14
130 #define FL_LARGE_SIZE 24 // 18
131 #define FL_HUGE_SIZE 32 // 24
132 #define FL_DEFAULT_SIZE FL_SMALL_SIZE
133 #define FL_TINY_FONT FL_TINY_SIZE
134 #define FL_SMALL_FONT FL_SMALL_SIZE
135 #define FL_NORMAL_FONT FL_NORMAL_SIZE
136 #define FL_MEDIUM_FONT FL_MEDIUM_SIZE
137 #define FL_LARGE_FONT FL_LARGE_SIZE
138 #define FL_HUGE_FONT FL_HUGE_SIZE
139 #define FL_NORMAL_FONT1 FL_SMALL_FONT
140 #define FL_NORMAL_FONT2 FL_NORMAL_FONT
141 #define FL_DEFAULT_FONT FL_SMALL_FONT
142 
143 #define FL_RETURN_END_CHANGED FL_WHEN_RELEASE
144 #define FL_RETURN_CHANGED FL_WHEN_CHANGED
145 #define FL_RETURN_END FL_WHEN_RELEASE_ALWAYS
146 #define FL_RETURN_ALWAYS (FL_WHEN_CHANGED|FL_WHEN_NOT_CHANGED)
147 
148 #define FL_BOUND_WIDTH 3
149 
150 typedef int FL_Coord;
151 typedef int FL_COLOR;
152 
154 // fltk interaction:
155 
156 #define FL_CMD_OPT void
157 extern FL_EXPORT void fl_initialize(int*, char*[], const char*, FL_CMD_OPT*, int);
158 inline void fl_finish() {}
159 
160 typedef void (*FL_IO_CALLBACK) (FL_SOCKET, void*);
161 inline void fl_add_io_callback(int fd, short w, FL_IO_CALLBACK cb, void* v) {
162  Fl::add_fd(fd, w, cb, v);}
163 inline void fl_remove_io_callback(int fd, short, FL_IO_CALLBACK) {
164  Fl::remove_fd(fd);} // removes all the callbacks!
165 
166 // type of callback is different and no "id" number is returned:
167 inline void fl_add_timeout(long msec, void (*cb)(void*), void* v) {
168  Fl::add_timeout(msec*.001, cb, v);}
169 inline void fl_remove_timeout(int) {}
170 
171 // type of callback is different!
172 inline void fl_set_idle_callback(void (*cb)()) {Fl::set_idle(cb);}
173 
174 FL_EXPORT Fl_Widget* fl_do_forms(void);
175 FL_EXPORT Fl_Widget* fl_check_forms();
176 inline Fl_Widget* fl_do_only_forms(void) {return fl_do_forms();}
177 inline Fl_Widget* fl_check_only_forms(void) {return fl_check_forms();}
178 
179 // because of new redraw behavior, these are no-ops:
180 inline void fl_freeze_object(Fl_Widget*) {}
181 inline void fl_unfreeze_object(Fl_Widget*) {}
182 inline void fl_freeze_form(Fl_Window*) {}
183 inline void fl_unfreeze_form(Fl_Window*) {}
184 inline void fl_freeze_all_forms() {}
185 inline void fl_unfreeze_all_forms() {}
186 
187 inline void fl_set_focus_object(Fl_Window*, Fl_Widget* o) {Fl::focus(o);}
188 inline void fl_reset_focus_object(Fl_Widget* o) {Fl::focus(o);}
189 #define fl_set_object_focus fl_set_focus_object
190 
191 // void fl_set_form_atclose(Fl_Window*w,int (*cb)(Fl_Window*,void*),void* v)
192 // void fl_set_atclose(int (*cb)(Fl_Window*,void*),void*)
193 // fl_set_form_atactivate/atdeactivate not implemented!
194 
196 // Fl_Widget:
197 
198 inline void fl_set_object_boxtype(Fl_Widget* o, Fl_Boxtype a) {o->box(a);}
199 inline void fl_set_object_lsize(Fl_Widget* o,int s) {o->labelsize(s);}
200 
201 /* forms lib font indexes must be byte sized - extract correct byte from style word */
202 inline void fl_set_object_lstyle(Fl_Widget* o,int a) {
203  o->labelfont((Fl_Font)(a&0xff)); o->labeltype((Fl_Labeltype)(a>>8));}
204 inline void fl_set_object_lcol(Fl_Widget* o, Fl_Color a) {o->labelcolor(a);}
205 #define fl_set_object_lcolor fl_set_object_lcol
206 inline void fl_set_object_lalign(Fl_Widget* o, Fl_Align a) {o->align(a);}
207 #define fl_set_object_align fl_set_object_lalign
208 inline void fl_set_object_color(Fl_Widget* o,Fl_Color a,Fl_Color b) {o->color(a,b);}
209 inline void fl_set_object_label(Fl_Widget* o, const char* a) {o->label(a); o->redraw();}
210 inline void fl_set_object_position(Fl_Widget*o,int x,int y) {o->position(x,y);}
211 inline void fl_set_object_size(Fl_Widget* o, int w, int h) {o->size(w,h);}
212 inline void fl_set_object_geometry(Fl_Widget* o,int x,int y,int w,int h) {o->resize(x,y,w,h);}
213 
214 inline void fl_get_object_geometry(Fl_Widget* o,int*x,int*y,int*w,int*h) {
215  *x = o->x(); *y = o->y(); *w = o->w(); *h = o->h();}
216 inline void fl_get_object_position(Fl_Widget* o,int*x,int*y) {
217  *x = o->x(); *y = o->y();}
218 
219 typedef void (*Forms_CB)(Fl_Widget*, long);
220 inline void fl_set_object_callback(Fl_Widget*o,Forms_CB c,long a) {o->callback(c,a);}
221 #define fl_set_call_back fl_set_object_callback
222 inline void fl_call_object_callback(Fl_Widget* o) {o->do_callback();}
223 inline void fl_trigger_object(Fl_Widget* o) {o->do_callback();}
224 inline void fl_set_object_return(Fl_Widget* o, int v) {
225  o->when((Fl_When)(v|FL_WHEN_RELEASE));}
226 
227 inline void fl_redraw_object(Fl_Widget* o) {o->redraw();}
228 inline void fl_show_object(Fl_Widget* o) {o->show();}
229 inline void fl_hide_object(Fl_Widget* o) {o->hide();}
230 inline void fl_free_object(Fl_Widget* x) {delete x;}
231 inline void fl_delete_object(Fl_Widget* o) {o->parent()->remove(*o);}
232 inline void fl_activate_object(Fl_Widget* o) {o->activate();}
233 inline void fl_deactivate_object(Fl_Widget* o) {o->deactivate();}
234 
235 inline void fl_add_object(Fl_Window* f, Fl_Widget* x) {f->add(x);}
236 inline void fl_insert_object(Fl_Widget* o, Fl_Widget* b) {b->parent()->insert(*o,b);}
237 
238 inline Fl_Window* FL_ObjWin(Fl_Widget* o) {return o->window();}
239 
241 // things that appered in the demos a lot that I don't emulate, but
242 // I did not want to edit out of all the demos...
243 
244 inline int fl_get_border_width() {return 3;}
245 inline void fl_set_border_width(int) {}
246 inline void fl_set_object_dblbuffer(Fl_Widget*, int) {}
247 inline void fl_set_form_dblbuffer(Fl_Window*, int) {}
248 
250 // Fl_Window:
251 
252 inline void fl_free_form(Fl_Window* x) {delete x;}
253 inline void fl_redraw_form(Fl_Window* f) {f->redraw();}
254 
255 inline Fl_Window* fl_bgn_form(Fl_Boxtype b,int w,int h) {
256  Fl_Window* g = new Fl_Window(w,h,0);
257  g->box(b);
258  return g;
259 }
260 FL_EXPORT void fl_end_form();
261 inline void fl_addto_form(Fl_Window* f) {f->begin();}
262 inline Fl_Group* fl_bgn_group() {return new Fl_Group(0,0,0,0,0);}
263 inline void fl_end_group() {Fl_Group::current()->forms_end();}
264 inline void fl_addto_group(Fl_Widget* o) {((Fl_Group* )o)->begin();}
265 #define resizebox _ddfdesign_kludge()
266 
267 inline void fl_scale_form(Fl_Window* f, double x, double y) {
268  f->resizable(f); f->size(int(f->w()*x),int(f->h()*y));}
269 inline void fl_set_form_position(Fl_Window* f,int x,int y) {f->position(x,y);}
270 inline void fl_set_form_size(Fl_Window* f, int w, int h) {f->size(w,h);}
271 inline void fl_set_form_geometry(Fl_Window* f,int x,int y,int w,int h) {
272  f->resize(x,y,w,h);}
273 #define fl_set_initial_placement fl_set_form_geometry
274 inline void fl_adjust_form_size(Fl_Window*) {}
275 
276 FL_EXPORT void fl_show_form(Fl_Window* f,int p,int b,const char* n);
277 enum { // "p" argument values:
278  FL_PLACE_FREE = 0, // make resizable
279  FL_PLACE_MOUSE = 1, // mouse centered on form
280  FL_PLACE_CENTER = 2, // center of the screen
281  FL_PLACE_POSITION = 4,// fixed position, resizable
282  FL_PLACE_SIZE = 8, // fixed size, normal fltk behavior
283  FL_PLACE_GEOMETRY =16,// fixed size and position
284  FL_PLACE_ASPECT = 32, // keep aspect ratio (ignored)
285  FL_PLACE_FULLSCREEN=64,// fill screen
286  FL_PLACE_HOTSPOT = 128,// enables hotspot
287  FL_PLACE_ICONIC = 256,// iconic (ignored)
288  FL_FREE_SIZE=(1<<14), // force resizable
289  FL_FIX_SIZE =(1<<15) // force off resizable
290 };
291 #define FL_PLACE_FREE_CENTER (FL_PLACE_CENTER|FL_FREE_SIZE)
292 #define FL_PLACE_CENTERFREE (FL_PLACE_CENTER|FL_FREE_SIZE)
293 enum { // "b" arguement values:
294  FL_NOBORDER = 0,
295  FL_FULLBORDER,
296  FL_TRANSIENT
297 //FL_MODAL = (1<<8) // not implemented yet in Forms
298 };
299 inline void fl_set_form_hotspot(Fl_Window* w,int x,int y) {w->hotspot(x,y);}
300 inline void fl_set_form_hotobject(Fl_Window* w, Fl_Widget* o) {w->hotspot(o);}
301 extern FL_EXPORT char fl_flip; // in forms.C
302 inline void fl_flip_yorigin() {fl_flip = 1;}
303 
304 #define fl_prepare_form_window fl_show_form
305 inline void fl_show_form_window(Fl_Window*) {}
306 
307 inline void fl_raise_form(Fl_Window* f) {f->show();}
308 
309 inline void fl_hide_form(Fl_Window* f) {f->hide();}
310 inline void fl_pop_form(Fl_Window* f) {f->show();}
311 
312 extern FL_EXPORT char fl_modal_next; // in forms.C
313 inline void fl_activate_all_forms() {}
314 inline void fl_deactivate_all_forms() {fl_modal_next = 1;}
315 inline void fl_deactivate_form(Fl_Window*w) {w->deactivate();}
316 inline void fl_activate_form(Fl_Window*w) {w->activate();}
317 
318 inline void fl_set_form_title(Fl_Window* f, const char* s) {f->label(s);}
319 inline void fl_title_form(Fl_Window* f, const char* s) {f->label(s);}
320 
321 typedef void (*Forms_FormCB)(Fl_Widget*);
322 inline void fl_set_form_callback(Fl_Window* f,Forms_FormCB c) {f->callback(c);}
323 #define fl_set_form_call_back fl_set_form_callback
324 
325 inline void fl_init() {}
326 FL_EXPORT void fl_set_graphics_mode(int,int);
327 
328 inline int fl_form_is_visible(Fl_Window* f) {return f->visible();}
329 
330 inline int fl_mouse_button() {return Fl::event_button();}
331 #define fl_mousebutton fl_mouse_button
332 
333 #define fl_free free
334 #define fl_malloc malloc
335 #define fl_calloc calloc
336 #define fl_realloc realloc
337 
339 // Drawing functions. Only usable inside an Fl_Free object?
340 
341 inline void fl_drw_box(Fl_Boxtype b,int x,int y,int w,int h,Fl_Color bgc,int=3) {
342  fl_draw_box(b,x,y,w,h,bgc);}
343 inline void fl_drw_frame(Fl_Boxtype b,int x,int y,int w,int h,Fl_Color bgc,int=3) {
344  fl_draw_box(b,x,y,w,h,bgc);}
345 
346 inline void fl_drw_text(Fl_Align align, int x, int y, int w, int h,
347  Fl_Color fgcolor, int size, Fl_Font style,
348  const char* s) {
349  fl_font(style,size);
350  fl_color(fgcolor);
351  fl_draw(s,x,y,w,h,align);
352 }
353 
354 // this does not work except for CENTER...
355 inline void fl_drw_text_beside(Fl_Align align, int x, int y, int w, int h,
356  Fl_Color fgcolor, int size, Fl_Font style,
357  const char* s) {
358  fl_font(style,size);
359  fl_color(fgcolor);
360  fl_draw(s,x,y,w,h,align);
361 }
362 
363 inline void fl_set_font_name(Fl_Font n,const char* s) {Fl::set_font(n,s);}
364 
365 inline void fl_mapcolor(Fl_Color c, uchar r, uchar g, uchar b) {Fl::set_color(c,r,g,b);}
366 
367 #define fl_set_clipping(x,y,w,h) fl_push_clip(x,y,w,h)
368 #define fl_unset_clipping() fl_pop_clip()
369 
371 // Forms classes:
372 
373 inline Fl_Widget* fl_add_new(Fl_Widget* p) {return p;}
374 inline Fl_Widget* fl_add_new(uchar t,Fl_Widget* p) {p->type(t); return p;}
375 
376 #define forms_constructor(type,name) \
377 inline type* name(uchar t,int x,int y,int w,int h,const char* l) { \
378  return (type*)(fl_add_new(t, new type(x,y,w,h,l)));}
379 #define forms_constructort(type,name) \
380 inline type* name(uchar t,int x,int y,int w,int h,const char* l) { \
381  return (type*)(fl_add_new(new type(t,x,y,w,h,l)));}
382 #define forms_constructorb(type,name) \
383 inline type* name(Fl_Boxtype t,int x,int y,int w,int h,const char* l) { \
384  return (type*)(fl_add_new(new type(t,x,y,w,h,l)));}
385 
386 #include "Fl_FormsBitmap.H"
387 #define FL_NORMAL_BITMAP FL_NO_BOX
388 forms_constructorb(Fl_FormsBitmap, fl_add_bitmap)
389 inline void fl_set_bitmap_data(Fl_Widget* o, int w, int h, const uchar* b) {
390  ((Fl_FormsBitmap*)o)->set(w,h,b);
391 }
392 
393 #include "Fl_FormsPixmap.H"
394 #define FL_NORMAL_PIXMAP FL_NO_BOX
395 forms_constructorb(Fl_FormsPixmap, fl_add_pixmap)
396 inline void fl_set_pixmap_data(Fl_Widget* o, char*const* b) {
397  ((Fl_FormsPixmap*)o)->set(b);
398 }
399 //inline void fl_set_pixmap_file(Fl_Widget*, const char*);
400 inline void fl_set_pixmap_align(Fl_Widget* o,Fl_Align a,int,int) {o->align(a);}
401 //inline void fl_set_pixmap_colorcloseness(int, int, int);
402 
403 #include "Fl_Box.H"
404 forms_constructorb(Fl_Box, fl_add_box)
405 
406 #include "Fl_Browser.H"
407 forms_constructor(Fl_Browser, fl_add_browser)
408 
409 inline void fl_clear_browser(Fl_Widget* o) {
410  ((Fl_Browser*)o)->clear();}
411 inline void fl_add_browser_line(Fl_Widget* o, const char* s) {
412  ((Fl_Browser*)o)->add(s);}
413 inline void fl_addto_browser(Fl_Widget* o, const char* s) {
414  ((Fl_Browser*)o)->add(s);} /* should also scroll to bottom */
415 //inline void fl_addto_browser_chars(Fl_Widget*, const char*)
416 //#define fl_append_browser fl_addto_browser_chars
417 inline void fl_insert_browser_line(Fl_Widget* o, int n, const char* s) {
418  ((Fl_Browser*)o)->insert(n,s);}
419 inline void fl_delete_browser_line(Fl_Widget* o, int n) {
420  ((Fl_Browser*)o)->remove(n);}
421 inline void fl_replace_browser_line(Fl_Widget* o, int n, const char* s) {
422  ((Fl_Browser*)o)->replace(n,s);}
423 inline char* fl_get_browser_line(Fl_Widget* o, int n) {
424  return (char*)(((Fl_Browser*)o)->text(n));}
425 inline int fl_load_browser(Fl_Widget* o, const char* f) {
426  return ((Fl_Browser*)o)->load(f);}
427 inline void fl_select_browser_line(Fl_Widget* o, int n) {
428  ((Fl_Browser*)o)->select(n,1);}
429 inline void fl_deselect_browser_line(Fl_Widget* o, int n) {
430  ((Fl_Browser*)o)->select(n,0);}
431 inline void fl_deselect_browser(Fl_Widget* o) {
432  ((Fl_Browser*)o)->deselect();}
433 inline int fl_isselected_browser_line(Fl_Widget* o, int n) {
434  return ((Fl_Browser*)o)->selected(n);}
435 inline int fl_get_browser_topline(Fl_Widget* o) {
436  return ((Fl_Browser*)o)->topline();}
437 inline int fl_get_browser(Fl_Widget* o) {
438  return ((Fl_Browser*)o)->value();}
439 inline int fl_get_browser_maxline(Fl_Widget* o) {
440  return ((Fl_Browser*)o)->size();}
441 //linline int fl_get_browser_screenlines(Fl_Widget*);
442 inline void fl_set_browser_topline(Fl_Widget* o, int n) {
443  ((Fl_Browser*)o)->topline(n);}
444 inline void fl_set_browser_fontsize(Fl_Widget* o, int s) {
445  ((Fl_Browser*)o)->textsize(s);}
446 inline void fl_set_browser_fontstyle(Fl_Widget* o, Fl_Font s) {
447  ((Fl_Browser*)o)->textfont(s);}
448 inline void fl_set_browser_specialkey(Fl_Widget* o, char c) {
449  ((Fl_Browser*)o)->format_char(c);}
450 //inline void fl_set_browser_vscrollbar(Fl_Widget*, int);
451 //inline void fl_set_browser_hscrollbar(Fl_Widget*, int);
452 //inline void fl_set_browser_leftslider(Fl_Widget*, int);
453 //#define fl_set_browser_leftscrollbar fl_set_browser_leftslider
454 //inline void fl_set_browser_line_selectable(Fl_Widget*, int, int);
455 //inline void fl_get_browser_dimension(Fl_Widget*,int*,int*,int*,int*);
456 //inline void fl_set_browser_dblclick_callback(Fl_Widget*,FL_CALLBACKPTR,long);
457 //inline void fl_set_browser_xoffset(Fl_Widget*, FL_Coord);
458 //inline void fl_set_browser_scrollbarsize(Fl_Widget*, int, int);
459 inline void fl_setdisplayed_browser_line(Fl_Widget* o, int n, int i) {
460  ((Fl_Browser*)o)->display(n,i);}
461 inline int fl_isdisplayed_browser_line(Fl_Widget* o, int n) {
462  return ((Fl_Browser*)o)->displayed(n);}
463 
464 #include "Fl_Button.H"
465 
466 #define FL_NORMAL_BUTTON 0
467 #define FL_TOUCH_BUTTON 4
468 #define FL_INOUT_BUTTON 5
469 #define FL_RETURN_BUTTON 6
470 #define FL_HIDDEN_RET_BUTTON 7
471 #define FL_PUSH_BUTTON FL_TOGGLE_BUTTON
472 #define FL_MENU_BUTTON 9
473 
474 FL_EXPORT Fl_Button* fl_add_button(uchar t,int x,int y,int w,int h,const char* l);
475 inline int fl_get_button(Fl_Widget* b) {return ((Fl_Button*)b)->value();}
476 inline void fl_set_button(Fl_Widget* b, int v) {((Fl_Button*)b)->value(v);}
477 inline int fl_get_button_numb(Fl_Widget*) {return Fl::event_button();}
478 inline void fl_set_button_shortcut(Fl_Widget* b, const char* s,int=0) {
479  ((Fl_Button*)b)->shortcut(s);}
480 //#define fl_set_object_shortcut(b,s) fl_set_button_shortcut(b,s)
481 
482 #include "Fl_Light_Button.H"
483 forms_constructor(Fl_Light_Button, fl_add_lightbutton)
484 
485 #include "Fl_Round_Button.H"
486 forms_constructor(Fl_Round_Button, fl_add_roundbutton)
487 forms_constructor(Fl_Round_Button, fl_add_round3dbutton)
488 
489 #include "Fl_Check_Button.H"
490 forms_constructor(Fl_Check_Button, fl_add_checkbutton)
491 
492 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;}
493 inline void fl_set_bitmapbutton_data(Fl_Widget* o,int a,int b,uchar* c) {
494  (new Fl_Bitmap(c,a,b))->label(o);} // does not delete old Fl_Bitmap!
495 
496 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;}
497 inline void fl_set_pixmapbutton_data(Fl_Widget* o, const char*const* c) {
498  (new Fl_Pixmap(c))->label(o);} // does not delete old Fl_Pixmap!
499 
500 // Fl_Canvas object not yet implemented!
501 
502 #include "Fl_Chart.H"
503 
504 forms_constructor(Fl_Chart, fl_add_chart)
505 inline void fl_clear_chart(Fl_Widget* o) {
506  ((Fl_Chart*)o)->clear();}
507 inline void fl_add_chart_value(Fl_Widget* o,double v,const char* s,uchar c){
508  ((Fl_Chart*)o)->add(v,s,c);}
509 inline void fl_insert_chart_value(Fl_Widget* o, int i, double v, const char* s, uchar c) {
510  ((Fl_Chart*)o)->insert(i,v,s,c);}
511 inline void fl_replace_chart_value(Fl_Widget* o, int i, double v, const char* s, uchar c) {
512  ((Fl_Chart*)o)->replace(i,v,s,c);}
513 inline void fl_set_chart_bounds(Fl_Widget* o, double a, double b) {
514  ((Fl_Chart*)o)->bounds(a,b);}
515 inline void fl_set_chart_maxnumb(Fl_Widget* o, int v) {
516  ((Fl_Chart*)o)->maxsize(v);}
517 inline void fl_set_chart_autosize(Fl_Widget* o, int v) {
518  ((Fl_Chart*)o)->autosize(v);}
519 inline void fl_set_chart_lstyle(Fl_Widget* o, Fl_Font v) {
520  ((Fl_Chart*)o)->textfont(v);}
521 inline void fl_set_chart_lsize(Fl_Widget* o, int v) {
522  ((Fl_Chart*)o)->textsize(v);}
523 inline void fl_set_chart_lcolor(Fl_Widget* o, Fl_Color v) {
524  ((Fl_Chart*)o)->textcolor(v);}
525 #define fl_set_chart_lcol fl_set_chart_lcolor
526 
527 #include "Fl_Choice.H"
528 
529 #define FL_NORMAL_CHOICE 0
530 #define FL_NORMAL_CHOICE2 0
531 #define FL_DROPLIST_CHOICE 0
532 
533 forms_constructor(Fl_Choice, fl_add_choice)
534 inline void fl_clear_choice(Fl_Widget* o) {
535  ((Fl_Choice*)o)->clear();}
536 inline void fl_addto_choice(Fl_Widget* o, const char* s) {
537  ((Fl_Choice*)o)->add(s);}
538 inline void fl_replace_choice(Fl_Widget* o, int i, const char* s) {
539  ((Fl_Choice*)o)->replace(i-1,s);}
540 inline void fl_delete_choice(Fl_Widget* o, int i) {
541  ((Fl_Choice*)o)->remove(i-1);}
542 inline void fl_set_choice(Fl_Widget* o, int i) {
543  ((Fl_Choice*)o)->value(i-1);}
544 // inline void fl_set_choice_text(Fl_Widget*, const char*);
545 inline int fl_get_choice(Fl_Widget* o) {
546  return ((Fl_Choice*)o)->value()+1;}
547 // inline const char* fl_get_choice_item_text(Fl_Widget*, int);
548 // inline int fl_get_choice_maxitems(Fl_Widget*);
549 inline const char* fl_get_choice_text(Fl_Widget* o) {
550  return ((Fl_Choice*)o)->text();}
551 inline void fl_set_choice_fontsize(Fl_Widget* o, int x) {
552  ((Fl_Choice*)o)->textsize(x);}
553 inline void fl_set_choice_fontstyle(Fl_Widget* o, Fl_Font x) {
554  ((Fl_Choice*)o)->textfont(x);}
555 // inline void fl_set_choice_item_mode(Fl_Widget*, int, unsigned);
556 // inline void fl_set_choice_item_shortcut(Fl_Widget*, int, const char*);
557 
558 #include "Fl_Clock.H"
559 forms_constructort(Fl_Clock, fl_add_clock)
560 inline void fl_get_clock(Fl_Widget* o, int* h, int* m, int* s) {
561  *h = ((Fl_Clock*)o)->hour();
562  *m = ((Fl_Clock*)o)->minute();
563  *s = ((Fl_Clock*)o)->second();
564 }
565 
566 #include "Fl_Counter.H"
567 forms_constructor(Fl_Counter, fl_add_counter)
568 inline void fl_set_counter_value(Fl_Widget* o, double v) {
569  ((Fl_Counter*)o)->value(v);}
570 inline void fl_set_counter_bounds(Fl_Widget* o, double a, double b) {
571  ((Fl_Counter*)o)->bounds(a,b);}
572 inline void fl_set_counter_step(Fl_Widget* o, double a, double b) {
573  ((Fl_Counter*)o)->step(a,b);}
574 inline void fl_set_counter_precision(Fl_Widget* o, int v) {
575  ((Fl_Counter*)o)->precision(v);}
576 inline void fl_set_counter_return(Fl_Widget* o, int v) {
577  ((Fl_Counter*)o)->when((Fl_When)(v|FL_WHEN_RELEASE));}
578 inline double fl_get_counter_value(Fl_Widget* o) {
579  return ((Fl_Counter*)o)->value();}
580 inline void fl_get_counter_bounds(Fl_Widget* o, float* a, float* b) {
581  *a = float(((Fl_Counter*)o)->minimum());
582  *b = float(((Fl_Counter*)o)->maximum());
583 }
584 //inline void fl_set_counter_filter(Fl_Widget*,const char* (*)(Fl_Widget*,double,int));
585 
586 // Cursor stuff cannot be emulated because it uses X stuff
587 inline void fl_set_cursor(Fl_Window* w, Fl_Cursor c) {w->cursor(c);}
588 #define FL_INVISIBLE_CURSOR FL_CURSOR_NONE
589 #define FL_DEFAULT_CURSOR FL_CURSOR_DEFAULT
590 
591 #include "Fl_Dial.H"
592 
593 #define FL_DIAL_COL1 FL_GRAY
594 #define FL_DIAL_COL2 37
595 
596 forms_constructor(Fl_Dial, fl_add_dial)
597 inline void fl_set_dial_value(Fl_Widget* o, double v) {
598  ((Fl_Dial*)o)->value(v);}
599 inline double fl_get_dial_value(Fl_Widget* o) {
600  return ((Fl_Dial*)o)->value();}
601 inline void fl_set_dial_bounds(Fl_Widget* o, double a, double b) {
602  ((Fl_Dial*)o)->bounds(a, b);}
603 inline void fl_get_dial_bounds(Fl_Widget* o, float* a, float* b) {
604  *a = float(((Fl_Dial*)o)->minimum());
605  *b = float(((Fl_Dial*)o)->maximum());
606 }
607 inline void fl_set_dial_return(Fl_Widget* o, int i) {
608  ((Fl_Dial*)o)->when((Fl_When)(i|FL_WHEN_RELEASE));}
609 inline void fl_set_dial_angles(Fl_Widget* o, int a, int b) {
610  ((Fl_Dial*)o)->angles((short)a, (short)b);}
611 //inline void fl_set_dial_cross(Fl_Widget* o, int);
612 // inline void fl_set_dial_direction(Fl_Widget* o, uchar d) {
613 // ((Fl_Dial*)o)->direction(d);}
614 inline void fl_set_dial_step(Fl_Widget* o, double v) {
615  ((Fl_Dial*)o)->step(v);}
616 
617 // Frames:
618 
619 inline Fl_Widget* fl_add_frame(Fl_Boxtype i,int x,int y,int w,int h,const char* l) {
620  return fl_add_box(i,x-3,y-3,w+6,h+6,l);}
621 
622 // labelframe nyi
623 inline Fl_Widget* fl_add_labelframe(Fl_Boxtype i,int x,int y,int w,int h,const char* l) {
624  Fl_Widget* o = fl_add_box(i,x-3,y-3,w+6,h+6,l);
625  o->align(FL_ALIGN_TOP_LEFT);
626  return o;
627 }
628 
629 #include "Fl_Free.H"
630 inline Fl_Free*
631 fl_add_free(int t,double x,double y,double w,double h,const char* l,
632  FL_HANDLEPTR hdl) {
633  return (Fl_Free*)(fl_add_new(
634  new Fl_Free(t,int(x),int(y),int(w),int(h),l,hdl)));
635 }
636 
637 #include "fl_ask.H"
638 #include "fl_show_colormap.H"
639 
640 inline int fl_show_question(const char* c, int = 0) {return fl_choice("%s",fl_no,fl_yes,0L,c);}
641 FL_EXPORT void fl_show_message(const char *,const char *,const char *);
642 FL_EXPORT void fl_show_alert(const char *,const char *,const char *,int=0);
643 FL_EXPORT int fl_show_question(const char *,const char *,const char *);
644 inline const char *fl_show_input(const char *l,const char*d=0) {return fl_input("%s",d,l);}
645 FL_EXPORT /*const*/ char *fl_show_simple_input(const char *label, const char *deflt = 0);
646 FL_EXPORT int fl_show_choice(
647  const char *m1,
648  const char *m2,
649  const char *m3,
650  int numb,
651  const char *b0,
652  const char *b1,
653  const char *b2);
654 
655 inline void fl_set_goodies_font(Fl_Font a, Fl_Fontsize b) {fl_message_font(a,b);}
656 #define fl_show_messages fl_message
657 inline int fl_show_choices(const char* c,int n,const char* b1,const char* b2,
658  const char* b3, int) {
659  return fl_show_choice(0,c,0,n,b1,b2,b3);
660 }
661 
662 #include "filename.H"
663 #include "Fl_File_Chooser.H"
664 inline int do_matching(char* a, const char* b) {return fl_filename_match(a,b);}
665 
666 // Forms-compatible file chooser (implementation in fselect.C):
667 FL_EXPORT char* fl_show_file_selector(const char* message,const char* dir,
668  const char* pat,const char* fname);
669 FL_EXPORT char* fl_get_directory();
670 FL_EXPORT char* fl_get_pattern();
671 FL_EXPORT char* fl_get_filename();
672 
673 #include "Fl_Input.H"
674 forms_constructor(Fl_Input, fl_add_input)
675 inline void fl_set_input(Fl_Widget* o, const char* v) {
676  ((Fl_Input*)o)->value(v);}
677 inline void fl_set_input_return(Fl_Widget* o, int x) {
678  ((Fl_Input*)o)->when((Fl_When)(x | FL_WHEN_RELEASE));}
679 inline void fl_set_input_color(Fl_Widget* o, Fl_Color a, Fl_Color b) {
680  ((Fl_Input*)o)->textcolor(a);
681  ((Fl_Input*)o)->cursor_color(b);
682 }
683 // inline void fl_set_input_scroll(Fl_Widget*, int);
684 inline void fl_set_input_cursorpos(Fl_Widget* o, int x, int /*y*/) {
685  ((Fl_Input*)o)->position(x);}
686 // inline void fl_set_input_selected(Fl_Widget*, int);
687 // inline void fl_set_input_selected_range(Fl_Widget*, int, int);
688 // inline void fl_set_input_maxchars(Fl_Widget*, int);
689 // inline void fl_set_input_format(Fl_Widget*, int, int);
690 // inline void fl_set_input_hscrollbar(Fl_Widget*, int);
691 // inline void fl_set_input_vscrollbar(Fl_Widget*, int);
692 // inline void fl_set_input_xoffset(Fl_Widget*, int);
693 // inline void fl_set_input_topline(Fl_Widget*, int);
694 // inline void fl_set_input_scrollbarsize(Fl_Widget*, int, int);
695 // inline int fl_get_input_topline(Fl_Widget*);
696 // inline int fl_get_input_screenlines(Fl_Widget*);
697 inline int fl_get_input_cursorpos(Fl_Widget* o, int*x, int*y) {
698  *x = ((Fl_Input*)o)->position(); *y = 0; return *x;}
699 // inline int fl_get_input_numberoflines(Fl_Widget*);
700 // inline void fl_get_input_format(Fl_Widget*, int*, int*);
701 inline const char* fl_get_input(Fl_Widget* o) {return ((Fl_Input*)o)->value();}
702 
703 #include "Fl_Menu_Button.H"
704 
705 // types are not implemented, they all act like FL_PUSH_MENU:
706 #define FL_TOUCH_MENU 0
707 #define FL_PUSH_MENU 1
708 #define FL_PULLDOWN_MENU 2
709 forms_constructor(Fl_Menu_Button, fl_add_menu)
710 
711 inline void fl_clear_menu(Fl_Widget* o) {
712  ((Fl_Menu_Button*)o)->clear();}
713 inline void fl_set_menu(Fl_Widget* o, const char* s) {
714  ((Fl_Menu_Button*)o)->clear(); ((Fl_Menu_Button*)o)->add(s);}
715 inline void fl_addto_menu(Fl_Widget* o, const char* s) {
716  ((Fl_Menu_Button*)o)->add(s);}
717 inline void fl_replace_menu_item(Fl_Widget* o, int i, const char* s) {
718  ((Fl_Menu_Button*)o)->replace(i-1,s);}
719 inline void fl_delete_menu_item(Fl_Widget* o, int i) {
720  ((Fl_Menu_Button*)o)->remove(i-1);}
721 inline void fl_set_menu_item_shortcut(Fl_Widget* o, int i, const char* s) {
722  ((Fl_Menu_Button*)o)->shortcut(i-1,fl_old_shortcut(s));}
723 inline void fl_set_menu_item_mode(Fl_Widget* o, int i, long x) {
724  ((Fl_Menu_Button*)o)->mode(i-1,x);}
725 inline void fl_show_menu_symbol(Fl_Widget*, int ) {
726 /* ((Fl_Menu_Button*)o)->show_menu_symbol(i); */}
727 // inline void fl_set_menu_popup(Fl_Widget*, int);
728 inline int fl_get_menu(Fl_Widget* o) {
729  return ((Fl_Menu_Button*)o)->value()+1;}
730 inline const char* fl_get_menu_item_text(Fl_Widget* o, int i) {
731  return ((Fl_Menu_Button*)o)->text(i);}
732 inline int fl_get_menu_maxitems(Fl_Widget* o) {
733  return ((Fl_Menu_Button*)o)->size();}
734 inline int fl_get_menu_item_mode(Fl_Widget* o, int i) {
735  return ((Fl_Menu_Button*)o)->mode(i);}
736 inline const char* fl_get_menu_text(Fl_Widget* o) {
737  return ((Fl_Menu_Button*)o)->text();}
738 
739 #include "Fl_Positioner.H"
740 #define FL_NORMAL_POSITIONER 0
741 forms_constructor(Fl_Positioner, fl_add_positioner)
742 inline void fl_set_positioner_xvalue(Fl_Widget* o, double v) {
743  ((Fl_Positioner*)o)->xvalue(v);}
744 inline double fl_get_positioner_xvalue(Fl_Widget* o) {
745  return ((Fl_Positioner*)o)->xvalue();}
746 inline void fl_set_positioner_xbounds(Fl_Widget* o, double a, double b) {
747  ((Fl_Positioner*)o)->xbounds(a,b);}
748 inline void fl_get_positioner_xbounds(Fl_Widget* o, float* a, float* b) {
749  *a = float(((Fl_Positioner*)o)->xminimum());
750  *b = float(((Fl_Positioner*)o)->xmaximum());
751 }
752 inline void fl_set_positioner_yvalue(Fl_Widget* o, double v) {
753  ((Fl_Positioner*)o)->yvalue(v);}
754 inline double fl_get_positioner_yvalue(Fl_Widget* o) {
755  return ((Fl_Positioner*)o)->yvalue();}
756 inline void fl_set_positioner_ybounds(Fl_Widget* o, double a, double b) {
757  ((Fl_Positioner*)o)->ybounds(a,b);}
758 inline void fl_get_positioner_ybounds(Fl_Widget* o, float* a, float* b) {
759  *a = float(((Fl_Positioner*)o)->yminimum());
760  *b = float(((Fl_Positioner*)o)->ymaximum());
761 }
762 inline void fl_set_positioner_xstep(Fl_Widget* o, double v) {
763  ((Fl_Positioner*)o)->xstep(v);}
764 inline void fl_set_positioner_ystep(Fl_Widget* o, double v) {
765  ((Fl_Positioner*)o)->ystep(v);}
766 inline void fl_set_positioner_return(Fl_Widget* o, int v) {
767  ((Fl_Positioner*)o)->when((Fl_When)(v|FL_WHEN_RELEASE));}
768 
769 #include "Fl_Slider.H"
770 
771 #define FL_HOR_BROWSER_SLIDER FL_HOR_SLIDER
772 #define FL_VERT_BROWSER_SLIDER FL_VERT_SLIDER
773 
774 forms_constructort(Fl_Slider, fl_add_slider)
775 #define FL_SLIDER_COL1 FL_GRAY
776 inline void fl_set_slider_value(Fl_Widget* o, double v) {
777  ((Fl_Slider*)o)->value(v);}
778 inline double fl_get_slider_value(Fl_Widget* o) {
779  return ((Fl_Slider*)o)->value();}
780 inline void fl_set_slider_bounds(Fl_Widget* o, double a, double b) {
781  ((Fl_Slider*)o)->bounds(a, b);}
782 inline void fl_get_slider_bounds(Fl_Widget* o, float* a, float* b) {
783  *a = float(((Fl_Slider*)o)->minimum());
784  *b = float(((Fl_Slider*)o)->maximum());
785 }
786 inline void fl_set_slider_return(Fl_Widget* o, int i) {
787  ((Fl_Slider*)o)->when((Fl_When)(i|FL_WHEN_RELEASE));}
788 inline void fl_set_slider_step(Fl_Widget* o, double v) {
789  ((Fl_Slider*)o)->step(v);}
790 // inline void fl_set_slider_increment(Fl_Widget* o, double v, double);
791 inline void fl_set_slider_size(Fl_Widget* o, double v) {
792  ((Fl_Slider*)o)->slider_size(v);}
793 
794 #include "Fl_Value_Slider.H"
795 forms_constructor(Fl_Value_Slider, fl_add_valslider)
796 
797 inline void fl_set_slider_precision(Fl_Widget* o, int i) {
798  ((Fl_Value_Slider*)o)->precision(i);}
799 // filter function!
800 
801 // The forms text object was the same as an Fl_Box except it inverted the
802 // meaning of FL_ALIGN_INSIDE. Implementation in forms.cxx
803 class FL_EXPORT Fl_FormsText : public Fl_Widget {
804 protected:
805  void draw();
806 public:
807  Fl_FormsText(Fl_Boxtype b, int X, int Y, int W, int H, const char* l=0)
808  : Fl_Widget(X,Y,W,H,l) {box(b); align(FL_ALIGN_LEFT);}
809 };
810 #define FL_NORMAL_TEXT FL_NO_BOX
811 forms_constructorb(Fl_FormsText, fl_add_text)
812 
813 #include "Fl_Timer.H"
814 forms_constructort(Fl_Timer, fl_add_timer)
815 inline void fl_set_timer(Fl_Widget* o, double v) {((Fl_Timer*)o)->value(v);}
816 inline double fl_get_timer(Fl_Widget* o) {return ((Fl_Timer*)o)->value();}
817 inline void fl_suspend_timer(Fl_Widget* o) {((Fl_Timer*)o)->suspended(1);}
818 inline void fl_resume_timer(Fl_Widget* o) {((Fl_Timer*)o)->suspended(0);}
819 inline void fl_set_timer_countup(Fl_Widget* o,char d) {((Fl_Timer*)o)->direction(d);}
820 void FL_EXPORT fl_gettime(long* sec, long* usec);
821 
822 // Fl_XYPlot nyi
823 
824 
825 // stuff from DDForms:
826 
827 inline int fl_double_click() {return Fl::event_clicks();}
828 inline void fl_draw() {Fl::flush();}
829 
830 #endif /* define __FORMS_H__ */
Fl_Widget is the base class for all widgets in FLTK.
Definition: Fl_Widget.H:85
static void add_fd(int fd, int when, Fl_FD_Handler cb, void *=0)
Adds file descriptor fd to listen to.
Definition: Fl.cxx:2037
Controls a single floating point value with button (or keyboard) arrows.
Definition: Fl_Counter.H:46
Do the callback when the button or key is released and the value changes.
Definition: Enumerations.H:425
void deactivate()
Deactivates the widget.
Definition: Fl_Widget.cxx:221
This widget produces an actual window.
Definition: Fl_Window.H:53
Fl_Cursor
The following constants define the mouse cursors that are available in FLTK.
Definition: Enumerations.H:1156
virtual void hide()
Makes a widget invisible.
Definition: Fl_Widget.cxx:251
void h(int v)
Internal use only.
Definition: Fl_Widget.H:130
The Fl_Pixmap class supports caching and drawing of colormap (pixmap) images, including transparency...
Definition: Fl_Pixmap.H:36
const char * label() const
Gets the current label text.
Definition: Fl_Widget.H:408
static Fl_Widget * focus()
Gets the current Fl::focus() widget.
Definition: Fl.H:901
This widget provides a round analog clock display.
Definition: Fl_Clock.H:152
Definition: forms.H:803
void redraw()
Schedules the drawing of the widget.
Definition: Fl.cxx:1480
The Fl_Dial widget provides a circular dial to control a single floating point value.
Definition: Fl_Dial.H:45
Fl_Boxtype box() const
Gets the box type of the widget.
Definition: Fl_Widget.H:350
File names and URI utility functions.
Fl static class.
Fl_Callback_p callback() const
Gets the current callback function for the widget.
Definition: Fl_Widget.H:555
The Fl_Value_Slider widget is a Fl_Slider widget with a box displaying the current value...
Definition: Fl_Value_Slider.H:31
FL_EXPORT unsigned int fl_old_shortcut(const char *s)
Emulation of XForms named shortcuts.
Definition: fl_shortcut.cxx:273
This is a button that when pushed pops up a menu (or hierarchy of menus) defined by an array of Fl_Me...
Definition: Fl_Menu_Button.H:56
void y(int v)
Internal use only.
Definition: Fl_Widget.H:126
virtual void draw()=0
Draws the widget.
Fl_Chart displays simple charts.
Definition: Fl_Chart.H:70
void remove(int index)
Removes the widget at index from the group but does not delete it.
Definition: Fl_Group.cxx:509
void fl_color(Fl_Color c)
Sets the color for all subsequent drawing operations.
Definition: fl_draw.H:49
Fl_When
These constants determine when a callback is performed.
Definition: Enumerations.H:421
void size(int W, int H)
Changes the size of the widget.
Definition: Fl_Widget.H:328
virtual void resize(int X, int Y, int W, int H)
Changes the size and position of the window.
Definition: Fl_Window.cxx:545
Fl_Group * parent() const
Returns a pointer to the parent widget.
Definition: Fl_Widget.H:241
static void flush()
Causes all the windows that need it to be redrawn and graphics forced out through the pipes...
Definition: Fl.cxx:700
FL_EXPORT int fl_filename_match(const char *name, const char *pattern)
Checks if a string s matches a pattern p.
Definition: filename_match.cxx:42
int fl_choice(const char *fmt, const char *b0, const char *b1, const char *b2,...)
Shows a dialog displaying the printf style fmt message.
Definition: fl_ask.cxx:438
FL_EXPORT void fl_font(Fl_Font face, Fl_Fontsize fsize)
Sets the current font, which is then used in various drawing routines.
Definition: fl_draw.cxx:431
const char * label() const
See void Fl_Window::label(const char*)
Definition: Fl_Window.H:328
This widget simply draws its box, and possibly its label.
Definition: Fl_Box.H:32
void cursor(Fl_Cursor)
Changes the cursor for this window.
Definition: fl_cursor.cxx:110
uchar type() const
Gets the widget type.
Definition: Fl_Widget.H:261
FL_EXPORT const char * fl_yes
string pointer used in common dialogs, you can change it to another language
Definition: fl_ask.cxx:284
static void add_timeout(double t, Fl_Timeout_Handler, void *=0)
Adds a one-shot timeout callback.
Definition: Fl.cxx:315
Fl_Boxtype
FLTK standard box types.
Definition: Enumerations.H:598
This is the FLTK text input widget.
Definition: Fl_Input.H:220
virtual void resize(int x, int y, int w, int h)
Changes the size or position of the widget.
Definition: Fl_Widget.cxx:140
static void remove_fd(int, int when)
Removes a file descriptor handler.
Definition: Fl.cxx:2050
void hotspot(int x, int y, int offscreen=0)
Positions the window so that the mouse is pointing at the given position, or at the center of the giv...
Definition: Fl_Window_hotspot.cxx:21
virtual void show()
Puts the window on the screen.
Definition: Fl_Window.cxx:533
static int event_button()
Gets which particular mouse button caused the current event.
Definition: Fl.H:747
void insert(Fl_Widget &, int i)
The widget is removed from its current group (if any) and then inserted into this group...
Definition: Fl_Group.cxx:464
The Fl_Group class is the FLTK container widget.
Definition: Fl_Group.H:42
Fl_Fontsize labelsize() const
Gets the font size in pixels.
Definition: Fl_Widget.H:490
void add(Fl_Widget &)
The widget is removed from its current group (if any) and then added to the end of this group...
Definition: Fl_Group.cxx:497
The Fl_Slider widget contains a sliding knob inside a box.
Definition: Fl_Slider.H:59
Buttons generate callbacks when they are clicked by the user.
Definition: Fl_Round_Button.H:34
void activate()
Activates the widget.
Definition: Fl_Widget.cxx:209
const char * fl_input(const char *fmt, const char *defstr,...)
Shows an input dialog displaying the fmt message.
Definition: fl_ask.cxx:484
This subclass displays the "on" state by turning on a light, rather than drawing pushed in...
Definition: Fl_Light_Button.H:36
Fl_Window widget .
void forms_end()
This is for forms compatibility only.
Definition: forms_compatibility.cxx:27
FL_EXPORT const char * fl_no
string pointer used in common dialogs, you can change it to another language
Definition: fl_ask.cxx:283
The fl_show_colormap() function hides the implementation classes used to provide the popup window and...
void begin()
Sets the current group so you can build the widget tree by just constructing the widgets.
Definition: Fl_Group.cxx:66
virtual void show()
Makes a widget visible.
Definition: Fl_Widget.cxx:239
Fl_Color labelcolor() const
Gets the label color.
Definition: Fl_Widget.H:460
FL_EXPORT void fl_draw_box(Fl_Boxtype, int x, int y, int w, int h, Fl_Color)
Draws a box using given type, position, size and color.
Definition: fl_boxtype.cxx:437
Emulation of the Forms "free" widget.
Definition: Fl_Free.H:55
static int event_clicks()
Returns non zero if we had a double click event.
Definition: Fl.H:714
void resizable(Fl_Widget &o)
Sets the group&#39;s resizable widget.
Definition: Fl_Group.H:124
Fl_Align align() const
Gets the label alignment.
Definition: Fl_Widget.H:335
A button with a "checkmark" to show its status.
Definition: Fl_Check_Button.H:28
This class is provided for Forms compatibility.
Definition: Fl_Positioner.H:35
Fl_Window * window() const
Returns a pointer to the nearest parent window up the widget hierarchy.
Definition: Fl_Window.cxx:107
int Fl_Fontsize
Size of a font in pixels.
Definition: Enumerations.H:1014
FL_EXPORT void fl_draw(const char *str, int x, int y)
Draws a nul-terminated UTF-8 string starting at the given x, y location.
Definition: fl_font.cxx:31
A button that is used to pop up a menu.
Definition: Fl_Choice.H:103
utility header to pull drawing functions together
Forms compatibility Bitmap Image Widget.
Definition: Fl_FormsBitmap.H:28
static void set_color(Fl_Color, uchar, uchar, uchar)
Sets an entry in the fl_color index table.
Definition: fl_color.cxx:62
unsigned int Fl_Color
An FLTK color value; see also Colors.
Definition: Enumerations.H:1042
Fl_Labeltype
The labeltype() method sets the type of the label.
Definition: Enumerations.H:757
void do_callback()
Calls the widget callback function with default arguments.
Definition: Fl_Widget.H:881
int Fl_Font
A font number is an index into the internal font table.
Definition: Enumerations.H:985
static void set_font(Fl_Font, const char *)
Changes a face.
Definition: fl_set_font.cxx:35
Fl_Font labelfont() const
Gets the font to use.
Definition: Fl_Widget.H:475
Fl_Labeltype labeltype() const
Gets the label type.
Definition: Fl_Widget.H:444
unsigned Fl_Align
FLTK type for alignment control.
Definition: Enumerations.H:908
The Fl_Browser widget displays a scrolling list of text lines, and manages all the storage for the te...
Definition: Fl_Browser.H:86
The Fl_Bitmap class supports caching and drawing of mono-color (bitmap) images.
Definition: Fl_Bitmap.H:32
Forms pixmap drawing routines.
Definition: Fl_FormsPixmap.H:29
Fl_Color color() const
Gets the background color of the widget.
Definition: Fl_Widget.H:365
Fl_When when() const
Returns the conditions under which the callback is called.
Definition: Fl_Widget.H:628
API for common dialogs.
void position(int X, int Y)
Repositions the window or widget.
Definition: Fl_Widget.H:319
const Fl_Align FL_ALIGN_LEFT
Align the label at the left of the widget.
Definition: Enumerations.H:923
opaque FL_SOCKET
socket or file descriptor
Definition: platform_types.h:38
Buttons generate callbacks when they are clicked by the user.
Definition: Fl_Button.H:77
static void set_idle(Fl_Old_Idle_Handler cb)
Sets an idle callback.
Definition: Fl.H:1227
void w(int v)
Internal use only.
Definition: Fl_Widget.H:128
static Fl_Group * current()
Returns the currently active group.
Definition: Fl_Group.cxx:81
unsigned char uchar
unsigned char
Definition: fl_types.h:28
unsigned int visible() const
Returns whether a widget is visible.
Definition: Fl_Widget.H:667
void x(int v)
Internal use only.
Definition: Fl_Widget.H:124
This is provided only to emulate the Forms Timer widget.
Definition: Fl_Timer.H:39
virtual void hide()
Removes the window from the screen.
Definition: Fl_Window.cxx:549