1 //
2 // "$Id$"
3 //
4 // Widget panel for the Fast Light Tool Kit (FLTK).
5 //
6 // Copyright 1998-2021 by Bill Spitzak and others.
7 //
8 // This library is free software. Distribution and use rights are outlined in
9 // the file "COPYING" which should have been included with this file. If this
10 // file is missing or damaged, see the license at:
11 //
12 // http://www.fltk.org/COPYING.php
13 //
14 // Please report all bugs and problems on the following page:
15 //
16 // http://www.fltk.org/str.php
17 //
18
19 // generated by Fast Light User Interface Designer (fluid) version 1.0308
20
21 #include "widget_panel.h"
22 extern void comment_cb(Fl_Text_Editor*, void*);
23
cb_(Fl_Tabs * o,void * v)24 static void cb_(Fl_Tabs* o, void* v) {
25 propagate_load((Fl_Group *)o,v);
26 }
27
28 Fl_Menu_Item menu_[] = {
29 {" Image Alignment ", 0, 0, (void*)(0xFFFFFFFF), 1, (uchar)FL_NORMAL_LABEL, 2, 11, 0},
30 {"image over text", 0, 0, (void*)((fl_intptr_t)FL_ALIGN_IMAGE_OVER_TEXT), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
31 {"text over image", 0, 0, (void*)((fl_intptr_t)FL_ALIGN_TEXT_OVER_IMAGE), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
32 {"text next to image", 0, 0, (void*)((fl_intptr_t)FL_ALIGN_TEXT_NEXT_TO_IMAGE), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
33 {"image next to text", 0, 0, (void*)((fl_intptr_t)FL_ALIGN_IMAGE_NEXT_TO_TEXT), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
34 {"image is backdrop", 0, 0, (void*)((fl_intptr_t)FL_ALIGN_IMAGE_BACKDROP), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
35 {0,0,0,0,0,0,0,0,0}
36 };
37
38 Fl_Menu_Item menu_1[] = {
39 {" Inside && Outside ", 0, 0, (void*)(0xFFFFFFFF), 1, (uchar)FL_NORMAL_LABEL, 2, 11, 0},
40 {"top left", 0, 0, (void*)((fl_intptr_t)FL_ALIGN_TOP_LEFT), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
41 {"top", 0, 0, (void*)((fl_intptr_t)FL_ALIGN_TOP), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
42 {"top right", 0, 0, (void*)((fl_intptr_t)FL_ALIGN_TOP_RIGHT), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
43 {"left", 0, 0, (void*)((fl_intptr_t)FL_ALIGN_LEFT), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
44 {"center", 0, 0, (void*)((fl_intptr_t)FL_ALIGN_CENTER), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
45 {"right", 0, 0, (void*)((fl_intptr_t)FL_ALIGN_RIGHT), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
46 {"bottom left", 0, 0, (void*)((fl_intptr_t)FL_ALIGN_BOTTOM_LEFT), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
47 {"bottom", 0, 0, (void*)((fl_intptr_t)FL_ALIGN_BOTTOM), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
48 {"bottom right", 0, 0, (void*)((fl_intptr_t)FL_ALIGN_BOTTOM_RIGHT), 128, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
49 {" Outside Alignment ", 0, 0, (void*)(0xFFFFFFFF), 1, (uchar)FL_NORMAL_LABEL, 2, 11, 0},
50 {"left top", 0, 0, (void*)((fl_intptr_t)FL_ALIGN_LEFT_TOP), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
51 {"right top", 0, 0, (void*)((fl_intptr_t)FL_ALIGN_RIGHT_TOP), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
52 {"left bottom", 0, 0, (void*)((fl_intptr_t)FL_ALIGN_LEFT_BOTTOM), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
53 {"right bottom", 0, 0, (void*)((fl_intptr_t)FL_ALIGN_RIGHT_BOTTOM), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
54 {0,0,0,0,0,0,0,0,0}
55 };
56
57 Fl_Value_Input *widget_x_input=(Fl_Value_Input *)0;
58
59 Fl_Value_Input *widget_y_input=(Fl_Value_Input *)0;
60
61 Fl_Value_Input *widget_w_input=(Fl_Value_Input *)0;
62
63 Fl_Value_Input *widget_h_input=(Fl_Value_Input *)0;
64
65 Fl_Menu_Item menu_2[] = {
66 {"private", 0, 0, (void*)(0), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
67 {"public", 0, 0, (void*)(1), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
68 {"protected", 0, 0, (void*)(2), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
69 {0,0,0,0,0,0,0,0,0}
70 };
71
72 Fl_Menu_Item menu_3[] = {
73 {"local", 0, 0, (void*)(0), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
74 {"global", 0, 0, (void*)(1), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
75 {0,0,0,0,0,0,0,0,0}
76 };
77
78 Fl_Input *v_input[4]={(Fl_Input *)0};
79
cb_1(Fl_Tile *,void * v)80 static void cb_1(Fl_Tile*, void* v) {
81 wComment->do_callback(wComment, v);
82 wCallback->do_callback(wCallback, v);
83 }
84
85 Fl_Text_Editor *wComment=(Fl_Text_Editor *)0;
86
87 CodeEditor *wCallback=(CodeEditor *)0;
88
89 Fl_Button *wLiveMode=(Fl_Button *)0;
90
91 /**
92 Create a panel that can be used with all known widgets
93 */
make_widget_panel()94 Fl_Double_Window* make_widget_panel() {
95 Fl_Double_Window* w;
96 { // Use a Double Window to avoid flickering.
97 Fl_Double_Window* o = new Fl_Double_Window(420, 400);
98 w = o; if (w) {/* empty */}
99 o->labelsize(11);
100 o->align(Fl_Align(FL_ALIGN_CLIP|FL_ALIGN_INSIDE));
101 o->hotspot(o);
102 { Fl_Tabs* o = new Fl_Tabs(10, 10, 400, 350);
103 o->selection_color((Fl_Color)12);
104 o->labelsize(11);
105 o->labelcolor(FL_BACKGROUND2_COLOR);
106 o->callback((Fl_Callback*)cb_);
107 o->when(FL_WHEN_NEVER);
108 { Fl_Group* o = new Fl_Group(10, 30, 400, 330, "GUI");
109 o->labelsize(11);
110 o->callback((Fl_Callback*)propagate_load);
111 o->when(FL_WHEN_NEVER);
112 { Fl_Group* o = new Fl_Group(95, 40, 309, 20, "Label:");
113 o->labelfont(1);
114 o->labelsize(11);
115 o->callback((Fl_Callback*)propagate_load);
116 o->align(Fl_Align(FL_ALIGN_LEFT));
117 { Fl_Input* o = new Fl_Input(95, 40, 190, 20);
118 o->tooltip("The label text for the widget.\nUse Ctrl-J for newlines.");
119 o->labelfont(1);
120 o->labelsize(11);
121 o->textsize(11);
122 o->callback((Fl_Callback*)label_cb);
123 o->when(FL_WHEN_CHANGED);
124 Fl_Group::current()->resizable(o);
125 } // Fl_Input* o
126 { Fl_Choice* o = new Fl_Choice(284, 40, 120, 20);
127 o->tooltip("The label style for the widget.");
128 o->box(FL_THIN_UP_BOX);
129 o->down_box(FL_BORDER_BOX);
130 o->labelfont(1);
131 o->labelsize(11);
132 o->textsize(11);
133 o->callback((Fl_Callback*)labeltype_cb);
134 o->menu(labeltypemenu);
135 } // Fl_Choice* o
136 o->end();
137 } // Fl_Group* o
138 { Fl_Group* o = new Fl_Group(95, 65, 309, 20, "Image:");
139 o->labelfont(1);
140 o->labelsize(11);
141 o->callback((Fl_Callback*)propagate_load);
142 o->align(Fl_Align(FL_ALIGN_LEFT));
143 { Fl_Input* o = new Fl_Input(95, 65, 240, 20);
144 o->tooltip("The active image for the widget.");
145 o->labelfont(1);
146 o->labelsize(11);
147 o->textsize(11);
148 o->callback((Fl_Callback*)image_cb);
149 Fl_Group::current()->resizable(o);
150 } // Fl_Input* o
151 { Fl_Button* o = new Fl_Button(334, 65, 70, 20, "Browse...");
152 o->tooltip("Click to choose the active image.");
153 o->labelsize(11);
154 o->callback((Fl_Callback*)image_browse_cb);
155 } // Fl_Button* o
156 o->end();
157 } // Fl_Group* o
158 { Fl_Group* o = new Fl_Group(95, 90, 309, 20, "Inactive:");
159 o->labelfont(1);
160 o->labelsize(11);
161 o->callback((Fl_Callback*)propagate_load);
162 o->align(Fl_Align(FL_ALIGN_LEFT));
163 { Fl_Input* o = new Fl_Input(95, 90, 240, 20);
164 o->tooltip("The inactive image for the widget.");
165 o->labelfont(1);
166 o->labelsize(11);
167 o->textsize(11);
168 o->callback((Fl_Callback*)inactive_cb);
169 Fl_Group::current()->resizable(o);
170 } // Fl_Input* o
171 { Fl_Button* o = new Fl_Button(334, 90, 70, 20, "Browse...");
172 o->tooltip("Click to choose the inactive image.");
173 o->labelsize(11);
174 o->callback((Fl_Callback*)inactive_browse_cb);
175 } // Fl_Button* o
176 o->end();
177 } // Fl_Group* o
178 { Fl_Group* o = new Fl_Group(95, 115, 310, 20, "Alignment:");
179 o->labelfont(1);
180 o->labelsize(11);
181 o->callback((Fl_Callback*)propagate_load);
182 o->align(Fl_Align(FL_ALIGN_LEFT));
183 { Fl_Button* o = new Fl_Button(95, 115, 30, 20, "Clip");
184 o->tooltip("Clip the label to the inside of the widget.");
185 o->type(1);
186 o->selection_color(FL_INACTIVE_COLOR);
187 o->labelsize(11);
188 o->callback((Fl_Callback*)align_cb, (void*)((fl_intptr_t)FL_ALIGN_CLIP));
189 o->align(Fl_Align(FL_ALIGN_CENTER|FL_ALIGN_INSIDE));
190 } // Fl_Button* o
191 { Fl_Button* o = new Fl_Button(130, 115, 38, 20, "Wrap");
192 o->tooltip("Wrap the label text.");
193 o->type(1);
194 o->selection_color(FL_INACTIVE_COLOR);
195 o->labelsize(11);
196 o->callback((Fl_Callback*)align_cb, (void*)((fl_intptr_t)FL_ALIGN_WRAP));
197 } // Fl_Button* o
198 { Fl_Button* o = new Fl_Button(278, 115, 20, 20, "@-1<-");
199 o->tooltip("Left-align the label.");
200 o->type(1);
201 o->selection_color(FL_INACTIVE_COLOR);
202 o->labelsize(11);
203 o->labelcolor(FL_INACTIVE_COLOR);
204 o->callback((Fl_Callback*)align_cb, (void*)((fl_intptr_t)FL_ALIGN_LEFT));
205 o->hide();
206 } // Fl_Button* o
207 { Fl_Button* o = new Fl_Button(303, 115, 20, 20, "@-1->");
208 o->tooltip("Right-align the label.");
209 o->type(1);
210 o->selection_color(FL_INACTIVE_COLOR);
211 o->labelsize(11);
212 o->labelcolor(FL_INACTIVE_COLOR);
213 o->callback((Fl_Callback*)align_cb, (void*)((fl_intptr_t)FL_ALIGN_RIGHT));
214 o->hide();
215 } // Fl_Button* o
216 { Fl_Button* o = new Fl_Button(328, 115, 20, 20, "@-18");
217 o->tooltip("Top-align the label.");
218 o->type(1);
219 o->selection_color(FL_INACTIVE_COLOR);
220 o->labelsize(11);
221 o->labelcolor(FL_INACTIVE_COLOR);
222 o->callback((Fl_Callback*)align_cb, (void*)((fl_intptr_t)FL_ALIGN_TOP));
223 o->hide();
224 } // Fl_Button* o
225 { Fl_Button* o = new Fl_Button(353, 115, 20, 20, "@-12");
226 o->tooltip("Bottom-align the label.");
227 o->type(1);
228 o->selection_color(FL_INACTIVE_COLOR);
229 o->labelsize(11);
230 o->labelcolor(FL_INACTIVE_COLOR);
231 o->callback((Fl_Callback*)align_cb, (void*)((fl_intptr_t)FL_ALIGN_BOTTOM));
232 o->hide();
233 } // Fl_Button* o
234 { Fl_Choice* o = new Fl_Choice(172, 115, 110, 20);
235 o->down_box(FL_BORDER_BOX);
236 o->labelsize(11);
237 o->textsize(11);
238 o->callback((Fl_Callback*)align_text_image_cb);
239 o->menu(menu_);
240 } // Fl_Choice* o
241 { Fl_Choice* o = new Fl_Choice(288, 115, 85, 20);
242 o->down_box(FL_BORDER_BOX);
243 o->labelsize(11);
244 o->textsize(11);
245 o->callback((Fl_Callback*)align_position_cb);
246 o->menu(menu_1);
247 } // Fl_Choice* o
248 { Fl_Button* o = new Fl_Button(378, 115, 20, 20, "@-3square");
249 o->tooltip("Show the label inside the widget.");
250 o->type(1);
251 o->selection_color(FL_INACTIVE_COLOR);
252 o->labelsize(11);
253 o->labelcolor(FL_INACTIVE_COLOR);
254 o->callback((Fl_Callback*)align_cb, (void*)((fl_intptr_t)FL_ALIGN_INSIDE));
255 } // Fl_Button* o
256 { Fl_Box* o = new Fl_Box(404, 115, 0, 20);
257 o->labelsize(11);
258 Fl_Group::current()->resizable(o);
259 } // Fl_Box* o
260 o->end();
261 } // Fl_Group* o
262 { Fl_Group* o = new Fl_Group(95, 150, 314, 20, "Position:");
263 o->labelfont(1);
264 o->labelsize(11);
265 o->callback((Fl_Callback*)propagate_load);
266 o->align(Fl_Align(FL_ALIGN_LEFT));
267 { widget_x_input = new Fl_Value_Input(95, 150, 55, 20, "X:");
268 widget_x_input->tooltip("The X position of the widget.");
269 widget_x_input->labelsize(11);
270 widget_x_input->maximum(2048);
271 widget_x_input->step(1);
272 widget_x_input->textsize(11);
273 widget_x_input->callback((Fl_Callback*)x_cb);
274 widget_x_input->align(Fl_Align(FL_ALIGN_TOP_LEFT));
275 } // Fl_Value_Input* widget_x_input
276 { widget_y_input = new Fl_Value_Input(155, 150, 55, 20, "Y:");
277 widget_y_input->tooltip("The Y position of the widget.");
278 widget_y_input->labelsize(11);
279 widget_y_input->maximum(2048);
280 widget_y_input->step(1);
281 widget_y_input->textsize(11);
282 widget_y_input->callback((Fl_Callback*)y_cb);
283 widget_y_input->align(Fl_Align(FL_ALIGN_TOP_LEFT));
284 } // Fl_Value_Input* widget_y_input
285 { widget_w_input = new Fl_Value_Input(215, 150, 55, 20, "Width:");
286 widget_w_input->tooltip("The width of the widget.");
287 widget_w_input->labelsize(11);
288 widget_w_input->maximum(2048);
289 widget_w_input->step(1);
290 widget_w_input->textsize(11);
291 widget_w_input->callback((Fl_Callback*)w_cb);
292 widget_w_input->align(Fl_Align(FL_ALIGN_TOP_LEFT));
293 } // Fl_Value_Input* widget_w_input
294 { widget_h_input = new Fl_Value_Input(275, 150, 55, 20, "Height:");
295 widget_h_input->tooltip("The height of the widget.");
296 widget_h_input->labelsize(11);
297 widget_h_input->maximum(2048);
298 widget_h_input->step(1);
299 widget_h_input->textsize(11);
300 widget_h_input->callback((Fl_Callback*)h_cb);
301 widget_h_input->align(Fl_Align(FL_ALIGN_TOP_LEFT));
302 } // Fl_Value_Input* widget_h_input
303 { Fl_Light_Button* o = new Fl_Light_Button(335, 150, 65, 20, "Relative");
304 o->tooltip("If set, widgets inside a widget class of type Fl_Group are repositioned relat\
305 ive to the origin at construction time");
306 o->labelsize(11);
307 o->callback((Fl_Callback*)wc_relative_cb);
308 } // Fl_Light_Button* o
309 { Fl_Box* o = new Fl_Box(398, 150, 1, 20);
310 Fl_Group::current()->resizable(o);
311 } // Fl_Box* o
312 o->end();
313 } // Fl_Group* o
314 { Fl_Group* o = new Fl_Group(95, 185, 300, 20, "Values:");
315 o->labelfont(1);
316 o->labelsize(11);
317 o->callback((Fl_Callback*)propagate_load);
318 o->align(Fl_Align(FL_ALIGN_LEFT));
319 { Fl_Value_Input* o = new Fl_Value_Input(95, 185, 55, 20, "Size:");
320 o->tooltip("The size of the slider.");
321 o->labelsize(11);
322 o->step(0.010101);
323 o->textsize(11);
324 o->callback((Fl_Callback*)slider_size_cb);
325 o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
326 } // Fl_Value_Input* o
327 { Fl_Value_Input* o = new Fl_Value_Input(155, 185, 55, 20, "Minimum:");
328 o->tooltip("The minimum value of the widget.");
329 o->labelsize(11);
330 o->textsize(11);
331 o->callback((Fl_Callback*)min_cb);
332 o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
333 } // Fl_Value_Input* o
334 { Fl_Value_Input* o = new Fl_Value_Input(215, 185, 55, 20, "Maximum:");
335 o->tooltip("The maximum value of the widget.");
336 o->labelsize(11);
337 o->value(1);
338 o->textsize(11);
339 o->callback((Fl_Callback*)max_cb);
340 o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
341 } // Fl_Value_Input* o
342 { Fl_Value_Input* o = new Fl_Value_Input(275, 185, 55, 20, "Step:");
343 o->tooltip("The resolution of the widget value.");
344 o->labelsize(11);
345 o->textsize(11);
346 o->callback((Fl_Callback*)step_cb);
347 o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
348 } // Fl_Value_Input* o
349 { Fl_Value_Input* o = new Fl_Value_Input(335, 185, 55, 20, "Value:");
350 o->tooltip("The current widget value.");
351 o->labelsize(11);
352 o->textsize(11);
353 o->callback((Fl_Callback*)value_cb);
354 o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
355 } // Fl_Value_Input* o
356 { Fl_Box* o = new Fl_Box(395, 185, 0, 20);
357 Fl_Group::current()->resizable(o);
358 } // Fl_Box* o
359 o->end();
360 } // Fl_Group* o
361 { Fl_Group* o = new Fl_Group(95, 185, 300, 20, "Size Range:");
362 o->labelfont(1);
363 o->labelsize(11);
364 o->callback((Fl_Callback*)propagate_load);
365 o->align(Fl_Align(FL_ALIGN_LEFT));
366 o->hide();
367 { Fl_Value_Input* o = new Fl_Value_Input(95, 185, 55, 20, "Minimum Size:");
368 o->tooltip("The size of the slider.");
369 o->labelsize(11);
370 o->maximum(2048);
371 o->step(1);
372 o->textsize(11);
373 o->callback((Fl_Callback*)min_w_cb);
374 o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
375 } // Fl_Value_Input* o
376 { Fl_Value_Input* o = new Fl_Value_Input(155, 185, 55, 20);
377 o->tooltip("The minimum value of the widget.");
378 o->labelsize(11);
379 o->maximum(2048);
380 o->step(1);
381 o->textsize(11);
382 o->callback((Fl_Callback*)min_h_cb);
383 o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
384 } // Fl_Value_Input* o
385 { Fl_Button* o = new Fl_Button(215, 185, 25, 20, "set");
386 o->labelsize(11);
387 o->callback((Fl_Callback*)set_min_size_cb);
388 } // Fl_Button* o
389 { Fl_Value_Input* o = new Fl_Value_Input(245, 185, 55, 20, "Maximum Size:");
390 o->tooltip("The maximum value of the widget.");
391 o->labelsize(11);
392 o->maximum(2048);
393 o->step(1);
394 o->textsize(11);
395 o->callback((Fl_Callback*)max_w_cb);
396 o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
397 } // Fl_Value_Input* o
398 { Fl_Value_Input* o = new Fl_Value_Input(305, 185, 55, 20);
399 o->tooltip("The resolution of the widget value.");
400 o->labelsize(11);
401 o->maximum(2048);
402 o->step(1);
403 o->textsize(11);
404 o->callback((Fl_Callback*)max_h_cb);
405 o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
406 } // Fl_Value_Input* o
407 { Fl_Button* o = new Fl_Button(365, 185, 25, 20, "set");
408 o->labelsize(11);
409 o->callback((Fl_Callback*)set_max_size_cb);
410 } // Fl_Button* o
411 { Fl_Box* o = new Fl_Box(395, 185, 0, 20);
412 Fl_Group::current()->resizable(o);
413 } // Fl_Box* o
414 o->end();
415 } // Fl_Group* o
416 { // This is a special button that grabs keystrokes directly
417 Shortcut_Button* o = new Shortcut_Button(95, 210, 310, 20, "Shortcut:");
418 o->tooltip("The shortcut key for the widget.");
419 o->box(FL_DOWN_BOX);
420 o->color(FL_BACKGROUND2_COLOR);
421 o->selection_color(FL_BACKGROUND2_COLOR);
422 o->labeltype(FL_NORMAL_LABEL);
423 o->labelfont(1);
424 o->labelsize(11);
425 o->labelcolor(FL_FOREGROUND_COLOR);
426 o->callback((Fl_Callback*)shortcut_in_cb);
427 o->align(Fl_Align(FL_ALIGN_LEFT));
428 o->when(FL_WHEN_RELEASE);
429 } // Shortcut_Button* o
430 { Fl_Group* o = new Fl_Group(95, 235, 300, 20, "X Class:");
431 o->labelfont(1);
432 o->labelsize(11);
433 o->callback((Fl_Callback*)propagate_load);
434 o->align(Fl_Align(FL_ALIGN_LEFT));
435 { Fl_Input* o = new Fl_Input(95, 235, 95, 20, ":");
436 o->tooltip("The X resource class.");
437 o->labelfont(1);
438 o->labelsize(11);
439 o->textsize(11);
440 o->callback((Fl_Callback*)xclass_cb);
441 Fl_Group::current()->resizable(o);
442 } // Fl_Input* o
443 { Fl_Light_Button* o = new Fl_Light_Button(195, 235, 60, 20, "Border");
444 o->tooltip("Add a border around the window.");
445 o->selection_color((Fl_Color)1);
446 o->labelsize(11);
447 o->callback((Fl_Callback*)border_cb);
448 } // Fl_Light_Button* o
449 { Fl_Light_Button* o = new Fl_Light_Button(260, 235, 55, 20, "Modal");
450 o->tooltip("Make the window modal.");
451 o->selection_color((Fl_Color)1);
452 o->labelsize(11);
453 o->callback((Fl_Callback*)modal_cb);
454 } // Fl_Light_Button* o
455 { Fl_Light_Button* o = new Fl_Light_Button(320, 235, 75, 20, "Nonmodal");
456 o->tooltip("Make the window non-modal.");
457 o->selection_color((Fl_Color)1);
458 o->labelsize(11);
459 o->callback((Fl_Callback*)non_modal_cb);
460 o->align(Fl_Align(132|FL_ALIGN_INSIDE));
461 } // Fl_Light_Button* o
462 o->end();
463 } // Fl_Group* o
464 { Fl_Group* o = new Fl_Group(95, 260, 305, 20, "Attributes:");
465 o->labelfont(1);
466 o->labelsize(11);
467 o->callback((Fl_Callback*)propagate_load);
468 o->align(Fl_Align(FL_ALIGN_LEFT));
469 { Fl_Light_Button* o = new Fl_Light_Button(95, 260, 60, 20, "Visible");
470 o->tooltip("Show the widget.");
471 o->selection_color((Fl_Color)1);
472 o->labelsize(11);
473 o->callback((Fl_Callback*)visible_cb);
474 } // Fl_Light_Button* o
475 { Fl_Light_Button* o = new Fl_Light_Button(160, 260, 60, 20, "Active");
476 o->tooltip("Activate the widget.");
477 o->selection_color((Fl_Color)1);
478 o->labelsize(11);
479 o->callback((Fl_Callback*)active_cb);
480 } // Fl_Light_Button* o
481 { Fl_Light_Button* o = new Fl_Light_Button(225, 260, 75, 20, "Resizable");
482 o->tooltip("Make the widget resizable.");
483 o->selection_color((Fl_Color)1);
484 o->labelsize(11);
485 o->callback((Fl_Callback*)resizable_cb);
486 o->when(FL_WHEN_CHANGED);
487 } // Fl_Light_Button* o
488 { Fl_Light_Button* o = new Fl_Light_Button(305, 260, 70, 20, "Hotspot");
489 o->tooltip("Center the window under this widget.");
490 o->selection_color((Fl_Color)1);
491 o->labelsize(11);
492 o->callback((Fl_Callback*)hotspot_cb);
493 o->when(FL_WHEN_CHANGED);
494 } // Fl_Light_Button* o
495 { Fl_Box* o = new Fl_Box(395, 260, 0, 20);
496 o->labelsize(11);
497 Fl_Group::current()->resizable(o);
498 } // Fl_Box* o
499 o->end();
500 } // Fl_Group* o
501 { Fl_Input* o = new Fl_Input(95, 285, 310, 20, "Tooltip:");
502 o->tooltip("The tooltip text for the widget.\nUse Ctrl-J for newlines.");
503 o->labelfont(1);
504 o->labelsize(11);
505 o->textsize(11);
506 o->callback((Fl_Callback*)tooltip_cb);
507 } // Fl_Input* o
508 { Fl_Box* o = new Fl_Box(95, 305, 300, 5);
509 o->labelsize(11);
510 Fl_Group::current()->resizable(o);
511 } // Fl_Box* o
512 o->end();
513 Fl_Group::current()->resizable(o);
514 } // Fl_Group* o
515 { Fl_Group* o = new Fl_Group(10, 30, 400, 330, "Style");
516 o->labelsize(11);
517 o->callback((Fl_Callback*)propagate_load);
518 o->when(FL_WHEN_NEVER);
519 o->hide();
520 { Fl_Group* o = new Fl_Group(95, 40, 309, 20, "Label Font:");
521 o->labelfont(1);
522 o->labelsize(11);
523 o->callback((Fl_Callback*)propagate_load);
524 o->align(Fl_Align(FL_ALIGN_LEFT));
525 { Fl_Choice* o = new Fl_Choice(95, 40, 170, 20);
526 o->tooltip("The style of the label text.");
527 o->box(FL_THIN_UP_BOX);
528 o->down_box(FL_BORDER_BOX);
529 o->labelfont(1);
530 o->labelsize(11);
531 o->textsize(11);
532 o->callback((Fl_Callback*)labelfont_cb);
533 Fl_Group::current()->resizable(o);
534 o->menu(fontmenu);
535 } // Fl_Choice* o
536 { Fl_Value_Input* o = new Fl_Value_Input(264, 40, 50, 20);
537 o->tooltip("The size of the label text.");
538 o->labelsize(11);
539 o->maximum(100);
540 o->step(1);
541 o->value(14);
542 o->textsize(11);
543 o->callback((Fl_Callback*)labelsize_cb);
544 } // Fl_Value_Input* o
545 { Fl_Button* o = new Fl_Button(314, 40, 90, 20, "Label Color");
546 o->tooltip("The color of the label text.");
547 o->labelsize(11);
548 o->callback((Fl_Callback*)labelcolor_cb);
549 } // Fl_Button* o
550 o->end();
551 } // Fl_Group* o
552 { Fl_Group* o = new Fl_Group(95, 65, 309, 20, "Box:");
553 o->labelfont(1);
554 o->labelsize(11);
555 o->callback((Fl_Callback*)propagate_load);
556 o->align(Fl_Align(FL_ALIGN_LEFT));
557 { Fl_Choice* o = new Fl_Choice(95, 65, 219, 20);
558 o->tooltip("The \"up\" box of the widget.");
559 o->box(FL_THIN_UP_BOX);
560 o->down_box(FL_BORDER_BOX);
561 o->labelfont(1);
562 o->labelsize(11);
563 o->textsize(11);
564 o->callback((Fl_Callback*)box_cb);
565 Fl_Group::current()->resizable(o);
566 o->menu(boxmenu);
567 } // Fl_Choice* o
568 { Fl_Button* o = new Fl_Button(314, 65, 90, 20, "Color");
569 o->tooltip("The background color of the widget.");
570 o->labelsize(11);
571 o->callback((Fl_Callback*)color_cb);
572 } // Fl_Button* o
573 o->end();
574 } // Fl_Group* o
575 { Fl_Group* o = new Fl_Group(95, 90, 309, 20, "Down Box:");
576 o->labelfont(1);
577 o->labelsize(11);
578 o->callback((Fl_Callback*)propagate_load);
579 o->align(Fl_Align(FL_ALIGN_LEFT));
580 { Fl_Choice* o = new Fl_Choice(95, 90, 219, 20);
581 o->tooltip("The \"down\" box of the widget.");
582 o->box(FL_THIN_UP_BOX);
583 o->down_box(FL_BORDER_BOX);
584 o->labelfont(1);
585 o->labelsize(11);
586 o->textsize(11);
587 o->callback((Fl_Callback*)down_box_cb);
588 Fl_Group::current()->resizable(o);
589 o->menu(boxmenu);
590 } // Fl_Choice* o
591 { Fl_Button* o = new Fl_Button(314, 90, 90, 20, "Select Color");
592 o->tooltip("The selection color of the widget.");
593 o->labelsize(11);
594 o->callback((Fl_Callback*)color2_cb);
595 } // Fl_Button* o
596 o->end();
597 } // Fl_Group* o
598 { Fl_Group* o = new Fl_Group(95, 115, 309, 20, "Text Font:");
599 o->labelfont(1);
600 o->labelsize(11);
601 o->callback((Fl_Callback*)propagate_load);
602 o->align(Fl_Align(FL_ALIGN_LEFT));
603 { Fl_Choice* o = new Fl_Choice(95, 115, 170, 20);
604 o->tooltip("The value text style.");
605 o->box(FL_DOWN_BOX);
606 o->down_box(FL_BORDER_BOX);
607 o->labelfont(1);
608 o->labelsize(11);
609 o->textsize(11);
610 o->callback((Fl_Callback*)textfont_cb);
611 Fl_Group::current()->resizable(o);
612 o->menu(fontmenu);
613 } // Fl_Choice* o
614 { Fl_Value_Input* o = new Fl_Value_Input(264, 115, 50, 20);
615 o->tooltip("The value text size.");
616 o->labelsize(11);
617 o->maximum(100);
618 o->step(1);
619 o->value(14);
620 o->textsize(11);
621 o->callback((Fl_Callback*)textsize_cb);
622 } // Fl_Value_Input* o
623 { Fl_Button* o = new Fl_Button(314, 115, 90, 20, "Text Color");
624 o->tooltip("The value text color.");
625 o->labelsize(11);
626 o->callback((Fl_Callback*)textcolor_cb);
627 } // Fl_Button* o
628 o->end();
629 } // Fl_Group* o
630 { Fl_Box* o = new Fl_Box(95, 140, 300, 40);
631 o->labelsize(11);
632 Fl_Group::current()->resizable(o);
633 } // Fl_Box* o
634 o->end();
635 } // Fl_Group* o
636 { Fl_Group* o = new Fl_Group(10, 30, 400, 330, "C++");
637 o->labelsize(11);
638 o->callback((Fl_Callback*)propagate_load);
639 o->when(FL_WHEN_NEVER);
640 o->hide();
641 { Fl_Group* o = new Fl_Group(95, 40, 310, 20, "Class:");
642 o->labelfont(1);
643 o->labelsize(11);
644 o->callback((Fl_Callback*)propagate_load);
645 o->align(Fl_Align(FL_ALIGN_LEFT));
646 { Fl_Input* o = new Fl_Input(95, 40, 172, 20);
647 o->tooltip("The widget subclass.");
648 o->labelfont(1);
649 o->labelsize(11);
650 o->textfont(4);
651 o->textsize(11);
652 o->callback((Fl_Callback*)subclass_cb, (void*)(4));
653 Fl_Group::current()->resizable(o);
654 } // Fl_Input* o
655 { Fl_Choice* o = new Fl_Choice(265, 40, 140, 20);
656 o->tooltip("The widget subtype.");
657 o->box(FL_THIN_UP_BOX);
658 o->down_box(FL_BORDER_BOX);
659 o->labelsize(11);
660 o->textsize(11);
661 o->callback((Fl_Callback*)subtype_cb);
662 } // Fl_Choice* o
663 o->end();
664 } // Fl_Group* o
665 { Fl_Group* o = new Fl_Group(95, 65, 310, 20, "Name:");
666 o->labelfont(1);
667 o->labelsize(11);
668 o->callback((Fl_Callback*)propagate_load);
669 o->align(Fl_Align(FL_ALIGN_LEFT));
670 { Fl_Input* o = new Fl_Input(95, 65, 235, 20);
671 o->tooltip("The name of the widget.");
672 o->labelfont(1);
673 o->labelsize(11);
674 o->textsize(11);
675 o->callback((Fl_Callback*)name_cb);
676 Fl_Group::current()->resizable(o);
677 } // Fl_Input* o
678 { Fl_Choice* o = new Fl_Choice(330, 65, 75, 20);
679 o->tooltip("Change member access attribute.");
680 o->down_box(FL_BORDER_BOX);
681 o->labelsize(11);
682 o->textsize(11);
683 o->callback((Fl_Callback*)name_public_member_cb);
684 o->when(FL_WHEN_CHANGED);
685 o->menu(menu_2);
686 } // Fl_Choice* o
687 { Fl_Choice* o = new Fl_Choice(330, 65, 75, 20);
688 o->tooltip("Change widget accessibility.");
689 o->down_box(FL_BORDER_BOX);
690 o->labelsize(11);
691 o->textsize(11);
692 o->callback((Fl_Callback*)name_public_cb);
693 o->when(FL_WHEN_CHANGED);
694 o->menu(menu_3);
695 } // Fl_Choice* o
696 o->end();
697 } // Fl_Group* o
698 { v_input[0] = new Fl_Input(95, 90, 310, 20, "Extra Code:");
699 v_input[0]->tooltip("Extra initialization code for the widget.");
700 v_input[0]->labelfont(1);
701 v_input[0]->labelsize(11);
702 v_input[0]->textfont(4);
703 v_input[0]->textsize(11);
704 v_input[0]->callback((Fl_Callback*)v_input_cb, (void*)(0));
705 } // Fl_Input* v_input[0]
706 { v_input[1] = new Fl_Input(95, 110, 310, 20);
707 v_input[1]->tooltip("Extra initialization code for the widget.");
708 v_input[1]->labelsize(11);
709 v_input[1]->textfont(4);
710 v_input[1]->textsize(11);
711 v_input[1]->callback((Fl_Callback*)v_input_cb, (void*)(1));
712 } // Fl_Input* v_input[1]
713 { v_input[2] = new Fl_Input(95, 130, 310, 20);
714 v_input[2]->tooltip("Extra initialization code for the widget.");
715 v_input[2]->labelsize(11);
716 v_input[2]->textfont(4);
717 v_input[2]->textsize(11);
718 v_input[2]->callback((Fl_Callback*)v_input_cb, (void*)(2));
719 } // Fl_Input* v_input[2]
720 { v_input[3] = new Fl_Input(95, 150, 310, 20);
721 v_input[3]->tooltip("Extra initialization code for the widget.");
722 v_input[3]->labelsize(11);
723 v_input[3]->textfont(4);
724 v_input[3]->textsize(11);
725 v_input[3]->callback((Fl_Callback*)v_input_cb, (void*)(3));
726 } // Fl_Input* v_input[3]
727 { Fl_Tile* o = new Fl_Tile(95, 175, 310, 130);
728 o->callback((Fl_Callback*)cb_1);
729 { Fl_Group* o = new Fl_Group(95, 175, 310, 48);
730 o->box(FL_FLAT_BOX);
731 { wComment = new Fl_Text_Editor(95, 175, 310, 45, "Comment:");
732 wComment->tooltip("Write a comment that will appear in the source code and in the widget tree ov\
733 erview.");
734 wComment->box(FL_DOWN_BOX);
735 wComment->labelfont(1);
736 wComment->labelsize(11);
737 wComment->textfont(6);
738 wComment->textsize(11);
739 wComment->textcolor((Fl_Color)59);
740 wComment->align(Fl_Align(FL_ALIGN_LEFT));
741 wComment->when(FL_WHEN_CHANGED);
742 Fl_Group::current()->resizable(wComment);
743 wComment->buffer(new Fl_Text_Buffer());
744 wComment->callback((Fl_Callback*)comment_cb);
745 } // Fl_Text_Editor* wComment
746 o->end();
747 } // Fl_Group* o
748 { Fl_Group* o = new Fl_Group(95, 223, 310, 82);
749 o->box(FL_FLAT_BOX);
750 { wCallback = new CodeEditor(95, 225, 310, 80, "Callback:");
751 wCallback->tooltip("The callback function or code for the widget. Use the variable name \'o\' to \
752 access the Widget pointer and \'v\' to access the user value.");
753 wCallback->box(FL_DOWN_BOX);
754 wCallback->color(FL_BACKGROUND2_COLOR);
755 wCallback->selection_color(FL_SELECTION_COLOR);
756 wCallback->labeltype(FL_NORMAL_LABEL);
757 wCallback->labelfont(1);
758 wCallback->labelsize(11);
759 wCallback->labelcolor(FL_FOREGROUND_COLOR);
760 wCallback->textfont(4);
761 wCallback->textsize(11);
762 wCallback->callback((Fl_Callback*)callback_cb);
763 wCallback->align(Fl_Align(FL_ALIGN_LEFT));
764 wCallback->when(FL_WHEN_RELEASE);
765 Fl_Group::current()->resizable(wCallback);
766 } // CodeEditor* wCallback
767 o->end();
768 } // Fl_Group* o
769 o->end();
770 Fl_Group::current()->resizable(o);
771 } // Fl_Tile* o
772 { Fl_Group* o = new Fl_Group(95, 310, 310, 20, "User Data:");
773 o->labelfont(1);
774 o->labelsize(11);
775 o->callback((Fl_Callback*)propagate_load);
776 o->align(Fl_Align(FL_ALIGN_LEFT));
777 { Fl_Input* o = new Fl_Input(95, 310, 158, 20);
778 o->tooltip("The user data to pass into the callback code.");
779 o->labelfont(1);
780 o->labelsize(11);
781 o->textfont(4);
782 o->textsize(11);
783 o->callback((Fl_Callback*)user_data_cb);
784 Fl_Group::current()->resizable(o);
785 } // Fl_Input* o
786 { Fl_Choice* o = new Fl_Choice(300, 310, 105, 20, "When:");
787 o->tooltip("When to call the callback function.");
788 o->box(FL_THIN_UP_BOX);
789 o->down_box(FL_BORDER_BOX);
790 o->labelfont(1);
791 o->labelsize(11);
792 o->textsize(11);
793 o->callback((Fl_Callback*)when_cb);
794 o->when(FL_WHEN_CHANGED);
795 o->menu(whenmenu);
796 } // Fl_Choice* o
797 o->end();
798 } // Fl_Group* o
799 { Fl_Group* o = new Fl_Group(95, 335, 310, 20, "Type:");
800 o->labelfont(1);
801 o->labelsize(11);
802 o->callback((Fl_Callback*)propagate_load);
803 o->align(Fl_Align(FL_ALIGN_LEFT));
804 { Fl_Input* o = new Fl_Input(95, 335, 158, 20);
805 o->tooltip("The type of the user data.");
806 o->labelfont(1);
807 o->labelsize(11);
808 o->textfont(4);
809 o->textsize(11);
810 o->callback((Fl_Callback*)user_data_type_cb);
811 Fl_Group::current()->resizable(o);
812 } // Fl_Input* o
813 { Fl_Light_Button* o = new Fl_Light_Button(300, 335, 105, 20, "No Change");
814 o->tooltip("Call the callback even if the value has not changed.");
815 o->selection_color((Fl_Color)1);
816 o->labelsize(11);
817 o->callback((Fl_Callback*)when_button_cb);
818 } // Fl_Light_Button* o
819 o->end();
820 } // Fl_Group* o
821 o->end();
822 } // Fl_Group* o
823 o->end();
824 Fl_Group::current()->resizable(o);
825 } // Fl_Tabs* o
826 { Fl_Group* o = new Fl_Group(9, 370, 400, 20);
827 o->labelsize(11);
828 { Fl_Box* o = new Fl_Box(9, 370, 20, 20);
829 o->labelsize(11);
830 Fl_Group::current()->resizable(o);
831 } // Fl_Box* o
832 { Fl_Button* o = new Fl_Button(240, 370, 99, 20, "Hide &Overlays");
833 o->tooltip("Hide the widget overlay box.");
834 o->labelsize(11);
835 o->labelcolor((Fl_Color)1);
836 o->callback((Fl_Callback*)overlay_cb);
837 } // Fl_Button* o
838 { Fl_Button* o = new Fl_Button(66, 370, 80, 20, "Revert");
839 o->labelsize(11);
840 o->callback((Fl_Callback*)revert_cb);
841 o->hide();
842 } // Fl_Button* o
843 { Fl_Return_Button* o = new Fl_Return_Button(344, 370, 64, 20, "Close");
844 o->labelsize(11);
845 o->callback((Fl_Callback*)ok_cb);
846 } // Fl_Return_Button* o
847 { Fl_Button* o = new Fl_Button(339, 370, 70, 20, "Cancel");
848 o->labelsize(11);
849 o->callback((Fl_Callback*)cancel_cb);
850 o->hide();
851 } // Fl_Button* o
852 { wLiveMode = new Fl_Button(151, 370, 84, 20, "Live &Mode");
853 wLiveMode->tooltip("Create a live duplicate of the selected widgets to test resizing and menu beh\
854 avior.");
855 wLiveMode->type(1);
856 wLiveMode->labelsize(11);
857 wLiveMode->callback((Fl_Callback*)live_mode_cb);
858 } // Fl_Button* wLiveMode
859 o->end();
860 } // Fl_Group* o
861 o->size_range(o->w(), o->h());
862 o->size_range(420, 400);
863 o->end();
864 } // Fl_Double_Window* o
865 return w;
866 }
867
868 //
869 // End of "$Id$".
870 //
871