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