summaryrefslogtreecommitdiff
path: root/fluid/panels/widget_panel.cxx
diff options
context:
space:
mode:
authorMatthias Melcher <github@matthiasm.com>2025-11-29 12:57:08 +0100
committerGitHub <noreply@github.com>2025-11-29 12:57:08 +0100
commit349b818d3fd4f568160537616857b9ff7d68d3aa (patch)
treeaa4deb3b74345abf0dd6584bd9e3139c5812e43d /fluid/panels/widget_panel.cxx
parent725be0116f1d4dbcd64a99b555572341f2d29eda (diff)
Fluid: convert modal panels into tabs in the widget panel (#1339)
Diffstat (limited to 'fluid/panels/widget_panel.cxx')
-rw-r--r--fluid/panels/widget_panel.cxx3311
1 files changed, 2438 insertions, 873 deletions
diff --git a/fluid/panels/widget_panel.cxx b/fluid/panels/widget_panel.cxx
index 049667d69..5bbde2fec 100644
--- a/fluid/panels/widget_panel.cxx
+++ b/fluid/panels/widget_panel.cxx
@@ -24,16 +24,17 @@
#include "proj/undo.h"
#include "nodes/Window_Node.h"
#include "nodes/Grid_Node.h"
+#include "nodes/Function_Node.h"
#include <FL/Fl_Spinner.H>
#include <FL/Fl_Grid.H>
#include <FL/Fl_Flex.H>
#include <FL/fl_ask.H>
#include <FL/Fl_Menu_Item.H>
+#include <FL/Fl_File_Chooser.H>
#define ZERO_ENTRY 1000
extern const char* when_symbol_name(int n);
extern void set_whenmenu(int n);
extern void redraw_browser();
-const char *c_check(const char *c, int type=0);
extern Fl_Color fl_show_colormap(Fl_Color oldcol);
extern void labelcolor_common(Fl_Color c);
extern void color_common(Fl_Color c);
@@ -45,6 +46,13 @@ extern int numselected;
extern Fl_Menu_Item boxmenu[];
extern int haderror;
+/**
+ Allow widget navigation on text fields with Tab.
+*/
+static int use_tab_navigation(int, Fl_Text_Editor*) {
+ return 0;
+}
+
Fl_Double_Window *image_panel_window=(Fl_Double_Window *)0;
static void cb_image_panel_window(Fl_Double_Window* o, void* v) {
@@ -388,7 +396,7 @@ Fl_Double_Window* make_image_panel() {
o->callback((Fl_Callback*)cb_convert);
} // Fl_Check_Button* o
{ Fl_Check_Button* o = new Fl_Check_Button(75, 120, 170, 20, "bind to widget");
- o->tooltip("bind the image to the widget, so it will be deleted automatically");
+ o->tooltip("bind the image to the widget, so it will be deleted with the widget");
o->down_box(FL_DOWN_BOX);
o->labelsize(11);
o->callback((Fl_Callback*)cb_bind);
@@ -464,7 +472,7 @@ Fl_Double_Window* make_image_panel() {
o->callback((Fl_Callback*)cb_convert1);
} // Fl_Check_Button* o
{ Fl_Check_Button* o = new Fl_Check_Button(75, 260, 170, 20, "bind to widget");
- o->tooltip("bind the image to the widget, so it will be deleted automatically");
+ o->tooltip("bind the image to the widget, so it will be deleted with the widget");
o->down_box(FL_DOWN_BOX);
o->labelsize(11);
o->callback((Fl_Callback*)cb_bind1);
@@ -525,10 +533,17 @@ void flex_margin_cb(Fl_Value_Input* i, void* v, void (*load_margin)(Fl_Flex*,Fl_
}
}
+Fl_Wizard *tabs_wizard=(Fl_Wizard *)0;
+
+static void cb_tabs_wizard(Fl_Wizard* o, void* v) {
+ propagate_load((Fl_Group *)o,v);
+}
+
Fl_Tabs *widget_tabs=(Fl_Tabs *)0;
static void cb_widget_tabs(Fl_Tabs* o, void* v) {
- propagate_load((Fl_Group *)o,v);
+ if (current_widget)
+ propagate_load((Fl_Group *)o,v);
}
Fl_Group *wp_gui_tab=(Fl_Group *)0;
@@ -620,7 +635,7 @@ static void cb_Browse1(Fl_Button* o, void* v) {
Fl_Group *wp_gui_alignment=(Fl_Group *)0;
Fl_Menu_Item menu_[] = {
- {" Image Alignment ", 0, 0, (void*)((fl_intptr_t)-1), 1024, (uchar)FL_NORMAL_LABEL, 1, 10, 0},
+ {" Image Alignment ", 0, 0, (void*)((fl_intptr_t)-1), 0, (uchar)FL_NORMAL_LABEL, 1, 10, 0},
{"image over text", 0, 0, (void*)((fl_intptr_t)FL_ALIGN_IMAGE_OVER_TEXT), 0, (uchar)FL_NORMAL_LABEL, 0, 9, 0},
{"text over image", 0, 0, (void*)((fl_intptr_t)FL_ALIGN_TEXT_OVER_IMAGE), 0, (uchar)FL_NORMAL_LABEL, 0, 9, 0},
{"text next to image", 0, 0, (void*)((fl_intptr_t)FL_ALIGN_TEXT_NEXT_TO_IMAGE), 0, (uchar)FL_NORMAL_LABEL, 0, 9, 0},
@@ -630,7 +645,7 @@ Fl_Menu_Item menu_[] = {
};
Fl_Menu_Item menu_1[] = {
- {" Inside && Outside ", 0, 0, (void*)((fl_intptr_t)-1), 1024, (uchar)FL_NORMAL_LABEL, 1, 10, 0},
+ {" Inside && Outside ", 0, 0, (void*)((fl_intptr_t)-1), 0, (uchar)FL_NORMAL_LABEL, 1, 10, 0},
{"top left", 0, 0, (void*)((fl_intptr_t)FL_ALIGN_TOP_LEFT), 0, (uchar)FL_NORMAL_LABEL, 0, 9, 0},
{"top", 0, 0, (void*)((fl_intptr_t)FL_ALIGN_TOP), 0, (uchar)FL_NORMAL_LABEL, 0, 9, 0},
{"top right", 0, 0, (void*)((fl_intptr_t)FL_ALIGN_TOP_RIGHT), 0, (uchar)FL_NORMAL_LABEL, 0, 9, 0},
@@ -640,7 +655,7 @@ Fl_Menu_Item menu_1[] = {
{"bottom left", 0, 0, (void*)((fl_intptr_t)FL_ALIGN_BOTTOM_LEFT), 0, (uchar)FL_NORMAL_LABEL, 0, 9, 0},
{"bottom", 0, 0, (void*)((fl_intptr_t)FL_ALIGN_BOTTOM), 0, (uchar)FL_NORMAL_LABEL, 0, 9, 0},
{"bottom right", 0, 0, (void*)((fl_intptr_t)FL_ALIGN_BOTTOM_RIGHT), 0, (uchar)FL_NORMAL_LABEL, 0, 9, 0},
- {" Outside Alignment ", 0, 0, (void*)((fl_intptr_t)-1), 1024, (uchar)FL_NORMAL_LABEL, 1, 10, 0},
+ {" Outside Alignment ", 0, 0, (void*)((fl_intptr_t)-1), 0, (uchar)FL_NORMAL_LABEL, 1, 10, 0},
{"left top", 0, 0, (void*)((fl_intptr_t)FL_ALIGN_LEFT_TOP), 0, (uchar)FL_NORMAL_LABEL, 0, 9, 0},
{"right top", 0, 0, (void*)((fl_intptr_t)FL_ALIGN_RIGHT_TOP), 0, (uchar)FL_NORMAL_LABEL, 0, 9, 0},
{"left bottom", 0, 0, (void*)((fl_intptr_t)FL_ALIGN_LEFT_BOTTOM), 0, (uchar)FL_NORMAL_LABEL, 0, 9, 0},
@@ -1455,12 +1470,16 @@ static void cb_Active(Fl_Light_Button* o, void* v) {
static void cb_Resizable(Fl_Light_Button* o, void* v) {
if (v == LOAD) {
if (current_widget->is_a(Type::Menu_Item)) {
- o->hide();
+ o->hide();
return;
}
- if (numselected > 1) {o->deactivate(); return;}
o->show();
o->value(current_widget->resizable());
+ if (numselected > 1) {
+ o->deactivate();
+ return;
+ }
+ o->activate();
} else {
Fluid.proj.undo.checkpoint();
current_widget->resizable(o->value());
@@ -1471,7 +1490,7 @@ static void cb_Resizable(Fl_Light_Button* o, void* v) {
static void cb_Headline(Fl_Light_Button* o, void* v) {
if (v == LOAD) {
if (!current_widget->is_a(Type::Menu_Item)) {
- o->hide();
+ o->hide();
return;
}
o->show();
@@ -2247,6 +2266,952 @@ static void cb_widget_tab_grid_child(Grid_Child_Tab* o, void*) {
o->callback((Fl_Callback*)propagate_load);
}
+Fl_Tabs *data_tabs=(Fl_Tabs *)0;
+
+static void cb_data_tabs(Fl_Tabs* o, void* v) {
+ if (current_node && current_node->is_a(Type::Data))
+ propagate_load((Fl_Group *)o,v);
+}
+
+Fl_Group *data_tabs_data=(Fl_Group *)0;
+
+static void cb_15(Fl_Choice* o, void* v) {
+ if (!current_node || !current_node->is_a(Type::Data)) return;
+ Data_Node* nd = (Data_Node*)current_node;
+
+ if (v == LOAD) {
+ if (!nd->is_in_class()) {
+ o->value(nd->output_file());
+ o->show();
+ } else {
+ o->hide();
+ }
+ } else {
+ if (!nd->is_in_class()) {
+ if (nd->output_file() != o->value()) {
+ nd->output_file(o->value());
+ Fluid.proj.set_modflag(1);
+ redraw_browser();
+ }
+ }
+ }
+}
+
+Fl_Menu_Item menu_5[] = {
+ {"in source file only", 0, 0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
+ {"in header file only", 0, 0, 0, 16, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
+ {"\"static\" in source file", 0, 0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
+ {"in source and \"extern\" in header", 0, 0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
+ {0,0,0,0,0,0,0,0,0}
+};
+
+static void cb_16(Fl_Choice* o, void* v) {
+ if (!current_node || !current_node->is_a(Type::Data)) return;
+ Data_Node* nd = (Data_Node*)current_node;
+
+ if (v == LOAD) {
+ if (nd->is_in_class()) {
+ o->value(nd->visibility());
+ o->show();
+ } else {
+ o->hide();
+ }
+ } else {
+ if (nd->is_in_class()) {
+ if (nd->visibility() != o->value()) {
+ nd->visibility(o->value());
+ Fluid.proj.set_modflag(1);
+ redraw_browser();
+ }
+ }
+ }
+}
+
+Fl_Menu_Item menu_6[] = {
+ {"private", 0, 0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
+ {"public", 0, 0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
+ {"protected", 0, 0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
+ {0,0,0,0,0,0,0,0,0}
+};
+
+static void cb_17(Fl_Choice* o, void* v) {
+ if (!current_node || !current_node->is_a(Type::Data)) return;
+ Data_Node* nd = (Data_Node*)current_node;
+
+ if (v == LOAD) {
+ o->value(nd->output_format());
+ } else {
+ if (nd->output_format() != o->value()) {
+ nd->output_format( o->value() );
+ Fluid.proj.set_modflag(1);
+ }
+ }
+}
+
+Fl_Menu_Item menu_7[] = {
+ {"binary: unsigned char[]", 0, 0, (void*)(0), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
+ {"text: const char*", 0, 0, (void*)(1), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
+ {"compressed: unsigned char[]", 0, 0, (void*)(2), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
+ {"binary: std::vector<uint8_t>", 0, 0, (void*)(3), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
+ {"text: std::string", 0, 0, (void*)(4), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
+ {"compressed: std::vector<uint8_t>", 0, 0, (void*)(5), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
+ {0,0,0,0,0,0,0,0,0}
+};
+
+static void cb_Name(Fl_Input* o, void* v) {
+ if (!current_node || !current_node->is_a(Type::Data)) return;
+ Data_Node* nd = (Data_Node*)current_node;
+
+ if (v == LOAD) {
+ o->value( nd->name() );
+ the_panel->label("Inline Data Properties");
+ } else {
+ const char *nn = nd->name();
+ if ( ( nn && (strcmp(nn, o->value()) != 0))
+ || (!nn && (strcmp("", o->value()) != 0)) )
+ {
+ nd->name( o->value() );
+ Fluid.proj.set_modflag(1);
+ redraw_browser();
+ }
+ }
+}
+
+Fl_Input *wp_data_filename=(Fl_Input *)0;
+
+static void cb_wp_data_filename(Fl_Input* o, void* v) {
+ if (!current_node || !current_node->is_a(Type::Data)) return;
+ Data_Node* nd = (Data_Node*)current_node;
+
+ if (v == LOAD) {
+ const char *fn = nd->filename();
+ o->value( fn ? fn : "" );
+ } else {
+ const char *c = o->value();
+ const char *fn = nd->filename();
+ if ( ( fn && (strcmp(fn, c) != 0))
+ || (!fn && (strcmp("", c) != 0)) )
+ {
+ nd->filename(c);
+ Fluid.proj.set_modflag(1);
+ }
+ }
+}
+
+static void cb_fileopen(Fl_Button*, void* v) {
+ if (v != LOAD) {
+ Fluid.proj.enter_project_dir();
+ const char *fn = fl_file_chooser("Load Inline Data",
+ nullptr, wp_data_filename->value(), 1);
+ Fluid.proj.leave_project_dir();
+ if (fn) {
+ if (strcmp(fn, wp_data_filename->value())) {
+ Fluid.proj.set_modflag(1);
+ wp_data_filename->value(fn);
+ wp_data_filename->do_callback();
+ }
+ }
+ }
+}
+
+static void cb_Comment(Fl_Text_Editor* o, void* v) {
+ if (!current_node || !current_node->is_a(Type::Data)) return;
+ Data_Node* nd = (Data_Node*)current_node;
+
+ if (v == LOAD) {
+ const char *cmttext = nd->comment();
+ o->buffer()->text( cmttext ? cmttext : "" );
+ } else {
+ char *c = o->buffer()->text();
+ const char *nn = nd->comment();
+ if ( ( nn && (strcmp(nn, c) != 0))
+ || (!nn && (strcmp("", c) != 0)) )
+ {
+ nd->comment(c);
+ Fluid.proj.set_modflag(1);
+ redraw_browser();
+ }
+ free(c);
+ }
+}
+
+Fl_Tabs *comment_tabs=(Fl_Tabs *)0;
+
+static void cb_comment_tabs(Fl_Tabs* o, void* v) {
+ if (current_node && current_node->is_a(Type::Comment))
+ propagate_load((Fl_Group *)o,v);
+}
+
+Fl_Group *comment_tabs_comment=(Fl_Group *)0;
+
+Fl_Text_Editor *comment_tabs_name=(Fl_Text_Editor *)0;
+
+static void cb_comment_tabs_name(Fl_Text_Editor* o, void* v) {
+ if (!current_node || !current_node->is_a(Type::Comment)) return;
+ Comment_Node* nd = (Comment_Node*)current_node;
+
+ if (v == LOAD) {
+ the_panel->label("Comment Properties");
+ const char *cmttext = nd->name();
+ o->buffer()->text( cmttext ? cmttext : "" );
+ } else {
+ char *c = o->buffer()->text();
+ const char *nn = nd->name();
+ if ( ( nn && (strcmp(nn, c) != 0))
+ || (!nn && (strcmp("", c) != 0)) )
+ {
+ nd->name(c);
+ Fluid.proj.set_modflag(1);
+ redraw_browser();
+ }
+ free(c);
+ }
+}
+
+Fl_Menu_Button *comment_predefined_2=(Fl_Menu_Button *)0;
+
+static void cb_comment_predefined_2(Fl_Menu_Button* o, void* v) {
+ if (!current_node || !current_node->is_a(Type::Comment)) return;
+
+ static char itempath[256];
+ static int last_selected_item { 0 };
+
+ if (v == LOAD) {
+ int i=0, n=0, version = 0;
+ Fl_Preferences menu(Fl_Preferences::USER_L, "fltk.org", "fluid_comments_menu");
+ o->clear();
+ o->add("_Edit/Add current comment...");
+ o->add("_Edit/Remove last selection...");
+ menu.get("version", version, -1);
+ if (version < 10400) load_comments_preset(menu);
+ menu.get("n", n, 0);
+ for (i=0;i<n;i++) {
+ char *text;
+ menu.get(Fl_Preferences::Name(i), text, "");
+ o->add(text);
+ free(text);
+ }
+ } else {
+ if (o->value()==1) {
+ // add the current comment to the database
+ const char *xname = fl_input(
+ "Please enter a name to reference the current\ncomment in your database.\n\n"
+ "Use forward slashes '/' to create submenus.",
+ "My Comment");
+ if (xname) {
+ char *name = fl_strdup(xname);
+ for (char*s=name;*s;s++) if (*s==':') *s = ';';
+ int n;
+ Fl_Preferences db(Fl_Preferences::USER_L, "fltk.org", "fluid_comments");
+ db.set(name, comment_tabs_name->buffer()->text());
+ Fl_Preferences menu(Fl_Preferences::USER_L, "fltk.org", "fluid_comments_menu");
+ menu.get("n", n, 0);
+ menu.set(Fl_Preferences::Name(n), name);
+ menu.set("n", ++n);
+ o->add(name);
+ free(name);
+ }
+ } else if (o->value()==2) {
+ // remove the last selected comment from the database
+ if (itempath[0]==0 || last_selected_item==0) {
+ fl_message("Please select an entry from this menu first.");
+ } else if (fl_choice("Are you sure that you want to delete the entry\n"
+ "\"%s\"\nfrom the database?", "Cancel", "Delete",
+ nullptr, itempath)) {
+ Fl_Preferences db(Fl_Preferences::USER_L, "fltk.org", "fluid_comments");
+ db.deleteEntry(itempath);
+ o->remove(last_selected_item);
+ Fl_Preferences menu(Fl_Preferences::USER_L, "fltk.org", "fluid_comments_menu");
+ int i, n;
+ for (i=4, n=0; i<o->size(); i++) {
+ const Fl_Menu_Item *mi = o->menu()+i;
+ if (o->item_pathname(itempath, 255, mi)==0) {
+ if (itempath[0]=='/') memmove(itempath, itempath+1, 255);
+ if (itempath[0]) menu.set(Fl_Preferences::Name(n++), itempath);
+ }
+ }
+ menu.set("n", n);
+ }
+ } else {
+ // load the selected comment from the database
+ if (o->item_pathname(itempath, 255)==0) {
+ if (itempath[0]=='/') memmove(itempath, itempath+1, 255);
+ Fl_Preferences db(Fl_Preferences::USER_L, "fltk.org", "fluid_comments");
+ char *text;
+ db.get(itempath, text, "(no text found in data base)");
+ comment_tabs_name->buffer()->text(text);
+ comment_tabs_name->do_callback();
+ free(text);
+ last_selected_item = o->value();
+ }
+ }
+ }
+}
+
+Fl_Button *comment_load_2=(Fl_Button *)0;
+
+static void cb_comment_load_2(Fl_Button*, void* v) {
+ // load a comment from disk
+ if (v != LOAD) {
+ fl_file_chooser_ok_label("Load");
+ const char *fname = fl_file_chooser("Pick a comment", nullptr, nullptr);
+ fl_file_chooser_ok_label(nullptr);
+ if (fname) {
+ if (comment_tabs_name->buffer()->loadfile(fname)) {
+ fl_alert("Error loading file\n%s", fname);
+ }
+ comment_tabs_name->do_callback();
+ }
+ }
+}
+
+static void cb_output(Fl_Check_Button* o, void* v) {
+ if (!current_node || !current_node->is_a(Type::Comment)) return;
+ Comment_Node* nd = (Comment_Node*)current_node;
+
+ if (v == LOAD) {
+ o->value(nd->in_h());
+ } else {
+ if (((int)nd->in_h()) != o->value()) {
+ nd->in_h( o->value() );
+ Fluid.proj.set_modflag(1);
+ }
+ }
+}
+
+static void cb_output1(Fl_Check_Button* o, void* v) {
+ if (!current_node || !current_node->is_a(Type::Comment)) return;
+ Comment_Node* nd = (Comment_Node*)current_node;
+
+ if (v == LOAD) {
+ o->value(nd->in_c());
+ } else {
+ if (((int)nd->in_c()) != o->value()) {
+ nd->in_c( o->value() );
+ Fluid.proj.set_modflag(1);
+ }
+ }
+}
+
+Fl_Tabs *class_tabs=(Fl_Tabs *)0;
+
+static void cb_class_tabs(Fl_Tabs* o, void* v) {
+ if (current_node && current_node->is_a(Type::Class))
+ propagate_load((Fl_Group *)o,v);
+}
+
+Fl_Group *class_tabs_main=(Fl_Group *)0;
+
+static void cb_18(Fl_Choice* o, void* v) {
+ if (!current_node || !current_node->is_a(Type::Class)) return;
+ Class_Node* nd = (Class_Node*)current_node;
+
+ if (v == LOAD) {
+ if (nd->is_in_class()) {
+ o->value(nd->visibility());
+ o->activate();
+ } else {
+ o->deactivate();
+ }
+ } else {
+ if (nd->is_in_class()) {
+ if (nd->visibility() != o->value()) {
+ nd->visibility(o->value());
+ Fluid.proj.set_modflag(1);
+ redraw_browser();
+ }
+ }
+ }
+}
+
+Fl_Menu_Item menu_8[] = {
+ {"private", 0, 0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
+ {"public", 0, 0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
+ {"protected", 0, 0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
+ {0,0,0,0,0,0,0,0,0}
+};
+
+static void cb_Attribute(Fl_Input* o, void* v) {
+ if (!current_node || !current_node->is_a(Type::Class)) return;
+ Class_Node* nd = (Class_Node*)current_node;
+
+ if (v == LOAD) {
+ o->value( nd->prefix() );
+ } else {
+ const char *nn = nd->prefix();
+ if ( ( nn && (strcmp(nn, o->value()) != 0))
+ || (!nn && (strcmp("", o->value()) != 0)) )
+ {
+ nd->prefix( o->value() );
+ Fluid.proj.set_modflag(1);
+ }
+ }
+}
+
+static void cb_Class(Fl_Input* o, void* v) {
+ if (!current_node || !current_node->is_a(Type::Class)) return;
+ Class_Node* nd = (Class_Node*)current_node;
+
+ if (v == LOAD) {
+ the_panel->label("Class Properties");
+ o->value( nd->name() );
+ } else {
+ const char *nn = nd->name();
+ if ( ( nn && (strcmp(nn, o->value()) != 0))
+ || (!nn && (strcmp("", o->value()) != 0)) )
+ {
+ nd->name( o->value() );
+ Fluid.proj.set_modflag(1);
+ redraw_browser();
+ }
+ }
+}
+
+static void cb_Base(Fl_Input* o, void* v) {
+ if (!current_node || !current_node->is_a(Type::Class)) return;
+ Class_Node* nd = (Class_Node*)current_node;
+
+ if (v == LOAD) {
+ o->value( nd->base_class_name() );
+ } else {
+ const char *nn = nd->base_class_name();
+ if ( ( nn && (strcmp(nn, o->value()) != 0))
+ || (!nn && (strcmp("", o->value()) != 0)) )
+ {
+ nd->base_class_name( o->value() );
+ Fluid.proj.set_modflag(1);
+ }
+ }
+}
+
+static void cb_Comment1(Fl_Text_Editor* o, void* v) {
+ if (!current_node || !current_node->is_a(Type::Class)) return;
+ Class_Node* nd = (Class_Node*)current_node;
+
+ if (v == LOAD) {
+ const char *cmttext = nd->comment();
+ o->buffer()->text( cmttext ? cmttext : "" );
+ } else {
+ char *c = o->buffer()->text();
+ const char *nn = nd->comment();
+ if ( ( nn && (strcmp(nn, c) != 0))
+ || (!nn && (strcmp("", c) != 0)) )
+ {
+ nd->comment(c);
+ Fluid.proj.set_modflag(1);
+ redraw_browser();
+ }
+ free(c);
+ }
+}
+
+Fl_Tabs *declblock_tabs=(Fl_Tabs *)0;
+
+static void cb_declblock_tabs(Fl_Tabs* o, void* v) {
+ if (current_node && current_node->is_a(Type::DeclBlock))
+ propagate_load((Fl_Group *)o,v);
+}
+
+Fl_Group *declblock_tabs_main=(Fl_Group *)0;
+
+static void cb_Start(Fl_Input* o, void* v) {
+ if (!current_node || !current_node->is_a(Type::DeclBlock)) return;
+ DeclBlock_Node* nd = (DeclBlock_Node*)current_node;
+
+ if (v == LOAD) {
+ the_panel->label("Declaration Block Properties");
+ o->value( nd->name() );
+ } else {
+ const char *nn = nd->name();
+ if ( ( nn && (strcmp(nn, o->value()) != 0))
+ || (!nn && (strcmp("", o->value()) != 0)) )
+ {
+ nd->name( o->value() );
+ Fluid.proj.set_modflag(1);
+ redraw_browser();
+ }
+ }
+}
+
+static void cb_End(Fl_Input* o, void* v) {
+ if (!current_node || !current_node->is_a(Type::DeclBlock)) return;
+ DeclBlock_Node* nd = (DeclBlock_Node*)current_node;
+
+ if (v == LOAD) {
+ o->value( nd->end_code() );
+ } else {
+ const char *nn = nd->end_code();
+ if ( ( nn && (strcmp(nn, o->value()) != 0))
+ || (!nn && (strcmp("", o->value()) != 0)) )
+ {
+ nd->end_code( o->value() );
+ Fluid.proj.set_modflag(1);
+ }
+ }
+}
+
+static void cb_implementations(Fl_Check_Button* o, void* v) {
+ if (!current_node || !current_node->is_a(Type::DeclBlock)) return;
+ DeclBlock_Node* nd = (DeclBlock_Node*)current_node;
+
+ if (v == LOAD) {
+ int f = ((nd->write_map() & DeclBlock_Node::CODE_IN_SOURCE) != 0);
+ o->value(f);
+ } else {
+ int f = ((nd->write_map() & DeclBlock_Node::CODE_IN_SOURCE) != 0);
+ if (f != o->value()) {
+ if (o->value())
+ nd->write_map( nd->write_map() | DeclBlock_Node::CODE_IN_SOURCE );
+ else
+ nd->write_map( nd->write_map() & ~DeclBlock_Node::CODE_IN_SOURCE );
+ Fluid.proj.set_modflag(1);
+ }
+ }
+}
+
+static void cb_static(Fl_Check_Button* o, void* v) {
+ if (!current_node || !current_node->is_a(Type::DeclBlock)) return;
+ DeclBlock_Node* nd = (DeclBlock_Node*)current_node;
+
+ if (v == LOAD) {
+ int f = ((nd->write_map() & DeclBlock_Node::STATIC_IN_SOURCE) != 0);
+ o->value(f);
+ } else {
+ int f = ((nd->write_map() & DeclBlock_Node::STATIC_IN_SOURCE) != 0);
+ if (f != o->value()) {
+ if (o->value())
+ nd->write_map( nd->write_map() | DeclBlock_Node::STATIC_IN_SOURCE );
+ else
+ nd->write_map( nd->write_map() & ~DeclBlock_Node::STATIC_IN_SOURCE );
+ Fluid.proj.set_modflag(1);
+ }
+ }
+}
+
+static void cb_forward(Fl_Check_Button* o, void* v) {
+ if (!current_node || !current_node->is_a(Type::DeclBlock)) return;
+ DeclBlock_Node* nd = (DeclBlock_Node*)current_node;
+
+ if (v == LOAD) {
+ int f = ((nd->write_map() & DeclBlock_Node::CODE_IN_HEADER) != 0);
+ o->value(f);
+ } else {
+ int f = ((nd->write_map() & DeclBlock_Node::CODE_IN_HEADER) != 0);
+ if (f != o->value()) {
+ if (o->value())
+ nd->write_map( nd->write_map() | DeclBlock_Node::CODE_IN_HEADER );
+ else
+ nd->write_map( nd->write_map() & ~DeclBlock_Node::CODE_IN_HEADER );
+ Fluid.proj.set_modflag(1);
+ }
+ }
+}
+
+static void cb_preprecessor(Fl_Check_Button* o, void* v) {
+ if (!current_node || !current_node->is_a(Type::DeclBlock)) return;
+ DeclBlock_Node* nd = (DeclBlock_Node*)current_node;
+
+ if (v == LOAD) {
+ int f = ((nd->write_map() & DeclBlock_Node::STATIC_IN_HEADER) != 0);
+ o->value(f);
+ } else {
+ int f = ((nd->write_map() & DeclBlock_Node::STATIC_IN_HEADER) != 0);
+ if (f != o->value()) {
+ if (o->value())
+ nd->write_map( nd->write_map() | DeclBlock_Node::STATIC_IN_HEADER );
+ else
+ nd->write_map( nd->write_map() & ~DeclBlock_Node::STATIC_IN_HEADER );
+ Fluid.proj.set_modflag(1);
+ }
+ }
+}
+
+static void cb_Comment2(Fl_Text_Editor* o, void* v) {
+ if (!current_node || !current_node->is_a(Type::DeclBlock)) return;
+ DeclBlock_Node* nd = (DeclBlock_Node*)current_node;
+
+ if (v == LOAD) {
+ const char *cmttext = nd->comment();
+ o->buffer()->text( cmttext ? cmttext : "" );
+ } else {
+ char *c = o->buffer()->text();
+ const char *nn = nd->comment();
+ if ( ( nn && (strcmp(nn, c) != 0))
+ || (!nn && (strcmp("", c) != 0)) )
+ {
+ nd->comment(c);
+ Fluid.proj.set_modflag(1);
+ redraw_browser();
+ }
+ free(c);
+ }
+}
+
+Fl_Tabs *decl_tabs=(Fl_Tabs *)0;
+
+static void cb_decl_tabs(Fl_Tabs* o, void* v) {
+ if (current_node && current_node->is_a(Type::Decl))
+ propagate_load((Fl_Group *)o,v);
+}
+
+Fl_Group *decl_tabs_main=(Fl_Group *)0;
+
+static void cb_19(Fl_Choice* o, void* v) {
+ if (!current_node || !current_node->is_a(Type::Decl)) return;
+ Decl_Node* nd = (Decl_Node*)current_node;
+
+ if (v == LOAD) {
+ if (!nd->is_in_class()) {
+ o->value(nd->output_file());
+ o->show();
+ } else {
+ o->hide();
+ }
+ } else {
+ if (!nd->is_in_class()) {
+ if (nd->output_file() != o->value()) {
+ nd->output_file(o->value());
+ Fluid.proj.set_modflag(1);
+ redraw_browser();
+ }
+ }
+ }
+}
+
+Fl_Menu_Item menu_9[] = {
+ {"in source file only", 0, 0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
+ {"in header file only", 0, 0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
+ {"\"static\" in source file", 0, 0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
+ {"in source and \"extern\" in header", 0, 0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
+ {0,0,0,0,0,0,0,0,0}
+};
+
+static void cb_1a(Fl_Choice* o, void* v) {
+ if (!current_node || !current_node->is_a(Type::Decl)) return;
+ Decl_Node* nd = (Decl_Node*)current_node;
+
+ if (v == LOAD) {
+ if (nd->is_in_class()) {
+ o->value(nd->visibility());
+ o->show();
+ } else {
+ o->hide();
+ }
+ } else {
+ if (nd->is_in_class()) {
+ if (nd->visibility() != o->value()) {
+ nd->visibility(o->value());
+ Fluid.proj.set_modflag(1);
+ redraw_browser();
+ }
+ }
+ }
+}
+
+Fl_Menu_Item menu_a[] = {
+ {"private", 0, 0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
+ {"public", 0, 0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
+ {"protected", 0, 0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
+ {0,0,0,0,0,0,0,0,0}
+};
+
+static void cb_1b(Fl_Tile* o, void* v) {
+ propagate_load(o, v);
+}
+
+static void cb_Declaration(fld::widget::Code_Editor* o, void* v) {
+ if (!current_node || !current_node->is_a(Type::Decl)) return;
+ Decl_Node* nd = (Decl_Node*)current_node;
+
+ if (v == LOAD) {
+ the_panel->label("Declaration Properties");
+ const char *cmttext = nd->name();
+ o->buffer()->text( cmttext ? cmttext : "" );
+ } else {
+ char *c = o->buffer()->text();
+ const char *nn = nd->name();
+ if ( ( nn && (strcmp(nn, c) != 0))
+ || (!nn && (strcmp("", c) != 0)) )
+ {
+ nd->name(c);
+ Fluid.proj.set_modflag(1);
+ redraw_browser();
+ }
+ free(c);
+ }
+}
+
+static void cb_Comment3(Fl_Text_Editor* o, void* v) {
+ if (!current_node || !current_node->is_a(Type::Decl)) return;
+ Decl_Node* nd = (Decl_Node*)current_node;
+
+ if (v == LOAD) {
+ const char *cmttext = nd->comment();
+ o->buffer()->text( cmttext ? cmttext : "" );
+ } else {
+ char *c = o->buffer()->text();
+ const char *nn = nd->comment();
+ if ( ( nn && (strcmp(nn, c) != 0))
+ || (!nn && (strcmp("", c) != 0)) )
+ {
+ nd->comment(c);
+ Fluid.proj.set_modflag(1);
+ redraw_browser();
+ }
+ free(c);
+ }
+}
+
+Fl_Tabs *codeblock_tabs=(Fl_Tabs *)0;
+
+static void cb_codeblock_tabs(Fl_Tabs* o, void* v) {
+ if (current_node && current_node->is_a(Type::CodeBlock))
+ propagate_load((Fl_Group *)o,v);
+}
+
+Fl_Group *codeblock_tabs_main=(Fl_Group *)0;
+
+static void cb_Start1(Fl_Input* o, void* v) {
+ if (!current_node || !current_node->is_a(Type::CodeBlock)) return;
+ CodeBlock_Node* nd = (CodeBlock_Node*)current_node;
+
+ if (v == LOAD) {
+ o->value( nd->name() );
+ the_panel->label("Code Block Properties");
+ } else {
+ const char *nn = nd->name();
+ if ( ( nn && (strcmp(nn, o->value()) != 0))
+ || (!nn && (strcmp("", o->value()) != 0)) )
+ {
+ nd->name( o->value() );
+ Fluid.proj.set_modflag(1);
+ redraw_browser();
+ }
+ }
+}
+
+static void cb_End1(Fl_Input* o, void* v) {
+ if (!current_node || !current_node->is_a(Type::CodeBlock)) return;
+ CodeBlock_Node* nd = (CodeBlock_Node*)current_node;
+
+ if (v == LOAD) {
+ o->value( nd->end_code() );
+ } else {
+ const char *nn = nd->end_code();
+ if ( ( nn && (strcmp(nn, o->value()) != 0))
+ || (!nn && (strcmp("", o->value()) != 0)) )
+ {
+ nd->end_code( o->value() );
+ Fluid.proj.set_modflag(1);
+ }
+ }
+}
+
+static void cb_Comment4(Fl_Text_Editor* o, void* v) {
+ if (!current_node || !current_node->is_a(Type::CodeBlock)) return;
+ CodeBlock_Node* nd = (CodeBlock_Node*)current_node;
+
+ if (v == LOAD) {
+ const char *cmttext = nd->comment();
+ o->buffer()->text( cmttext ? cmttext : "" );
+ } else {
+ char *c = o->buffer()->text();
+ const char *nn = nd->comment();
+ if ( ( nn && (strcmp(nn, c) != 0))
+ || (!nn && (strcmp("", c) != 0)) )
+ {
+ nd->comment(c);
+ Fluid.proj.set_modflag(1);
+ redraw_browser();
+ }
+ free(c);
+ }
+}
+
+Fl_Tabs *code_tabs=(Fl_Tabs *)0;
+
+static void cb_code_tabs(Fl_Tabs* o, void* v) {
+ if (current_node && current_node->is_a(Type::Code))
+ propagate_load((Fl_Group *)o,v);
+}
+
+Fl_Group *code_tabs_main=(Fl_Group *)0;
+
+static void cb_1c(fld::widget::Code_Editor* o, void* v) {
+ if (!current_node || !current_node->is_a(Type::Code)) return;
+ Code_Node* nd = (Code_Node*)current_node;
+
+ if (v == LOAD) {
+ the_panel->label("Code Editor");
+ const char *cmttext = nd->name();
+ o->buffer()->text( cmttext ? cmttext : "" );
+ o->insert_position(nd->cursor_position_);
+ o->scroll(nd->code_input_scroll_row, nd->code_input_scroll_col);
+ } else {
+ char *c = o->buffer()->text();
+ const char *nn = nd->name();
+ if ( ( nn && (strcmp(nn, c) != 0))
+ || (!nn && (strcmp("", c) != 0)) )
+ {
+ nd->name(c);
+ Fluid.proj.set_modflag(1);
+ redraw_browser();
+ }
+ nd->cursor_position_ = o->insert_position();
+ nd->code_input_scroll_row = o->scroll_row();
+ nd->code_input_scroll_col = o->scroll_col();
+ free(c);
+ }
+}
+
+Fl_Tabs *func_tabs=(Fl_Tabs *)0;
+
+static void cb_func_tabs(Fl_Tabs* o, void* v) {
+ if (current_node && current_node->is_a(Type::Function))
+ propagate_load((Fl_Group *)o,v);
+}
+
+Fl_Group *func_tabs_main=(Fl_Group *)0;
+
+static void cb_1d(Fl_Choice* o, void* v) {
+ if (!current_node || !current_node->is_a(Type::Function)) return;
+ Function_Node* nd = (Function_Node*)current_node;
+
+ if (v == LOAD) {
+ if (!nd->is_in_class()) {
+ o->value(nd->visibility());
+ o->show();
+ } else {
+ o->hide();
+ }
+ } else {
+ if (!nd->is_in_class()) {
+ if (nd->visibility() != o->value()) {
+ nd->visibility(o->value());
+ Fluid.proj.set_modflag(1);
+ redraw_browser();
+ }
+ }
+ }
+}
+
+Fl_Menu_Item menu_b[] = {
+ {"static", 0, 0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
+ {"global", 0, 0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
+ {"local", 0, 0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
+ {0,0,0,0,0,0,0,0,0}
+};
+
+static void cb_1e(Fl_Choice* o, void* v) {
+ if (!current_node || !current_node->is_a(Type::Function)) return;
+ Function_Node* nd = (Function_Node*)current_node;
+
+ if (v == LOAD) {
+ if (nd->is_in_class()) {
+ o->value(nd->visibility());
+ o->show();
+ } else {
+ o->hide();
+ }
+ } else {
+ if (nd->is_in_class()) {
+ if (nd->visibility() != o->value()) {
+ nd->visibility(o->value());
+ Fluid.proj.set_modflag(1);
+ redraw_browser();
+ }
+ }
+ }
+}
+
+Fl_Menu_Item menu_c[] = {
+ {"private", 0, 0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
+ {"public", 0, 0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
+ {"protected", 0, 0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
+ {0,0,0,0,0,0,0,0,0}
+};
+
+static void cb_declare(Fl_Check_Button* o, void* v) {
+ if (!current_node || !current_node->is_a(Type::Function)) return;
+ Function_Node* nd = (Function_Node*)current_node;
+
+ if (v == LOAD) {
+ o->value(nd->declare_c());
+ } else {
+ if (nd->declare_c() != o->value()) {
+ nd->declare_c( o->value() );
+ Fluid.proj.set_modflag(1);
+ }
+ }
+}
+
+static void cb_1f(Fl_Tile* o, void* v) {
+ propagate_load(o, v);
+}
+
+static void cb_Function(fld::widget::Code_Editor* o, void* v) {
+ if (!current_node || !current_node->is_a(Type::Function)) return;
+ Function_Node* nd = (Function_Node*)current_node;
+
+ if (v == LOAD) {
+ the_panel->label("Function Properties");
+ const char *cmttext = nd->name();
+ o->buffer()->text( cmttext ? cmttext : "" );
+ } else {
+ char *c = o->buffer()->text();
+ const char *nn = nd->name();
+ if ( ( nn && (strcmp(nn, c) != 0))
+ || (!nn && (strcmp("", c) != 0)) )
+ {
+ nd->name(c);
+ Fluid.proj.set_modflag(1);
+ redraw_browser();
+ }
+ free(c);
+ }
+}
+
+static void cb_Return(fld::widget::Code_Editor* o, void* v) {
+ if (!current_node || !current_node->is_a(Type::Function)) return;
+ Function_Node* nd = (Function_Node*)current_node;
+
+ if (v == LOAD) {
+ const char *cmttext = nd->return_type();
+ o->buffer()->text( cmttext ? cmttext : "" );
+ } else {
+ char *c = o->buffer()->text();
+ const char *nn = nd->return_type();
+ if ( ( nn && (strcmp(nn, c) != 0))
+ || (!nn && (strcmp("", c) != 0)) )
+ {
+ nd->return_type(c);
+ Fluid.proj.set_modflag(1);
+ }
+ free(c);
+ }
+}
+
+static void cb_Comment5(Fl_Text_Editor* o, void* v) {
+ if (!current_node || !current_node->is_a(Type::Function)) return;
+ Function_Node* nd = (Function_Node*)current_node;
+
+ if (v == LOAD) {
+ const char *cmttext = nd->comment();
+ o->buffer()->text( cmttext ? cmttext : "" );
+ } else {
+ char *c = o->buffer()->text();
+ const char *nn = nd->comment();
+ if ( ( nn && (strcmp(nn, c) != 0))
+ || (!nn && (strcmp("", c) != 0)) )
+ {
+ nd->comment(c);
+ Fluid.proj.set_modflag(1);
+ redraw_browser();
+ }
+ free(c);
+ }
+}
+
Fl_Tabs *widget_tabs_repo=(Fl_Tabs *)0;
Fl_Button *wLiveMode=(Fl_Button *)0;
@@ -2264,944 +3229,1544 @@ Fl_Double_Window* make_widget_panel() {
o->labelsize(11);
o->align(Fl_Align(FL_ALIGN_CLIP|FL_ALIGN_INSIDE));
o->hotspot(o);
- { Fl_Tabs* o = widget_tabs = new Fl_Tabs(10, 10, 400, 350);
- widget_tabs->selection_color((Fl_Color)12);
- widget_tabs->labelsize(11);
- widget_tabs->labelcolor(FL_BACKGROUND2_COLOR);
- widget_tabs->callback((Fl_Callback*)cb_widget_tabs);
- widget_tabs->when(FL_WHEN_NEVER);
- { wp_gui_tab = new Fl_Group(10, 30, 400, 330, "GUI");
- wp_gui_tab->labelsize(11);
- wp_gui_tab->callback((Fl_Callback*)propagate_load);
- wp_gui_tab->when(FL_WHEN_NEVER);
- { Fl_Group* o = new Fl_Group(95, 40, 309, 20, "Label:");
- o->labelfont(1);
- o->labelsize(11);
- o->callback((Fl_Callback*)propagate_load);
- o->align(Fl_Align(FL_ALIGN_LEFT));
- { wp_gui_label = new Fl_Input(95, 40, 190, 20);
- wp_gui_label->tooltip("The label text for the widget.\nUse Ctrl-J for newlines.");
- wp_gui_label->labelfont(1);
- wp_gui_label->labelsize(11);
- wp_gui_label->textsize(11);
- wp_gui_label->callback((Fl_Callback*)label_cb);
- wp_gui_label->when(FL_WHEN_RELEASE | FL_WHEN_ENTER_KEY_CHANGED);
- Fl_Group::current()->resizable(wp_gui_label);
- } // Fl_Input* wp_gui_label
- { Fl_Choice* o = new Fl_Choice(285, 40, 119, 20);
- o->tooltip("The label style for the widget.");
- o->box(FL_THIN_UP_BOX);
- o->down_box(FL_BORDER_BOX);
+ { tabs_wizard = new Fl_Wizard(10, 10, 400, 350);
+ tabs_wizard->box(FL_NO_BOX);
+ tabs_wizard->labelsize(11);
+ tabs_wizard->callback((Fl_Callback*)cb_tabs_wizard);
+ { Fl_Tabs* o = widget_tabs = new Fl_Tabs(10, 10, 400, 350);
+ widget_tabs->selection_color((Fl_Color)12);
+ widget_tabs->labelsize(11);
+ widget_tabs->labelcolor(FL_BACKGROUND2_COLOR);
+ widget_tabs->callback((Fl_Callback*)cb_widget_tabs);
+ widget_tabs->when(FL_WHEN_NEVER);
+ { wp_gui_tab = new Fl_Group(10, 30, 400, 330, "GUI");
+ wp_gui_tab->labelsize(11);
+ wp_gui_tab->callback((Fl_Callback*)propagate_load);
+ wp_gui_tab->when(FL_WHEN_NEVER);
+ { Fl_Group* o = new Fl_Group(95, 40, 309, 20, "Label:");
o->labelfont(1);
o->labelsize(11);
- o->textsize(11);
- o->callback((Fl_Callback*)labeltype_cb);
- o->menu(labeltypemenu);
- } // Fl_Choice* o
- o->end();
- } // Fl_Group* o
- { Fl_Group* o = new Fl_Group(95, 65, 309, 20, "Image:");
- o->labelfont(1);
- o->labelsize(11);
- o->callback((Fl_Callback*)propagate_load);
- o->align(Fl_Align(FL_ALIGN_LEFT));
- { widget_image_input = new Fl_Input(95, 65, 200, 20);
- widget_image_input->tooltip("The active image for the widget.");
- widget_image_input->labelfont(1);
- widget_image_input->labelsize(11);
- widget_image_input->textsize(11);
- widget_image_input->callback((Fl_Callback*)cb_widget_image_input);
- Fl_Group::current()->resizable(widget_image_input);
- } // Fl_Input* widget_image_input
- { Fl_Button* o = new Fl_Button(295, 65, 89, 20, "Browse...");
- o->tooltip("Click to choose the active image.");
- o->labelsize(11);
- o->callback((Fl_Callback*)cb_Browse);
- o->align(Fl_Align(256));
- } // Fl_Button* o
- { Fl_Button* o = new Fl_Button(384, 65, 20, 20, "...");
- o->tooltip("more image options");
- o->callback((Fl_Callback*)cb_);
- } // Fl_Button* o
- o->end();
- } // Fl_Group* o
- { Fl_Group* o = new Fl_Group(95, 90, 309, 20, "Inactive:");
- o->labelfont(1);
- o->labelsize(11);
- o->callback((Fl_Callback*)propagate_load);
- o->align(Fl_Align(FL_ALIGN_LEFT));
- { widget_deimage_input = new Fl_Input(95, 90, 200, 20);
- widget_deimage_input->tooltip("The inactive image for the widget.");
- widget_deimage_input->labelfont(1);
- widget_deimage_input->labelsize(11);
- widget_deimage_input->textsize(11);
- widget_deimage_input->callback((Fl_Callback*)cb_widget_deimage_input);
- Fl_Group::current()->resizable(widget_deimage_input);
- } // Fl_Input* widget_deimage_input
- { Fl_Button* o = new Fl_Button(295, 90, 89, 20, "Browse...");
- o->tooltip("Click to choose the inactive image.");
- o->labelsize(11);
- o->callback((Fl_Callback*)cb_Browse1);
- } // Fl_Button* o
- o->end();
- } // Fl_Group* o
- { wp_gui_alignment = new Fl_Group(95, 115, 312, 20, "Alignment:");
- wp_gui_alignment->labelfont(1);
- wp_gui_alignment->labelsize(11);
- wp_gui_alignment->callback((Fl_Callback*)propagate_load);
- wp_gui_alignment->align(Fl_Align(FL_ALIGN_LEFT));
- { Fl_Button* o = new Fl_Button(95, 115, 30, 20, "Clip");
- o->tooltip("Clip the label to the inside of the widget.");
- o->type(1);
- o->selection_color(FL_INACTIVE_COLOR);
- o->labelsize(11);
- o->callback((Fl_Callback*)align_cb, (void*)((fl_intptr_t)FL_ALIGN_CLIP));
- o->align(Fl_Align(FL_ALIGN_CENTER|FL_ALIGN_INSIDE));
- } // Fl_Button* o
- { Fl_Button* o = new Fl_Button(130, 115, 38, 20, "Wrap");
- o->tooltip("Wrap the label text.");
- o->type(1);
- o->selection_color(FL_INACTIVE_COLOR);
- o->labelsize(11);
- o->callback((Fl_Callback*)align_cb, (void*)((fl_intptr_t)FL_ALIGN_WRAP));
- } // Fl_Button* o
- { Fl_Button* o = new Fl_Button(278, 115, 20, 20, "@-1<-");
- o->tooltip("Left-align the label.");
- o->type(1);
- o->selection_color(FL_INACTIVE_COLOR);
- o->labelsize(11);
- o->labelcolor(FL_INACTIVE_COLOR);
- o->callback((Fl_Callback*)align_cb, (void*)((fl_intptr_t)FL_ALIGN_LEFT));
- o->hide();
- } // Fl_Button* o
- { Fl_Button* o = new Fl_Button(303, 115, 20, 20, "@-1->");
- o->tooltip("Right-align the label.");
- o->type(1);
- o->selection_color(FL_INACTIVE_COLOR);
- o->labelsize(11);
- o->labelcolor(FL_INACTIVE_COLOR);
- o->callback((Fl_Callback*)align_cb, (void*)((fl_intptr_t)FL_ALIGN_RIGHT));
- o->hide();
- } // Fl_Button* o
- { Fl_Button* o = new Fl_Button(328, 115, 20, 20, "@-18");
- o->tooltip("Top-align the label.");
- o->type(1);
- o->selection_color(FL_INACTIVE_COLOR);
- o->labelsize(11);
- o->labelcolor(FL_INACTIVE_COLOR);
- o->callback((Fl_Callback*)align_cb, (void*)((fl_intptr_t)FL_ALIGN_TOP));
- o->hide();
- } // Fl_Button* o
- { Fl_Button* o = new Fl_Button(353, 115, 20, 20, "@-12");
- o->tooltip("Bottom-align the label.");
- o->type(1);
- o->selection_color(FL_INACTIVE_COLOR);
- o->labelsize(11);
- o->labelcolor(FL_INACTIVE_COLOR);
- o->callback((Fl_Callback*)align_cb, (void*)((fl_intptr_t)FL_ALIGN_BOTTOM));
- o->hide();
- } // Fl_Button* o
- { Fl_Choice* o = new Fl_Choice(172, 115, 116, 20);
- o->down_box(FL_BORDER_BOX);
- o->labelsize(11);
- o->textsize(11);
- o->callback((Fl_Callback*)align_text_image_cb);
- o->menu(menu_);
- } // Fl_Choice* o
- { Fl_Choice* o = new Fl_Choice(293, 115, 86, 20);
- o->down_box(FL_BORDER_BOX);
+ o->callback((Fl_Callback*)propagate_load);
+ o->align(Fl_Align(FL_ALIGN_LEFT));
+ { wp_gui_label = new Fl_Input(95, 40, 190, 20);
+ wp_gui_label->tooltip("The label text for the widget.\nUse Ctrl-J for newlines.");
+ wp_gui_label->labelfont(1);
+ wp_gui_label->labelsize(11);
+ wp_gui_label->textsize(11);
+ wp_gui_label->callback((Fl_Callback*)label_cb);
+ wp_gui_label->when(FL_WHEN_RELEASE | FL_WHEN_ENTER_KEY_CHANGED);
+ Fl_Group::current()->resizable(wp_gui_label);
+ } // Fl_Input* wp_gui_label
+ { Fl_Choice* o = new Fl_Choice(285, 40, 119, 20);
+ o->tooltip("The label style for the widget.");
+ o->box(FL_THIN_UP_BOX);
+ o->down_box(FL_BORDER_BOX);
+ o->labelfont(1);
+ o->labelsize(11);
+ o->textsize(11);
+ o->callback((Fl_Callback*)labeltype_cb);
+ o->menu(labeltypemenu);
+ } // Fl_Choice* o
+ o->end();
+ } // Fl_Group* o
+ { Fl_Group* o = new Fl_Group(95, 65, 309, 20, "Image:");
+ o->labelfont(1);
o->labelsize(11);
- o->textsize(11);
- o->callback((Fl_Callback*)align_position_cb);
- o->menu(menu_1);
- } // Fl_Choice* o
- { Fl_Button* o = new Fl_Button(384, 115, 20, 20, "@-3square");
- o->tooltip("Show the label inside the widget.");
- o->type(1);
- o->selection_color(FL_INACTIVE_COLOR);
+ o->callback((Fl_Callback*)propagate_load);
+ o->align(Fl_Align(FL_ALIGN_LEFT));
+ { widget_image_input = new Fl_Input(95, 65, 200, 20);
+ widget_image_input->tooltip("The active image for the widget.");
+ widget_image_input->labelfont(1);
+ widget_image_input->labelsize(11);
+ widget_image_input->textsize(11);
+ widget_image_input->callback((Fl_Callback*)cb_widget_image_input);
+ Fl_Group::current()->resizable(widget_image_input);
+ } // Fl_Input* widget_image_input
+ { Fl_Button* o = new Fl_Button(295, 65, 89, 20, "Browse...");
+ o->tooltip("Click to choose the active image.");
+ o->labelsize(11);
+ o->callback((Fl_Callback*)cb_Browse);
+ o->align(Fl_Align(256));
+ } // Fl_Button* o
+ { Fl_Button* o = new Fl_Button(384, 65, 20, 20, "...");
+ o->tooltip("more image options");
+ o->callback((Fl_Callback*)cb_);
+ } // Fl_Button* o
+ o->end();
+ } // Fl_Group* o
+ { Fl_Group* o = new Fl_Group(95, 90, 309, 20, "Inactive:");
+ o->labelfont(1);
o->labelsize(11);
- o->labelcolor(FL_INACTIVE_COLOR);
- o->callback((Fl_Callback*)align_cb, (void*)((fl_intptr_t)FL_ALIGN_INSIDE));
- } // Fl_Button* o
- { Fl_Box* o = new Fl_Box(406, 115, 1, 20);
+ o->callback((Fl_Callback*)propagate_load);
+ o->align(Fl_Align(FL_ALIGN_LEFT));
+ { widget_deimage_input = new Fl_Input(95, 90, 200, 20);
+ widget_deimage_input->tooltip("The inactive image for the widget.");
+ widget_deimage_input->labelfont(1);
+ widget_deimage_input->labelsize(11);
+ widget_deimage_input->textsize(11);
+ widget_deimage_input->callback((Fl_Callback*)cb_widget_deimage_input);
+ Fl_Group::current()->resizable(widget_deimage_input);
+ } // Fl_Input* widget_deimage_input
+ { Fl_Button* o = new Fl_Button(295, 90, 89, 20, "Browse...");
+ o->tooltip("Click to choose the inactive image.");
+ o->labelsize(11);
+ o->callback((Fl_Callback*)cb_Browse1);
+ } // Fl_Button* o
+ o->end();
+ } // Fl_Group* o
+ { wp_gui_alignment = new Fl_Group(95, 115, 312, 20, "Alignment:");
+ wp_gui_alignment->labelfont(1);
+ wp_gui_alignment->labelsize(11);
+ wp_gui_alignment->callback((Fl_Callback*)propagate_load);
+ wp_gui_alignment->align(Fl_Align(FL_ALIGN_LEFT));
+ { Fl_Button* o = new Fl_Button(95, 115, 30, 20, "Clip");
+ o->tooltip("Clip the label to the inside of the widget.");
+ o->type(1);
+ o->selection_color(FL_INACTIVE_COLOR);
+ o->labelsize(11);
+ o->callback((Fl_Callback*)align_cb, (void*)((fl_intptr_t)FL_ALIGN_CLIP));
+ o->align(Fl_Align(FL_ALIGN_CENTER|FL_ALIGN_INSIDE));
+ } // Fl_Button* o
+ { Fl_Button* o = new Fl_Button(130, 115, 38, 20, "Wrap");
+ o->tooltip("Wrap the label text.");
+ o->type(1);
+ o->selection_color(FL_INACTIVE_COLOR);
+ o->labelsize(11);
+ o->callback((Fl_Callback*)align_cb, (void*)((fl_intptr_t)FL_ALIGN_WRAP));
+ } // Fl_Button* o
+ { Fl_Button* o = new Fl_Button(278, 115, 20, 20, "@-1<-");
+ o->tooltip("Left-align the label.");
+ o->type(1);
+ o->selection_color(FL_INACTIVE_COLOR);
+ o->labelsize(11);
+ o->labelcolor(FL_INACTIVE_COLOR);
+ o->callback((Fl_Callback*)align_cb, (void*)((fl_intptr_t)FL_ALIGN_LEFT));
+ o->hide();
+ } // Fl_Button* o
+ { Fl_Button* o = new Fl_Button(303, 115, 20, 20, "@-1->");
+ o->tooltip("Right-align the label.");
+ o->type(1);
+ o->selection_color(FL_INACTIVE_COLOR);
+ o->labelsize(11);
+ o->labelcolor(FL_INACTIVE_COLOR);
+ o->callback((Fl_Callback*)align_cb, (void*)((fl_intptr_t)FL_ALIGN_RIGHT));
+ o->hide();
+ } // Fl_Button* o
+ { Fl_Button* o = new Fl_Button(328, 115, 20, 20, "@-18");
+ o->tooltip("Top-align the label.");
+ o->type(1);
+ o->selection_color(FL_INACTIVE_COLOR);
+ o->labelsize(11);
+ o->labelcolor(FL_INACTIVE_COLOR);
+ o->callback((Fl_Callback*)align_cb, (void*)((fl_intptr_t)FL_ALIGN_TOP));
+ o->hide();
+ } // Fl_Button* o
+ { Fl_Button* o = new Fl_Button(353, 115, 20, 20, "@-12");
+ o->tooltip("Bottom-align the label.");
+ o->type(1);
+ o->selection_color(FL_INACTIVE_COLOR);
+ o->labelsize(11);
+ o->labelcolor(FL_INACTIVE_COLOR);
+ o->callback((Fl_Callback*)align_cb, (void*)((fl_intptr_t)FL_ALIGN_BOTTOM));
+ o->hide();
+ } // Fl_Button* o
+ { Fl_Choice* o = new Fl_Choice(172, 115, 116, 20);
+ o->down_box(FL_BORDER_BOX);
+ o->labelsize(11);
+ o->textsize(11);
+ o->callback((Fl_Callback*)align_text_image_cb);
+ o->menu(menu_);
+ } // Fl_Choice* o
+ { Fl_Choice* o = new Fl_Choice(293, 115, 86, 20);
+ o->down_box(FL_BORDER_BOX);
+ o->labelsize(11);
+ o->textsize(11);
+ o->callback((Fl_Callback*)align_position_cb);
+ o->menu(menu_1);
+ } // Fl_Choice* o
+ { Fl_Button* o = new Fl_Button(384, 115, 20, 20, "@-3square");
+ o->tooltip("Show the label inside the widget.");
+ o->type(1);
+ o->selection_color(FL_INACTIVE_COLOR);
+ o->labelsize(11);
+ o->labelcolor(FL_INACTIVE_COLOR);
+ o->callback((Fl_Callback*)align_cb, (void*)((fl_intptr_t)FL_ALIGN_INSIDE));
+ } // Fl_Button* o
+ { Fl_Box* o = new Fl_Box(406, 115, 1, 20);
+ o->labelsize(11);
+ Fl_Group::current()->resizable(o);
+ } // Fl_Box* o
+ wp_gui_alignment->end();
+ } // Fl_Group* wp_gui_alignment
+ { Fl_Group* o = new Fl_Group(95, 150, 314, 20, "Position:");
+ o->labelfont(1);
o->labelsize(11);
- Fl_Group::current()->resizable(o);
- } // Fl_Box* o
- wp_gui_alignment->end();
- } // Fl_Group* wp_gui_alignment
- { Fl_Group* o = new Fl_Group(95, 150, 314, 20, "Position:");
- o->labelfont(1);
- o->labelsize(11);
- o->callback((Fl_Callback*)position_group_cb);
- o->align(Fl_Align(FL_ALIGN_LEFT));
- { widget_x_input = new fld::widget::Formula_Input(95, 150, 55, 20, "X:");
- widget_x_input->tooltip("The X position of the widget as a number or formula.\nFormulas can be simple "
+ o->callback((Fl_Callback*)position_group_cb);
+ o->align(Fl_Align(FL_ALIGN_LEFT));
+ { widget_x_input = new fld::widget::Formula_Input(95, 150, 55, 20, "X:");
+ widget_x_input->tooltip("The X position of the widget as a number or formula.\nFormulas can be simple "
"math, including the variables\nx, px, sx, cx, and i");
- widget_x_input->box(FL_DOWN_BOX);
- widget_x_input->color(FL_BACKGROUND2_COLOR);
- widget_x_input->selection_color(FL_SELECTION_COLOR);
- widget_x_input->labeltype(FL_NORMAL_LABEL);
- widget_x_input->labelfont(0);
- widget_x_input->labelsize(11);
- widget_x_input->labelcolor(FL_FOREGROUND_COLOR);
- widget_x_input->textsize(11);
- widget_x_input->callback((Fl_Callback*)cb_widget_x_input);
- widget_x_input->align(Fl_Align(FL_ALIGN_TOP_LEFT));
- widget_x_input->when(FL_WHEN_RELEASE);
- } // fld::widget::Formula_Input* widget_x_input
- { widget_y_input = new fld::widget::Formula_Input(155, 150, 55, 20, "Y:");
- widget_y_input->tooltip("The Y position of the widget as a number or formula.\nFormulas can be simple "
+ widget_x_input->box(FL_DOWN_BOX);
+ widget_x_input->color(FL_BACKGROUND2_COLOR);
+ widget_x_input->selection_color(FL_SELECTION_COLOR);
+ widget_x_input->labeltype(FL_NORMAL_LABEL);
+ widget_x_input->labelfont(0);
+ widget_x_input->labelsize(11);
+ widget_x_input->labelcolor(FL_FOREGROUND_COLOR);
+ widget_x_input->textsize(11);
+ widget_x_input->callback((Fl_Callback*)cb_widget_x_input);
+ widget_x_input->align(Fl_Align(FL_ALIGN_TOP_LEFT));
+ widget_x_input->when(FL_WHEN_RELEASE);
+ } // fld::widget::Formula_Input* widget_x_input
+ { widget_y_input = new fld::widget::Formula_Input(155, 150, 55, 20, "Y:");
+ widget_y_input->tooltip("The Y position of the widget as a number or formula.\nFormulas can be simple "
"math, including the variables\ny, py, sy, cy, and i");
- widget_y_input->box(FL_DOWN_BOX);
- widget_y_input->color(FL_BACKGROUND2_COLOR);
- widget_y_input->selection_color(FL_SELECTION_COLOR);
- widget_y_input->labeltype(FL_NORMAL_LABEL);
- widget_y_input->labelfont(0);
- widget_y_input->labelsize(11);
- widget_y_input->labelcolor(FL_FOREGROUND_COLOR);
- widget_y_input->textsize(11);
- widget_y_input->callback((Fl_Callback*)cb_widget_y_input);
- widget_y_input->align(Fl_Align(FL_ALIGN_TOP_LEFT));
- widget_y_input->when(FL_WHEN_RELEASE);
- } // fld::widget::Formula_Input* widget_y_input
- { widget_w_input = new fld::widget::Formula_Input(215, 150, 55, 20, "Width:");
- widget_w_input->tooltip("The width of the widget as a number or formula.\nFormulas can be simple math,"
+ widget_y_input->box(FL_DOWN_BOX);
+ widget_y_input->color(FL_BACKGROUND2_COLOR);
+ widget_y_input->selection_color(FL_SELECTION_COLOR);
+ widget_y_input->labeltype(FL_NORMAL_LABEL);
+ widget_y_input->labelfont(0);
+ widget_y_input->labelsize(11);
+ widget_y_input->labelcolor(FL_FOREGROUND_COLOR);
+ widget_y_input->textsize(11);
+ widget_y_input->callback((Fl_Callback*)cb_widget_y_input);
+ widget_y_input->align(Fl_Align(FL_ALIGN_TOP_LEFT));
+ widget_y_input->when(FL_WHEN_RELEASE);
+ } // fld::widget::Formula_Input* widget_y_input
+ { widget_w_input = new fld::widget::Formula_Input(215, 150, 55, 20, "Width:");
+ widget_w_input->tooltip("The width of the widget as a number or formula.\nFormulas can be simple math,"
" including the variables\nw, pw, sw, cw, and i");
- widget_w_input->box(FL_DOWN_BOX);
- widget_w_input->color(FL_BACKGROUND2_COLOR);
- widget_w_input->selection_color(FL_SELECTION_COLOR);
- widget_w_input->labeltype(FL_NORMAL_LABEL);
- widget_w_input->labelfont(0);
- widget_w_input->labelsize(11);
- widget_w_input->labelcolor(FL_FOREGROUND_COLOR);
- widget_w_input->textsize(11);
- widget_w_input->callback((Fl_Callback*)cb_widget_w_input);
- widget_w_input->align(Fl_Align(FL_ALIGN_TOP_LEFT));
- widget_w_input->when(FL_WHEN_RELEASE);
- } // fld::widget::Formula_Input* widget_w_input
- { widget_h_input = new fld::widget::Formula_Input(275, 150, 55, 20, "Height:");
- widget_h_input->tooltip("The height of the widget as a number or formula.\nFormulas can be simple math"
+ widget_w_input->box(FL_DOWN_BOX);
+ widget_w_input->color(FL_BACKGROUND2_COLOR);
+ widget_w_input->selection_color(FL_SELECTION_COLOR);
+ widget_w_input->labeltype(FL_NORMAL_LABEL);
+ widget_w_input->labelfont(0);
+ widget_w_input->labelsize(11);
+ widget_w_input->labelcolor(FL_FOREGROUND_COLOR);
+ widget_w_input->textsize(11);
+ widget_w_input->callback((Fl_Callback*)cb_widget_w_input);
+ widget_w_input->align(Fl_Align(FL_ALIGN_TOP_LEFT));
+ widget_w_input->when(FL_WHEN_RELEASE);
+ } // fld::widget::Formula_Input* widget_w_input
+ { widget_h_input = new fld::widget::Formula_Input(275, 150, 55, 20, "Height:");
+ widget_h_input->tooltip("The height of the widget as a number or formula.\nFormulas can be simple math"
", including the variables\nh, ph, sh, ch, and i");
- widget_h_input->box(FL_DOWN_BOX);
- widget_h_input->color(FL_BACKGROUND2_COLOR);
- widget_h_input->selection_color(FL_SELECTION_COLOR);
- widget_h_input->labeltype(FL_NORMAL_LABEL);
- widget_h_input->labelfont(0);
- widget_h_input->labelsize(11);
- widget_h_input->labelcolor(FL_FOREGROUND_COLOR);
- widget_h_input->textsize(11);
- widget_h_input->callback((Fl_Callback*)cb_widget_h_input);
- widget_h_input->align(Fl_Align(FL_ALIGN_TOP_LEFT));
- widget_h_input->when(FL_WHEN_RELEASE);
- } // fld::widget::Formula_Input* widget_h_input
- { Fl_Choice* o = new Fl_Choice(335, 150, 64, 20, "Children:");
- o->tooltip("When instantiating a widget class, the children can either be fixed in their "
+ widget_h_input->box(FL_DOWN_BOX);
+ widget_h_input->color(FL_BACKGROUND2_COLOR);
+ widget_h_input->selection_color(FL_SELECTION_COLOR);
+ widget_h_input->labeltype(FL_NORMAL_LABEL);
+ widget_h_input->labelfont(0);
+ widget_h_input->labelsize(11);
+ widget_h_input->labelcolor(FL_FOREGROUND_COLOR);
+ widget_h_input->textsize(11);
+ widget_h_input->callback((Fl_Callback*)cb_widget_h_input);
+ widget_h_input->align(Fl_Align(FL_ALIGN_TOP_LEFT));
+ widget_h_input->when(FL_WHEN_RELEASE);
+ } // fld::widget::Formula_Input* widget_h_input
+ { Fl_Choice* o = new Fl_Choice(335, 150, 64, 20, "Children:");
+ o->tooltip("When instantiating a widget class, the children can either be fixed in their "
"original position, automatically be repositioned, or both repsositioned and re"
"sized to fit the container.");
- o->down_box(FL_BORDER_BOX);
+ o->down_box(FL_BORDER_BOX);
+ o->labelsize(11);
+ o->textsize(11);
+ o->callback((Fl_Callback*)cb_Children);
+ o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
+ o->menu(menu_Children);
+ } // Fl_Choice* o
+ { Fl_Box* o = new Fl_Box(399, 150, 1, 20);
+ o->hide();
+ Fl_Group::current()->resizable(o);
+ } // Fl_Box* o
+ o->end();
+ } // Fl_Group* o
+ { // This group is only visible if the parent is an Fl_Flex widget
+ wp_gui_flexp = new Fl_Group(95, 150, 314, 20, "Flex Parent:");
+ wp_gui_flexp->labelfont(1);
+ wp_gui_flexp->labelsize(11);
+ wp_gui_flexp->callback((Fl_Callback*)cb_wp_gui_flexp);
+ wp_gui_flexp->align(Fl_Align(FL_ALIGN_LEFT));
+ wp_gui_flexp->hide();
+ { widget_flex_size = new Fl_Value_Input(95, 150, 55, 20, "Size:");
+ widget_flex_size->tooltip("Fixed Width or Height for a horizontal or vertical Fl_Flex Parent.");
+ widget_flex_size->labelsize(11);
+ widget_flex_size->textsize(11);
+ widget_flex_size->callback((Fl_Callback*)cb_widget_flex_size);
+ widget_flex_size->align(Fl_Align(FL_ALIGN_TOP_LEFT));
+ } // Fl_Value_Input* widget_flex_size
+ { widget_flex_fixed = new Fl_Check_Button(155, 150, 55, 20, "fixed");
+ widget_flex_fixed->tooltip("If checked, the size of the widget stays fixed.");
+ widget_flex_fixed->down_box(FL_DOWN_BOX);
+ widget_flex_fixed->labelsize(11);
+ widget_flex_fixed->callback((Fl_Callback*)cb_widget_flex_fixed);
+ } // Fl_Check_Button* widget_flex_fixed
+ { Fl_Box* o = new Fl_Box(398, 150, 1, 20);
+ Fl_Group::current()->resizable(o);
+ } // Fl_Box* o
+ wp_gui_flexp->end();
+ } // Fl_Group* wp_gui_flexp
+ { wp_gui_values = new Fl_Group(95, 185, 300, 20, "Values:");
+ wp_gui_values->labelfont(1);
+ wp_gui_values->labelsize(11);
+ wp_gui_values->callback((Fl_Callback*)cb_wp_gui_values);
+ wp_gui_values->align(Fl_Align(FL_ALIGN_LEFT));
+ { Fl_Value_Input* o = new Fl_Value_Input(95, 185, 55, 20, "Size:");
+ o->tooltip("The size of the slider.");
+ o->labelsize(11);
+ o->textsize(11);
+ o->callback((Fl_Callback*)cb_Size);
+ o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
+ } // Fl_Value_Input* o
+ { Fl_Value_Input* o = new Fl_Value_Input(155, 185, 55, 20, "Minimum:");
+ o->tooltip("The minimum value of the widget.");
+ o->labelsize(11);
+ o->textsize(11);
+ o->callback((Fl_Callback*)cb_Minimum);
+ o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
+ } // Fl_Value_Input* o
+ { Fl_Value_Input* o = new Fl_Value_Input(215, 185, 55, 20, "Maximum:");
+ o->tooltip("The maximum value of the widget.");
+ o->labelsize(11);
+ o->value(1);
+ o->textsize(11);
+ o->callback((Fl_Callback*)cb_Maximum);
+ o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
+ } // Fl_Value_Input* o
+ { Fl_Value_Input* o = new Fl_Value_Input(275, 185, 55, 20, "Step:");
+ o->tooltip("The resolution of the widget value.");
+ o->labelsize(11);
+ o->textsize(11);
+ o->callback((Fl_Callback*)cb_Step);
+ o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
+ } // Fl_Value_Input* o
+ { Fl_Value_Input* o = new Fl_Value_Input(335, 185, 55, 20, "Value:");
+ o->tooltip("The current widget value.");
+ o->labelsize(11);
+ o->textsize(11);
+ o->callback((Fl_Callback*)cb_Value);
+ o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
+ } // Fl_Value_Input* o
+ { Fl_Box* o = new Fl_Box(395, 185, 0, 20);
+ Fl_Group::current()->resizable(o);
+ } // Fl_Box* o
+ wp_gui_values->end();
+ } // Fl_Group* wp_gui_values
+ { // This group is only visible for Fl_Flex widgets
+ wp_gui_margins = new Fl_Group(95, 185, 300, 20, "Margins:");
+ wp_gui_margins->labelfont(1);
+ wp_gui_margins->labelsize(11);
+ wp_gui_margins->callback((Fl_Callback*)cb_wp_gui_margins);
+ wp_gui_margins->align(Fl_Align(FL_ALIGN_LEFT));
+ wp_gui_margins->hide();
+ { Fl_Value_Input* o = new Fl_Value_Input(95, 185, 55, 20, "Left:");
+ o->tooltip("Left margin in group.");
+ o->labelsize(11);
+ o->textsize(11);
+ o->callback((Fl_Callback*)cb_Left);
+ o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
+ } // Fl_Value_Input* o
+ { Fl_Value_Input* o = new Fl_Value_Input(155, 185, 55, 20, "Top:");
+ o->tooltip("Top margin in group.");
+ o->labelsize(11);
+ o->textsize(11);
+ o->callback((Fl_Callback*)cb_Top);
+ o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
+ } // Fl_Value_Input* o
+ { Fl_Value_Input* o = new Fl_Value_Input(215, 185, 55, 20, "Right:");
+ o->tooltip("Right margin in group.");
+ o->labelsize(11);
+ o->textsize(11);
+ o->callback((Fl_Callback*)cb_Right);
+ o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
+ } // Fl_Value_Input* o
+ { Fl_Value_Input* o = new Fl_Value_Input(275, 185, 55, 20, "Bottom:");
+ o->tooltip("Bottom margin in group.");
+ o->labelsize(11);
+ o->textsize(11);
+ o->callback((Fl_Callback*)cb_Bottom);
+ o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
+ } // Fl_Value_Input* o
+ { Fl_Value_Input* o = new Fl_Value_Input(335, 185, 55, 20, "Gap:");
+ o->tooltip("Gap between children.");
+ o->labelsize(11);
+ o->textsize(11);
+ o->callback((Fl_Callback*)cb_Gap);
+ o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
+ } // Fl_Value_Input* o
+ { Fl_Box* o = new Fl_Box(395, 185, 0, 20);
+ Fl_Group::current()->resizable(o);
+ } // Fl_Box* o
+ wp_gui_margins->end();
+ } // Fl_Group* wp_gui_margins
+ { wp_gui_sizerange = new Fl_Group(95, 185, 300, 20, "Size Range:");
+ wp_gui_sizerange->labelfont(1);
+ wp_gui_sizerange->labelsize(11);
+ wp_gui_sizerange->callback((Fl_Callback*)cb_wp_gui_sizerange);
+ wp_gui_sizerange->align(Fl_Align(FL_ALIGN_LEFT));
+ wp_gui_sizerange->hide();
+ { Fl_Value_Input* o = new Fl_Value_Input(95, 185, 55, 20, "Minimum Size:");
+ o->tooltip("The size of the slider.");
+ o->labelsize(11);
+ o->maximum(2048);
+ o->step(1);
+ o->textsize(11);
+ o->callback((Fl_Callback*)cb_Minimum1);
+ o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
+ } // Fl_Value_Input* o
+ { Fl_Value_Input* o = new Fl_Value_Input(155, 185, 55, 20);
+ o->tooltip("The minimum value of the widget.");
+ o->labelsize(11);
+ o->maximum(2048);
+ o->step(1);
+ o->textsize(11);
+ o->callback((Fl_Callback*)cb_1);
+ o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
+ } // Fl_Value_Input* o
+ { Fl_Button* o = new Fl_Button(215, 185, 25, 20, "set");
+ o->labelsize(11);
+ o->callback((Fl_Callback*)cb_set);
+ } // Fl_Button* o
+ { Fl_Value_Input* o = new Fl_Value_Input(245, 185, 55, 20, "Maximum Size:");
+ o->tooltip("The maximum value of the widget.");
+ o->labelsize(11);
+ o->maximum(2048);
+ o->step(1);
+ o->textsize(11);
+ o->callback((Fl_Callback*)cb_Maximum1);
+ o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
+ } // Fl_Value_Input* o
+ { Fl_Value_Input* o = new Fl_Value_Input(305, 185, 55, 20);
+ o->tooltip("The resolution of the widget value.");
+ o->labelsize(11);
+ o->maximum(2048);
+ o->step(1);
+ o->textsize(11);
+ o->callback((Fl_Callback*)cb_2);
+ o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
+ } // Fl_Value_Input* o
+ { Fl_Button* o = new Fl_Button(365, 185, 25, 20, "set");
+ o->labelsize(11);
+ o->callback((Fl_Callback*)cb_set1);
+ } // Fl_Button* o
+ { Fl_Box* o = new Fl_Box(395, 185, 0, 20);
+ Fl_Group::current()->resizable(o);
+ } // Fl_Box* o
+ wp_gui_sizerange->end();
+ } // Fl_Group* wp_gui_sizerange
+ { Fl_Group* o = new Fl_Group(95, 210, 310, 20, "Shortcut:");
+ o->labelfont(1);
o->labelsize(11);
- o->textsize(11);
- o->callback((Fl_Callback*)cb_Children);
- o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
- o->menu(menu_Children);
- } // Fl_Choice* o
- { Fl_Box* o = new Fl_Box(399, 150, 1, 20);
+ o->callback((Fl_Callback*)propagate_load);
+ o->align(Fl_Align(FL_ALIGN_LEFT));
+ { // This is a special button that grabs keystrokes directly
+ wp_gui_shortcut = new Fl_Shortcut_Button(95, 210, 310, 20);
+ wp_gui_shortcut->tooltip("The shortcut key for the widget.\nUse \'Backspace\' key to clear.");
+ wp_gui_shortcut->box(FL_DOWN_BOX);
+ wp_gui_shortcut->color(FL_BACKGROUND2_COLOR);
+ wp_gui_shortcut->selection_color((Fl_Color)12);
+ wp_gui_shortcut->labeltype(FL_NORMAL_LABEL);
+ wp_gui_shortcut->labelfont(0);
+ wp_gui_shortcut->labelsize(11);
+ wp_gui_shortcut->labelcolor(FL_FOREGROUND_COLOR);
+ wp_gui_shortcut->callback((Fl_Callback*)cb_wp_gui_shortcut);
+ wp_gui_shortcut->align(Fl_Align(FL_ALIGN_CENTER));
+ wp_gui_shortcut->when(FL_WHEN_CHANGED);
+ } // Fl_Shortcut_Button* wp_gui_shortcut
+ o->end();
+ } // Fl_Group* o
+ { wp_gui_xclass = new Fl_Group(95, 235, 300, 20, "X Class:");
+ wp_gui_xclass->labelfont(1);
+ wp_gui_xclass->labelsize(11);
+ wp_gui_xclass->callback((Fl_Callback*)propagate_load);
+ wp_gui_xclass->align(Fl_Align(FL_ALIGN_LEFT));
+ { Fl_Input* o = new Fl_Input(95, 235, 95, 20, ":");
+ o->tooltip("The X resource class.");
+ o->labelfont(1);
+ o->labelsize(11);
+ o->textsize(11);
+ o->callback((Fl_Callback*)cb_3);
+ Fl_Group::current()->resizable(o);
+ } // Fl_Input* o
+ { Fl_Light_Button* o = new Fl_Light_Button(195, 235, 60, 20, "Border");
+ o->tooltip("Add a border around the window.");
+ o->selection_color((Fl_Color)1);
+ o->labelsize(11);
+ o->callback((Fl_Callback*)cb_Border);
+ } // Fl_Light_Button* o
+ { Fl_Light_Button* o = new Fl_Light_Button(260, 235, 55, 20, "Modal");
+ o->tooltip("Make the window modal.");
+ o->selection_color((Fl_Color)1);
+ o->labelsize(11);
+ o->callback((Fl_Callback*)cb_Modal);
+ } // Fl_Light_Button* o
+ { Fl_Light_Button* o = new Fl_Light_Button(320, 235, 75, 20, "Nonmodal");
+ o->tooltip("Make the window non-modal.");
+ o->selection_color((Fl_Color)1);
+ o->labelsize(11);
+ o->callback((Fl_Callback*)cb_Nonmodal);
+ o->align(Fl_Align(132|FL_ALIGN_INSIDE));
+ } // Fl_Light_Button* o
+ wp_gui_xclass->end();
+ } // Fl_Group* wp_gui_xclass
+ { wp_gui_attributes = new Fl_Group(95, 260, 305, 20, "Attributes:");
+ wp_gui_attributes->labelfont(1);
+ wp_gui_attributes->labelsize(11);
+ wp_gui_attributes->callback((Fl_Callback*)propagate_load);
+ wp_gui_attributes->align(Fl_Align(FL_ALIGN_LEFT));
+ { Fl_Light_Button* o = new Fl_Light_Button(95, 260, 60, 20, "Visible");
+ o->tooltip("Show the widget.");
+ o->selection_color((Fl_Color)1);
+ o->labelsize(11);
+ o->callback((Fl_Callback*)cb_Visible);
+ } // Fl_Light_Button* o
+ { Fl_Light_Button* o = new Fl_Light_Button(160, 260, 60, 20, "Active");
+ o->tooltip("Activate the widget.");
+ o->selection_color((Fl_Color)1);
+ o->labelsize(11);
+ o->callback((Fl_Callback*)cb_Active);
+ } // Fl_Light_Button* o
+ { Fl_Light_Button* o = new Fl_Light_Button(225, 260, 75, 20, "Resizable");
+ o->tooltip("Make the widget resizable.");
+ o->selection_color((Fl_Color)1);
+ o->labelsize(11);
+ o->callback((Fl_Callback*)cb_Resizable);
+ o->when(FL_WHEN_CHANGED);
+ } // Fl_Light_Button* o
+ { Fl_Light_Button* o = new Fl_Light_Button(225, 260, 75, 20, "Headline");
+ o->tooltip("Make a menu item the headline of a menu\nunselectable, but not grayed out");
+ o->selection_color((Fl_Color)1);
+ o->labelsize(11);
+ o->callback((Fl_Callback*)cb_Headline);
+ o->when(FL_WHEN_CHANGED);
+ o->hide();
+ } // Fl_Light_Button* o
+ { Fl_Light_Button* o = new Fl_Light_Button(305, 260, 70, 20, "Hotspot");
+ o->tooltip("Center the window under this widget.");
+ o->selection_color((Fl_Color)1);
+ o->labelsize(11);
+ o->callback((Fl_Callback*)cb_Hotspot);
+ o->when(FL_WHEN_CHANGED);
+ } // Fl_Light_Button* o
+ { Fl_Box* o = new Fl_Box(395, 260, 0, 20);
+ o->labelsize(11);
+ Fl_Group::current()->resizable(o);
+ } // Fl_Box* o
+ wp_gui_attributes->end();
+ } // Fl_Group* wp_gui_attributes
+ { wp_gui_tooltip = new Fl_Input(95, 285, 310, 20, "Tooltip:");
+ wp_gui_tooltip->tooltip("The tooltip text for the widget.\nUse Ctrl-J for newlines.");
+ wp_gui_tooltip->labelfont(1);
+ wp_gui_tooltip->labelsize(11);
+ wp_gui_tooltip->textsize(11);
+ wp_gui_tooltip->callback((Fl_Callback*)cb_wp_gui_tooltip);
+ } // Fl_Input* wp_gui_tooltip
+ { Fl_Box* o = new Fl_Box(95, 305, 300, 5);
o->hide();
Fl_Group::current()->resizable(o);
} // Fl_Box* o
- o->end();
- } // Fl_Group* o
- { // This group is only visible if the parent is an Fl_Flex widget
- wp_gui_flexp = new Fl_Group(95, 150, 314, 20, "Flex Parent:");
- wp_gui_flexp->labelfont(1);
- wp_gui_flexp->labelsize(11);
- wp_gui_flexp->callback((Fl_Callback*)cb_wp_gui_flexp);
- wp_gui_flexp->align(Fl_Align(FL_ALIGN_LEFT));
- wp_gui_flexp->hide();
- { widget_flex_size = new Fl_Value_Input(95, 150, 55, 20, "Size:");
- widget_flex_size->tooltip("Fixed Width or Height for a horizontal or vertical Fl_Flex Parent.");
- widget_flex_size->labelsize(11);
- widget_flex_size->textsize(11);
- widget_flex_size->callback((Fl_Callback*)cb_widget_flex_size);
- widget_flex_size->align(Fl_Align(FL_ALIGN_TOP_LEFT));
- } // Fl_Value_Input* widget_flex_size
- { widget_flex_fixed = new Fl_Check_Button(155, 150, 55, 20, "fixed");
- widget_flex_fixed->tooltip("If checked, the size of the widget stays fixed.");
- widget_flex_fixed->down_box(FL_DOWN_BOX);
- widget_flex_fixed->labelsize(11);
- widget_flex_fixed->callback((Fl_Callback*)cb_widget_flex_fixed);
- } // Fl_Check_Button* widget_flex_fixed
- { Fl_Box* o = new Fl_Box(398, 150, 1, 20);
- Fl_Group::current()->resizable(o);
- } // Fl_Box* o
- wp_gui_flexp->end();
- } // Fl_Group* wp_gui_flexp
- { wp_gui_values = new Fl_Group(95, 185, 300, 20, "Values:");
- wp_gui_values->labelfont(1);
- wp_gui_values->labelsize(11);
- wp_gui_values->callback((Fl_Callback*)cb_wp_gui_values);
- wp_gui_values->align(Fl_Align(FL_ALIGN_LEFT));
- { Fl_Value_Input* o = new Fl_Value_Input(95, 185, 55, 20, "Size:");
- o->tooltip("The size of the slider.");
- o->labelsize(11);
- o->textsize(11);
- o->callback((Fl_Callback*)cb_Size);
- o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
- } // Fl_Value_Input* o
- { Fl_Value_Input* o = new Fl_Value_Input(155, 185, 55, 20, "Minimum:");
- o->tooltip("The minimum value of the widget.");
- o->labelsize(11);
- o->textsize(11);
- o->callback((Fl_Callback*)cb_Minimum);
- o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
- } // Fl_Value_Input* o
- { Fl_Value_Input* o = new Fl_Value_Input(215, 185, 55, 20, "Maximum:");
- o->tooltip("The maximum value of the widget.");
+ wp_gui_tab->end();
+ Fl_Group::current()->resizable(wp_gui_tab);
+ } // Fl_Group* wp_gui_tab
+ { wp_style_tab = new Fl_Group(10, 30, 400, 330, "Style");
+ wp_style_tab->labelsize(11);
+ wp_style_tab->callback((Fl_Callback*)propagate_load);
+ wp_style_tab->when(FL_WHEN_NEVER);
+ wp_style_tab->hide();
+ { wp_style_label = new Fl_Group(99, 40, 305, 20, "Label Font:");
+ wp_style_label->labelfont(1);
+ wp_style_label->labelsize(11);
+ wp_style_label->callback((Fl_Callback*)propagate_load);
+ wp_style_label->align(Fl_Align(FL_ALIGN_LEFT));
+ { Fl_Choice* o = new Fl_Choice(99, 40, 148, 20);
+ o->tooltip("The style of the label text.");
+ o->box(FL_THIN_UP_BOX);
+ o->down_box(FL_BORDER_BOX);
+ o->labelfont(1);
+ o->labelsize(11);
+ o->textsize(11);
+ o->callback((Fl_Callback*)cb_4);
+ Fl_Group::current()->resizable(o);
+ o->menu(fontmenu);
+ } // Fl_Choice* o
+ { Fl_Value_Input* o = new Fl_Value_Input(247, 40, 49, 20);
+ o->tooltip("The size of the label text.");
+ o->labelsize(11);
+ o->maximum(100);
+ o->step(1);
+ o->value(14);
+ o->textsize(11);
+ o->callback((Fl_Callback*)cb_5);
+ } // Fl_Value_Input* o
+ { w_labelcolor = new Fl_Button(296, 40, 90, 20, "Label Color");
+ w_labelcolor->tooltip("The color of the label text.");
+ w_labelcolor->labelsize(11);
+ w_labelcolor->callback((Fl_Callback*)cb_w_labelcolor);
+ } // Fl_Button* w_labelcolor
+ { Fl_Menu_Button* o = new Fl_Menu_Button(386, 40, 18, 20);
+ o->callback((Fl_Callback*)cb_6);
+ o->menu(colormenu);
+ } // Fl_Menu_Button* o
+ wp_style_label->end();
+ } // Fl_Group* wp_style_label
+ { wp_style_box = new Fl_Group(99, 65, 305, 20, "Box:");
+ wp_style_box->labelfont(1);
+ wp_style_box->labelsize(11);
+ wp_style_box->callback((Fl_Callback*)propagate_load);
+ wp_style_box->align(Fl_Align(FL_ALIGN_LEFT));
+ { Fl_Choice* o = new Fl_Choice(100, 65, 196, 20);
+ o->tooltip("The \"up\" box of the widget.");
+ o->box(FL_THIN_UP_BOX);
+ o->down_box(FL_BORDER_BOX);
+ o->labelfont(1);
+ o->labelsize(11);
+ o->textsize(11);
+ o->callback((Fl_Callback*)cb_7);
+ Fl_Group::current()->resizable(o);
+ o->menu(boxmenu);
+ } // Fl_Choice* o
+ { w_color = new Fl_Button(296, 65, 90, 20, "Color");
+ w_color->tooltip("The background color of the widget.");
+ w_color->labelsize(11);
+ w_color->callback((Fl_Callback*)cb_w_color);
+ } // Fl_Button* w_color
+ { Fl_Menu_Button* o = new Fl_Menu_Button(386, 65, 18, 20);
+ o->callback((Fl_Callback*)cb_8);
+ o->menu(colormenu);
+ } // Fl_Menu_Button* o
+ wp_style_box->end();
+ } // Fl_Group* wp_style_box
+ { wp_style_downbox = new Fl_Group(99, 90, 305, 20, "Down Box:");
+ wp_style_downbox->labelfont(1);
+ wp_style_downbox->labelsize(11);
+ wp_style_downbox->callback((Fl_Callback*)propagate_load);
+ wp_style_downbox->align(Fl_Align(FL_ALIGN_LEFT));
+ { Fl_Choice* o = new Fl_Choice(99, 90, 197, 20);
+ o->tooltip("The \"down\" box of the widget.");
+ o->box(FL_THIN_UP_BOX);
+ o->down_box(FL_BORDER_BOX);
+ o->labelfont(1);
+ o->labelsize(11);
+ o->textsize(11);
+ o->callback((Fl_Callback*)cb_9);
+ Fl_Group::current()->resizable(o);
+ o->menu(boxmenu);
+ } // Fl_Choice* o
+ { w_selectcolor = new Fl_Button(296, 90, 90, 20, "Select Color");
+ w_selectcolor->tooltip("The selection color of the widget.");
+ w_selectcolor->labelsize(11);
+ w_selectcolor->callback((Fl_Callback*)cb_w_selectcolor);
+ } // Fl_Button* w_selectcolor
+ { Fl_Menu_Button* o = new Fl_Menu_Button(386, 90, 18, 20);
+ o->callback((Fl_Callback*)cb_a);
+ o->menu(colormenu);
+ } // Fl_Menu_Button* o
+ wp_style_downbox->end();
+ } // Fl_Group* wp_style_downbox
+ { wp_style_text = new Fl_Group(99, 115, 305, 20, "Text Font:");
+ wp_style_text->labelfont(1);
+ wp_style_text->labelsize(11);
+ wp_style_text->callback((Fl_Callback*)propagate_load);
+ wp_style_text->align(Fl_Align(FL_ALIGN_LEFT));
+ { Fl_Choice* o = new Fl_Choice(99, 115, 148, 20);
+ o->tooltip("The value text style.");
+ o->box(FL_DOWN_BOX);
+ o->down_box(FL_BORDER_BOX);
+ o->labelfont(1);
+ o->labelsize(11);
+ o->textsize(11);
+ o->callback((Fl_Callback*)cb_b);
+ Fl_Group::current()->resizable(o);
+ o->menu(fontmenu);
+ } // Fl_Choice* o
+ { Fl_Value_Input* o = new Fl_Value_Input(247, 115, 49, 20);
+ o->tooltip("The value text size.");
+ o->labelsize(11);
+ o->maximum(100);
+ o->step(1);
+ o->value(14);
+ o->textsize(11);
+ o->callback((Fl_Callback*)cb_c);
+ } // Fl_Value_Input* o
+ { w_textcolor = new Fl_Button(296, 115, 90, 20, "Text Color");
+ w_textcolor->tooltip("The value text color.");
+ w_textcolor->labelsize(11);
+ w_textcolor->callback((Fl_Callback*)cb_w_textcolor);
+ } // Fl_Button* w_textcolor
+ { Fl_Menu_Button* o = new Fl_Menu_Button(386, 115, 18, 20);
+ o->callback((Fl_Callback*)cb_d);
+ o->menu(colormenu);
+ } // Fl_Menu_Button* o
+ wp_style_text->end();
+ } // Fl_Group* wp_style_text
+ { Fl_Group* o = new Fl_Group(99, 150, 242, 20, "Label Margin:");
+ o->labelfont(1);
o->labelsize(11);
- o->value(1);
- o->textsize(11);
- o->callback((Fl_Callback*)cb_Maximum);
- o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
- } // Fl_Value_Input* o
- { Fl_Value_Input* o = new Fl_Value_Input(275, 185, 55, 20, "Step:");
- o->tooltip("The resolution of the widget value.");
+ o->callback((Fl_Callback*)propagate_load);
+ o->align(Fl_Align(FL_ALIGN_LEFT));
+ { Fl_Value_Input* o = new Fl_Value_Input(99, 150, 55, 20, "Horizontal:");
+ o->tooltip("Spacing between label and the horizontally aligned side of the widget.");
+ o->labelsize(11);
+ o->minimum(-127);
+ o->maximum(128);
+ o->step(1);
+ o->textsize(11);
+ o->callback((Fl_Callback*)cb_Horizontal);
+ o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
+ } // Fl_Value_Input* o
+ { Fl_Value_Input* o = new Fl_Value_Input(159, 150, 55, 20, "Vertical:");
+ o->tooltip("Spacing between label and the vertically aligned side of the widget.");
+ o->labelsize(11);
+ o->minimum(-127);
+ o->maximum(127);
+ o->step(1);
+ o->textsize(11);
+ o->callback((Fl_Callback*)cb_Vertical);
+ o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
+ } // Fl_Value_Input* o
+ { Fl_Value_Input* o = new Fl_Value_Input(219, 150, 55, 20, "Image Gap:");
+ o->tooltip("Gap between label image and text in pixels");
+ o->labelsize(11);
+ o->maximum(255);
+ o->step(1);
+ o->textsize(11);
+ o->callback((Fl_Callback*)cb_Image);
+ o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
+ } // Fl_Value_Input* o
+ { Fl_Box* o = new Fl_Box(281, 150, 60, 20);
+ o->labelsize(11);
+ o->hide();
+ Fl_Group::current()->resizable(o);
+ } // Fl_Box* o
+ o->end();
+ } // Fl_Group* o
+ { Fl_Light_Button* o = new Fl_Light_Button(99, 175, 90, 20, "Compact");
+ o->tooltip("use compact box types for closely set buttons");
+ o->selection_color((Fl_Color)1);
o->labelsize(11);
- o->textsize(11);
- o->callback((Fl_Callback*)cb_Step);
- o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
- } // Fl_Value_Input* o
- { Fl_Value_Input* o = new Fl_Value_Input(335, 185, 55, 20, "Value:");
- o->tooltip("The current widget value.");
+ o->callback((Fl_Callback*)cb_Compact);
+ } // Fl_Light_Button* o
+ { Fl_Box* o = new Fl_Box(195, 205, 40, 40);
o->labelsize(11);
- o->textsize(11);
- o->callback((Fl_Callback*)cb_Value);
- o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
- } // Fl_Value_Input* o
- { Fl_Box* o = new Fl_Box(395, 185, 0, 20);
Fl_Group::current()->resizable(o);
} // Fl_Box* o
- wp_gui_values->end();
- } // Fl_Group* wp_gui_values
- { // This group is only visible for Fl_Flex widgets
- wp_gui_margins = new Fl_Group(95, 185, 300, 20, "Margins:");
- wp_gui_margins->labelfont(1);
- wp_gui_margins->labelsize(11);
- wp_gui_margins->callback((Fl_Callback*)cb_wp_gui_margins);
- wp_gui_margins->align(Fl_Align(FL_ALIGN_LEFT));
- wp_gui_margins->hide();
- { Fl_Value_Input* o = new Fl_Value_Input(95, 185, 55, 20, "Left:");
- o->tooltip("Left margin in group.");
- o->labelsize(11);
- o->textsize(11);
- o->callback((Fl_Callback*)cb_Left);
- o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
- } // Fl_Value_Input* o
- { Fl_Value_Input* o = new Fl_Value_Input(155, 185, 55, 20, "Top:");
- o->tooltip("Top margin in group.");
- o->labelsize(11);
- o->textsize(11);
- o->callback((Fl_Callback*)cb_Top);
- o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
- } // Fl_Value_Input* o
- { Fl_Value_Input* o = new Fl_Value_Input(215, 185, 55, 20, "Right:");
- o->tooltip("Right margin in group.");
- o->labelsize(11);
- o->textsize(11);
- o->callback((Fl_Callback*)cb_Right);
- o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
- } // Fl_Value_Input* o
- { Fl_Value_Input* o = new Fl_Value_Input(275, 185, 55, 20, "Bottom:");
- o->tooltip("Bottom margin in group.");
- o->labelsize(11);
- o->textsize(11);
- o->callback((Fl_Callback*)cb_Bottom);
- o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
- } // Fl_Value_Input* o
- { Fl_Value_Input* o = new Fl_Value_Input(335, 185, 55, 20, "Gap:");
- o->tooltip("Gap between children.");
- o->labelsize(11);
- o->textsize(11);
- o->callback((Fl_Callback*)cb_Gap);
- o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
- } // Fl_Value_Input* o
- { Fl_Box* o = new Fl_Box(395, 185, 0, 20);
+ wp_style_tab->end();
+ } // Fl_Group* wp_style_tab
+ { wp_cpp_tab = new Fl_Group(10, 30, 400, 330, "C++");
+ wp_cpp_tab->labelsize(11);
+ wp_cpp_tab->callback((Fl_Callback*)propagate_load);
+ wp_cpp_tab->when(FL_WHEN_NEVER);
+ wp_cpp_tab->hide();
+ { wp_cpp_class = new Fl_Group(95, 40, 310, 20, "Class:");
+ wp_cpp_class->labelfont(1);
+ wp_cpp_class->labelsize(11);
+ wp_cpp_class->callback((Fl_Callback*)propagate_load);
+ wp_cpp_class->align(Fl_Align(FL_ALIGN_LEFT));
+ { Fl_Input* o = new Fl_Input(95, 40, 172, 20);
+ o->tooltip("The widget subclass.");
+ o->labelfont(1);
+ o->labelsize(11);
+ o->textfont(4);
+ o->textsize(11);
+ o->callback((Fl_Callback*)cb_e, (void*)(4));
+ Fl_Group::current()->resizable(o);
+ } // Fl_Input* o
+ { Fl_Choice* o = new Fl_Choice(267, 40, 138, 20);
+ o->tooltip("The widget subtype.");
+ o->box(FL_THIN_UP_BOX);
+ o->down_box(FL_BORDER_BOX);
+ o->labelsize(11);
+ o->textsize(11);
+ o->callback((Fl_Callback*)cb_f);
+ } // Fl_Choice* o
+ wp_cpp_class->end();
+ } // Fl_Group* wp_cpp_class
+ { wp_cpp_name = new Fl_Group(95, 65, 310, 20, "Name:");
+ wp_cpp_name->labelfont(1);
+ wp_cpp_name->labelsize(11);
+ wp_cpp_name->callback((Fl_Callback*)propagate_load);
+ wp_cpp_name->align(Fl_Align(FL_ALIGN_LEFT));
+ { Fl_Input* o = new Fl_Input(95, 65, 235, 20);
+ o->tooltip("The name of the widget.");
+ o->labelfont(1);
+ o->labelsize(11);
+ o->textsize(11);
+ o->callback((Fl_Callback*)cb_10);
+ Fl_Group::current()->resizable(o);
+ } // Fl_Input* o
+ { Fl_Choice* o = new Fl_Choice(330, 65, 75, 20);
+ o->tooltip("Change member access attribute.");
+ o->down_box(FL_BORDER_BOX);
+ o->labelsize(11);
+ o->textsize(11);
+ o->callback((Fl_Callback*)cb_11);
+ o->when(FL_WHEN_CHANGED);
+ o->menu(menu_2);
+ } // Fl_Choice* o
+ { Fl_Choice* o = new Fl_Choice(330, 65, 75, 20);
+ o->tooltip("Change widget accessibility.");
+ o->down_box(FL_BORDER_BOX);
+ o->labelsize(11);
+ o->textsize(11);
+ o->callback((Fl_Callback*)name_public_cb);
+ o->when(FL_WHEN_CHANGED);
+ o->hide();
+ o->menu(menu_3);
+ } // Fl_Choice* o
+ wp_cpp_name->end();
+ } // Fl_Group* wp_cpp_name
+ { v_input[0] = new Fl_Input(95, 90, 310, 20, "Extra Code:");
+ v_input[0]->tooltip("Extra initialization code for the widget.");
+ v_input[0]->labelfont(1);
+ v_input[0]->labelsize(11);
+ v_input[0]->textfont(4);
+ v_input[0]->textsize(11);
+ v_input[0]->callback((Fl_Callback*)cb_v_input, (void*)(0));
+ } // Fl_Input* v_input[0]
+ { v_input[1] = new Fl_Input(95, 110, 310, 20);
+ v_input[1]->tooltip("Extra initialization code for the widget.");
+ v_input[1]->labelsize(11);
+ v_input[1]->textfont(4);
+ v_input[1]->textsize(11);
+ v_input[1]->callback((Fl_Callback*)cb_v_input1, (void*)(1));
+ } // Fl_Input* v_input[1]
+ { v_input[2] = new Fl_Input(95, 130, 310, 20);
+ v_input[2]->tooltip("Extra initialization code for the widget.");
+ v_input[2]->labelsize(11);
+ v_input[2]->textfont(4);
+ v_input[2]->textsize(11);
+ v_input[2]->callback((Fl_Callback*)cb_v_input2, (void*)(2));
+ } // Fl_Input* v_input[2]
+ { v_input[3] = new Fl_Input(95, 150, 310, 20);
+ v_input[3]->tooltip("Extra initialization code for the widget.");
+ v_input[3]->labelsize(11);
+ v_input[3]->textfont(4);
+ v_input[3]->textsize(11);
+ v_input[3]->callback((Fl_Callback*)cb_v_input3, (void*)(3));
+ } // Fl_Input* v_input[3]
+ { Fl_Tile* o = new Fl_Tile(95, 175, 310, 130);
+ o->callback((Fl_Callback*)cb_12);
+ { Fl_Group* o = new Fl_Group(95, 175, 310, 48);
+ o->box(FL_FLAT_BOX);
+ { wComment = new Fl_Text_Editor(95, 175, 310, 45, "Comment:");
+ wComment->tooltip("Write a comment that will appear in the source code and in the widget tree ov"
+"erview.");
+ wComment->box(FL_DOWN_BOX);
+ wComment->labelfont(1);
+ wComment->labelsize(11);
+ wComment->textfont(6);
+ wComment->textsize(11);
+ wComment->textcolor((Fl_Color)59);
+ wComment->callback((Fl_Callback*)cb_wComment);
+ wComment->align(Fl_Align(FL_ALIGN_LEFT));
+ wComment->when(FL_WHEN_CHANGED);
+ Fl_Group::current()->resizable(wComment);
+ wComment->buffer(new Fl_Text_Buffer());
+ } // Fl_Text_Editor* wComment
+ o->end();
+ } // Fl_Group* o
+ { Fl_Group* o = new Fl_Group(95, 223, 310, 82);
+ o->box(FL_FLAT_BOX);
+ { wCallback = new fld::widget::Code_Editor(95, 225, 310, 80, "Callback:");
+ wCallback->tooltip("The callback function or code for the widget. Use the variable name \'o\' to "
+"access the Widget pointer and \'v\' to access the user value.");
+ wCallback->box(FL_DOWN_BOX);
+ wCallback->color(FL_BACKGROUND2_COLOR);
+ wCallback->selection_color(FL_SELECTION_COLOR);
+ wCallback->labeltype(FL_NORMAL_LABEL);
+ wCallback->labelfont(1);
+ wCallback->labelsize(11);
+ wCallback->labelcolor(FL_FOREGROUND_COLOR);
+ wCallback->textfont(4);
+ wCallback->textsize(11);
+ wCallback->callback((Fl_Callback*)cb_wCallback);
+ wCallback->align(Fl_Align(FL_ALIGN_LEFT));
+ wCallback->when(FL_WHEN_RELEASE);
+ Fl_Group::current()->resizable(wCallback);
+ } // fld::widget::Code_Editor* wCallback
+ o->end();
+ } // Fl_Group* o
+ o->end();
Fl_Group::current()->resizable(o);
- } // Fl_Box* o
- wp_gui_margins->end();
- } // Fl_Group* wp_gui_margins
- { wp_gui_sizerange = new Fl_Group(95, 185, 300, 20, "Size Range:");
- wp_gui_sizerange->labelfont(1);
- wp_gui_sizerange->labelsize(11);
- wp_gui_sizerange->callback((Fl_Callback*)cb_wp_gui_sizerange);
- wp_gui_sizerange->align(Fl_Align(FL_ALIGN_LEFT));
- wp_gui_sizerange->hide();
- { Fl_Value_Input* o = new Fl_Value_Input(95, 185, 55, 20, "Minimum Size:");
- o->tooltip("The size of the slider.");
- o->labelsize(11);
- o->maximum(2048);
- o->step(1);
- o->textsize(11);
- o->callback((Fl_Callback*)cb_Minimum1);
- o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
- } // Fl_Value_Input* o
- { Fl_Value_Input* o = new Fl_Value_Input(155, 185, 55, 20);
- o->tooltip("The minimum value of the widget.");
+ } // Fl_Tile* o
+ { wp_cpp_callback = new Fl_Group(95, 310, 310, 20, "User Data:");
+ wp_cpp_callback->labelfont(1);
+ wp_cpp_callback->labelsize(11);
+ wp_cpp_callback->callback((Fl_Callback*)propagate_load);
+ wp_cpp_callback->align(Fl_Align(FL_ALIGN_LEFT));
+ { Fl_Input* o = new Fl_Input(95, 310, 158, 20);
+ o->tooltip("The user data to pass into the callback code.");
+ o->labelfont(1);
+ o->labelsize(11);
+ o->textfont(4);
+ o->textsize(11);
+ o->callback((Fl_Callback*)cb_13);
+ Fl_Group::current()->resizable(o);
+ } // Fl_Input* o
+ { Fl_Menu_Button* o = new Fl_Menu_Button(260, 310, 145, 20, "When");
+ o->tooltip("When to call the callback function.");
+ o->box(FL_THIN_UP_BOX);
+ o->down_box(FL_BORDER_BOX);
+ o->labelfont(1);
+ o->labelsize(11);
+ o->textsize(11);
+ o->callback((Fl_Callback*)cb_When);
+ o->when(FL_WHEN_CHANGED);
+ o->menu(whenmenu);
+ } // Fl_Menu_Button* o
+ wp_cpp_callback->end();
+ } // Fl_Group* wp_cpp_callback
+ { Fl_Group* o = new Fl_Group(95, 332, 310, 26, "Type:");
+ o->labelfont(1);
o->labelsize(11);
- o->maximum(2048);
- o->step(1);
- o->textsize(11);
- o->callback((Fl_Callback*)cb_1);
- o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
- } // Fl_Value_Input* o
- { Fl_Button* o = new Fl_Button(215, 185, 25, 20, "set");
+ o->callback((Fl_Callback*)propagate_load);
+ o->align(Fl_Align(FL_ALIGN_LEFT));
+ { Fl_Input_Choice* o = new Fl_Input_Choice(95, 335, 158, 20);
+ o->tooltip("The type of the user data.");
+ o->labelfont(1);
+ o->labelsize(11);
+ o->textfont(4);
+ o->textsize(11);
+ o->callback((Fl_Callback*)cb_14);
+ Fl_Group::current()->resizable(o);
+ o->menu(menu_4);
+ } // Fl_Input_Choice* o
+ { w_when_box = new Fl_Box(260, 332, 145, 26, "FL_WHEN_NEVER");
+ w_when_box->box(FL_FLAT_BOX);
+ w_when_box->selection_color((Fl_Color)1);
+ w_when_box->labelsize(8);
+ w_when_box->align(Fl_Align(193|FL_ALIGN_INSIDE));
+ } // Fl_Box* w_when_box
+ o->end();
+ } // Fl_Group* o
+ wp_cpp_tab->end();
+ } // Fl_Group* wp_cpp_tab
+ { widget_tab_grid = new Grid_Tab(10, 30, 400, 330, "Grid");
+ widget_tab_grid->box(FL_NO_BOX);
+ widget_tab_grid->color(FL_BACKGROUND_COLOR);
+ widget_tab_grid->selection_color(FL_BACKGROUND_COLOR);
+ widget_tab_grid->labeltype(FL_NORMAL_LABEL);
+ widget_tab_grid->labelfont(0);
+ widget_tab_grid->labelsize(11);
+ widget_tab_grid->labelcolor(FL_FOREGROUND_COLOR);
+ widget_tab_grid->callback((Fl_Callback*)cb_widget_tab_grid);
+ widget_tab_grid->align(Fl_Align(FL_ALIGN_TOP));
+ widget_tab_grid->when(FL_WHEN_RELEASE);
+ widget_tab_grid->hide();
+ widget_tab_grid->end();
+ } // Grid_Tab* widget_tab_grid
+ { widget_tab_grid_child = new Grid_Child_Tab(10, 30, 400, 330, "Grid Child");
+ widget_tab_grid_child->box(FL_NO_BOX);
+ widget_tab_grid_child->color(FL_BACKGROUND_COLOR);
+ widget_tab_grid_child->selection_color(FL_BACKGROUND_COLOR);
+ widget_tab_grid_child->labeltype(FL_NORMAL_LABEL);
+ widget_tab_grid_child->labelfont(0);
+ widget_tab_grid_child->labelsize(11);
+ widget_tab_grid_child->labelcolor(FL_FOREGROUND_COLOR);
+ widget_tab_grid_child->callback((Fl_Callback*)cb_widget_tab_grid_child);
+ widget_tab_grid_child->align(Fl_Align(FL_ALIGN_TOP));
+ widget_tab_grid_child->when(FL_WHEN_RELEASE);
+ widget_tab_grid_child->hide();
+ widget_tab_grid_child->end();
+ } // Grid_Child_Tab* widget_tab_grid_child
+ o->show();
+ widget_tabs->end();
+ } // Fl_Tabs* widget_tabs
+ { data_tabs = new Fl_Tabs(10, 10, 400, 350);
+ data_tabs->selection_color((Fl_Color)12);
+ data_tabs->labelsize(11);
+ data_tabs->labelcolor(FL_WHITE);
+ data_tabs->callback((Fl_Callback*)cb_data_tabs);
+ data_tabs->hide();
+ { data_tabs_data = new Fl_Group(10, 30, 400, 330, "Inline Data");
+ data_tabs_data->labelsize(11);
+ data_tabs_data->callback((Fl_Callback*)propagate_load);
+ { Fl_Group* o = new Fl_Group(95, 49, 310, 21, "Visibility:");
+ o->labelfont(1);
o->labelsize(11);
- o->callback((Fl_Callback*)cb_set);
- } // Fl_Button* o
- { Fl_Value_Input* o = new Fl_Value_Input(245, 185, 55, 20, "Maximum Size:");
- o->tooltip("The maximum value of the widget.");
+ o->callback((Fl_Callback*)propagate_load);
+ o->align(Fl_Align(FL_ALIGN_LEFT));
+ { Fl_Choice* o = new Fl_Choice(95, 50, 210, 20);
+ o->down_box(FL_BORDER_BOX);
+ o->labelsize(11);
+ o->textsize(11);
+ o->callback((Fl_Callback*)cb_15);
+ o->menu(menu_5);
+ } // Fl_Choice* o
+ { Fl_Choice* o = new Fl_Choice(95, 50, 75, 20);
+ o->down_box(FL_BORDER_BOX);
+ o->labelsize(11);
+ o->textsize(11);
+ o->callback((Fl_Callback*)cb_16);
+ o->menu(menu_6);
+ } // Fl_Choice* o
+ { Fl_Box* o = new Fl_Box(363, 49, 42, 20);
+ Fl_Group::current()->resizable(o);
+ } // Fl_Box* o
+ o->end();
+ } // Fl_Group* o
+ { Fl_Group* o = new Fl_Group(95, 75, 310, 20, "Output: ");
+ o->labelfont(1);
o->labelsize(11);
- o->maximum(2048);
- o->step(1);
- o->textsize(11);
- o->callback((Fl_Callback*)cb_Maximum1);
- o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
- } // Fl_Value_Input* o
- { Fl_Value_Input* o = new Fl_Value_Input(305, 185, 55, 20);
- o->tooltip("The resolution of the widget value.");
+ o->callback((Fl_Callback*)propagate_load);
+ o->align(Fl_Align(FL_ALIGN_LEFT));
+ { Fl_Choice* o = new Fl_Choice(95, 75, 210, 20);
+ o->tooltip("text mode generates a \"const char*\" and a trailing NUL, compressed mode use"
+"s zlib to generate a binary block");
+ o->down_box(FL_BORDER_BOX);
+ o->labelsize(11);
+ o->textsize(11);
+ o->callback((Fl_Callback*)cb_17);
+ o->menu(menu_7);
+ } // Fl_Choice* o
+ { Fl_Box* o = new Fl_Box(363, 75, 42, 20);
+ Fl_Group::current()->resizable(o);
+ } // Fl_Box* o
+ o->end();
+ } // Fl_Group* o
+ { Fl_Input* o = new Fl_Input(95, 100, 310, 20, "Name:");
+ o->tooltip("Inline Data variables are declared \"const unsigned char []\" in binary mode "
+"and \"const char*\" in text mode.");
+ o->labelfont(1);
o->labelsize(11);
- o->maximum(2048);
- o->step(1);
+ o->textfont(4);
o->textsize(11);
- o->callback((Fl_Callback*)cb_2);
- o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
- } // Fl_Value_Input* o
- { Fl_Button* o = new Fl_Button(365, 185, 25, 20, "set");
- o->labelsize(11);
- o->callback((Fl_Callback*)cb_set1);
+ o->callback((Fl_Callback*)cb_Name);
+ o->align(Fl_Align(132));
+ } // Fl_Input* o
+ { wp_data_filename = new Fl_Input(95, 125, 270, 20, "Filename:");
+ wp_data_filename->tooltip("name and path of file that will be inlined");
+ wp_data_filename->labelfont(1);
+ wp_data_filename->labelsize(11);
+ wp_data_filename->textfont(4);
+ wp_data_filename->textsize(11);
+ wp_data_filename->callback((Fl_Callback*)cb_wp_data_filename);
+ wp_data_filename->align(Fl_Align(132));
+ } // Fl_Input* wp_data_filename
+ { Fl_Button* o = new Fl_Button(365, 125, 40, 20, "@fileopen");
+ o->labelcolor((Fl_Color)134);
+ o->callback((Fl_Callback*)cb_fileopen);
} // Fl_Button* o
- { Fl_Box* o = new Fl_Box(395, 185, 0, 20);
- Fl_Group::current()->resizable(o);
- } // Fl_Box* o
- wp_gui_sizerange->end();
- } // Fl_Group* wp_gui_sizerange
- { Fl_Group* o = new Fl_Group(95, 210, 310, 20, "Shortcut:");
- o->labelfont(1);
- o->labelsize(11);
- o->callback((Fl_Callback*)propagate_load);
- o->align(Fl_Align(FL_ALIGN_LEFT));
- { // This is a special button that grabs keystrokes directly
- wp_gui_shortcut = new Fl_Shortcut_Button(95, 210, 310, 20);
- wp_gui_shortcut->tooltip("The shortcut key for the widget.\nUse \'Backspace\' key to clear.");
- wp_gui_shortcut->box(FL_DOWN_BOX);
- wp_gui_shortcut->color(FL_BACKGROUND2_COLOR);
- wp_gui_shortcut->selection_color((Fl_Color)12);
- wp_gui_shortcut->labeltype(FL_NORMAL_LABEL);
- wp_gui_shortcut->labelfont(0);
- wp_gui_shortcut->labelsize(11);
- wp_gui_shortcut->labelcolor(FL_FOREGROUND_COLOR);
- wp_gui_shortcut->callback((Fl_Callback*)cb_wp_gui_shortcut);
- wp_gui_shortcut->align(Fl_Align(FL_ALIGN_CENTER));
- wp_gui_shortcut->when(FL_WHEN_CHANGED);
- } // Fl_Shortcut_Button* wp_gui_shortcut
- o->end();
- } // Fl_Group* o
- { wp_gui_xclass = new Fl_Group(95, 235, 300, 20, "X Class:");
- wp_gui_xclass->labelfont(1);
- wp_gui_xclass->labelsize(11);
- wp_gui_xclass->callback((Fl_Callback*)propagate_load);
- wp_gui_xclass->align(Fl_Align(FL_ALIGN_LEFT));
- { Fl_Input* o = new Fl_Input(95, 235, 95, 20, ":");
- o->tooltip("The X resource class.");
+ { Fl_Text_Editor* o = new Fl_Text_Editor(95, 150, 310, 105, "Comment:");
+ o->box(FL_DOWN_BOX);
o->labelfont(1);
o->labelsize(11);
+ o->textfont(4);
o->textsize(11);
- o->callback((Fl_Callback*)cb_3);
+ o->callback((Fl_Callback*)cb_Comment);
+ o->align(Fl_Align(FL_ALIGN_LEFT));
Fl_Group::current()->resizable(o);
- } // Fl_Input* o
- { Fl_Light_Button* o = new Fl_Light_Button(195, 235, 60, 20, "Border");
- o->tooltip("Add a border around the window.");
- o->selection_color((Fl_Color)1);
- o->labelsize(11);
- o->callback((Fl_Callback*)cb_Border);
- } // Fl_Light_Button* o
- { Fl_Light_Button* o = new Fl_Light_Button(260, 235, 55, 20, "Modal");
- o->tooltip("Make the window modal.");
- o->selection_color((Fl_Color)1);
- o->labelsize(11);
- o->callback((Fl_Callback*)cb_Modal);
- } // Fl_Light_Button* o
- { Fl_Light_Button* o = new Fl_Light_Button(320, 235, 75, 20, "Nonmodal");
- o->tooltip("Make the window non-modal.");
- o->selection_color((Fl_Color)1);
- o->labelsize(11);
- o->callback((Fl_Callback*)cb_Nonmodal);
- o->align(Fl_Align(132|FL_ALIGN_INSIDE));
- } // Fl_Light_Button* o
- wp_gui_xclass->end();
- } // Fl_Group* wp_gui_xclass
- { wp_gui_attributes = new Fl_Group(95, 260, 305, 20, "Attributes:");
- wp_gui_attributes->labelfont(1);
- wp_gui_attributes->labelsize(11);
- wp_gui_attributes->callback((Fl_Callback*)propagate_load);
- wp_gui_attributes->align(Fl_Align(FL_ALIGN_LEFT));
- { Fl_Light_Button* o = new Fl_Light_Button(95, 260, 60, 20, "Visible");
- o->tooltip("Show the widget.");
- o->selection_color((Fl_Color)1);
- o->labelsize(11);
- o->callback((Fl_Callback*)cb_Visible);
- } // Fl_Light_Button* o
- { Fl_Light_Button* o = new Fl_Light_Button(160, 260, 60, 20, "Active");
- o->tooltip("Activate the widget.");
- o->selection_color((Fl_Color)1);
- o->labelsize(11);
- o->callback((Fl_Callback*)cb_Active);
- } // Fl_Light_Button* o
- { Fl_Light_Button* o = new Fl_Light_Button(225, 260, 75, 20, "Resizable");
- o->tooltip("Make the widget resizable.");
- o->selection_color((Fl_Color)1);
- o->labelsize(11);
- o->callback((Fl_Callback*)cb_Resizable);
- o->when(FL_WHEN_CHANGED);
- } // Fl_Light_Button* o
- { Fl_Light_Button* o = new Fl_Light_Button(225, 260, 75, 20, "Headline");
- o->tooltip("Make a menu item the headline of a menu\nunselectable, but not grayed out");
- o->selection_color((Fl_Color)1);
+ o->buffer(new Fl_Text_Buffer());
+ o->add_key_binding(FL_Tab, 0, use_tab_navigation);
+ } // Fl_Text_Editor* o
+ data_tabs_data->end();
+ Fl_Group::current()->resizable(data_tabs_data);
+ } // Fl_Group* data_tabs_data
+ data_tabs->end();
+ } // Fl_Tabs* data_tabs
+ { comment_tabs = new Fl_Tabs(10, 10, 400, 350);
+ comment_tabs->selection_color((Fl_Color)12);
+ comment_tabs->labelsize(11);
+ comment_tabs->labelcolor(FL_WHITE);
+ comment_tabs->callback((Fl_Callback*)cb_comment_tabs);
+ comment_tabs->hide();
+ { comment_tabs_comment = new Fl_Group(10, 30, 400, 330, "Comment");
+ comment_tabs_comment->labelsize(11);
+ comment_tabs_comment->callback((Fl_Callback*)propagate_load);
+ { Fl_Text_Editor* o = comment_tabs_name = new Fl_Text_Editor(95, 45, 310, 235, "Comment:");
+ comment_tabs_name->box(FL_DOWN_BOX);
+ comment_tabs_name->labelfont(1);
+ comment_tabs_name->labelsize(11);
+ comment_tabs_name->textfont(4);
+ comment_tabs_name->textsize(11);
+ comment_tabs_name->textcolor((Fl_Color)58);
+ comment_tabs_name->callback((Fl_Callback*)cb_comment_tabs_name);
+ comment_tabs_name->align(Fl_Align(FL_ALIGN_LEFT));
+ Fl_Group::current()->resizable(comment_tabs_name);
+ o->when(FL_WHEN_ENTER_KEY_CHANGED|FL_WHEN_RELEASE);
+ o->buffer(new Fl_Text_Buffer());
+ } // Fl_Text_Editor* comment_tabs_name
+ { Fl_Group* o = new Fl_Group(95, 285, 310, 65);
+ o->callback((Fl_Callback*)propagate_load);
+ { comment_predefined_2 = new Fl_Menu_Button(95, 285, 90, 20, "Predefined");
+ comment_predefined_2->labelsize(11);
+ comment_predefined_2->textsize(11);
+ comment_predefined_2->callback((Fl_Callback*)cb_comment_predefined_2);
+ } // Fl_Menu_Button* comment_predefined_2
+ { comment_load_2 = new Fl_Button(190, 285, 90, 20, "Import...");
+ comment_load_2->labelsize(11);
+ comment_load_2->callback((Fl_Callback*)cb_comment_load_2);
+ } // Fl_Button* comment_load_2
+ { Fl_Check_Button* o = new Fl_Check_Button(95, 310, 120, 20, "output to header file");
+ o->tooltip("write the comment into the header (.h) file");
+ o->down_box(FL_DOWN_BOX);
+ o->labelsize(11);
+ o->callback((Fl_Callback*)cb_output);
+ o->when(FL_WHEN_CHANGED);
+ } // Fl_Check_Button* o
+ { Fl_Check_Button* o = new Fl_Check_Button(95, 330, 120, 20, "output to source file");
+ o->tooltip("write the comment into the source (.cxx) file");
+ o->down_box(FL_DOWN_BOX);
+ o->labelsize(11);
+ o->callback((Fl_Callback*)cb_output1);
+ o->when(FL_WHEN_CHANGED);
+ } // Fl_Check_Button* o
+ { Fl_Box* o = new Fl_Box(404, 285, 1, 65);
+ o->labelsize(11);
+ Fl_Group::current()->resizable(o);
+ } // Fl_Box* o
+ o->end();
+ } // Fl_Group* o
+ comment_tabs_comment->end();
+ Fl_Group::current()->resizable(comment_tabs_comment);
+ } // Fl_Group* comment_tabs_comment
+ comment_tabs->end();
+ } // Fl_Tabs* comment_tabs
+ { class_tabs = new Fl_Tabs(10, 10, 400, 350);
+ class_tabs->selection_color((Fl_Color)12);
+ class_tabs->labelsize(11);
+ class_tabs->labelcolor(FL_WHITE);
+ class_tabs->callback((Fl_Callback*)cb_class_tabs);
+ class_tabs->hide();
+ { class_tabs_main = new Fl_Group(10, 30, 400, 330, "Class");
+ class_tabs_main->labelsize(11);
+ class_tabs_main->callback((Fl_Callback*)propagate_load);
+ { /*
+ This elemnt is hidden because we don't
+ support a class inside a class at this point
+ */
+ Fl_Group* o = new Fl_Group(95, 50, 310, 21, "Visibility:");
+ o->labelfont(1);
o->labelsize(11);
- o->callback((Fl_Callback*)cb_Headline);
- o->when(FL_WHEN_CHANGED);
+ o->callback((Fl_Callback*)propagate_load);
+ o->align(Fl_Align(FL_ALIGN_LEFT));
o->hide();
- } // Fl_Light_Button* o
- { Fl_Light_Button* o = new Fl_Light_Button(305, 260, 70, 20, "Hotspot");
- o->tooltip("Center the window under this widget.");
- o->selection_color((Fl_Color)1);
- o->labelsize(11);
- o->callback((Fl_Callback*)cb_Hotspot);
- o->when(FL_WHEN_CHANGED);
- } // Fl_Light_Button* o
- { Fl_Box* o = new Fl_Box(395, 260, 0, 20);
- o->labelsize(11);
- } // Fl_Box* o
- wp_gui_attributes->end();
- } // Fl_Group* wp_gui_attributes
- { wp_gui_tooltip = new Fl_Input(95, 285, 310, 20, "Tooltip:");
- wp_gui_tooltip->tooltip("The tooltip text for the widget.\nUse Ctrl-J for newlines.");
- wp_gui_tooltip->labelfont(1);
- wp_gui_tooltip->labelsize(11);
- wp_gui_tooltip->textsize(11);
- wp_gui_tooltip->callback((Fl_Callback*)cb_wp_gui_tooltip);
- } // Fl_Input* wp_gui_tooltip
- { Fl_Box* o = new Fl_Box(95, 305, 300, 5);
- o->hide();
- Fl_Group::current()->resizable(o);
- } // Fl_Box* o
- wp_gui_tab->end();
- Fl_Group::current()->resizable(wp_gui_tab);
- } // Fl_Group* wp_gui_tab
- { wp_style_tab = new Fl_Group(10, 30, 400, 330, "Style");
- wp_style_tab->labelsize(11);
- wp_style_tab->callback((Fl_Callback*)propagate_load);
- wp_style_tab->when(FL_WHEN_NEVER);
- wp_style_tab->hide();
- { wp_style_label = new Fl_Group(99, 40, 305, 20, "Label Font:");
- wp_style_label->labelfont(1);
- wp_style_label->labelsize(11);
- wp_style_label->callback((Fl_Callback*)propagate_load);
- wp_style_label->align(Fl_Align(FL_ALIGN_LEFT));
- { Fl_Choice* o = new Fl_Choice(99, 40, 148, 20);
- o->tooltip("The style of the label text.");
- o->box(FL_THIN_UP_BOX);
- o->down_box(FL_BORDER_BOX);
+ { Fl_Choice* o = new Fl_Choice(95, 50, 75, 20);
+ o->tooltip("visibility for a class inside a class");
+ o->down_box(FL_BORDER_BOX);
+ o->labelsize(11);
+ o->textsize(11);
+ o->callback((Fl_Callback*)cb_18);
+ o->menu(menu_8);
+ } // Fl_Choice* o
+ { Fl_Box* o = new Fl_Box(363, 50, 42, 20);
+ Fl_Group::current()->resizable(o);
+ } // Fl_Box* o
+ o->end();
+ } // Fl_Group* o
+ { Fl_Input* o = new Fl_Input(95, 50, 305, 20, "Attribute:");
+ o->tooltip("class attribute or `alignas()`");
o->labelfont(1);
o->labelsize(11);
+ o->textfont(4);
o->textsize(11);
- o->callback((Fl_Callback*)cb_4);
- Fl_Group::current()->resizable(o);
- o->menu(fontmenu);
- } // Fl_Choice* o
- { Fl_Value_Input* o = new Fl_Value_Input(247, 40, 49, 20);
- o->tooltip("The size of the label text.");
- o->labelsize(11);
- o->maximum(100);
- o->step(1);
- o->value(14);
- o->textsize(11);
- o->callback((Fl_Callback*)cb_5);
- } // Fl_Value_Input* o
- { w_labelcolor = new Fl_Button(296, 40, 90, 20, "Label Color");
- w_labelcolor->tooltip("The color of the label text.");
- w_labelcolor->labelsize(11);
- w_labelcolor->callback((Fl_Callback*)cb_w_labelcolor);
- } // Fl_Button* w_labelcolor
- { Fl_Menu_Button* o = new Fl_Menu_Button(386, 40, 18, 20);
- o->callback((Fl_Callback*)cb_6);
- o->menu(colormenu);
- } // Fl_Menu_Button* o
- wp_style_label->end();
- } // Fl_Group* wp_style_label
- { wp_style_box = new Fl_Group(99, 65, 305, 20, "Box:");
- wp_style_box->labelfont(1);
- wp_style_box->labelsize(11);
- wp_style_box->callback((Fl_Callback*)propagate_load);
- wp_style_box->align(Fl_Align(FL_ALIGN_LEFT));
- { Fl_Choice* o = new Fl_Choice(100, 65, 196, 20);
- o->tooltip("The \"up\" box of the widget.");
- o->box(FL_THIN_UP_BOX);
- o->down_box(FL_BORDER_BOX);
+ o->callback((Fl_Callback*)cb_Attribute);
+ } // Fl_Input* o
+ { Fl_Input* o = new Fl_Input(95, 75, 305, 20, "Class Name:");
+ o->tooltip("class name, must be a single C++ keyword");
o->labelfont(1);
o->labelsize(11);
+ o->textfont(4);
o->textsize(11);
- o->callback((Fl_Callback*)cb_7);
- Fl_Group::current()->resizable(o);
- o->menu(boxmenu);
- } // Fl_Choice* o
- { w_color = new Fl_Button(296, 65, 90, 20, "Color");
- w_color->tooltip("The background color of the widget.");
- w_color->labelsize(11);
- w_color->callback((Fl_Callback*)cb_w_color);
- } // Fl_Button* w_color
- { Fl_Menu_Button* o = new Fl_Menu_Button(386, 65, 18, 20);
- o->callback((Fl_Callback*)cb_8);
- o->menu(colormenu);
- } // Fl_Menu_Button* o
- wp_style_box->end();
- } // Fl_Group* wp_style_box
- { wp_style_downbox = new Fl_Group(99, 90, 305, 20, "Down Box:");
- wp_style_downbox->labelfont(1);
- wp_style_downbox->labelsize(11);
- wp_style_downbox->callback((Fl_Callback*)propagate_load);
- wp_style_downbox->align(Fl_Align(FL_ALIGN_LEFT));
- { Fl_Choice* o = new Fl_Choice(99, 90, 197, 20);
- o->tooltip("The \"down\" box of the widget.");
- o->box(FL_THIN_UP_BOX);
- o->down_box(FL_BORDER_BOX);
+ o->callback((Fl_Callback*)cb_Class);
+ } // Fl_Input* o
+ { Fl_Input* o = new Fl_Input(95, 100, 305, 20, "Base Class:");
+ o->tooltip("visibility and name of base class or classes\ne.g. `public Fl_Widget`");
o->labelfont(1);
o->labelsize(11);
+ o->textfont(4);
o->textsize(11);
- o->callback((Fl_Callback*)cb_9);
- Fl_Group::current()->resizable(o);
- o->menu(boxmenu);
- } // Fl_Choice* o
- { w_selectcolor = new Fl_Button(296, 90, 90, 20, "Select Color");
- w_selectcolor->tooltip("The selection color of the widget.");
- w_selectcolor->labelsize(11);
- w_selectcolor->callback((Fl_Callback*)cb_w_selectcolor);
- } // Fl_Button* w_selectcolor
- { Fl_Menu_Button* o = new Fl_Menu_Button(386, 90, 18, 20);
- o->callback((Fl_Callback*)cb_a);
- o->menu(colormenu);
- } // Fl_Menu_Button* o
- wp_style_downbox->end();
- } // Fl_Group* wp_style_downbox
- { wp_style_text = new Fl_Group(99, 115, 305, 20, "Text Font:");
- wp_style_text->labelfont(1);
- wp_style_text->labelsize(11);
- wp_style_text->callback((Fl_Callback*)propagate_load);
- wp_style_text->align(Fl_Align(FL_ALIGN_LEFT));
- { Fl_Choice* o = new Fl_Choice(99, 115, 148, 20);
- o->tooltip("The value text style.");
+ o->callback((Fl_Callback*)cb_Base);
+ } // Fl_Input* o
+ { Fl_Text_Editor* o = new Fl_Text_Editor(95, 125, 305, 110, "Comment:");
o->box(FL_DOWN_BOX);
- o->down_box(FL_BORDER_BOX);
o->labelfont(1);
o->labelsize(11);
+ o->textfont(4);
o->textsize(11);
- o->callback((Fl_Callback*)cb_b);
- Fl_Group::current()->resizable(o);
- o->menu(fontmenu);
- } // Fl_Choice* o
- { Fl_Value_Input* o = new Fl_Value_Input(247, 115, 49, 20);
- o->tooltip("The value text size.");
- o->labelsize(11);
- o->maximum(100);
- o->step(1);
- o->value(14);
- o->textsize(11);
- o->callback((Fl_Callback*)cb_c);
- } // Fl_Value_Input* o
- { w_textcolor = new Fl_Button(296, 115, 90, 20, "Text Color");
- w_textcolor->tooltip("The value text color.");
- w_textcolor->labelsize(11);
- w_textcolor->callback((Fl_Callback*)cb_w_textcolor);
- } // Fl_Button* w_textcolor
- { Fl_Menu_Button* o = new Fl_Menu_Button(386, 115, 18, 20);
- o->callback((Fl_Callback*)cb_d);
- o->menu(colormenu);
- } // Fl_Menu_Button* o
- wp_style_text->end();
- } // Fl_Group* wp_style_text
- { Fl_Group* o = new Fl_Group(99, 150, 242, 20, "Label Margin:");
- o->labelfont(1);
- o->labelsize(11);
- o->callback((Fl_Callback*)propagate_load);
- o->align(Fl_Align(FL_ALIGN_LEFT));
- { Fl_Value_Input* o = new Fl_Value_Input(99, 150, 55, 20, "Horizontal:");
- o->tooltip("Spacing between label and the horizontally aligned side of the widget.");
- o->labelsize(11);
- o->minimum(-127);
- o->maximum(128);
- o->step(1);
- o->textsize(11);
- o->callback((Fl_Callback*)cb_Horizontal);
- o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
- } // Fl_Value_Input* o
- { Fl_Value_Input* o = new Fl_Value_Input(159, 150, 55, 20, "Vertical:");
- o->tooltip("Spacing between label and the vertically aligned side of the widget.");
- o->labelsize(11);
- o->minimum(-127);
- o->maximum(127);
- o->step(1);
- o->textsize(11);
- o->callback((Fl_Callback*)cb_Vertical);
- o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
- } // Fl_Value_Input* o
- { Fl_Value_Input* o = new Fl_Value_Input(219, 150, 55, 20, "Image Gap:");
- o->tooltip("Gap between label image and text in pixels");
- o->labelsize(11);
- o->maximum(255);
- o->step(1);
- o->textsize(11);
- o->callback((Fl_Callback*)cb_Image);
- o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
- } // Fl_Value_Input* o
- { Fl_Box* o = new Fl_Box(281, 150, 60, 20);
- o->labelsize(11);
- o->hide();
+ o->callback((Fl_Callback*)cb_Comment1);
+ o->align(Fl_Align(FL_ALIGN_LEFT));
Fl_Group::current()->resizable(o);
- } // Fl_Box* o
- o->end();
- } // Fl_Group* o
- { Fl_Light_Button* o = new Fl_Light_Button(99, 175, 90, 20, "Compact");
- o->tooltip("use compact box types for closely set buttons");
- o->selection_color((Fl_Color)1);
- o->labelsize(11);
- o->callback((Fl_Callback*)cb_Compact);
- } // Fl_Light_Button* o
- { Fl_Box* o = new Fl_Box(195, 205, 40, 40);
- o->labelsize(11);
- Fl_Group::current()->resizable(o);
- } // Fl_Box* o
- wp_style_tab->end();
- } // Fl_Group* wp_style_tab
- { wp_cpp_tab = new Fl_Group(10, 30, 400, 330, "C++");
- wp_cpp_tab->labelsize(11);
- wp_cpp_tab->callback((Fl_Callback*)propagate_load);
- wp_cpp_tab->when(FL_WHEN_NEVER);
- wp_cpp_tab->hide();
- { wp_cpp_class = new Fl_Group(95, 40, 310, 20, "Class:");
- wp_cpp_class->labelfont(1);
- wp_cpp_class->labelsize(11);
- wp_cpp_class->callback((Fl_Callback*)propagate_load);
- wp_cpp_class->align(Fl_Align(FL_ALIGN_LEFT));
- { Fl_Input* o = new Fl_Input(95, 40, 172, 20);
- o->tooltip("The widget subclass.");
+ o->buffer(new Fl_Text_Buffer());
+ o->add_key_binding(FL_Tab, 0, use_tab_navigation);
+ } // Fl_Text_Editor* o
+ class_tabs_main->end();
+ Fl_Group::current()->resizable(class_tabs_main);
+ } // Fl_Group* class_tabs_main
+ class_tabs->end();
+ } // Fl_Tabs* class_tabs
+ { declblock_tabs = new Fl_Tabs(10, 10, 400, 350);
+ declblock_tabs->selection_color((Fl_Color)12);
+ declblock_tabs->labelsize(11);
+ declblock_tabs->labelcolor(FL_WHITE);
+ declblock_tabs->callback((Fl_Callback*)cb_declblock_tabs);
+ declblock_tabs->hide();
+ { declblock_tabs_main = new Fl_Group(10, 30, 400, 330, "Declaration Block");
+ declblock_tabs_main->labelsize(11);
+ declblock_tabs_main->callback((Fl_Callback*)propagate_load);
+ { Fl_Input* o = new Fl_Input(95, 50, 305, 20, "Start Code:");
+ o->tooltip("`#ifdef` or similar conditional declaration block");
o->labelfont(1);
o->labelsize(11);
o->textfont(4);
o->textsize(11);
- o->callback((Fl_Callback*)cb_e, (void*)(4));
- Fl_Group::current()->resizable(o);
+ o->callback((Fl_Callback*)cb_Start);
} // Fl_Input* o
- { Fl_Choice* o = new Fl_Choice(267, 40, 138, 20);
- o->tooltip("The widget subtype.");
- o->box(FL_THIN_UP_BOX);
- o->down_box(FL_BORDER_BOX);
- o->labelsize(11);
- o->textsize(11);
- o->callback((Fl_Callback*)cb_f);
- } // Fl_Choice* o
- wp_cpp_class->end();
- } // Fl_Group* wp_cpp_class
- { wp_cpp_name = new Fl_Group(95, 65, 310, 20, "Name:");
- wp_cpp_name->labelfont(1);
- wp_cpp_name->labelsize(11);
- wp_cpp_name->callback((Fl_Callback*)propagate_load);
- wp_cpp_name->align(Fl_Align(FL_ALIGN_LEFT));
- { Fl_Input* o = new Fl_Input(95, 65, 235, 20);
- o->tooltip("The name of the widget.");
+ { Fl_Input* o = new Fl_Input(95, 75, 305, 20, "End Code:");
+ o->tooltip("`#endif` or similar declaration code block");
o->labelfont(1);
o->labelsize(11);
+ o->textfont(4);
o->textsize(11);
- o->callback((Fl_Callback*)cb_10);
- Fl_Group::current()->resizable(o);
+ o->callback((Fl_Callback*)cb_End);
} // Fl_Input* o
- { Fl_Choice* o = new Fl_Choice(330, 65, 75, 20);
- o->tooltip("Change member access attribute.");
- o->down_box(FL_BORDER_BOX);
+ { Fl_Group* o = new Fl_Group(95, 100, 305, 120);
+ o->callback((Fl_Callback*)propagate_load);
+ { Fl_Box* o = new Fl_Box(95, 100, 270, 20, "Enclose code generated by children in source file:");
+ o->labelsize(11);
+ o->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
+ } // Fl_Box* o
+ { Fl_Check_Button* o = new Fl_Check_Button(105, 120, 260, 20, "implementations");
+ o->down_box(FL_DOWN_BOX);
+ o->labelsize(11);
+ o->callback((Fl_Callback*)cb_implementations);
+ } // Fl_Check_Button* o
+ { Fl_Check_Button* o = new Fl_Check_Button(105, 140, 260, 20, "static initializations and callbacks");
+ o->down_box(FL_DOWN_BOX);
+ o->labelsize(11);
+ o->callback((Fl_Callback*)cb_static);
+ } // Fl_Check_Button* o
+ { Fl_Box* o = new Fl_Box(95, 160, 270, 20, "Enclose code in header file:");
+ o->labelsize(11);
+ o->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
+ } // Fl_Box* o
+ { Fl_Check_Button* o = new Fl_Check_Button(105, 180, 260, 20, "forward declarations");
+ o->down_box(FL_DOWN_BOX);
+ o->labelsize(11);
+ o->callback((Fl_Callback*)cb_forward);
+ } // Fl_Check_Button* o
+ { Fl_Check_Button* o = new Fl_Check_Button(105, 200, 260, 20, "preprecessor and callback declarations");
+ o->down_box(FL_DOWN_BOX);
+ o->labelsize(11);
+ o->callback((Fl_Callback*)cb_preprecessor);
+ } // Fl_Check_Button* o
+ { Fl_Box* o = new Fl_Box(365, 100, 35, 120);
+ o->labelsize(11);
+ o->hide();
+ Fl_Group::current()->resizable(o);
+ } // Fl_Box* o
+ o->end();
+ } // Fl_Group* o
+ { Fl_Text_Editor* o = new Fl_Text_Editor(95, 225, 305, 117, "Comment:");
+ o->box(FL_DOWN_BOX);
+ o->labelfont(1);
o->labelsize(11);
+ o->textfont(4);
o->textsize(11);
- o->callback((Fl_Callback*)cb_11);
- o->when(FL_WHEN_CHANGED);
- o->menu(menu_2);
- } // Fl_Choice* o
- { Fl_Choice* o = new Fl_Choice(330, 65, 75, 20);
- o->tooltip("Change widget accessibility.");
- o->down_box(FL_BORDER_BOX);
+ o->callback((Fl_Callback*)cb_Comment2);
+ o->align(Fl_Align(FL_ALIGN_LEFT));
+ Fl_Group::current()->resizable(o);
+ o->buffer(new Fl_Text_Buffer());
+ o->add_key_binding(FL_Tab, 0, use_tab_navigation);
+ } // Fl_Text_Editor* o
+ declblock_tabs_main->end();
+ Fl_Group::current()->resizable(declblock_tabs_main);
+ } // Fl_Group* declblock_tabs_main
+ declblock_tabs->end();
+ } // Fl_Tabs* declblock_tabs
+ { decl_tabs = new Fl_Tabs(10, 10, 400, 350);
+ decl_tabs->selection_color((Fl_Color)12);
+ decl_tabs->labelsize(11);
+ decl_tabs->labelcolor(FL_WHITE);
+ decl_tabs->callback((Fl_Callback*)cb_decl_tabs);
+ decl_tabs->hide();
+ { decl_tabs_main = new Fl_Group(10, 30, 400, 330, "Declaration");
+ decl_tabs_main->labelsize(11);
+ decl_tabs_main->callback((Fl_Callback*)propagate_load);
+ { Fl_Group* o = new Fl_Group(15, 50, 390, 20);
+ o->labelfont(1);
o->labelsize(11);
- o->textsize(11);
- o->callback((Fl_Callback*)name_public_cb);
- o->when(FL_WHEN_CHANGED);
- o->hide();
- o->menu(menu_3);
- } // Fl_Choice* o
- wp_cpp_name->end();
- } // Fl_Group* wp_cpp_name
- { v_input[0] = new Fl_Input(95, 90, 310, 20, "Extra Code:");
- v_input[0]->tooltip("Extra initialization code for the widget.");
- v_input[0]->labelfont(1);
- v_input[0]->labelsize(11);
- v_input[0]->textfont(4);
- v_input[0]->textsize(11);
- v_input[0]->callback((Fl_Callback*)cb_v_input, (void*)(0));
- } // Fl_Input* v_input[0]
- { v_input[1] = new Fl_Input(95, 110, 310, 20);
- v_input[1]->tooltip("Extra initialization code for the widget.");
- v_input[1]->labelsize(11);
- v_input[1]->textfont(4);
- v_input[1]->textsize(11);
- v_input[1]->callback((Fl_Callback*)cb_v_input1, (void*)(1));
- } // Fl_Input* v_input[1]
- { v_input[2] = new Fl_Input(95, 130, 310, 20);
- v_input[2]->tooltip("Extra initialization code for the widget.");
- v_input[2]->labelsize(11);
- v_input[2]->textfont(4);
- v_input[2]->textsize(11);
- v_input[2]->callback((Fl_Callback*)cb_v_input2, (void*)(2));
- } // Fl_Input* v_input[2]
- { v_input[3] = new Fl_Input(95, 150, 310, 20);
- v_input[3]->tooltip("Extra initialization code for the widget.");
- v_input[3]->labelsize(11);
- v_input[3]->textfont(4);
- v_input[3]->textsize(11);
- v_input[3]->callback((Fl_Callback*)cb_v_input3, (void*)(3));
- } // Fl_Input* v_input[3]
- { Fl_Tile* o = new Fl_Tile(95, 175, 310, 130);
- o->callback((Fl_Callback*)cb_12);
- { Fl_Group* o = new Fl_Group(95, 175, 310, 48);
- o->box(FL_FLAT_BOX);
- { wComment = new Fl_Text_Editor(95, 175, 310, 45, "Comment:");
- wComment->tooltip("Write a comment that will appear in the source code and in the widget tree ov"
-"erview.");
- wComment->box(FL_DOWN_BOX);
- wComment->labelfont(1);
- wComment->labelsize(11);
- wComment->textfont(6);
- wComment->textsize(11);
- wComment->textcolor((Fl_Color)59);
- wComment->callback((Fl_Callback*)cb_wComment);
- wComment->align(Fl_Align(FL_ALIGN_LEFT));
- wComment->when(FL_WHEN_CHANGED);
- Fl_Group::current()->resizable(wComment);
- wComment->buffer(new Fl_Text_Buffer());
- } // Fl_Text_Editor* wComment
+ o->callback((Fl_Callback*)propagate_load);
+ o->align(Fl_Align(FL_ALIGN_LEFT));
+ { Fl_Box* o = new Fl_Box(404, 50, 1, 20);
+ o->hide();
+ Fl_Group::current()->resizable(o);
+ } // Fl_Box* o
+ { Fl_Box* o = new Fl_Box(95, 50, 1, 20, "Visibility:");
+ o->labelfont(1);
+ o->labelsize(11);
+ o->align(Fl_Align(FL_ALIGN_LEFT));
+ } // Fl_Box* o
+ { Fl_Choice* o = new Fl_Choice(95, 50, 185, 20);
+ o->down_box(FL_BORDER_BOX);
+ o->labelsize(11);
+ o->textsize(11);
+ o->callback((Fl_Callback*)cb_19);
+ o->menu(menu_9);
+ } // Fl_Choice* o
+ { Fl_Choice* o = new Fl_Choice(95, 50, 75, 20);
+ o->down_box(FL_BORDER_BOX);
+ o->labelsize(11);
+ o->textsize(11);
+ o->callback((Fl_Callback*)cb_1a);
+ o->menu(menu_a);
+ } // Fl_Choice* o
o->end();
} // Fl_Group* o
- { Fl_Group* o = new Fl_Group(95, 223, 310, 82);
- o->box(FL_FLAT_BOX);
- { wCallback = new fld::widget::Code_Editor(95, 225, 310, 80, "Callback:");
- wCallback->tooltip("The callback function or code for the widget. Use the variable name \'o\' to "
-"access the Widget pointer and \'v\' to access the user value.");
- wCallback->box(FL_DOWN_BOX);
- wCallback->color(FL_BACKGROUND2_COLOR);
- wCallback->selection_color(FL_SELECTION_COLOR);
- wCallback->labeltype(FL_NORMAL_LABEL);
- wCallback->labelfont(1);
- wCallback->labelsize(11);
- wCallback->labelcolor(FL_FOREGROUND_COLOR);
- wCallback->textfont(4);
- wCallback->textsize(11);
- wCallback->callback((Fl_Callback*)cb_wCallback);
- wCallback->align(Fl_Align(FL_ALIGN_LEFT));
- wCallback->when(FL_WHEN_RELEASE);
- Fl_Group::current()->resizable(wCallback);
- } // fld::widget::Code_Editor* wCallback
+ { Fl_Tile* o = new Fl_Tile(15, 75, 390, 210);
+ o->callback((Fl_Callback*)cb_1b);
+ { Fl_Group* o = new Fl_Group(15, 75, 390, 105);
+ o->box(FL_FLAT_BOX);
+ o->labelfont(1);
+ o->labelsize(11);
+ o->callback((Fl_Callback*)propagate_load);
+ o->align(Fl_Align(FL_ALIGN_LEFT));
+ { fld::widget::Code_Editor* o = new fld::widget::Code_Editor(95, 75, 310, 100, "Declaration:");
+ o->tooltip("a declaration: `int x;`, an external symbol: `extern int foo();`,\na `#` dire"
+"ctive: `#include <foo.h>`, a typedef `typedef char byte;`,\n or a `using` stat"
+"ement, etc.");
+ o->box(FL_DOWN_FRAME);
+ o->color(FL_BACKGROUND2_COLOR);
+ o->selection_color(FL_SELECTION_COLOR);
+ o->labeltype(FL_NORMAL_LABEL);
+ o->labelfont(1);
+ o->labelsize(11);
+ o->labelcolor(FL_FOREGROUND_COLOR);
+ o->textsize(11);
+ o->callback((Fl_Callback*)cb_Declaration);
+ o->align(Fl_Align(132));
+ o->when(FL_WHEN_RELEASE);
+ Fl_Group::current()->resizable(o);
+ o->add_key_binding(FL_Tab, 0, use_tab_navigation);
+ } // fld::widget::Code_Editor* o
+ o->end();
+ } // Fl_Group* o
+ { Fl_Group* o = new Fl_Group(15, 180, 390, 105);
+ o->box(FL_FLAT_BOX);
+ o->callback((Fl_Callback*)propagate_load);
+ { Fl_Text_Editor* o = new Fl_Text_Editor(95, 185, 310, 100, "Comment:");
+ o->box(FL_DOWN_BOX);
+ o->labelfont(1);
+ o->labelsize(11);
+ o->textfont(4);
+ o->textsize(11);
+ o->callback((Fl_Callback*)cb_Comment3);
+ o->align(Fl_Align(FL_ALIGN_LEFT));
+ Fl_Group::current()->resizable(o);
+ o->buffer(new Fl_Text_Buffer());
+ o->add_key_binding(FL_Tab, 0, use_tab_navigation);
+ } // Fl_Text_Editor* o
+ o->end();
+ } // Fl_Group* o
+ o->size_range(0, 25, 55);
+ o->size_range(1, 25, 55);
o->end();
- } // Fl_Group* o
- o->end();
- Fl_Group::current()->resizable(o);
- } // Fl_Tile* o
- { wp_cpp_callback = new Fl_Group(95, 310, 310, 20, "User Data:");
- wp_cpp_callback->labelfont(1);
- wp_cpp_callback->labelsize(11);
- wp_cpp_callback->callback((Fl_Callback*)propagate_load);
- wp_cpp_callback->align(Fl_Align(FL_ALIGN_LEFT));
- { Fl_Input* o = new Fl_Input(95, 310, 158, 20);
- o->tooltip("The user data to pass into the callback code.");
+ Fl_Group::current()->resizable(o);
+ } // Fl_Tile* o
+ decl_tabs_main->end();
+ Fl_Group::current()->resizable(decl_tabs_main);
+ } // Fl_Group* decl_tabs_main
+ decl_tabs->end();
+ } // Fl_Tabs* decl_tabs
+ { codeblock_tabs = new Fl_Tabs(10, 10, 400, 350);
+ codeblock_tabs->selection_color((Fl_Color)12);
+ codeblock_tabs->labelsize(11);
+ codeblock_tabs->labelcolor(FL_WHITE);
+ codeblock_tabs->callback((Fl_Callback*)cb_codeblock_tabs);
+ codeblock_tabs->hide();
+ { codeblock_tabs_main = new Fl_Group(10, 30, 400, 330, "Code Block");
+ codeblock_tabs_main->labelsize(11);
+ codeblock_tabs_main->callback((Fl_Callback*)propagate_load);
+ { Fl_Input* o = new Fl_Input(95, 50, 305, 20, "Start Code:");
+ o->tooltip("condition statement: `if (x==1)`, or empty");
o->labelfont(1);
o->labelsize(11);
o->textfont(4);
o->textsize(11);
- o->callback((Fl_Callback*)cb_13);
- Fl_Group::current()->resizable(o);
+ o->callback((Fl_Callback*)cb_Start1);
} // Fl_Input* o
- { Fl_Menu_Button* o = new Fl_Menu_Button(260, 310, 145, 20, "When");
- o->tooltip("When to call the callback function.");
- o->box(FL_THIN_UP_BOX);
- o->down_box(FL_BORDER_BOX);
+ { Fl_Input* o = new Fl_Input(95, 75, 305, 20, "End Code:");
+ o->tooltip("condition end: `while (x==1);`, or empty");
o->labelfont(1);
o->labelsize(11);
+ o->textfont(4);
o->textsize(11);
- o->callback((Fl_Callback*)cb_When);
- o->when(FL_WHEN_CHANGED);
- o->menu(whenmenu);
- } // Fl_Menu_Button* o
- wp_cpp_callback->end();
- } // Fl_Group* wp_cpp_callback
- { Fl_Group* o = new Fl_Group(95, 332, 310, 26, "Type:");
- o->labelfont(1);
- o->labelsize(11);
- o->callback((Fl_Callback*)propagate_load);
- o->align(Fl_Align(FL_ALIGN_LEFT));
- { Fl_Input_Choice* o = new Fl_Input_Choice(95, 335, 158, 20);
- o->tooltip("The type of the user data.");
+ o->callback((Fl_Callback*)cb_End1);
+ } // Fl_Input* o
+ { Fl_Text_Editor* o = new Fl_Text_Editor(95, 100, 305, 117, "Comment:");
+ o->tooltip("code block comment");
+ o->box(FL_DOWN_BOX);
o->labelfont(1);
o->labelsize(11);
o->textfont(4);
o->textsize(11);
- o->callback((Fl_Callback*)cb_14);
+ o->callback((Fl_Callback*)cb_Comment4);
+ o->align(Fl_Align(FL_ALIGN_LEFT));
Fl_Group::current()->resizable(o);
- o->menu(menu_4);
- } // Fl_Input_Choice* o
- { w_when_box = new Fl_Box(260, 332, 145, 26, "FL_WHEN_NEVER");
- w_when_box->box(FL_FLAT_BOX);
- w_when_box->selection_color((Fl_Color)1);
- w_when_box->labelsize(8);
- w_when_box->align(Fl_Align(193|FL_ALIGN_INSIDE));
- } // Fl_Box* w_when_box
- o->end();
- } // Fl_Group* o
- wp_cpp_tab->end();
- } // Fl_Group* wp_cpp_tab
- { widget_tab_grid = new Grid_Tab(10, 30, 400, 330, "Grid");
- widget_tab_grid->box(FL_NO_BOX);
- widget_tab_grid->color(FL_BACKGROUND_COLOR);
- widget_tab_grid->selection_color(FL_BACKGROUND_COLOR);
- widget_tab_grid->labeltype(FL_NORMAL_LABEL);
- widget_tab_grid->labelfont(0);
- widget_tab_grid->labelsize(11);
- widget_tab_grid->labelcolor(FL_FOREGROUND_COLOR);
- widget_tab_grid->callback((Fl_Callback*)cb_widget_tab_grid);
- widget_tab_grid->align(Fl_Align(FL_ALIGN_TOP));
- widget_tab_grid->when(FL_WHEN_RELEASE);
- widget_tab_grid->hide();
- widget_tab_grid->end();
- } // Grid_Tab* widget_tab_grid
- { widget_tab_grid_child = new Grid_Child_Tab(10, 30, 400, 330, "Grid Child");
- widget_tab_grid_child->box(FL_NO_BOX);
- widget_tab_grid_child->color(FL_BACKGROUND_COLOR);
- widget_tab_grid_child->selection_color(FL_BACKGROUND_COLOR);
- widget_tab_grid_child->labeltype(FL_NORMAL_LABEL);
- widget_tab_grid_child->labelfont(0);
- widget_tab_grid_child->labelsize(11);
- widget_tab_grid_child->labelcolor(FL_FOREGROUND_COLOR);
- widget_tab_grid_child->callback((Fl_Callback*)cb_widget_tab_grid_child);
- widget_tab_grid_child->align(Fl_Align(FL_ALIGN_TOP));
- widget_tab_grid_child->when(FL_WHEN_RELEASE);
- widget_tab_grid_child->hide();
- widget_tab_grid_child->end();
- } // Grid_Child_Tab* widget_tab_grid_child
- o->show();
- widget_tabs->end();
- Fl_Group::current()->resizable(widget_tabs);
- } // Fl_Tabs* widget_tabs
+ o->buffer(new Fl_Text_Buffer());
+ o->add_key_binding(FL_Tab, 0, use_tab_navigation);
+ } // Fl_Text_Editor* o
+ codeblock_tabs_main->end();
+ Fl_Group::current()->resizable(codeblock_tabs_main);
+ } // Fl_Group* codeblock_tabs_main
+ codeblock_tabs->end();
+ } // Fl_Tabs* codeblock_tabs
+ { code_tabs = new Fl_Tabs(10, 10, 400, 350);
+ code_tabs->selection_color((Fl_Color)12);
+ code_tabs->labelsize(11);
+ code_tabs->labelcolor(FL_WHITE);
+ code_tabs->callback((Fl_Callback*)cb_code_tabs);
+ code_tabs->hide();
+ { code_tabs_main = new Fl_Group(10, 30, 400, 330, "Code");
+ code_tabs_main->labelsize(11);
+ code_tabs_main->callback((Fl_Callback*)propagate_load);
+ { fld::widget::Code_Editor* o = new fld::widget::Code_Editor(15, 40, 390, 315);
+ o->box(FL_DOWN_BOX);
+ o->color(FL_BACKGROUND2_COLOR);
+ o->selection_color(FL_SELECTION_COLOR);
+ o->labeltype(FL_NORMAL_LABEL);
+ o->labelfont(0);
+ o->labelsize(11);
+ o->labelcolor(FL_FOREGROUND_COLOR);
+ o->textfont(4);
+ o->textsize(11);
+ o->callback((Fl_Callback*)cb_1c);
+ o->align(Fl_Align(FL_ALIGN_TOP));
+ o->when(FL_WHEN_RELEASE | FL_WHEN_ENTER_KEY_CHANGED);
+ Fl_Group::current()->resizable(o);
+ o->linenumber_width(60);
+o->linenumber_size(o->Fl_Text_Display::textsize());
+ } // fld::widget::Code_Editor* o
+ code_tabs_main->end();
+ Fl_Group::current()->resizable(code_tabs_main);
+ } // Fl_Group* code_tabs_main
+ code_tabs->end();
+ } // Fl_Tabs* code_tabs
+ { func_tabs = new Fl_Tabs(10, 10, 400, 350);
+ func_tabs->selection_color((Fl_Color)12);
+ func_tabs->labelsize(11);
+ func_tabs->labelcolor(FL_WHITE);
+ func_tabs->callback((Fl_Callback*)cb_func_tabs);
+ func_tabs->hide();
+ { func_tabs_main = new Fl_Group(10, 30, 400, 330, "Function");
+ func_tabs_main->labelsize(11);
+ func_tabs_main->callback((Fl_Callback*)propagate_load);
+ { Fl_Group* o = new Fl_Group(15, 50, 390, 45);
+ o->labelfont(1);
+ o->labelsize(11);
+ o->callback((Fl_Callback*)propagate_load);
+ o->align(Fl_Align(FL_ALIGN_LEFT));
+ { Fl_Box* o = new Fl_Box(404, 50, 1, 20);
+ o->hide();
+ Fl_Group::current()->resizable(o);
+ } // Fl_Box* o
+ { Fl_Box* o = new Fl_Box(95, 50, 1, 20, "Visibility:");
+ o->labelfont(1);
+ o->labelsize(11);
+ o->align(Fl_Align(FL_ALIGN_LEFT));
+ } // Fl_Box* o
+ { Fl_Choice* o = new Fl_Choice(95, 50, 80, 20);
+ o->down_box(FL_BORDER_BOX);
+ o->labelsize(11);
+ o->textsize(11);
+ o->callback((Fl_Callback*)cb_1d);
+ o->menu(menu_b);
+ } // Fl_Choice* o
+ { Fl_Choice* o = new Fl_Choice(95, 50, 75, 20);
+ o->down_box(FL_BORDER_BOX);
+ o->labelsize(11);
+ o->textsize(11);
+ o->callback((Fl_Callback*)cb_1e);
+ o->menu(menu_c);
+ } // Fl_Choice* o
+ { Fl_Check_Button* o = new Fl_Check_Button(95, 75, 90, 20, "declare \"C\"");
+ o->down_box(FL_DOWN_BOX);
+ o->labelsize(11);
+ o->callback((Fl_Callback*)cb_declare);
+ } // Fl_Check_Button* o
+ o->end();
+ } // Fl_Group* o
+ { Fl_Tile* o = new Fl_Tile(15, 100, 390, 220);
+ o->callback((Fl_Callback*)cb_1f);
+ { Fl_Group* o = new Fl_Group(15, 100, 390, 55);
+ o->box(FL_FLAT_BOX);
+ o->labelfont(1);
+ o->labelsize(11);
+ o->callback((Fl_Callback*)propagate_load);
+ o->align(Fl_Align(FL_ALIGN_LEFT));
+ { fld::widget::Code_Editor* o = new fld::widget::Code_Editor(95, 100, 310, 50, "Function\nName and\nArgs:");
+ o->tooltip("function name and args, or blank for `main(..)`");
+ o->box(FL_DOWN_FRAME);
+ o->color(FL_BACKGROUND2_COLOR);
+ o->selection_color(FL_SELECTION_COLOR);
+ o->labeltype(FL_NORMAL_LABEL);
+ o->labelfont(1);
+ o->labelsize(11);
+ o->labelcolor(FL_FOREGROUND_COLOR);
+ o->textsize(11);
+ o->callback((Fl_Callback*)cb_Function);
+ o->align(Fl_Align(132));
+ o->when(FL_WHEN_RELEASE);
+ Fl_Group::current()->resizable(o);
+ o->add_key_binding(FL_Tab, 0, use_tab_navigation);
+ } // fld::widget::Code_Editor* o
+ o->end();
+ } // Fl_Group* o
+ { Fl_Group* o = new Fl_Group(15, 155, 390, 60);
+ o->box(FL_FLAT_BOX);
+ o->labelfont(1);
+ o->labelsize(11);
+ o->callback((Fl_Callback*)propagate_load);
+ o->align(Fl_Align(FL_ALIGN_LEFT));
+ { fld::widget::Code_Editor* o = new fld::widget::Code_Editor(95, 160, 310, 50, "Return Type:");
+ o->tooltip("return type, or blank to return outermost widget");
+ o->box(FL_DOWN_FRAME);
+ o->color(FL_BACKGROUND2_COLOR);
+ o->selection_color(FL_SELECTION_COLOR);
+ o->labeltype(FL_NORMAL_LABEL);
+ o->labelfont(1);
+ o->labelsize(11);
+ o->labelcolor(FL_FOREGROUND_COLOR);
+ o->textsize(11);
+ o->callback((Fl_Callback*)cb_Return);
+ o->align(Fl_Align(132));
+ o->when(FL_WHEN_RELEASE);
+ Fl_Group::current()->resizable(o);
+ o->add_key_binding(FL_Tab, 0, use_tab_navigation);
+ } // fld::widget::Code_Editor* o
+ o->end();
+ } // Fl_Group* o
+ { Fl_Group* o = new Fl_Group(15, 215, 390, 105);
+ o->box(FL_FLAT_BOX);
+ o->callback((Fl_Callback*)propagate_load);
+ { Fl_Text_Editor* o = new Fl_Text_Editor(95, 220, 310, 100, "Comment:");
+ o->box(FL_DOWN_BOX);
+ o->labelfont(1);
+ o->labelsize(11);
+ o->textfont(4);
+ o->textsize(11);
+ o->callback((Fl_Callback*)cb_Comment5);
+ o->align(Fl_Align(FL_ALIGN_LEFT));
+ Fl_Group::current()->resizable(o);
+ o->buffer(new Fl_Text_Buffer());
+ o->add_key_binding(FL_Tab, 0, use_tab_navigation);
+ } // Fl_Text_Editor* o
+ o->end();
+ } // Fl_Group* o
+ o->size_range(0, 25, 50);
+ o->size_range(1, 25, 50);
+ o->size_range(2, 25, 50);
+ o->end();
+ Fl_Group::current()->resizable(o);
+ } // Fl_Tile* o
+ func_tabs_main->end();
+ Fl_Group::current()->resizable(func_tabs_main);
+ } // Fl_Group* func_tabs_main
+ func_tabs->end();
+ Fl_Group::current()->resizable(func_tabs);
+ } // Fl_Tabs* func_tabs
+ tabs_wizard->end();
+ Fl_Group::current()->resizable(tabs_wizard);
+ } // Fl_Wizard* tabs_wizard
{ Fl_Tabs* o = widget_tabs_repo = new Fl_Tabs(10, 10, 400, 350);
widget_tabs_repo->hide();
{ Fl_Group* o = new Fl_Group(10, 30, 400, 330);