diff options
Diffstat (limited to 'fluid/panels/widget_panel.cxx')
| -rw-r--r-- | fluid/panels/widget_panel.cxx | 3311 |
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); |
