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