From 591bed0204287e8b61b2b716d64657f8f90f3d7c Mon Sep 17 00:00:00 2001 From: Matthias Melcher Date: Fri, 28 Nov 2025 18:02:00 +0100 Subject: [PATCH] Replace Class dialof box with widget panel tab. --- fluid/README_fl.txt | 2 +- fluid/io/Project_Reader.cxx | 7 +- fluid/nodes/Function_Node.cxx | 70 +--- fluid/nodes/Function_Node.h | 4 + fluid/nodes/Widget_Node.cxx | 4 + fluid/panels/function_panel.cxx | 81 ---- fluid/panels/function_panel.fl | 53 +-- fluid/panels/function_panel.h | 8 - fluid/panels/widget_panel.cxx | 516 ++++++++++++++++++++++-- fluid/panels/widget_panel.fl | 686 ++++++++++++++++++++------------ fluid/panels/widget_panel.h | 8 +- fluid/tools/autodoc.cxx | 9 +- 12 files changed, 938 insertions(+), 510 deletions(-) diff --git a/fluid/README_fl.txt b/fluid/README_fl.txt index 95ca15471..975de0177 100644 --- a/fluid/README_fl.txt +++ b/fluid/README_fl.txt @@ -432,7 +432,7 @@ Type "comment" : comment text Type "class" : prefix, class name none or "private" or "protected" : defaults to public - ":" : name of super class + ":" : name of base class ... : inherits more from Node Type "Fl_Widget" : C++ variable name diff --git a/fluid/io/Project_Reader.cxx b/fluid/io/Project_Reader.cxx index 0e2809685..0eeee8014 100644 --- a/fluid/io/Project_Reader.cxx +++ b/fluid/io/Project_Reader.cxx @@ -319,9 +319,12 @@ Node *Project_Reader::read_children(Node *p, int merge, Strategy strategy, char t->name(read_word()); c = read_word(1); + // There can actually be two keywords here. The first one used to be a + // "prefix" in Fluid < 1.5.0, but is no longer supported. So if we still + // find the prefix in files, it will simply be prefixed to the name. if (strcmp(c,"{") && t->is_class()) { // - ((Class_Node*)t)->prefix(t->name()); - t->name(c); + std::string tmp = std::string {t->name() } + " " + c; + t->name(tmp.c_str()); c = read_word(1); } diff --git a/fluid/nodes/Function_Node.cxx b/fluid/nodes/Function_Node.cxx index 05beea018..3bd2c4396 100644 --- a/fluid/nodes/Function_Node.cxx +++ b/fluid/nodes/Function_Node.cxx @@ -1907,75 +1907,7 @@ void Class_Node::read_property(fld::io::Project_Reader &f, const char *c) { Open the class_panel to edit the class name and superclass name. */ void Class_Node::open() { - if (!class_panel) make_class_panel(); - char fullname[FL_PATH_MAX]=""; - if (prefix() && strlen(prefix())) - sprintf(fullname,"%s %s",prefix(),name()); - else - strcpy(fullname, name()); - c_name_input->value(fullname); - c_subclass_input->value(subclass_of); - c_public_button->value(public_); - const char *c = comment(); - c_comment_input->buffer()->text(c?c:""); - class_panel->show(); - const char* message = nullptr; - - char *na=nullptr,*pr=nullptr,*p=nullptr; // name and prefix substrings - - for (;;) { // repeat as long as there are errors - // we don;t give the option to ignore this error here because code depends - // on this being a C++ identifier - if (message) fl_alert("%s", message); - for (;;) { - Fl_Widget* w = Fl::readqueue(); - if (w == c_panel_cancel) goto BREAK2; - else if (w == c_panel_ok) break; - else if (!w) Fl::wait(); - } - const char*c = c_name_input->value(); - char *s = fl_strdup(c); - size_t len = strlen(s); - if (!*s) goto OOPS; - p = (char*) (s+len-1); - while (p>=s && isspace(*p)) *(p--)='\0'; - if (p=s && is_id(*p)) p--; - if ( (ps) *p--='\0'; - while (p>=s && isspace(*p)) *(p--)='\0'; - while (p>=s && is_id(*p)) p--; - if (pvalue(); - message = c_check(c); - if (message) { free((void*)s);continue;} - name(na); - prefix(pr); - free((void*)s); - storestring(c, subclass_of); - if (public_ != c_public_button->value()) { - public_ = c_public_button->value(); - Fluid.proj.set_modflag(1); - } - c = c_comment_input->buffer()->text(); - if (c && *c) { - if (!comment() || strcmp(c, comment())) { Fluid.proj.set_modflag(1); redraw_browser(); } - comment(c); - } else { - if (comment()) { Fluid.proj.set_modflag(1); redraw_browser(); } - comment(nullptr); - } - if (c) free((void*)c); - break; - } -BREAK2: - class_panel->hide(); + open_panel(); } /** diff --git a/fluid/nodes/Function_Node.h b/fluid/nodes/Function_Node.h index 36c66a7bb..d23859908 100644 --- a/fluid/nodes/Function_Node.h +++ b/fluid/nodes/Function_Node.h @@ -280,6 +280,10 @@ public: bool is_a(Type inType) const override { return (inType==Type::Class) ? true : super::is_a(inType); } void write_properties(fld::io::Project_Writer &f) override; void read_property(fld::io::Project_Reader &f, const char *) override; + const char* base_class_name() { return subclass_of; } + void base_class_name(const char* name) { storestring(name, subclass_of); } + char visibility() { return public_; } + void visibility(char v) { public_ = v; } // class prefix attribute access void prefix(const char* p); diff --git a/fluid/nodes/Widget_Node.cxx b/fluid/nodes/Widget_Node.cxx index e43d2ac8f..595991611 100644 --- a/fluid/nodes/Widget_Node.cxx +++ b/fluid/nodes/Widget_Node.cxx @@ -1278,6 +1278,10 @@ void load_panel() { current_node = Fluid.proj.tree.current; tabs_wizard->value(comment_tabs); numselected = 1; + } else if (Fluid.proj.tree.current->is_a(Type::Class)) { + current_node = Fluid.proj.tree.current; + tabs_wizard->value(class_tabs); + numselected = 1; } else { current_node = nullptr; if (Fluid.proj.tree.current->is_widget()) diff --git a/fluid/panels/function_panel.cxx b/fluid/panels/function_panel.cxx index cab474208..088a5dc3f 100644 --- a/fluid/panels/function_panel.cxx +++ b/fluid/panels/function_panel.cxx @@ -480,87 +480,6 @@ Fl_Double_Window* make_decl_panel() { return decl_panel; } -Fl_Double_Window *class_panel=(Fl_Double_Window *)0; - -Fl_Light_Button *c_public_button=(Fl_Light_Button *)0; - -Fl_Input *c_name_input=(Fl_Input *)0; - -Fl_Input *c_subclass_input=(Fl_Input *)0; - -Fl_Text_Editor *c_comment_input=(Fl_Text_Editor *)0; - -Fl_Return_Button *c_panel_ok=(Fl_Return_Button *)0; - -Fl_Button *c_panel_cancel=(Fl_Button *)0; - -Fl_Double_Window* make_class_panel() { - { class_panel = new Fl_Double_Window(342, 196, "Class Properties"); - class_panel->labelsize(11); - { Fl_Group* o = new Fl_Group(10, 10, 280, 20); - o->hide(); - { c_public_button = new Fl_Light_Button(10, 10, 60, 20, "public"); - c_public_button->tooltip("Make the class publicly accessible."); - c_public_button->labelsize(11); - c_public_button->when(FL_WHEN_NEVER); - c_public_button->hide(); - } // Fl_Light_Button* c_public_button - { Fl_Box* o = new Fl_Box(80, 10, 210, 20); - Fl_Group::current()->resizable(o); - } // Fl_Box* o - o->end(); - } // Fl_Group* o - { c_name_input = new Fl_Input(10, 20, 320, 20, "Name:"); - c_name_input->tooltip("Name of class."); - c_name_input->labelfont(1); - c_name_input->labelsize(11); - c_name_input->textfont(4); - c_name_input->textsize(11); - c_name_input->align(Fl_Align(FL_ALIGN_TOP_LEFT)); - c_name_input->when(FL_WHEN_NEVER); - } // Fl_Input* c_name_input - { c_subclass_input = new Fl_Input(10, 55, 320, 20, "Subclass of (text between : and {)"); - c_subclass_input->tooltip("Name of subclass."); - c_subclass_input->labelfont(1); - c_subclass_input->labelsize(11); - c_subclass_input->textfont(4); - c_subclass_input->textsize(11); - c_subclass_input->align(Fl_Align(FL_ALIGN_TOP_LEFT)); - c_subclass_input->when(FL_WHEN_NEVER); - } // Fl_Input* c_subclass_input - { c_comment_input = new Fl_Text_Editor(10, 90, 320, 65, "Comment:"); - c_comment_input->tooltip("Class comment in Doxygen format"); - c_comment_input->box(FL_DOWN_BOX); - c_comment_input->labelfont(1); - c_comment_input->labelsize(11); - c_comment_input->textfont(4); - c_comment_input->textsize(11); - c_comment_input->align(Fl_Align(FL_ALIGN_TOP_LEFT)); - Fl_Group::current()->resizable(c_comment_input); - c_comment_input->buffer(new Fl_Text_Buffer()); - c_comment_input->add_key_binding(FL_Tab, 0, use_tab_navigation); - } // Fl_Text_Editor* c_comment_input - { Fl_Group* o = new Fl_Group(10, 165, 320, 20); - { c_panel_ok = new Fl_Return_Button(200, 165, 60, 20, "OK"); - c_panel_ok->labelsize(11); - c_panel_ok->window()->hotspot(c_panel_ok); - } // Fl_Return_Button* c_panel_ok - { c_panel_cancel = new Fl_Button(270, 165, 60, 20, "Cancel"); - c_panel_cancel->shortcut(0xff1b); - c_panel_cancel->labelsize(11); - } // Fl_Button* c_panel_cancel - { Fl_Box* o = new Fl_Box(10, 165, 185, 20); - Fl_Group::current()->resizable(o); - } // Fl_Box* o - o->end(); - } // Fl_Group* o - class_panel->set_modal(); - class_panel->size_range(343, 188); - class_panel->end(); - } // Fl_Double_Window* class_panel - return class_panel; -} - void type_make_cb(Fl_Widget*,void*d) { const char *type_name = (const char*)d; if (Fluid.proj.tree.current && Fluid.proj.tree.current->can_have_children()) diff --git a/fluid/panels/function_panel.fl b/fluid/panels/function_panel.fl index 47cbc0c05..7bab63eb8 100644 --- a/fluid/panels/function_panel.fl +++ b/fluid/panels/function_panel.fl @@ -213,7 +213,7 @@ Function {make_codeblock_panel()} {open Function {make_declblock_panel()} {open } { Fl_Window declblock_panel { - label {Declaration Block Properties} open + label {Declaration Block Properties} xywh {645 452 300 355} type Double labelsize 11 align 80 resizable code0 {o->size_range(o->w(), o->h(), Fl::w(), o->h());} modal size_range {300 355 0 0} visible } { @@ -380,55 +380,6 @@ Function {make_decl_panel()} {open } } -Function {make_class_panel()} {open -} { - Fl_Window class_panel { - label {Class Properties} - xywh {795 337 342 196} type Double labelsize 11 hide resizable modal size_range {343 188 0 0} - } { - Fl_Group {} {open - xywh {10 10 280 20} hide - } { - Fl_Light_Button c_public_button { - label public - tooltip {Make the class publicly accessible.} xywh {10 10 60 20} labelsize 11 when 0 hide - } - Fl_Box {} { - xywh {80 10 210 20} resizable - } - } - Fl_Input c_name_input { - label {Name:} - tooltip {Name of class.} xywh {10 20 320 20} labelfont 1 labelsize 11 align 5 when 0 textfont 4 textsize 11 - } - Fl_Input c_subclass_input { - label {Subclass of (text between : and \{)} - tooltip {Name of subclass.} xywh {10 55 320 20} labelfont 1 labelsize 11 align 5 when 0 textfont 4 textsize 11 - } - Fl_Text_Editor c_comment_input { - label {Comment:} - tooltip {Class comment in Doxygen format} xywh {10 90 320 65} box DOWN_BOX labelfont 1 labelsize 11 align 5 textfont 4 textsize 11 resizable - code0 {c_comment_input->buffer(new Fl_Text_Buffer());} - code1 {c_comment_input->add_key_binding(FL_Tab, 0, use_tab_navigation);} - } - Fl_Group {} {open - xywh {10 165 320 20} - } { - Fl_Return_Button c_panel_ok { - label OK - xywh {200 165 60 20} labelsize 11 hotspot - } - Fl_Button c_panel_cancel { - label Cancel - xywh {270 165 60 20} shortcut 0xff1b labelsize 11 - } - Fl_Box {} { - xywh {10 165 185 20} resizable - } - } - } -} - Function {type_make_cb(Fl_Widget*,void*d)} {open return_type void } { code {const char *type_name = (const char*)d; @@ -445,7 +396,7 @@ Function {make_widgetbin()} {open callback {if (Fl::event()==FL_SHORTCUT && Fl::event_key()==FL_Escape) Fluid.quit(); else - Fluid.toggle_widget_bin();} open + Fluid.toggle_widget_bin();} xywh {395 227 600 102} type Single align 80 non_modal visible } { Fl_Group {} { diff --git a/fluid/panels/function_panel.h b/fluid/panels/function_panel.h index 4fcfc9d45..00eac7ca9 100644 --- a/fluid/panels/function_panel.h +++ b/fluid/panels/function_panel.h @@ -75,14 +75,6 @@ extern Fl_Button *decl_panel_cancel; Fl_Double_Window* make_decl_panel(); extern Fl_Menu_Item menu_decl_choice[]; extern Fl_Menu_Item menu_decl_class_choice[]; -extern Fl_Double_Window *class_panel; -extern Fl_Light_Button *c_public_button; -extern Fl_Input *c_name_input; -extern Fl_Input *c_subclass_input; -extern Fl_Text_Editor *c_comment_input; -extern Fl_Return_Button *c_panel_ok; -extern Fl_Button *c_panel_cancel; -Fl_Double_Window* make_class_panel(); void type_make_cb(Fl_Widget*,void*d); #include extern Fl_Window *widgetbin_panel; diff --git a/fluid/panels/widget_panel.cxx b/fluid/panels/widget_panel.cxx index b2a2d7dcd..eae34f6f5 100644 --- a/fluid/panels/widget_panel.cxx +++ b/fluid/panels/widget_panel.cxx @@ -14,7 +14,7 @@ // https://www.fltk.org/bugs.php // -// generated by Fast Light User Interface Designer (fluid) version 1.0400 +// generated by Fast Light User Interface Designer (fluid) version 1.0500 #include "widget_panel.h" #include // free() @@ -50,13 +50,17 @@ extern int haderror; Allow widget navigation on text fields with Tab. */ static int use_tab_navigation(int, Fl_Text_Editor*) { +//fl ▼ ------------------------ code --~-~~~=~~-==~~-~-=~~~-= ▼ fl// return 0; +//fl ▲ ----------~-~--=-=--~-----------~-=--~~-=~=-~~--~-~=-- ▲ fl// } Fl_Double_Window *image_panel_window=(Fl_Double_Window *)0; static void cb_image_panel_window(Fl_Double_Window* o, void* v) { +//fl ▼ ---------------------- callback ~-=--=~~=~=~~--==-=~~- ▼ fl// propagate_load(o, v); +//fl ▲ ----------~=~=~-~----=-----------~~----=--~=~~-~-----= ▲ fl// } Fl_Group *image_panel_imagegroup=(Fl_Group *)0; @@ -64,6 +68,7 @@ Fl_Group *image_panel_imagegroup=(Fl_Group *)0; Fl_Box *image_panel_data=(Fl_Box *)0; static void cb_image_panel_data(Fl_Box* o, void* v) { +//fl ▼ ---------------------- callback -~-~--~-~~-~-~~~----~= ▼ fl// if (v == LOAD) { Fl_Shared_Image *img = Fl_Shared_Image::get(widget_image_input->value()); o->user_data(img); @@ -80,11 +85,13 @@ static void cb_image_panel_data(Fl_Box* o, void* v) { image_panel_imagegroup->deactivate(); } } +//fl ▲ ----------=~~==~-~~~~------------~=--~~~-~~=--~-=--=-= ▲ fl// } fld::widget::Formula_Input *image_panel_imagew=(fld::widget::Formula_Input *)0; static void cb_image_panel_imagew(fld::widget::Formula_Input* o, void* v) { +//fl ▼ ---------------------- callback ~~--~=---~-~=-=~~~-~~- ▼ fl// if (v == LOAD) { if (current_widget->is_widget() && !current_widget->is_a(Type::Window)) { o->value(current_widget->scale_image_w_); @@ -110,11 +117,13 @@ static void cb_image_panel_imagew(fld::widget::Formula_Input* o, void* v) { } if (mod) Fluid.proj.set_modflag(1); } +//fl ▲ ----------=~=-=-~~-==-----------~-~-=-=~~-~=~~-~=~~-~- ▲ fl// } fld::widget::Formula_Input *image_panel_imageh=(fld::widget::Formula_Input *)0; static void cb_image_panel_imageh(fld::widget::Formula_Input* o, void* v) { +//fl ▼ ---------------------- callback ~-~=-~~-=-=~~~--~----= ▼ fl// if (v == LOAD) { if (current_widget->is_widget() && !current_widget->is_a(Type::Window)) { o->value(current_widget->scale_image_h_); @@ -140,18 +149,22 @@ static void cb_image_panel_imageh(fld::widget::Formula_Input* o, void* v) { } if (mod) Fluid.proj.set_modflag(1); } +//fl ▲ ----------~=-=-==~=--~----------~~-==-=-=~-=~=~---=~~= ▲ fl// } static void cb_Reset(Fl_Button*, void* v) { +//fl ▼ ---------------------- callback --~-=~=-=-=-=~~--~-~-- ▼ fl// if (v != LOAD) { image_panel_imagew->value(0); image_panel_imageh->value(0); image_panel_imagew->do_callback(); image_panel_imageh->do_callback(); } +//fl ▲ ----------~=--~-=~~=-~-----------~=--==-~=-~~=~=-=~~~= ▲ fl// } static void cb_convert(Fl_Check_Button* o, void* v) { +//fl ▼ ---------------------- callback --~~=-=-~-~--=---~-=~= ▼ fl// if (v == LOAD) { if (current_widget->is_widget() && !current_widget->is_a(Type::Window)) { o->activate(); @@ -167,9 +180,11 @@ static void cb_convert(Fl_Check_Button* o, void* v) { } if (mod) Fluid.proj.set_modflag(1); } +//fl ▲ ----------~=~==-~-~~~~------------~~=~~~=~~=-~~==-=-=~ ▲ fl// } static void cb_bind(Fl_Check_Button* o, void* v) { +//fl ▼ ---------------------- callback ~~~~~-=~=~---~--~~~~~= ▼ fl// if (v == LOAD) { if (current_widget->is_widget() && !current_widget->is_a(Type::Window)) { o->activate(); @@ -185,6 +200,7 @@ static void cb_bind(Fl_Check_Button* o, void* v) { } if (mod) Fluid.proj.set_modflag(1); } +//fl ▲ ----------=~-=-~-==~-~-------------==-~=~~=~=~----~~=~ ▲ fl// } Fl_Group *image_panel_deimagegroup=(Fl_Group *)0; @@ -192,6 +208,7 @@ Fl_Group *image_panel_deimagegroup=(Fl_Group *)0; Fl_Box *image_panel_dedata=(Fl_Box *)0; static void cb_image_panel_dedata(Fl_Box* o, void* v) { +//fl ▼ ---------------------- callback ~---~=~~-~-=---~=~~==- ▼ fl// if (v == LOAD) { Fl_Shared_Image *img = Fl_Shared_Image::get(widget_deimage_input->value()); o->user_data(img); @@ -208,11 +225,13 @@ static void cb_image_panel_dedata(Fl_Box* o, void* v) { image_panel_deimagegroup->deactivate(); } } +//fl ▲ ----------=~~==-~~~-~~------------~~=-~~=-=-=~=~--=--~ ▲ fl// } fld::widget::Formula_Input *image_panel_deimagew=(fld::widget::Formula_Input *)0; static void cb_image_panel_deimagew(fld::widget::Formula_Input* o, void* v) { +//fl ▼ ---------------------- callback ~~--=~=~=~=~-=~--=~~=- ▼ fl// if (v == LOAD) { if (current_widget->is_widget() && !current_widget->is_a(Type::Window)) { o->value(current_widget->scale_deimage_w_); @@ -238,11 +257,13 @@ static void cb_image_panel_deimagew(fld::widget::Formula_Input* o, void* v) { } if (mod) Fluid.proj.set_modflag(1); } +//fl ▲ ----------=~~~-=~~~-=-----------~-~-~~--~~-=-==~~==-~= ▲ fl// } fld::widget::Formula_Input *image_panel_deimageh=(fld::widget::Formula_Input *)0; static void cb_image_panel_deimageh(fld::widget::Formula_Input* o, void* v) { +//fl ▼ ---------------------- callback ~~=-=---~-~~-=-=~-~--- ▼ fl// if (v == LOAD) { if (current_widget->is_widget() && !current_widget->is_a(Type::Window)) { o->value(current_widget->scale_deimage_h_); @@ -268,18 +289,22 @@ static void cb_image_panel_deimageh(fld::widget::Formula_Input* o, void* v) { } if (mod) Fluid.proj.set_modflag(1); } +//fl ▲ ----------=~-~=-~~~~-~-----------~~~~==~~~~=~~=-=~-=~- ▲ fl// } static void cb_Reset1(Fl_Button*, void* v) { +//fl ▼ ---------------------- callback ~~=~~=~=~~~=--~~=~-=~= ▼ fl// if (v != LOAD) { image_panel_deimagew->value(0); image_panel_deimageh->value(0); image_panel_deimagew->do_callback(); image_panel_deimageh->do_callback(); } +//fl ▲ ----------~=~~~=-~~~~~-----------~=-~~-~~==-~=-~---=-= ▲ fl// } static void cb_convert1(Fl_Check_Button* o, void* v) { +//fl ▼ ---------------------- callback ~~-==--~~-~~=~-==~-~-- ▼ fl// if (v == LOAD) { if (current_widget->is_widget() && !current_widget->is_a(Type::Window)) { o->activate(); @@ -295,9 +320,11 @@ static void cb_convert1(Fl_Check_Button* o, void* v) { } if (mod) Fluid.proj.set_modflag(1); } +//fl ▲ ----------=~-~~=---=------------~------~~~-~-=~~--~-=~ ▲ fl// } static void cb_bind1(Fl_Check_Button* o, void* v) { +//fl ▼ ---------------------- callback ---=--~-=--~-~~~-=-=~= ▼ fl// if (v == LOAD) { if (current_widget->is_widget() && !current_widget->is_a(Type::Window)) { o->activate(); @@ -313,13 +340,16 @@ static void cb_bind1(Fl_Check_Button* o, void* v) { } if (mod) Fluid.proj.set_modflag(1); } +//fl ▲ ----------~=-~-----~-=----------~--==~--=~-=~~-~=~---= ▲ fl// } Fl_Button *image_panel_close=(Fl_Button *)0; static void cb_image_panel_close(Fl_Button*, void* v) { +//fl ▼ ---------------------- callback ~~-=~-~--~---=~-=---=- ▼ fl// if (v != LOAD) image_panel_window->hide(); +//fl ▲ ----------=~=~~=-=--~=----------~--==~-=~~~=~=~~-==~=- ▲ fl// } /** @@ -388,9 +418,9 @@ Fl_Double_Window* make_image_panel() { o->align(Fl_Align(FL_ALIGN_RIGHT|FL_ALIGN_INSIDE)); } // Fl_Box* o { Fl_Check_Button* o = new Fl_Check_Button(75, 100, 170, 20, "convert to raw pixel data"); - o->tooltip("if unchecked, keep the image in its original format and store the data as is;\ - if checked, convert the image and store it as uncompressed RGB or grayscale p\ -ixel data"); + o->tooltip("if unchecked, keep the image in its original format and store the data as is;" +" if checked, convert the image and store it as uncompressed RGB or grayscale p" +"ixel data"); o->down_box(FL_DOWN_BOX); o->labelsize(11); o->callback((Fl_Callback*)cb_convert); @@ -464,9 +494,9 @@ ixel data"); o->align(Fl_Align(FL_ALIGN_RIGHT|FL_ALIGN_INSIDE)); } // Fl_Box* o { Fl_Check_Button* o = new Fl_Check_Button(75, 240, 170, 20, "convert to raw pixel data"); - o->tooltip("if unchecked, keep the image in its original format and store the data as is;\ - if checked, convert the image and store it as uncompressed RGB or grayscale p\ -ixel data"); + o->tooltip("if unchecked, keep the image in its original format and store the data as is;" +" if checked, convert the image and store it as uncompressed RGB or grayscale p" +"ixel data"); o->down_box(FL_DOWN_BOX); o->labelsize(11); o->callback((Fl_Callback*)cb_convert1); @@ -490,6 +520,7 @@ ixel data"); } void run_image_panel() { +//fl ▼ ------------------------ code ----~=----~-=-~=~=~~~==~ ▼ fl// if (!image_panel_window) make_image_panel(); @@ -509,9 +540,11 @@ void run_image_panel() { img->release(); image_panel_data->user_data(nullptr); } +//fl ▲ ----------~-=-=~=~=~=~----------~-=~~==~=-=-=~--=~--=~ ▲ fl// } void flex_margin_cb(Fl_Value_Input* i, void* v, void (*load_margin)(Fl_Flex*,Fl_Value_Input*), int (*update_margin)(Fl_Flex*,int)) { +//fl ▼ ------------------------ code ------=--~--~=-~-~~~~~-= ▼ fl// if (v == LOAD) { if (current_widget->is_a(Type::Flex)) { load_margin((Fl_Flex*)current_widget->o, i); @@ -531,19 +564,24 @@ void flex_margin_cb(Fl_Value_Input* i, void* v, void (*load_margin)(Fl_Flex*,Fl_ } if (mod) Fluid.proj.set_modflag(1); } +//fl ▲ ----------~-~~=--=~~-~-----------~~--~~~=~=-~==~~==-~~ ▲ fl// } Fl_Wizard *tabs_wizard=(Fl_Wizard *)0; static void cb_tabs_wizard(Fl_Wizard* o, void* v) { +//fl ▼ ---------------------- callback -~-=-~=-~~---~-=-~~~-~ ▼ fl// propagate_load((Fl_Group *)o,v); +//fl ▲ ----------=~-~=-~----~----------~--~-==~~-=-=~=-~=~~=- ▲ fl// } Fl_Tabs *widget_tabs=(Fl_Tabs *)0; static void cb_widget_tabs(Fl_Tabs* o, void* v) { +//fl ▼ ---------------------- callback --~-~~=~~==----==--~-~ ▼ fl// if (current_widget) propagate_load((Fl_Group *)o,v); +//fl ▲ ----------~=--=~=~--~~----------~-~~~~-==--==--~~--~=~ ▲ fl// } Fl_Group *wp_gui_tab=(Fl_Group *)0; @@ -553,6 +591,7 @@ Fl_Input *wp_gui_label=(Fl_Input *)0; Fl_Input *widget_image_input=(Fl_Input *)0; static void cb_widget_image_input(Fl_Input* o, void* v) { +//fl ▼ ---------------------- callback --~-------=~=~~==~-=~~ ▼ fl// if (v == LOAD) { if (current_widget->is_widget() && !current_widget->is_a(Type::Window)) { o->activate(); @@ -566,9 +605,11 @@ static void cb_widget_image_input(Fl_Input* o, void* v) { } if (mod) Fluid.proj.set_modflag(1); } +//fl ▲ ----------~=--~-~~-~-~----------~~=-~~--=~~~~~-~=-~=~= ▲ fl// } static void cb_Browse(Fl_Button* o, void* v) { +//fl ▼ ---------------------- callback ~~-~-=~~=~~-=--~=--~-~ ▼ fl// if (v == LOAD) { if (current_widget->is_widget() && !current_widget->is_a(Type::Window)) o->activate(); @@ -586,17 +627,21 @@ static void cb_Browse(Fl_Button* o, void* v) { if (mod) Fluid.proj.set_modflag(1); } } +//fl ▲ ----------=~-~-=~~~~~=------------~=~=~==~-~--~~=-=~=~ ▲ fl// } static void cb_(Fl_Button*, void* v) { +//fl ▼ ---------------------- callback ~~=~~-~-=-=-~-----=--- ▼ fl// if (v != LOAD) { run_image_panel(); } +//fl ▲ ----------=~~=-=~~~=~=----------~~-~~--~~-=~--=-=~~=~- ▲ fl// } Fl_Input *widget_deimage_input=(Fl_Input *)0; static void cb_widget_deimage_input(Fl_Input* o, void* v) { +//fl ▼ ---------------------- callback ~~=-~=-=-------~-~~-=~ ▼ fl// if (v == LOAD) { if (current_widget->is_widget() && !current_widget->is_a(Type::Window)) { o->activate(); @@ -610,9 +655,11 @@ static void cb_widget_deimage_input(Fl_Input* o, void* v) { } if (mod) Fluid.proj.set_modflag(1); } +//fl ▲ ----------~=~=---~-~=~-----------~-~--=~~~~~-~-~=-~-=~ ▲ fl// } static void cb_Browse1(Fl_Button* o, void* v) { +//fl ▼ ---------------------- callback ~~-=~=~~-~=~~-=~~---~~ ▼ fl// if (v == LOAD) { if (current_widget->is_widget() && !current_widget->is_a(Type::Window)) o->activate(); @@ -630,6 +677,7 @@ static void cb_Browse1(Fl_Button* o, void* v) { if (mod) Fluid.proj.set_modflag(1); } } +//fl ▲ ----------=~---~~=~~=~-----------~~~-~-~~=-=~==-~--~-- ▲ fl// } Fl_Group *wp_gui_alignment=(Fl_Group *)0; @@ -666,6 +714,7 @@ Fl_Menu_Item menu_1[] = { fld::widget::Formula_Input *widget_x_input=(fld::widget::Formula_Input *)0; static void cb_widget_x_input(fld::widget::Formula_Input* o, void* v) { +//fl ▼ ---------------------- callback ~~=-~~~~~~=-~-~~----~- ▼ fl// if (v == LOAD) { if (current_widget->is_true_widget()) { o->value(((Widget_Node *)current_widget)->o->x()); @@ -693,11 +742,13 @@ static void cb_widget_x_input(fld::widget::Formula_Input* o, void* v) { // calculation. Keep the formula if it was not used. } } +//fl ▲ ----------~=~=~~~=-~-=----------~~=~=--~~~-=~=~-=~~==- ▲ fl// } fld::widget::Formula_Input *widget_y_input=(fld::widget::Formula_Input *)0; static void cb_widget_y_input(fld::widget::Formula_Input* o, void* v) { +//fl ▼ ---------------------- callback ~~--~=--~-~=-~=~~~=~~= ▼ fl// if (v == LOAD) { if (current_widget->is_true_widget()) { o->value(((Widget_Node *)current_widget)->o->y()); @@ -724,11 +775,13 @@ static void cb_widget_y_input(fld::widget::Formula_Input* o, void* v) { o->value(v); } } +//fl ▲ ----------~==-~==~~~=~----------~~=~--~~=~-~---=~-=-~= ▲ fl// } fld::widget::Formula_Input *widget_w_input=(fld::widget::Formula_Input *)0; static void cb_widget_w_input(fld::widget::Formula_Input* o, void* v) { +//fl ▼ ---------------------- callback ---=~~--~==-=-~-=-~-=~ ▼ fl// if (v == LOAD) { if (current_widget->is_true_widget()) { o->value(((Widget_Node *)current_widget)->o->w()); @@ -755,11 +808,13 @@ static void cb_widget_w_input(fld::widget::Formula_Input* o, void* v) { o->value(v); } } +//fl ▲ ----------~==--~~-=-=-----------~--~-==-~~~~~==-=--=-= ▲ fl// } fld::widget::Formula_Input *widget_h_input=(fld::widget::Formula_Input *)0; static void cb_widget_h_input(fld::widget::Formula_Input* o, void* v) { +//fl ▼ ---------------------- callback -~-=-==~--~=-~--=----- ▼ fl// if (v == LOAD) { if (current_widget->is_true_widget()) { o->value(((Widget_Node *)current_widget)->o->h()); @@ -786,9 +841,11 @@ static void cb_widget_h_input(fld::widget::Formula_Input* o, void* v) { o->value(v); } } +//fl ▲ ----------=~=--==~~--~------------~~~=-=~-=~-~=---~~~~ ▲ fl// } static void cb_Children(Fl_Choice* o, void* v) { +//fl ▼ ---------------------- callback ---=-=-~=-~=~=~-~=~-~- ▼ fl// if (v == LOAD) { if (current_widget->is_a(Type::Widget_Class)) { o->show(); @@ -808,6 +865,7 @@ static void cb_Children(Fl_Choice* o, void* v) { } if (mod) Fluid.proj.set_modflag(1); } +//fl ▲ ----------~=~-=~=~~--~----------~~=~=~~=~=-=-=~=~-~=-= ▲ fl// } Fl_Menu_Item menu_Children[] = { @@ -820,6 +878,7 @@ Fl_Menu_Item menu_Children[] = { Fl_Group *wp_gui_flexp=(Fl_Group *)0; static void cb_wp_gui_flexp(Fl_Group* o, void* v) { +//fl ▼ ---------------------- callback --~~~~~-=~~-~-~----~-= ▼ fl// if (v == LOAD) { if (Flex_Node::parent_is_flex(current_widget)) { o->show(); @@ -828,11 +887,13 @@ static void cb_wp_gui_flexp(Fl_Group* o, void* v) { o->hide(); } } +//fl ▲ ----------~=~--=~~-~~~------------=-~=-~-==-~~~-~-=~~~ ▲ fl// } Fl_Value_Input *widget_flex_size=(Fl_Value_Input *)0; static void cb_widget_flex_size(Fl_Value_Input* o, void* v) { +//fl ▼ ---------------------- callback ---~-~=~~=-~=~~-~--~-= ▼ fl// if (v == LOAD) { if (Flex_Node::parent_is_flex(current_widget)) { o->value(Flex_Node::size(current_widget)); @@ -865,11 +926,13 @@ static void cb_widget_flex_size(Fl_Value_Input* o, void* v) { } if (mod) Fluid.proj.set_modflag(1); } +//fl ▲ ----------~=~=~=--=-=~----------~~~=~~--~=-~--~==--~~~ ▲ fl// } Fl_Check_Button *widget_flex_fixed=(Fl_Check_Button *)0; static void cb_widget_flex_fixed(Fl_Check_Button* o, void* v) { +//fl ▼ ---------------------- callback ~~-==--~--~~-~=~-=~=~- ▼ fl// if (v == LOAD) { if (Flex_Node::parent_is_flex(current_widget)) { o->value(Flex_Node::is_fixed(current_widget)); @@ -899,11 +962,13 @@ static void cb_widget_flex_fixed(Fl_Check_Button* o, void* v) { } if (mod) Fluid.proj.set_modflag(1); } +//fl ▲ ----------=~----=~~=~-----------~--~=---~~~=~~-~~-~--= ▲ fl// } Fl_Group *wp_gui_values=(Fl_Group *)0; static void cb_wp_gui_values(Fl_Group* o, void* v) { +//fl ▼ ---------------------- callback ~~~~=~-=-==~--~=~==-~- ▼ fl// if (v == LOAD) { if ( current_widget->is_a(Type::Flex) || current_widget->is_a(Type::Grid) @@ -915,9 +980,11 @@ static void cb_wp_gui_values(Fl_Group* o, void* v) { propagate_load(o, v); } } +//fl ▲ ----------~=~~=~-~-~------------~-=--~=~~~-~-==--=~--~ ▲ fl// } static void cb_Size(Fl_Value_Input* o, void* v) { +//fl ▼ ---------------------- callback ~~~-~~-=~=~-~~---==--~ ▼ fl// if (v == LOAD) { if (!current_widget->is_a(Type::Slider)) {o->deactivate(); return;} o->activate(); @@ -935,9 +1002,11 @@ static void cb_Size(Fl_Value_Input* o, void* v) { } if (mod) Fluid.proj.set_modflag(1); } +//fl ▲ ----------~=-~-=-=~~~=-----------~~---~=-=~=-~=--~-=~~ ▲ fl// } static void cb_Minimum(Fl_Value_Input* o, void* v) { +//fl ▼ ---------------------- callback -~-=~~-=-=-=~=~==-~~~- ▼ fl// if (v == LOAD) { if (current_widget->is_a(Type::Valuator_)) { o->activate(); @@ -966,9 +1035,11 @@ static void cb_Minimum(Fl_Value_Input* o, void* v) { } if (mod) Fluid.proj.set_modflag(1); } +//fl ▲ ----------=~=~~=--~~~~----------~~~-~~-=~~-==-~~-==--= ▲ fl// } static void cb_Maximum(Fl_Value_Input* o, void* v) { +//fl ▼ ---------------------- callback ~-~-=~=-=-~-=-~-~=---= ▼ fl// if (v == LOAD) { if (current_widget->is_a(Type::Valuator_)) { o->activate(); @@ -997,9 +1068,11 @@ static void cb_Maximum(Fl_Value_Input* o, void* v) { } if (mod) Fluid.proj.set_modflag(1); } +//fl ▲ ----------=~--~==--~=~----------~-=~-==~~~~--~=--=-==~ ▲ fl// } static void cb_Step(Fl_Value_Input* o, void* v) { +//fl ▼ ---------------------- callback --~-=~-~=~~~~~-~=--~~= ▼ fl// if (v == LOAD) { if (current_widget->is_a(Type::Valuator_)) { o->activate(); @@ -1028,9 +1101,11 @@ static void cb_Step(Fl_Value_Input* o, void* v) { } if (mod) Fluid.proj.set_modflag(1); } +//fl ▲ ----------=~~==-=-~=-~----------~-~~=~~~~=~--~~---=-=- ▲ fl// } static void cb_Value(Fl_Value_Input* o, void* v) { +//fl ▼ ---------------------- callback --=-=-~--~-~-~-~~=-~~~ ▼ fl// if (v == LOAD) { if (current_widget->is_a(Type::Valuator_)) { o->activate(); @@ -1062,11 +1137,13 @@ static void cb_Value(Fl_Value_Input* o, void* v) { } if (mod) Fluid.proj.set_modflag(1); } +//fl ▲ ----------~=~---~---------------~-=-~==-~~~=~~~--~-~-~ ▲ fl// } Fl_Group *wp_gui_margins=(Fl_Group *)0; static void cb_wp_gui_margins(Fl_Group* o, void* v) { +//fl ▼ ---------------------- callback ---~~==--~-~=~~--==~~- ▼ fl// if (v == LOAD) { if (current_widget->is_a(Type::Flex)) { o->show(); @@ -1075,9 +1152,11 @@ static void cb_wp_gui_margins(Fl_Group* o, void* v) { o->hide(); } } +//fl ▲ ----------~==~=~=~~-~~----------~~-=---~~==~~=-=---=~= ▲ fl// } static void cb_Left(Fl_Value_Input* o, void* v) { +//fl ▼ ---------------------- callback ~-=~~-~~--=-=--=--~--~ ▼ fl// flex_margin_cb(o, v, [](Fl_Flex *w, Fl_Value_Input* i) -> void { @@ -1097,9 +1176,11 @@ static void cb_Left(Fl_Value_Input* o, void* v) { } } ); +//fl ▲ ----------~=--~==~~=-=----------~~----=-~--==-----~~~= ▲ fl// } static void cb_Top(Fl_Value_Input* o, void* v) { +//fl ▼ ---------------------- callback ~---~--=~-=~-=~=~=~=~- ▼ fl// flex_margin_cb(o, v, [](Fl_Flex *w, Fl_Value_Input* i) -> void { @@ -1119,9 +1200,11 @@ static void cb_Top(Fl_Value_Input* o, void* v) { } } ); +//fl ▲ ----------=~=-~~~~~=-~---------------~~-=-~=--~=---~~~ ▲ fl// } static void cb_Right(Fl_Value_Input* o, void* v) { +//fl ▼ ---------------------- callback ~~=~-~-~--~-~-~=~--==- ▼ fl// flex_margin_cb(o, v, [](Fl_Flex *w, Fl_Value_Input* i) -> void { @@ -1141,9 +1224,11 @@ static void cb_Right(Fl_Value_Input* o, void* v) { } } ); +//fl ▲ ----------~==~=~~=~--=------------~~=----~=-=-~==-=~=~ ▲ fl// } static void cb_Bottom(Fl_Value_Input* o, void* v) { +//fl ▼ ---------------------- callback ~--=~~~--=~-~~--~=-~-= ▼ fl// flex_margin_cb(o, v, [](Fl_Flex *w, Fl_Value_Input* i) -> void { @@ -1163,9 +1248,11 @@ static void cb_Bottom(Fl_Value_Input* o, void* v) { } } ); +//fl ▲ ----------~=~~-~~~=-------------~~-~--=-----=~~-~=-=-~ ▲ fl// } static void cb_Gap(Fl_Value_Input* o, void* v) { +//fl ▼ ---------------------- callback --~---~~-=~~-=~-~-=~-- ▼ fl// flex_margin_cb(o, v, [](Fl_Flex *w, Fl_Value_Input* o) -> void { @@ -1183,11 +1270,13 @@ static void cb_Gap(Fl_Value_Input* o, void* v) { } } ); +//fl ▲ ----------=~-==~~==-~~----------~~=-~=~-=~---==~=~~=-= ▲ fl// } Fl_Group *wp_gui_sizerange=(Fl_Group *)0; static void cb_wp_gui_sizerange(Fl_Group* o, void* v) { +//fl ▼ ---------------------- callback ~~-==-=~--=-=~-~-~-=-~ ▼ fl// if (v == LOAD) { if (current_widget->is_a(Type::Window)) { o->show(); @@ -1196,9 +1285,11 @@ static void cb_wp_gui_sizerange(Fl_Group* o, void* v) { o->hide(); } } +//fl ▲ ----------~=--~-=-~=~~----------~~~~~~~=----=-~--=-~-~ ▲ fl// } static void cb_Minimum1(Fl_Value_Input* o, void* v) { +//fl ▼ ---------------------- callback ~-=~=-~-~==~~-~~~-~--= ▼ fl// if (v == LOAD) { if (!current_widget->is_a(Type::Window)) return; o->value(((Window_Node*)current_widget)->sr_min_w); @@ -1214,9 +1305,11 @@ static void cb_Minimum1(Fl_Value_Input* o, void* v) { } if (mod) Fluid.proj.set_modflag(1); } +//fl ▲ ----------=~~=-=-=~~~~----------~~~--=~-=-=-~-~==~~~-- ▲ fl// } static void cb_1(Fl_Value_Input* o, void* v) { +//fl ▼ ---------------------- callback ~-~-=~~=~-=-~==-=~-=-= ▼ fl// if (v == LOAD) { if (!current_widget->is_a(Type::Window)) return; o->value(((Window_Node*)current_widget)->sr_min_h); @@ -1232,9 +1325,11 @@ static void cb_1(Fl_Value_Input* o, void* v) { } if (mod) Fluid.proj.set_modflag(1); } +//fl ▲ ----------~=~-~=~~~~-~------------~=~==--~------~-=-~- ▲ fl// } static void cb_set(Fl_Button* o, void* v) { +//fl ▼ ---------------------- callback -~=~=-~-=-=~-~~-~~~-=- ▼ fl// if (v == LOAD) { } else { int mod = 0; @@ -1250,9 +1345,11 @@ static void cb_set(Fl_Button* o, void* v) { propagate_load(the_panel, LOAD); if (mod) Fluid.proj.set_modflag(1); } +//fl ▲ ----------=~~=-=-==~-~-----------~~~=~~--~-~-==~-~--=- ▲ fl// } static void cb_Maximum1(Fl_Value_Input* o, void* v) { +//fl ▼ ---------------------- callback ~~~~-=~=-~--=~=~-~=~=~ ▼ fl// if (v == LOAD) { if (!current_widget->is_a(Type::Window)) return; o->value(((Window_Node*)current_widget)->sr_max_w); @@ -1268,9 +1365,11 @@ static void cb_Maximum1(Fl_Value_Input* o, void* v) { } if (mod) Fluid.proj.set_modflag(1); } +//fl ▲ ----------=~---~--~-~=----------~~~==~-=-==~=-=~~~--=~ ▲ fl// } static void cb_2(Fl_Value_Input* o, void* v) { +//fl ▼ ---------------------- callback -~~~~=~==-~~~=-~=-~~~~ ▼ fl// if (v == LOAD) { if (!current_widget->is_a(Type::Window)) return; o->value(((Window_Node*)current_widget)->sr_max_h); @@ -1286,9 +1385,11 @@ static void cb_2(Fl_Value_Input* o, void* v) { } if (mod) Fluid.proj.set_modflag(1); } +//fl ▲ ----------~=~~-~=----~------------~-=-~~--~-=~-~~=~==- ▲ fl// } static void cb_set1(Fl_Button* o, void* v) { +//fl ▼ ---------------------- callback --~~=~~~~~~==-=--==-~~ ▼ fl// if (v == LOAD) { } else { int mod = 0; @@ -1304,11 +1405,13 @@ static void cb_set1(Fl_Button* o, void* v) { propagate_load(the_panel, LOAD); if (mod) Fluid.proj.set_modflag(1); } +//fl ▲ ----------~==-=~--~==----------------=-~~=~-~=-~=~~=~- ▲ fl// } Fl_Shortcut_Button *wp_gui_shortcut=(Fl_Shortcut_Button *)0; static void cb_wp_gui_shortcut(Fl_Shortcut_Button* o, void* v) { +//fl ▼ ---------------------- callback -~=---=~-~--=-~~~=-~~= ▼ fl// if (v == LOAD) { if (current_widget->is_button()) o->value( ((Fl_Button*)(current_widget->o))->shortcut() ); @@ -1350,11 +1453,13 @@ static void cb_wp_gui_shortcut(Fl_Shortcut_Button* o, void* v) { } if (mod) Fluid.proj.set_modflag(1); } +//fl ▲ ----------~==-~~~~~~------------~-----~=~=--~~-=-=-~~- ▲ fl// } Fl_Group *wp_gui_xclass=(Fl_Group *)0; static void cb_3(Fl_Input* o, void* v) { +//fl ▼ ---------------------- callback ~-~=~-~~=~~~-~~-~~~~-= ▼ fl// if (v == LOAD) { if (current_widget->is_a(Type::Window)) { o->show(); @@ -1377,9 +1482,11 @@ static void cb_3(Fl_Input* o, void* v) { } if (mod) Fluid.proj.set_modflag(1); } +//fl ▲ ----------=~~=~=-=~~------------~-=-=-=~-=~~~=~==~--=- ▲ fl// } static void cb_Border(Fl_Light_Button* o, void* v) { +//fl ▼ ---------------------- callback -~-=~-=~~-~~-=-~--~~-= ▼ fl// if (v == LOAD) { if (!current_widget->is_a(Type::Window)) {o->hide(); return;} o->show(); @@ -1389,9 +1496,11 @@ static void cb_Border(Fl_Light_Button* o, void* v) { ((Fl_Window*)(current_widget->o))->border(o->value()); Fluid.proj.set_modflag(1); } +//fl ▲ ----------=~~-=~~~=~~--------------~--~---~-=-~~=-=-=~ ▲ fl// } static void cb_Modal(Fl_Light_Button* o, void* v) { +//fl ▼ ---------------------- callback ~---~~~=~==~-=-=~=-=-- ▼ fl// if (v == LOAD) { if (!current_widget->is_a(Type::Window)) {o->hide(); return;} o->show(); @@ -1401,9 +1510,11 @@ static void cb_Modal(Fl_Light_Button* o, void* v) { ((Window_Node *)current_widget)->modal = o->value(); Fluid.proj.set_modflag(1); } +//fl ▲ ----------~=~-=-=-=----------------=-~=----~~=~~-=-=-= ▲ fl// } static void cb_Nonmodal(Fl_Light_Button* o, void* v) { +//fl ▼ ---------------------- callback ~~~~-~~=~=~=---~-=~~~- ▼ fl// if (v == LOAD) { if (!current_widget->is_a(Type::Window)) {o->hide(); return;} o->show(); @@ -1413,11 +1524,13 @@ static void cb_Nonmodal(Fl_Light_Button* o, void* v) { ((Window_Node *)current_widget)->non_modal = o->value(); Fluid.proj.set_modflag(1); } +//fl ▲ ----------~==-=-~~=~-=----------~-~-~=~--~~-=-=-~=~~=- ▲ fl// } Fl_Group *wp_gui_attributes=(Fl_Group *)0; static void cb_Visible(Fl_Light_Button* o, void* v) { +//fl ▼ ---------------------- callback ~-~~=-~-~==--~=-~~=-=- ▼ fl// if (v == LOAD) { o->value(current_widget->o->visible()); if (current_widget->is_a(Type::Window)) o->deactivate(); @@ -1445,9 +1558,11 @@ static void cb_Visible(Fl_Light_Button* o, void* v) { redraw_browser(); } } +//fl ▲ ----------=~--~~-=---~----------~-=~~~=-----~-~~~==~~- ▲ fl// } static void cb_Active(Fl_Light_Button* o, void* v) { +//fl ▼ ---------------------- callback ~~-~--~--=~=~~--~-=~~~ ▼ fl// if (v == LOAD) { o->value(current_widget->o->active()); if (current_widget->is_a(Type::Window)) o->deactivate(); @@ -1465,9 +1580,11 @@ static void cb_Active(Fl_Light_Button* o, void* v) { } if (mod) Fluid.proj.set_modflag(1); } +//fl ▲ ----------=~~~-=--=~-~----------~~~~--=~--~=~=-==---~- ▲ fl// } static void cb_Resizable(Fl_Light_Button* o, void* v) { +//fl ▼ ---------------------- callback ~~=-=~-==~=~~----=-=~= ▼ fl// if (v == LOAD) { if (current_widget->is_a(Type::Menu_Item)) { o->hide(); @@ -1485,9 +1602,11 @@ static void cb_Resizable(Fl_Light_Button* o, void* v) { current_widget->resizable(o->value()); Fluid.proj.set_modflag(1); } +//fl ▲ ----------=~-~~----~=~------------~-~=~=~--=~--=-~~=~- ▲ fl// } static void cb_Headline(Fl_Light_Button* o, void* v) { +//fl ▼ ---------------------- callback -~--~=~-=~-=~--=~~---- ▼ fl// if (v == LOAD) { if (!current_widget->is_a(Type::Menu_Item)) { o->hide(); @@ -1510,9 +1629,11 @@ static void cb_Headline(Fl_Light_Button* o, void* v) { } if (mod) Fluid.proj.set_modflag(1); } +//fl ▲ ----------=~~-~-=~-==-----------~--~~-=-~=--=--=-~=-~= ▲ fl// } static void cb_Hotspot(Fl_Light_Button* o, void* v) { +//fl ▼ ---------------------- callback ~~=-~-=~=-=~-~-=~=~~-= ▼ fl// if (v == LOAD) { if (numselected > 1) {o->deactivate(); return;} if (current_widget->is_a(Type::Menu_Item)) o->label("divider"); @@ -1537,11 +1658,13 @@ static void cb_Hotspot(Fl_Light_Button* o, void* v) { } Fluid.proj.set_modflag(1); } +//fl ▲ ----------=~-=~--~~=-~----------~~----~-~~~=---=~-=~~~ ▲ fl// } Fl_Input *wp_gui_tooltip=(Fl_Input *)0; static void cb_wp_gui_tooltip(Fl_Input* o, void* v) { +//fl ▼ ---------------------- callback ~~=-~~--=--=--=-=~=-=- ▼ fl// if (v == LOAD) { if (current_widget->is_widget()) { o->activate(); @@ -1557,6 +1680,7 @@ static void cb_wp_gui_tooltip(Fl_Input* o, void* v) { } if (mod) Fluid.proj.set_modflag(1); } +//fl ▲ ----------~=~~=--==-~=----------~---=~--~--=~~-----=~~ ▲ fl// } Fl_Group *wp_style_tab=(Fl_Group *)0; @@ -1564,6 +1688,7 @@ Fl_Group *wp_style_tab=(Fl_Group *)0; Fl_Group *wp_style_label=(Fl_Group *)0; static void cb_4(Fl_Choice* o, void* v) { +//fl ▼ ---------------------- callback ~-~-~=-----~-=~-~=-~~- ▼ fl// if (v == LOAD) { int n = current_widget->o->labelfont(); if (n > 15) n = 0; @@ -1580,9 +1705,11 @@ static void cb_4(Fl_Choice* o, void* v) { } if (mod) Fluid.proj.set_modflag(1); } +//fl ▲ ----------~=----=~=-=------------~--~~--=-=~~~-----~-= ▲ fl// } static void cb_5(Fl_Value_Input* o, void* v) { +//fl ▼ ---------------------- callback ~~-=~=~----~=~--=~-~~= ▼ fl// int n; if (v == LOAD) { n = current_widget->o->labelsize(); @@ -1598,11 +1725,13 @@ static void cb_5(Fl_Value_Input* o, void* v) { if (mod) Fluid.proj.set_modflag(1); } o->value(n); +//fl ▲ ----------~=~~-=~----------------~-=~=-~-~=-~==-~-~=~~ ▲ fl// } Fl_Button *w_labelcolor=(Fl_Button *)0; static void cb_w_labelcolor(Fl_Button* o, void* v) { +//fl ▼ ---------------------- callback ~-~=~~----=~-~-~=~=~-~ ▼ fl// Fl_Color c = current_widget->o->labelcolor(); if (v != LOAD) { Fl_Color d = fl_show_colormap(c); @@ -1613,9 +1742,11 @@ static void cb_w_labelcolor(Fl_Button* o, void* v) { o->color(c); o->labelcolor(fl_contrast(FL_BLACK,c)); o->redraw(); +//fl ▲ ----------=~--=~~-~~~------------~=-~=-~=~~~~~-=--~~=~ ▲ fl// } static void cb_6(Fl_Menu_Button* o, void* v) { +//fl ▼ ---------------------- callback ~--=~~-=~~~-=~=-=~--=~ ▼ fl// Fl_Color c = current_widget->o->labelcolor(); if (v != LOAD) { Fl_Color d = (Fl_Color)(o->mvalue()->argument()); @@ -1626,11 +1757,13 @@ static void cb_6(Fl_Menu_Button* o, void* v) { w_labelcolor->labelcolor(fl_contrast(FL_BLACK,c)); w_labelcolor->redraw(); } +//fl ▲ ----------~=~-=~~~-~=~----------~~=-=-=-~~--~=-~~~-=~= ▲ fl// } Fl_Group *wp_style_box=(Fl_Group *)0; static void cb_7(Fl_Choice* o, void* v) { +//fl ▼ ---------------------- callback ~-~--~-~~=--~~=-=---=- ▼ fl// if (v == LOAD) { if (current_widget->is_a(Type::Menu_Item)) {o->deactivate(); return;} else o->activate(); int n = current_widget->o->box(); @@ -1650,11 +1783,13 @@ static void cb_7(Fl_Choice* o, void* v) { } if (mod) Fluid.proj.set_modflag(1); } +//fl ▲ ----------~=~=~--=~~-~----------~~~~--~--=--=~=~~--=-~ ▲ fl// } Fl_Button *w_color=(Fl_Button *)0; static void cb_w_color(Fl_Button* o, void* v) { +//fl ▼ ---------------------- callback --=---~=~--~~-=~--~~~- ▼ fl// Fl_Color c = current_widget->o->color(); if (v == LOAD) { if (current_widget->is_a(Type::Menu_Item)) { @@ -1671,9 +1806,11 @@ static void cb_w_color(Fl_Button* o, void* v) { o->color(c); o->labelcolor(fl_contrast(FL_BLACK,c)); o->redraw(); +//fl ▲ ----------=~~=~=~==-=~------------=-~=~---~-~-=-=~~--= ▲ fl// } static void cb_8(Fl_Menu_Button* o, void* v) { +//fl ▼ ---------------------- callback ---~-~~==--==--=~-=--= ▼ fl// Fl_Color c = current_widget->o->color(); if (v == LOAD) { if (current_widget->is_a(Type::Menu_Item)) {o->deactivate(); return;} else o->activate(); @@ -1686,11 +1823,13 @@ static void cb_8(Fl_Menu_Button* o, void* v) { w_color->labelcolor(fl_contrast(FL_BLACK,c)); w_color->redraw(); } +//fl ▲ ----------~==~-=--=~~-------------~~-==-~--~~-=-~=~~~~ ▲ fl// } Fl_Group *wp_style_downbox=(Fl_Group *)0; static void cb_9(Fl_Choice* o, void* v) { +//fl ▼ ---------------------- callback -~-=----~-~-~==-=--=~= ▼ fl// if (v == LOAD) { int n; if (current_widget->is_a(Type::Button)) @@ -1725,11 +1864,13 @@ static void cb_9(Fl_Choice* o, void* v) { } if (mod) Fluid.proj.set_modflag(1); } +//fl ▲ ----------~=--~--==~-=------------=~---~~~=-=-~=~=~~-= ▲ fl// } Fl_Button *w_selectcolor=(Fl_Button *)0; static void cb_w_selectcolor(Fl_Button* o, void* v) { +//fl ▼ ---------------------- callback --~~~-=~~-=--~~~~-=~~~ ▼ fl// Fl_Color c = current_widget->o->selection_color(); if (v == LOAD) { if (current_widget->is_a(Type::Menu_Item)) { @@ -1747,9 +1888,11 @@ static void cb_w_selectcolor(Fl_Button* o, void* v) { o->color(c); o->labelcolor(fl_contrast(FL_BLACK,c)); o->redraw(); +//fl ▲ ----------=~-~-~-=~~-~----------~--~=~-~~--=-=-~~==-=- ▲ fl// } static void cb_a(Fl_Menu_Button* o, void* v) { +//fl ▼ ---------------------- callback -~~=~~-~-~-~~~~=--~~=~ ▼ fl// Fl_Color c = current_widget->o->selection_color(); if (v == LOAD) { if (current_widget->is_a(Type::Menu_Item)) { @@ -1767,11 +1910,13 @@ static void cb_a(Fl_Menu_Button* o, void* v) { w_selectcolor->labelcolor(fl_contrast(FL_BLACK,c)); w_selectcolor->redraw(); } +//fl ▲ ----------=~~=~~-==~-------------~=-~-=-~~~-=~-=-=-~~= ▲ fl// } Fl_Group *wp_style_text=(Fl_Group *)0; static void cb_b(Fl_Choice* o, void* v) { +//fl ▼ ---------------------- callback -----==-=-~=----~~~-~~ ▼ fl// Fl_Font n; int s; Fl_Color c; if (v == LOAD) { if (!current_widget->textstuff(0,n,s,c)) {o->deactivate(); return;} @@ -1789,9 +1934,11 @@ static void cb_b(Fl_Choice* o, void* v) { } if (mod) Fluid.proj.set_modflag(1); } +//fl ▲ ----------=~--~~=--=----------------~==~~~-=--~~~~~~=~ ▲ fl// } static void cb_c(Fl_Value_Input* o, void* v) { +//fl ▼ ---------------------- callback ~~--=~-~-=~=~~-~~==~-= ▼ fl// Fl_Font n; int s; Fl_Color c; if (v == LOAD) { if (!current_widget->textstuff(0,n,s,c)) {o->deactivate(); return;} @@ -1809,11 +1956,13 @@ static void cb_c(Fl_Value_Input* o, void* v) { if (mod) Fluid.proj.set_modflag(1); } o->value(s); +//fl ▲ ----------=~--~~-~=~~~-----------~=-=----=~==-=~=~=-~~ ▲ fl// } Fl_Button *w_textcolor=(Fl_Button *)0; static void cb_w_textcolor(Fl_Button* o, void* v) { +//fl ▼ ---------------------- callback ~~~==~-=~-=~-~--~~~=-- ▼ fl// Fl_Font n; int s; Fl_Color c; if (v == LOAD) { if (!current_widget->textstuff(0,n,s,c)) { @@ -1831,9 +1980,11 @@ static void cb_w_textcolor(Fl_Button* o, void* v) { o->color(c); o->labelcolor(fl_contrast(FL_BLACK,c)); o->redraw(); +//fl ▲ ----------=~~==~-~~=~-----------~~-~---=-~=-=--==~~==- ▲ fl// } static void cb_d(Fl_Menu_Button* o, void* v) { +//fl ▼ ---------------------- callback ~~~=~~~~=--~~--~~=~~=~ ▼ fl// Fl_Font n; int s; Fl_Color c; if (v == LOAD) { if (!current_widget->textstuff(0,n,s,c)) { @@ -1851,9 +2002,11 @@ static void cb_d(Fl_Menu_Button* o, void* v) { w_textcolor->labelcolor(fl_contrast(FL_BLACK,c)); w_textcolor->redraw(); } +//fl ▲ ----------~=---==~~=~-----------~~~~-=~==---=~-~=-~==~ ▲ fl// } static void cb_Horizontal(Fl_Value_Input* o, void* v) { +//fl ▼ ---------------------- callback -~-=~==~=~-=~-=-=-~==~ ▼ fl// int s; if (v == LOAD) { if (!current_widget->is_true_widget()) { @@ -1879,9 +2032,11 @@ static void cb_Horizontal(Fl_Value_Input* o, void* v) { } if (mod) Fluid.proj.set_modflag(1); } +//fl ▲ ----------~=-=-~=~~~~=-----------~~---=---~=-=~=---=-~ ▲ fl// } static void cb_Vertical(Fl_Value_Input* o, void* v) { +//fl ▼ ---------------------- callback ~--~~=-----=~-~=-=~~~- ▼ fl// int s; if (v == LOAD) { if (!current_widget->is_true_widget()) { @@ -1907,9 +2062,11 @@ static void cb_Vertical(Fl_Value_Input* o, void* v) { } if (mod) Fluid.proj.set_modflag(1); } +//fl ▲ ----------=~----=~-~-~----------~~~~=-~-=---~-~~=-~~-- ▲ fl// } static void cb_Image(Fl_Value_Input* o, void* v) { +//fl ▼ ---------------------- callback -~~~=~--~~--~--==-=~-= ▼ fl// int s; if (v == LOAD) { if (!current_widget->is_true_widget()) { @@ -1935,9 +2092,11 @@ static void cb_Image(Fl_Value_Input* o, void* v) { } if (mod) Fluid.proj.set_modflag(1); } +//fl ▲ ----------~=-=~=----~-----------~--=~~=-~--=-=~~=--~=- ▲ fl// } static void cb_Compact(Fl_Light_Button* o, void* v) { +//fl ▼ ---------------------- callback ~-~-=~-~-==~=-~~=--=-= ▼ fl// if (v == LOAD) { uchar n; if (current_widget->is_a(Type::Button) && !current_widget->is_a(Type::Menu_Item)) { @@ -1965,6 +2124,7 @@ static void cb_Compact(Fl_Light_Button* o, void* v) { } if (mod) Fluid.proj.set_modflag(1); } +//fl ▲ ----------~=-~=-=--=~-----------~~=~-~~~=-~--=~=-~~-~~ ▲ fl// } Fl_Group *wp_cpp_tab=(Fl_Group *)0; @@ -1972,6 +2132,7 @@ Fl_Group *wp_cpp_tab=(Fl_Group *)0; Fl_Group *wp_cpp_class=(Fl_Group *)0; static void cb_e(Fl_Input* o, void* v) { +//fl ▼ ---------------------- callback ~-~=~--~--~-~-~=-~~-~~ ▼ fl// if (v == LOAD) { if (current_widget->is_a(Type::Menu_Item)) { o->deactivate(); @@ -1988,9 +2149,11 @@ static void cb_e(Fl_Input* o, void* v) { } if (mod) Fluid.proj.set_modflag(1); } +//fl ▲ ----------~=~---=~~-~~----------~~~-~~=~~~~=~---~~--~- ▲ fl// } static void cb_f(Fl_Choice* o, void* v) { +//fl ▼ ---------------------- callback ~~---=--=-=~=-=-~-~~~~ ▼ fl// static Fl_Menu_Item empty_type_menu[] = { {"Normal",0,nullptr,(void*)nullptr}, {nullptr}}; @@ -2034,11 +2197,13 @@ static void cb_f(Fl_Choice* o, void* v) { } if (mod) Fluid.proj.set_modflag(1); } +//fl ▲ ----------~=---=~-~==~-------------~-==--~~-=--~=-~-~= ▲ fl// } Fl_Group *wp_cpp_name=(Fl_Group *)0; static void cb_10(Fl_Input* o, void* v) { +//fl ▼ ---------------------- callback ~~~~-~-=-~~==-=-~=-~~= ▼ fl// if (v == LOAD) { static char buf[1024]; if (numselected != 1) { @@ -2060,9 +2225,11 @@ static void cb_10(Fl_Input* o, void* v) { // ((Fl_Window*)(o->parent()->parent()->parent()))->label(current_widget->title()); } } +//fl ▲ ----------~=~=-~~---=~----------~~=-~-~~~=~-=----~~--~ ▲ fl// } static void cb_11(Fl_Choice* o, void* v) { +//fl ▼ ---------------------- callback ~~-~-~=~-~~=~~=-~-~~~~ ▼ fl// if (v == LOAD) { o->value(current_widget->public_); if (current_widget->is_in_class()) o->show(); else o->hide(); @@ -2082,6 +2249,7 @@ static void cb_11(Fl_Choice* o, void* v) { redraw_browser(); } } +//fl ▲ ----------~=-~--=-=~=~----------~--~=-~~~=-==--=~-~==- ▲ fl// } Fl_Menu_Item menu_2[] = { @@ -2098,6 +2266,7 @@ Fl_Menu_Item menu_3[] = { }; static void cb_v_input(Fl_Input* o, void* v) { +//fl ▼ ---------------------- callback ~~-==~=~-~~==-=--~~--= ▼ fl// int n = fl_int(o->user_data()); if (v == LOAD) { o->value(current_widget->extra_code(n)); @@ -2112,30 +2281,40 @@ static void cb_v_input(Fl_Input* o, void* v) { } if (mod) Fluid.proj.set_modflag(1); } +//fl ▲ ----------~=~=~--~=~=~----------~--~~~~~~==--~=-~~~-~- ▲ fl// } static void cb_v_input1(Fl_Input* o, void* v) { +//fl ▼ ---------------------- callback ~-~==~-~~=~~=~~-~~=--~ ▼ fl// cb_v_input(o, v); +//fl ▲ ----------=~~~~~=-=-~~----------~-~-~=~~-------=-=-=-= ▲ fl// } static void cb_v_input2(Fl_Input* o, void* v) { +//fl ▼ ---------------------- callback -~--=-~~~~-=-~-=-=~--~ ▼ fl// cb_v_input(o, v); +//fl ▲ ----------~==-=~~=-~------------~-~-~=~~-------=-=-=-= ▲ fl// } Fl_Input *v_input[4]={(Fl_Input *)0}; static void cb_v_input3(Fl_Input* o, void* v) { +//fl ▼ ---------------------- callback ~----~-~=~~--~--~~~~=~ ▼ fl// cb_v_input(o, v); +//fl ▲ ----------~=~-=~~-=-~-----------~-~-~=~~-------=-=-=-= ▲ fl// } static void cb_12(Fl_Tile*, void* v) { +//fl ▼ ---------------------- callback -~-----~=-~==~=--~-==~ ▼ fl// wComment->do_callback(wComment, v); wCallback->do_callback(wCallback, v); +//fl ▲ ----------=~-=~==~~=-=-----------~~--~-=--~=-=~~-~=~=~ ▲ fl// } Fl_Text_Editor *wComment=(Fl_Text_Editor *)0; static void cb_wComment(Fl_Text_Editor* o, void* v) { +//fl ▼ ---------------------- callback ----~~=~~--==--=~----~ ▼ fl// if (v == LOAD) { const char *cmttext = current_widget->comment(); o->buffer()->text( cmttext ? cmttext : "" ); @@ -2149,11 +2328,13 @@ static void cb_wComment(Fl_Text_Editor* o, void* v) { if (mod) Fluid.proj.set_modflag(1); free(c); } +//fl ▲ ----------=~---==---=~----------~~-~--=~~~-~~==~~=~~~- ▲ fl// } fld::widget::Code_Editor *wCallback=(fld::widget::Code_Editor *)0; static void cb_wCallback(fld::widget::Code_Editor* o, void* v) { +//fl ▼ ---------------------- callback ~--~-~-~~-=~~-~=~=-~~= ▼ fl// if (v == LOAD) { const char *cbtext = current_widget->callback(); o->buffer()->text( cbtext ? cbtext : "" ); @@ -2173,11 +2354,13 @@ static void cb_wCallback(fld::widget::Code_Editor* o, void* v) { if (mod) Fluid.proj.set_modflag(1); free(c); } +//fl ▲ ----------=~=~=~-~-~~=-----------~=-~~-~~=-=~--~~--=~~ ▲ fl// } Fl_Group *wp_cpp_callback=(Fl_Group *)0; static void cb_13(Fl_Input* o, void* v) { +//fl ▼ ---------------------- callback -~~=~-~----==~-=~~=~-= ▼ fl// if (v == LOAD) { o->value(current_widget->user_data()); } else { @@ -2191,9 +2374,11 @@ static void cb_13(Fl_Input* o, void* v) { } if (mod) Fluid.proj.set_modflag(1); } +//fl ▲ ----------=~----=~-==~----------~-~=-~=~-~~---=-~~-~-- ▲ fl// } static void cb_When(Fl_Menu_Button* o, void* v) { +//fl ▼ ---------------------- callback ~~=--==-~-=~=~~==-~-~- ▼ fl// if (v == LOAD) { if (current_widget->is_a(Type::Menu_Item)) {o->deactivate(); return;} else o->activate(); int n = current_widget->o->when(); @@ -2219,9 +2404,11 @@ static void cb_When(Fl_Menu_Button* o, void* v) { } if (mod) Fluid.proj.set_modflag(1); } +//fl ▲ ----------=~~~~=~-~-~------------~-=~==--=~~-=-=~~--~~ ▲ fl// } static void cb_14(Fl_Input_Choice* o, void* v) { +//fl ▼ ---------------------- callback ~~---~-~~~~=~~-~~=~~~~ ▼ fl// static const char *dflt = "void*"; if (v == LOAD) { const char *c = current_widget->user_data_type(); @@ -2244,6 +2431,7 @@ static void cb_14(Fl_Input_Choice* o, void* v) { } if (mod) Fluid.proj.set_modflag(1); } +//fl ▲ ----------~=~~=-~-=~~~--------------=~~-~-~~~~-=~-~=-- ▲ fl// } Fl_Menu_Item menu_4[] = { @@ -2257,25 +2445,32 @@ Fl_Box *w_when_box=(Fl_Box *)0; Grid_Tab *widget_tab_grid=(Grid_Tab *)0; static void cb_widget_tab_grid(Grid_Tab* o, void*) { +//fl ▼ ---------------------- callback -~--=~~~~~=-~~=-=~-~~- ▼ fl// o->callback((Fl_Callback*)propagate_load); +//fl ▲ ----------=~=--~---~-=----------~~~==-=--~-~-=~~=-~=-= ▲ fl// } Grid_Child_Tab *widget_tab_grid_child=(Grid_Child_Tab *)0; static void cb_widget_tab_grid_child(Grid_Child_Tab* o, void*) { +//fl ▼ ---------------------- callback -~-==-=~~~~~~==~~--~-~ ▼ fl// o->callback((Fl_Callback*)propagate_load); +//fl ▲ ----------=~~~---=~~~=----------~~~==-=--~-~-=~~=-~=-= ▲ fl// } Fl_Tabs *data_tabs=(Fl_Tabs *)0; static void cb_data_tabs(Fl_Tabs* o, void* v) { +//fl ▼ ---------------------- callback -~-==~-~-~-~-=-~~-~==- ▼ fl// if (current_node && current_node->is_a(Type::Data)) propagate_load((Fl_Group *)o,v); +//fl ▲ ----------=~=~=-~=~-~~----------~-=~=~~=--~--==~=-=~=- ▲ fl// } Fl_Group *data_tabs_data=(Fl_Group *)0; static void cb_15(Fl_Choice* o, void* v) { +//fl ▼ ---------------------- callback --~~-==-=~-==-~-~-~~-= ▼ fl// if (!current_node || !current_node->is_a(Type::Data)) return; Data_Node* nd = (Data_Node*)current_node; if (v == LOAD) { @@ -2298,6 +2493,7 @@ static void cb_15(Fl_Choice* o, void* v) { redraw_browser(); } } +//fl ▲ ----------=~-~---~~-=~-----------~--~~~-~==~~=-==-~-=- ▲ fl// } Fl_Menu_Item menu_5[] = { @@ -2309,6 +2505,7 @@ Fl_Menu_Item menu_5[] = { }; static void cb_16(Fl_Choice* o, void* v) { +//fl ▼ ---------------------- callback ~-=~-=--~~-=--=~~~=-=- ▼ fl// if (!current_node || !current_node->is_a(Type::Data)) return; Data_Node* nd = (Data_Node*)current_node; if (v == LOAD) { @@ -2331,6 +2528,7 @@ static void cb_16(Fl_Choice* o, void* v) { redraw_browser(); } } +//fl ▲ ----------=~~=-=--~=-~-----------~-=-~~~~~~=~=~=-~-=-- ▲ fl// } Fl_Menu_Item menu_6[] = { @@ -2343,6 +2541,7 @@ Fl_Menu_Item menu_6[] = { Fl_Choice *data_mode_2=(Fl_Choice *)0; static void cb_data_mode_2(Fl_Choice* o, void* v) { +//fl ▼ ---------------------- callback --~~---~~-----~=~=-~-~ ▼ fl// if (!current_node || !current_node->is_a(Type::Data)) return; Data_Node* nd = (Data_Node*)current_node; if (v == LOAD) { @@ -2357,6 +2556,7 @@ static void cb_data_mode_2(Fl_Choice* o, void* v) { Fluid.proj.set_modflag(1); } } +//fl ▲ ----------=~-~---=-~~-----------~--~=--~=-~=-=~=--~-~- ▲ fl// } Fl_Menu_Item menu_data_mode_2[] = { @@ -2370,6 +2570,7 @@ Fl_Menu_Item menu_data_mode_2[] = { }; static void cb_Name(Fl_Input* o, void* v) { +//fl ▼ ---------------------- callback ~-=-~==-~-~-=~-~-=~-~- ▼ fl// if (!current_node || !current_node->is_a(Type::Data)) return; Data_Node* nd = (Data_Node*)current_node; if (v == LOAD) { @@ -2386,13 +2587,18 @@ static void cb_Name(Fl_Input* o, void* v) { nd->name( o->value() ); mod = 1; } - if (mod) Fluid.proj.set_modflag(1); + if (mod) { + Fluid.proj.set_modflag(1); + redraw_browser(); + } } +//fl ▲ ----------~=~~~~~=~~~~------------~=-~-=~--~~~--~=~~-~ ▲ fl// } Fl_Input *wp_data_filename=(Fl_Input *)0; static void cb_wp_data_filename(Fl_Input* o, void* v) { +//fl ▼ ---------------------- callback ~-~=~~~~~~-=~~=~-==--- ▼ fl// if (!current_node || !current_node->is_a(Type::Data)) return; Data_Node* nd = (Data_Node*)current_node; if (v == LOAD) { @@ -2412,9 +2618,11 @@ static void cb_wp_data_filename(Fl_Input* o, void* v) { } if (mod) Fluid.proj.set_modflag(1); } +//fl ▲ ----------=~=~-----~-~-----------~-=~-=~-=~~~--=~~-~~= ▲ fl// } static void cb_fileopen(Fl_Button*, void* v) { +//fl ▼ ---------------------- callback ~--=-~~~=~~--~=-=~-=~- ▼ fl// if (v == LOAD) { } else { Fluid.proj.enter_project_dir(); @@ -2429,9 +2637,11 @@ static void cb_fileopen(Fl_Button*, void* v) { } } } +//fl ▲ ----------~=-=~-=-=~=-----------~-=~~=---~=~--~~~~~~~= ▲ fl// } static void cb_Comment(Fl_Text_Editor* o, void* v) { +//fl ▼ ---------------------- callback ~--=---~~~-=-~=-=-~-=~ ▼ fl// if (!current_node || !current_node->is_a(Type::Data)) return; Data_Node* nd = (Data_Node*)current_node; if (v == LOAD) { @@ -2450,15 +2660,21 @@ static void cb_Comment(Fl_Text_Editor* o, void* v) { mod = 1; } free(c); - if (mod) Fluid.proj.set_modflag(1); + if (mod) { + Fluid.proj.set_modflag(1); + redraw_browser(); + } } +//fl ▲ ----------~==--~-=~-~-----------~-~~=-----=~~--=~---~= ▲ fl// } Fl_Tabs *comment_tabs=(Fl_Tabs *)0; static void cb_comment_tabs(Fl_Tabs* o, void* v) { +//fl ▼ ---------------------- callback ---~~~~==~~=~~~~--~~~~ ▼ fl// if (current_node && current_node->is_a(Type::Comment)) propagate_load((Fl_Group *)o,v); +//fl ▲ ----------=~-=~-=---~=----------~--~=-~=---=~-~=~~=-~~ ▲ fl// } Fl_Group *comment_tabs_comment=(Fl_Group *)0; @@ -2466,6 +2682,7 @@ 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) { +//fl ▼ ---------------------- callback --~~-~-~~=--~---~~~~=- ▼ fl// if (!current_node || !current_node->is_a(Type::Comment)) return; Comment_Node* nd = (Comment_Node*)current_node; if (v == LOAD) { @@ -2485,13 +2702,18 @@ static void cb_comment_tabs_name(Fl_Text_Editor* o, void* v) { mod = 1; } free(c); - if (mod) Fluid.proj.set_modflag(1); + if (mod) { + Fluid.proj.set_modflag(1); + redraw_browser(); + } } +//fl ▲ ----------=~=----=--=~-----------~=--=-~-~-~=~=~-~~-~= ▲ fl// } Fl_Menu_Button *comment_predefined_2=(Fl_Menu_Button *)0; static void cb_comment_predefined_2(Fl_Menu_Button* o, void* v) { +//fl ▼ ---------------------- callback ~-~-=~=~=-=--=~==-~--- ▼ fl// if (!current_node || !current_node->is_a(Type::Comment)) return; Comment_Node* nd = (Comment_Node*)current_node; static char itempath[255]; @@ -2566,11 +2788,13 @@ static void cb_comment_predefined_2(Fl_Menu_Button* o, void* v) { } } } +//fl ▲ ----------~=---~~----~-----------~=~-~~-----~=~=--~=~~ ▲ fl// } Fl_Button *comment_load_2=(Fl_Button *)0; static void cb_comment_load_2(Fl_Button*, void* v) { +//fl ▼ ---------------------- callback -~~=-~~=--~~--~~=~---- ▼ fl// // load a comment from disk if (v == LOAD) { } else { @@ -2584,9 +2808,11 @@ static void cb_comment_load_2(Fl_Button*, void* v) { comment_tabs_name->do_callback(); } } +//fl ▲ ----------=~~=~=~--~=-------------~-~--~-==~~-~~=~~=-= ▲ fl// } static void cb_output(Fl_Check_Button* o, void* v) { +//fl ▼ ---------------------- callback ~-=~=-~~~~=-------~~=- ▼ fl// if (!current_node || !current_node->is_a(Type::Comment)) return; Comment_Node* nd = (Comment_Node*)current_node; @@ -2602,9 +2828,11 @@ static void cb_output(Fl_Check_Button* o, void* v) { Fluid.proj.set_modflag(1); } } +//fl ▲ ----------~=-~~~~----=-----------~-~=~=-~--~~=~~=~-~~- ▲ fl// } static void cb_output1(Fl_Check_Button* o, void* v) { +//fl ▼ ---------------------- callback ---=~-~-=~=--~~~~-=~-= ▼ fl// if (!current_node || !current_node->is_a(Type::Comment)) return; Comment_Node* nd = (Comment_Node*)current_node; @@ -2620,6 +2848,156 @@ static void cb_output1(Fl_Check_Button* o, void* v) { Fluid.proj.set_modflag(1); } } +//fl ▲ ----------~==-~--~~--=----------~~~---~-~--~-=-==~-==~ ▲ fl// +} + +Fl_Tabs *class_tabs=(Fl_Tabs *)0; + +static void cb_class_tabs(Fl_Tabs* o, void* v) { +//fl ▼ ---------------------- callback -~-----=-~-=~-~=-~---- ▼ fl// + if (current_node && current_node->is_a(Type::Class)) + propagate_load((Fl_Group *)o,v); +//fl ▲ ----------=~=--~-=---=----------~-~~~~=~~~-==~-=~=~~-= ▲ fl// +} + +Fl_Group *class_tabs_main=(Fl_Group *)0; + +static void cb_17(Fl_Choice* o, void* v) { +//fl ▼ ---------------------- callback --~=~~~~~-=~-=---=~~-- ▼ fl// + 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 { + int mod = 0; + if (nd->is_in_class()) { + if (nd->visibility() != o->value()) { + nd->visibility(o->value()); + mod = 1; + } + } + if (mod) { + Fluid.proj.set_modflag(1); + redraw_browser(); + } + } +//fl ▲ ----------~=-~~==-~==------------~-~-~~~-~---~~~=~~=-- ▲ fl// +} + +Fl_Menu_Item menu_7[] = { + {"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) { +//fl ▼ ---------------------- callback ~~-=-=~=~=--=~=~~=~=-= ▼ fl// + 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 { + int mod; + const char *nn = nd->prefix(); + if ( (nn && (strcmp(nn, o->value()) == 0)) + || (!nn && (strcmp("", o->value()) == 0)) ) + { + mod = 0; + } else { + nd->prefix( o->value() ); + mod = 1; + } + Fluid.proj.set_modflag(1); + } +//fl ▲ ----------~=~~~---~-------------~--~~---~~~~=-~~-~=~~= ▲ fl// +} + +Fl_Input *c_name_input_2=(Fl_Input *)0; + +static void cb_c_name_input_2(Fl_Input* o, void* v) { +//fl ▼ ---------------------- callback ~~~-~~=--=~~~-~---~--- ▼ fl// + if (!current_node || !current_node->is_a(Type::Class)) return; + Class_Node* nd = (Class_Node*)current_node; + if (v == LOAD) { + o->value( nd->name() ); + the_panel->label("Class Properties"); + } else { + int mod; + const char *nn = nd->name(); + if ( (nn && (strcmp(nn, o->value()) == 0)) + || (!nn && (strcmp("", o->value()) == 0)) ) + { + mod = 0; + } else { + nd->name( o->value() ); + mod = 1; + } + if (mod) { + Fluid.proj.set_modflag(1); + redraw_browser(); + } + } +//fl ▲ ----------=~=~=--==~=-----------~-=~-~-=~~~-=~=---~-~~ ▲ fl// +} + +Fl_Input *c_subclass_input_2=(Fl_Input *)0; + +static void cb_c_subclass_input_2(Fl_Input* o, void* v) { +//fl ▼ ---------------------- callback -~--~~=-~~~~=-~~--~-~- ▼ fl// + 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 { + int mod; + const char *nn = nd->base_class_name(); + if ( (nn && (strcmp(nn, o->value()) == 0)) + || (!nn && (strcmp("", o->value()) == 0)) ) + { + mod = 0; + } else { + nd->base_class_name( o->value() ); + mod = 1; + } + Fluid.proj.set_modflag(1); + } +//fl ▲ ----------~=~=~=-~-=~=-----------~=~~-~~-~-==~-~--=-~- ▲ fl// +} + +Fl_Text_Editor *c_comment_input_2=(Fl_Text_Editor *)0; + +static void cb_c_comment_input_2(Fl_Text_Editor* o, void* v) { +//fl ▼ ---------------------- callback --~~~~~-~-=~~--=-=--=- ▼ fl// + 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 { + int mod; + char *c = o->buffer()->text(); + const char *nn = nd->comment(); + if ( (nn && (strcmp(nn, c) == 0)) + || (!nn && (strcmp("", c) == 0)) ) + { + mod = 0; + } else { + nd->comment(c); + mod = 1; + } + free(c); + if (mod) { + Fluid.proj.set_modflag(1); + redraw_browser(); + } + } +//fl ▲ ----------~=----~=-~~~----------~--==~~-~=--=~=~=~~~=~ ▲ fl// } Fl_Tabs *widget_tabs_repo=(Fl_Tabs *)0; @@ -2815,8 +3193,8 @@ Fl_Double_Window* make_widget_panel() { 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->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); @@ -2830,8 +3208,8 @@ math, including the variables\nx, px, sx, cx, and i"); 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->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); @@ -2845,8 +3223,8 @@ math, including the variables\ny, py, sy, cy, and i"); 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->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); @@ -2860,8 +3238,8 @@ math, including the variables\ny, py, sy, cy, and i"); 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->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); @@ -2875,9 +3253,9 @@ math, including the variables\ny, py, sy, cy, and i"); 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->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->labelsize(11); o->textsize(11); @@ -3459,8 +3837,8 @@ sized to fit the container."); { 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->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); @@ -3478,8 +3856,8 @@ erview."); { 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->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); @@ -3621,8 +3999,8 @@ access the Widget pointer and \'v\' to access the user value."); o->callback((Fl_Callback*)propagate_load); o->align(Fl_Align(FL_ALIGN_LEFT)); { data_mode_2 = new Fl_Choice(95, 75, 210, 20); - data_mode_2->tooltip("text mode generates a \"const char*\" and a trailing NUL, compressed mode use\ -s zlib to generate a binary block"); + data_mode_2->tooltip("text mode generates a \"const char*\" and a trailing NUL, compressed mode use" +"s zlib to generate a binary block"); data_mode_2->down_box(FL_BORDER_BOX); data_mode_2->labelsize(11); data_mode_2->textsize(11); @@ -3635,8 +4013,8 @@ s zlib to generate a binary block"); 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->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->textfont(4); @@ -3680,6 +4058,7 @@ and \"const char*\" in text mode."); 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); @@ -3731,8 +4110,81 @@ and \"const char*\" in text mode."); Fl_Group::current()->resizable(comment_tabs_comment); } // Fl_Group* comment_tabs_comment comment_tabs->end(); - Fl_Group::current()->resizable(comment_tabs); } // 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_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*)propagate_load); + o->align(Fl_Align(FL_ALIGN_LEFT)); + o->hide(); + { Fl_Choice* o = new Fl_Choice(95, 50, 75, 20); + o->tooltip("visibilit for a class inside a class"); + 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, 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_Attribute); + } // Fl_Input* o + { c_name_input_2 = new Fl_Input(95, 75, 305, 20, "Class Name:"); + c_name_input_2->tooltip("class name, must be one C++ keyword"); + c_name_input_2->labelfont(1); + c_name_input_2->labelsize(11); + c_name_input_2->textfont(4); + c_name_input_2->textsize(11); + c_name_input_2->callback((Fl_Callback*)cb_c_name_input_2); + } // Fl_Input* c_name_input_2 + { c_subclass_input_2 = new Fl_Input(95, 100, 305, 20, "Base Class:"); + c_subclass_input_2->tooltip("visibility and name of base class or classes\ne.g. `public Fl_Widget`"); + c_subclass_input_2->labelfont(1); + c_subclass_input_2->labelsize(11); + c_subclass_input_2->textfont(4); + c_subclass_input_2->textsize(11); + c_subclass_input_2->callback((Fl_Callback*)cb_c_subclass_input_2); + } // Fl_Input* c_subclass_input_2 + { Fl_Text_Editor* o = c_comment_input_2 = new Fl_Text_Editor(95, 125, 305, 110, "Comment:"); + c_comment_input_2->tooltip("class comment in Doxygen format"); + c_comment_input_2->box(FL_DOWN_BOX); + c_comment_input_2->labelfont(1); + c_comment_input_2->labelsize(11); + c_comment_input_2->textfont(4); + c_comment_input_2->textsize(11); + c_comment_input_2->callback((Fl_Callback*)cb_c_comment_input_2); + c_comment_input_2->align(Fl_Align(FL_ALIGN_LEFT)); + Fl_Group::current()->resizable(c_comment_input_2); + o->buffer(new Fl_Text_Buffer()); + o->add_key_binding(FL_Tab, 0, use_tab_navigation); + } // Fl_Text_Editor* c_comment_input_2 + class_tabs_main->end(); + Fl_Group::current()->resizable(class_tabs_main); + } // Fl_Group* class_tabs_main + class_tabs->end(); + Fl_Group::current()->resizable(class_tabs); + } // Fl_Tabs* class_tabs tabs_wizard->end(); Fl_Group::current()->resizable(tabs_wizard); } // Fl_Wizard* tabs_wizard @@ -3748,8 +4200,8 @@ and \"const char*\" in text mode."); { Fl_Group* o = new Fl_Group(10, 370, 400, 20); o->labelsize(11); { wLiveMode = new Fl_Button(10, 370, 80, 20, "Live &Resize"); - wLiveMode->tooltip("Create a live duplicate of the selected widgets to test resizing and menu beh\ -avior."); + wLiveMode->tooltip("Create a live duplicate of the selected widgets to test resizing and menu beh" +"avior."); wLiveMode->type(1); wLiveMode->labelsize(10); wLiveMode->callback((Fl_Callback*)live_mode_cb); diff --git a/fluid/panels/widget_panel.fl b/fluid/panels/widget_panel.fl index dd138c8e5..e29a75ea3 100644 --- a/fluid/panels/widget_panel.fl +++ b/fluid/panels/widget_panel.fl @@ -1,7 +1,8 @@ # data file for the Fltk User Interface Designer (fluid) -version 1.0400 +version 1.0500 header_name {.h} code_name {.cxx} +include_guard {} snap { ver 1 current_suite FLTK @@ -26,61 +27,61 @@ comment {// } {uid 0001 in_source in_header } -decl {\#include // free()} {uid 5873 private global +decl {\#include // free()} {uid acd9 private global } -decl {\#include "panels/widget_panel/Grid_Child_Tab.h"} {uid 9c64 public global +decl {\#include "panels/widget_panel/Grid_Child_Tab.h"} {uid b782 public global } -decl {\#include "panels/widget_panel/Grid_Tab.h"} {uid 2f06 public global +decl {\#include "panels/widget_panel/Grid_Tab.h"} {uid 8ed8 public global } -decl {\#include "widgets/Formula_Input.h"} {uid 5cef public global +decl {\#include "widgets/Formula_Input.h"} {uid 2f43 public global } -decl {class Fl_Flex;} {uid 3509 public global +decl {class Fl_Flex;} {uid 9898 public global } -decl {\#include "Fluid.h"} {uid 7f08 private global +decl {\#include "Fluid.h"} {uid 128c private global } -decl {\#include "app/Snap_Action.h"} {uid 234f private global +decl {\#include "app/Snap_Action.h"} {uid d4b3 private global } -decl {\#include "app/Image_Asset.h"} {uid e1f8 private global +decl {\#include "app/Image_Asset.h"} {uid 3917 private global } -decl {\#include "proj/undo.h"} {uid 1d8f private global +decl {\#include "proj/undo.h"} {uid c398 private global } -decl {\#include "nodes/Window_Node.h"} {uid 52f0 private global +decl {\#include "nodes/Window_Node.h"} {uid 2e2f private global } -decl {\#include "nodes/Grid_Node.h"} {uid b3b7 private global +decl {\#include "nodes/Grid_Node.h"} {uid 962d private global } -decl {\#include "nodes/Function_Node.h"} {uid 7b19 private global +decl {\#include "nodes/Function_Node.h"} {uid 3258 private global } -decl {\#include } {uid 689a private global +decl {\#include } {uid 816b private global } -decl {\#include } {uid f9d7 private global +decl {\#include } {uid 7788 private global } -decl {\#include } {uid 86cc private global +decl {\#include } {uid 6499 private global } -decl {\#include } {uid c8a2 private global +decl {\#include } {uid 0f48 private global } -decl {\#include } {uid 678c private global +decl {\#include } {uid ee62 private global } -decl {\#include } {uid 5ddf private global +decl {\#include } {uid 4cf3 private global } -decl {\#define ZERO_ENTRY 1000} {uid 52ad private global +decl {\#define ZERO_ENTRY 1000} {uid 5023 private global } decl {extern const char* when_symbol_name(int n); @@ -92,40 +93,40 @@ extern void color_common(Fl_Color c); extern void color2_common(Fl_Color c); extern void textcolor_common(Fl_Color c); extern int widget_i; -extern fld::widget::Formula_Input_Vars widget_vars[];} {uid d9d1 private global +extern fld::widget::Formula_Input_Vars widget_vars[];} {uid f85f private global } decl {extern int numselected; -extern Fl_Menu_Item boxmenu[];} {uid 2fd1 private global +extern Fl_Menu_Item boxmenu[];} {uid 22d1 private global } -decl {extern int haderror;} {uid 08be private global +decl {extern int haderror;} {uid f5ed private global } -Function {use_tab_navigation(int, Fl_Text_Editor*)} {uid 00f0 +Function {use_tab_navigation(int, Fl_Text_Editor*)} {uid 680c comment {Allow widget navigation on text fields with Tab.} private return_type int } { - code {return 0;} {uid 8be9 + code {return 0;} {uid 2902 } } -Function {make_image_panel()} {uid 77b7 +Function {make_image_panel()} {uid 8039 comment {Create a panel for editing widget image data} } { - Fl_Window image_panel_window {uid 28cb + Fl_Window image_panel_window {uid 6484 label {Image Options} callback {propagate_load(o, v);} open xywh {527 684 260 332} type Double modal visible } { - Fl_Group image_panel_imagegroup {uid 6c2f + Fl_Group image_panel_imagegroup {uid 6514 callback propagate_load open xywh {10 15 235 125} } { - Fl_Box {} {uid 81f2 + Fl_Box {} {uid 339c label { ---- Active Image ----} xywh {75 15 170 20} labelfont 1 labelsize 11 align 20 } - Fl_Box image_panel_data {uid 028c + Fl_Box image_panel_data {uid ee5a label {... x ... pixels, ...} callback {if (v == LOAD) { Fl_Shared_Image *img = Fl_Shared_Image::get(widget_image_input->value()); @@ -146,11 +147,11 @@ Function {make_image_panel()} {uid 77b7 xywh {75 35 170 20} labelsize 11 align 20 code0 {\#include } } - Fl_Group {} {uid 3e48 + Fl_Group {} {uid ac2a callback propagate_load open xywh {75 75 170 20} } { - Fl_Input image_panel_imagew {uid 191e + Fl_Input image_panel_imagew {uid dae5 label {Width:} callback {if (v == LOAD) { if (current_widget->is_widget() && !current_widget->is_a(Type::Window)) { @@ -180,7 +181,7 @@ Function {make_image_panel()} {uid 77b7 tooltip {Scale image to this width in pixel units} xywh {75 75 55 20} labelsize 11 align 5 textsize 11 class {fld::widget::Formula_Input} } - Fl_Input image_panel_imageh {uid fc1b + Fl_Input image_panel_imageh {uid 49e9 label {Height:} callback {if (v == LOAD) { if (current_widget->is_widget() && !current_widget->is_a(Type::Window)) { @@ -210,7 +211,7 @@ Function {make_image_panel()} {uid 77b7 tooltip {Scale image to this height in pixel units} xywh {135 75 55 20} labelsize 11 align 5 textsize 11 class {fld::widget::Formula_Input} } - Fl_Button {} {uid 8d4f + Fl_Button {} {uid 05f1 label Reset callback {if (v != LOAD) { image_panel_imagew->value(0); @@ -221,15 +222,15 @@ Function {make_image_panel()} {uid 77b7 tooltip {Reset scale to original size} xywh {195 75 50 20} labelsize 11 } } - Fl_Box {} {uid eb71 + Fl_Box {} {uid 56c4 label {Scale:} xywh {10 75 60 20} labelfont 1 labelsize 11 align 24 } - Fl_Box {} {uid 2080 + Fl_Box {} {uid 2b8a label {Storage:} xywh {10 100 60 20} labelfont 1 labelsize 11 align 24 } - Fl_Check_Button {} {uid 14d7 + Fl_Check_Button {} {uid 6a9b label {convert to raw pixel data} callback {if (v == LOAD) { if (current_widget->is_widget() && !current_widget->is_a(Type::Window)) { @@ -248,7 +249,7 @@ Function {make_image_panel()} {uid 77b7 }} tooltip {if unchecked, keep the image in its original format and store the data as is; if checked, convert the image and store it as uncompressed RGB or grayscale pixel data} xywh {75 100 170 20} down_box DOWN_BOX labelsize 11 } - Fl_Check_Button {} {uid 7fd3 + Fl_Check_Button {} {uid c339 label {bind to widget} callback {if (v == LOAD) { if (current_widget->is_widget() && !current_widget->is_a(Type::Window)) { @@ -268,15 +269,15 @@ Function {make_image_panel()} {uid 77b7 tooltip {bind the image to the widget, so it will be deleted automatically} xywh {75 120 170 20} down_box DOWN_BOX labelsize 11 hotspot } } - Fl_Group image_panel_deimagegroup {uid 0df4 + Fl_Group image_panel_deimagegroup {uid 07f7 callback propagate_load open xywh {10 155 235 125} } { - Fl_Box {} {uid d6f1 + Fl_Box {} {uid 4ca1 label { ---- Inactive Image ----} xywh {75 155 170 20} labelfont 1 labelsize 11 align 20 } - Fl_Box image_panel_dedata {uid 7f94 + Fl_Box image_panel_dedata {uid ead3 label {... x ... pixels, ...} callback {if (v == LOAD) { Fl_Shared_Image *img = Fl_Shared_Image::get(widget_deimage_input->value()); @@ -296,11 +297,11 @@ Function {make_image_panel()} {uid 77b7 }} xywh {75 175 170 20} labelsize 11 align 20 } - Fl_Group {} {uid 32e8 + Fl_Group {} {uid f3ed callback propagate_load open xywh {75 215 170 20} } { - Fl_Input image_panel_deimagew {uid cfab + Fl_Input image_panel_deimagew {uid b8d5 label {Width:} callback {if (v == LOAD) { if (current_widget->is_widget() && !current_widget->is_a(Type::Window)) { @@ -330,7 +331,7 @@ Function {make_image_panel()} {uid 77b7 tooltip {Scale image to this width in pixel units} xywh {75 215 55 20} labelsize 11 align 5 textsize 11 class {fld::widget::Formula_Input} } - Fl_Input image_panel_deimageh {uid f893 + Fl_Input image_panel_deimageh {uid 9ad9 label {Height:} callback {if (v == LOAD) { if (current_widget->is_widget() && !current_widget->is_a(Type::Window)) { @@ -360,7 +361,7 @@ Function {make_image_panel()} {uid 77b7 tooltip {Scale image to this height in pixel units} xywh {135 215 55 20} labelsize 11 align 5 textsize 11 class {fld::widget::Formula_Input} } - Fl_Button {} {uid 0573 + Fl_Button {} {uid 3c5b label Reset callback {if (v != LOAD) { image_panel_deimagew->value(0); @@ -371,15 +372,15 @@ Function {make_image_panel()} {uid 77b7 tooltip {Reset scale to original size} xywh {195 215 50 20} labelsize 11 } } - Fl_Box {} {uid e91b + Fl_Box {} {uid 546c label {Scale:} xywh {10 215 60 20} labelfont 1 labelsize 11 align 24 } - Fl_Box {} {uid 2cd9 + Fl_Box {} {uid 1151 label {Storage:} xywh {10 240 60 20} labelfont 1 labelsize 11 align 24 } - Fl_Check_Button {} {uid e939 + Fl_Check_Button {} {uid 9c20 label {convert to raw pixel data} callback {if (v == LOAD) { if (current_widget->is_widget() && !current_widget->is_a(Type::Window)) { @@ -398,7 +399,7 @@ Function {make_image_panel()} {uid 77b7 }} tooltip {if unchecked, keep the image in its original format and store the data as is; if checked, convert the image and store it as uncompressed RGB or grayscale pixel data} xywh {75 240 170 20} down_box DOWN_BOX labelsize 11 } - Fl_Check_Button {} {uid 8216 + Fl_Check_Button {} {uid 100c label {bind to widget} callback {if (v == LOAD) { if (current_widget->is_widget() && !current_widget->is_a(Type::Window)) { @@ -418,7 +419,7 @@ Function {make_image_panel()} {uid 77b7 tooltip {bind the image to the widget, so it will be deleted automatically} xywh {75 260 170 20} down_box DOWN_BOX labelsize 11 } } - Fl_Button image_panel_close {uid 3341 + Fl_Button image_panel_close {uid fd06 label Close callback {if (v != LOAD) image_panel_window->hide();} @@ -427,7 +428,7 @@ Function {make_image_panel()} {uid 77b7 } } -Function {run_image_panel()} {uid 5e35 return_type void +Function {run_image_panel()} {uid 606d return_type void } { code {if (!image_panel_window) make_image_panel(); @@ -447,11 +448,11 @@ Fl_Shared_Image *img = (Fl_Shared_Image*)image_panel_data->user_data(); if (img) { img->release(); image_panel_data->user_data(nullptr); -}} {uid b8e8 +}} {uid 5fff } } -Function {flex_margin_cb(Fl_Value_Input* i, void* v, void (*load_margin)(Fl_Flex*,Fl_Value_Input*), int (*update_margin)(Fl_Flex*,int))} {uid fe3c return_type void +Function {flex_margin_cb(Fl_Value_Input* i, void* v, void (*load_margin)(Fl_Flex*,Fl_Value_Input*), int (*update_margin)(Fl_Flex*,int))} {uid 18a1 return_type void } { code {if (v == LOAD) { if (current_widget->is_a(Type::Flex)) { @@ -471,56 +472,56 @@ Function {flex_margin_cb(Fl_Value_Input* i, void* v, void (*load_margin)(Fl_Flex } } if (mod) Fluid.proj.set_modflag(1); -}} {uid 56d8 +}} {uid 3b19 } } -Function {make_widget_panel()} {uid 29ce +Function {make_widget_panel()} {uid da36 comment {Create a panel that can be used with all known widgets} open } { - Fl_Window {} {uid ed18 + Fl_Window {} {uid 42e9 comment {Use a Double Window to avoid flickering.} open xywh {390 218 420 400} type Double labelsize 11 align 80 resizable hotspot code0 {o->size_range(o->w(), o->h());} size_range {420 400 0 0} visible } { - Fl_Wizard tabs_wizard {uid aefa + Fl_Wizard tabs_wizard {uid 9a81 callback {propagate_load((Fl_Group *)o,v);} open xywh {10 10 400 350} box NO_BOX labelsize 11 resizable } { - Fl_Tabs widget_tabs {uid 2b68 + Fl_Tabs widget_tabs {uid 0fc3 callback {if (current_widget) propagate_load((Fl_Group *)o,v);} open xywh {10 10 400 350} selection_color 12 labelsize 11 labelcolor 7 when 0 hide code0 {o->show();} } { - Fl_Group wp_gui_tab {uid 5afc + Fl_Group wp_gui_tab {uid 431e label GUI callback propagate_load open xywh {10 30 400 330} labelsize 11 when 0 resizable } { - Fl_Group {} {uid e632 + Fl_Group {} {uid 9dc0 label {Label:} callback propagate_load open xywh {95 40 309 20} labelfont 1 labelsize 11 align 4 } { - Fl_Input wp_gui_label {uid 8701 + Fl_Input wp_gui_label {uid 9244 callback label_cb tooltip {The label text for the widget. Use Ctrl-J for newlines.} xywh {95 40 190 20} labelfont 1 labelsize 11 when 15 textsize 11 resizable } - Fl_Choice {} {uid b839 + Fl_Choice {} {uid 4a7a callback labeltype_cb open tooltip {The label style for the widget.} xywh {285 40 119 20} box THIN_UP_BOX down_box BORDER_BOX labelfont 1 labelsize 11 textsize 11 code0 {extern Fl_Menu_Item labeltypemenu[];} code1 {o->menu(labeltypemenu);} } {} } - Fl_Group {} {uid 940f + Fl_Group {} {uid aeab label {Image:} callback propagate_load open xywh {95 65 309 20} labelfont 1 labelsize 11 align 4 } { - Fl_Input widget_image_input {uid a5e5 + Fl_Input widget_image_input {uid 04c9 callback {if (v == LOAD) { if (current_widget->is_widget() && !current_widget->is_a(Type::Window)) { o->activate(); @@ -536,7 +537,7 @@ Use Ctrl-J for newlines.} xywh {95 40 190 20} labelfont 1 labelsize 11 when 15 t }} tooltip {The active image for the widget.} xywh {95 65 200 20} labelfont 1 labelsize 11 textsize 11 resizable } - Fl_Button {} {uid c471 + Fl_Button {} {uid 98de label {Browse...} callback {if (v == LOAD) { if (current_widget->is_widget() && !current_widget->is_a(Type::Window)) @@ -557,7 +558,7 @@ Use Ctrl-J for newlines.} xywh {95 40 190 20} labelfont 1 labelsize 11 when 15 t }} tooltip {Click to choose the active image.} xywh {295 65 89 20} labelsize 11 align 256 } - Fl_Button {} {uid 7c05 + Fl_Button {} {uid e8f6 label {...} callback {if (v != LOAD) { run_image_panel(); @@ -565,12 +566,12 @@ Use Ctrl-J for newlines.} xywh {95 40 190 20} labelfont 1 labelsize 11 when 15 t tooltip {more image options} bind_image 1 xywh {384 65 20 20} } } - Fl_Group {} {uid da36 + Fl_Group {} {uid 2de2 label {Inactive:} callback propagate_load open xywh {95 90 309 20} labelfont 1 labelsize 11 align 4 } { - Fl_Input widget_deimage_input {uid 7298 + Fl_Input widget_deimage_input {uid 604f callback {if (v == LOAD) { if (current_widget->is_widget() && !current_widget->is_a(Type::Window)) { o->activate(); @@ -586,7 +587,7 @@ Use Ctrl-J for newlines.} xywh {95 40 190 20} labelfont 1 labelsize 11 when 15 t }} tooltip {The inactive image for the widget.} xywh {95 90 200 20} labelfont 1 labelsize 11 textsize 11 resizable } - Fl_Button {} {uid 96ca + Fl_Button {} {uid 839f label {Browse...} callback {if (v == LOAD) { if (current_widget->is_widget() && !current_widget->is_a(Type::Window)) @@ -608,178 +609,178 @@ Use Ctrl-J for newlines.} xywh {95 40 190 20} labelfont 1 labelsize 11 when 15 t tooltip {Click to choose the inactive image.} xywh {295 90 89 20} labelsize 11 } } - Fl_Group wp_gui_alignment {uid 2cc8 + Fl_Group wp_gui_alignment {uid ee67 label {Alignment:} callback propagate_load open xywh {95 115 312 20} labelfont 1 labelsize 11 align 4 } { - Fl_Button {} {uid eadb + Fl_Button {} {uid adce label Clip user_data {(fl_intptr_t)FL_ALIGN_CLIP} callback align_cb tooltip {Clip the label to the inside of the widget.} xywh {95 115 30 20} type Toggle selection_color 8 labelsize 11 align 16 } - Fl_Button {} {uid 9125 + Fl_Button {} {uid cbf2 label Wrap user_data {(fl_intptr_t)FL_ALIGN_WRAP} callback align_cb tooltip {Wrap the label text.} xywh {130 115 38 20} type Toggle selection_color 8 labelsize 11 } - Fl_Button {} {uid 821a + Fl_Button {} {uid f100 label {@-1<-} user_data {(fl_intptr_t)FL_ALIGN_LEFT} callback align_cb tooltip {Left-align the label.} xywh {278 115 20 20} type Toggle selection_color 8 labelsize 11 labelcolor 8 hide } - Fl_Button {} {uid 4e9d + Fl_Button {} {uid 2678 label {@-1->} user_data {(fl_intptr_t)FL_ALIGN_RIGHT} callback align_cb tooltip {Right-align the label.} xywh {303 115 20 20} type Toggle selection_color 8 labelsize 11 labelcolor 8 hide } - Fl_Button {} {uid 22a6 + Fl_Button {} {uid ad97 label {@-18} user_data {(fl_intptr_t)FL_ALIGN_TOP} callback align_cb tooltip {Top-align the label.} xywh {328 115 20 20} type Toggle selection_color 8 labelsize 11 labelcolor 8 hide } - Fl_Button {} {uid 1743 + Fl_Button {} {uid 5a34 label {@-12} user_data {(fl_intptr_t)FL_ALIGN_BOTTOM} callback align_cb tooltip {Bottom-align the label.} xywh {353 115 20 20} type Toggle selection_color 8 labelsize 11 labelcolor 8 hide } - Fl_Choice {} {uid 70dd + Fl_Choice {} {uid c707 callback align_text_image_cb xywh {172 115 116 20} down_box BORDER_BOX labelsize 11 textsize 11 } { - MenuItem {} {uid 90e8 + MenuItem {} {uid 2c5e label { Image Alignment } user_data {(fl_intptr_t)-1} xywh {145 145 100 20} labelfont 1 labelsize 10 } - MenuItem {} {uid 4a89 + MenuItem {} {uid 1aa1 label {image over text} user_data {(fl_intptr_t)FL_ALIGN_IMAGE_OVER_TEXT} xywh {25 25 100 20} labelsize 9 } - MenuItem {} {uid 901f + MenuItem {} {uid b429 label {text over image} user_data {(fl_intptr_t)FL_ALIGN_TEXT_OVER_IMAGE} xywh {15 15 100 20} labelsize 9 } - MenuItem {} {uid c26d + MenuItem {} {uid 475b label {text next to image} user_data {(fl_intptr_t)FL_ALIGN_TEXT_NEXT_TO_IMAGE} xywh {35 35 100 20} labelsize 9 } - MenuItem {} {uid 669d + MenuItem {} {uid 0bf5 label {image next to text} user_data {(fl_intptr_t)FL_ALIGN_IMAGE_NEXT_TO_TEXT} xywh {45 45 100 20} labelsize 9 } - MenuItem {} {uid 2ade + MenuItem {} {uid cc46 label {image is backdrop} user_data {(fl_intptr_t)FL_ALIGN_IMAGE_BACKDROP} xywh {55 55 100 20} labelsize 9 } } - Fl_Choice {} {uid dfe6 + Fl_Choice {} {uid 779c callback align_position_cb xywh {293 115 86 20} down_box BORDER_BOX labelsize 11 textsize 11 } { - MenuItem {} {uid b4c3 + MenuItem {} {uid 3f2e label { Inside && Outside } user_data {(fl_intptr_t)-1} xywh {135 135 100 20} labelfont 1 labelsize 10 } - MenuItem {} {uid 05e8 + MenuItem {} {uid c92a label {top left} user_data {(fl_intptr_t)FL_ALIGN_TOP_LEFT} xywh {45 45 100 20} labelsize 9 } - MenuItem {} {uid aac3 + MenuItem {} {uid 5873 label top user_data {(fl_intptr_t)FL_ALIGN_TOP} xywh {55 55 100 20} labelsize 9 } - MenuItem {} {uid 1eb3 + MenuItem {} {uid 9c64 label {top right} user_data {(fl_intptr_t)FL_ALIGN_TOP_RIGHT} xywh {65 65 100 20} labelsize 9 } - MenuItem {} {uid 2160 + MenuItem {} {uid 2f06 label left user_data {(fl_intptr_t)FL_ALIGN_LEFT} xywh {75 75 100 20} labelsize 9 } - MenuItem {} {uid e18b + MenuItem {} {uid 5cef label center user_data {(fl_intptr_t)FL_ALIGN_CENTER} xywh {35 35 100 20} labelsize 9 } - MenuItem {} {uid d159 + MenuItem {} {uid 3509 label right user_data {(fl_intptr_t)FL_ALIGN_RIGHT} xywh {85 85 100 20} labelsize 9 } - MenuItem {} {uid 42b9 + MenuItem {} {uid 7f08 label {bottom left} user_data {(fl_intptr_t)FL_ALIGN_BOTTOM_LEFT} xywh {95 95 100 20} labelsize 9 } - MenuItem {} {uid b832 + MenuItem {} {uid 234f label bottom user_data {(fl_intptr_t)FL_ALIGN_BOTTOM} xywh {105 105 100 20} labelsize 9 } - MenuItem {} {uid c8cd + MenuItem {} {uid e1f8 label {bottom right} user_data {(fl_intptr_t)FL_ALIGN_BOTTOM_RIGHT} xywh {115 115 100 20} labelsize 9 } - MenuItem {} {uid c241 + MenuItem {} {uid 1d8f label { Outside Alignment } user_data {(fl_intptr_t)-1} xywh {125 125 100 20} labelfont 1 labelsize 10 } - MenuItem {} {uid 7e73 + MenuItem {} {uid 52f0 label {left top} user_data {(fl_intptr_t)FL_ALIGN_LEFT_TOP} xywh {135 135 100 20} labelsize 9 } - MenuItem {} {uid 4df5 + MenuItem {} {uid b3b7 label {right top} user_data {(fl_intptr_t)FL_ALIGN_RIGHT_TOP} xywh {145 145 100 20} labelsize 9 } - MenuItem {} {uid cddb + MenuItem {} {uid 7b19 label {left bottom} user_data {(fl_intptr_t)FL_ALIGN_LEFT_BOTTOM} xywh {155 155 100 20} labelsize 9 } - MenuItem {} {uid 62a3 + MenuItem {} {uid 689a label {right bottom} user_data {(fl_intptr_t)FL_ALIGN_RIGHT_BOTTOM} xywh {45 45 100 20} labelsize 9 } } - Fl_Button {} {uid f3a3 + Fl_Button {} {uid f9d7 label {@-3square} user_data {(fl_intptr_t)FL_ALIGN_INSIDE} callback align_cb tooltip {Show the label inside the widget.} xywh {384 115 20 20} type Toggle selection_color 8 labelsize 11 labelcolor 8 } - Fl_Box {} {uid c479 + Fl_Box {} {uid 86cc xywh {406 115 1 20} labelsize 11 resizable } } - Fl_Group {} {uid c6c4 + Fl_Group {} {uid c8a2 label {Position:} callback position_group_cb open xywh {95 150 314 20} labelfont 1 labelsize 11 align 4 } { - Fl_Input widget_x_input {uid 6b9a + Fl_Input widget_x_input {uid 678c label {X:} callback {if (v == LOAD) { if (current_widget->is_true_widget()) { @@ -813,7 +814,7 @@ Formulas can be simple math, including the variables x, px, sx, cx, and i} xywh {95 150 55 20} labelsize 11 align 5 textsize 11 class {fld::widget::Formula_Input} } - Fl_Input widget_y_input {uid 0d5e + Fl_Input widget_y_input {uid 5ddf label {Y:} callback {if (v == LOAD) { if (current_widget->is_true_widget()) { @@ -846,7 +847,7 @@ Formulas can be simple math, including the variables y, py, sy, cy, and i} xywh {155 150 55 20} labelsize 11 align 5 textsize 11 class {fld::widget::Formula_Input} } - Fl_Input widget_w_input {uid c670 + Fl_Input widget_w_input {uid 52ad label {Width:} callback {if (v == LOAD) { if (current_widget->is_true_widget()) { @@ -879,7 +880,7 @@ Formulas can be simple math, including the variables w, pw, sw, cw, and i} xywh {215 150 55 20} labelsize 11 align 5 textsize 11 class {fld::widget::Formula_Input} } - Fl_Input widget_h_input {uid 8ded + Fl_Input widget_h_input {uid d9d1 label {Height:} callback {if (v == LOAD) { if (current_widget->is_true_widget()) { @@ -912,7 +913,7 @@ Formulas can be simple math, including the variables h, ph, sh, ch, and i} xywh {275 150 55 20} labelsize 11 align 5 textsize 11 class {fld::widget::Formula_Input} } - Fl_Choice {} {uid 0a71 + Fl_Choice {} {uid 2fd1 label {Children:} callback {if (v == LOAD) { if (current_widget->is_a(Type::Widget_Class)) { @@ -935,24 +936,24 @@ h, ph, sh, ch, and i} xywh {275 150 55 20} labelsize 11 align 5 textsize 11 }} tooltip {When instantiating a widget class, the children can either be fixed in their original position, automatically be repositioned, or both repsositioned and resized to fit the container.} xywh {335 150 64 20} down_box BORDER_BOX labelsize 11 align 5 textsize 11 } { - MenuItem {} {uid 30ee + MenuItem {} {uid 08be label Fixed xywh {0 0 31 20} labelsize 11 } - MenuItem {} {uid ce20 + MenuItem {} {uid 00f0 label Reposition xywh {0 0 31 20} labelsize 11 } - MenuItem {} {uid d70c + MenuItem {} {uid 8be9 label Resize xywh {0 0 31 20} labelsize 11 } } - Fl_Box {} {uid 1505 + Fl_Box {} {uid 77b7 xywh {399 150 1 20} hide resizable } } - Fl_Group wp_gui_flexp {uid cbeb + Fl_Group wp_gui_flexp {uid 28cb label {Flex Parent:} callback {if (v == LOAD) { if (Flex_Node::parent_is_flex(current_widget)) { @@ -965,7 +966,7 @@ h, ph, sh, ch, and i} xywh {275 150 55 20} labelsize 11 align 5 textsize 11 comment {This group is only visible if the parent is an Fl_Flex widget} xywh {95 150 314 20} labelfont 1 labelsize 11 align 4 hide } { - Fl_Value_Input widget_flex_size {uid 4e96 + Fl_Value_Input widget_flex_size {uid 6c2f label {Size:} callback {if (v == LOAD) { if (Flex_Node::parent_is_flex(current_widget)) { @@ -1001,7 +1002,7 @@ h, ph, sh, ch, and i} xywh {275 150 55 20} labelsize 11 align 5 textsize 11 }} tooltip {Fixed Width or Height for a horizontal or vertical Fl_Flex Parent.} xywh {95 150 55 20} labelsize 11 align 5 textsize 11 } - Fl_Check_Button widget_flex_fixed {uid 887c + Fl_Check_Button widget_flex_fixed {uid 81f2 label fixed callback {if (v == LOAD) { if (Flex_Node::parent_is_flex(current_widget)) { @@ -1034,11 +1035,11 @@ h, ph, sh, ch, and i} xywh {275 150 55 20} labelsize 11 align 5 textsize 11 }} tooltip {If checked, the size of the widget stays fixed.} xywh {155 150 55 20} down_box DOWN_BOX labelsize 11 } - Fl_Box {} {uid b808 + Fl_Box {} {uid 028c xywh {398 150 1 20} resizable } } - Fl_Group wp_gui_values {uid e48d + Fl_Group wp_gui_values {uid 3e48 label {Values:} callback {if (v == LOAD) { if ( current_widget->is_a(Type::Flex) @@ -1053,7 +1054,7 @@ h, ph, sh, ch, and i} xywh {275 150 55 20} labelsize 11 align 5 textsize 11 }} xywh {95 185 300 20} labelfont 1 labelsize 11 align 4 } { - Fl_Value_Input {} {uid dc09 + Fl_Value_Input {} {uid 191e label {Size:} callback {if (v == LOAD) { if (!current_widget->is_a(Type::Slider)) {o->deactivate(); return;} @@ -1074,7 +1075,7 @@ h, ph, sh, ch, and i} xywh {275 150 55 20} labelsize 11 align 5 textsize 11 }} tooltip {The size of the slider.} xywh {95 185 55 20} labelsize 11 align 5 textsize 11 } - Fl_Value_Input {} {uid da66 + Fl_Value_Input {} {uid fc1b label {Minimum:} callback {if (v == LOAD) { if (current_widget->is_a(Type::Valuator_)) { @@ -1106,7 +1107,7 @@ h, ph, sh, ch, and i} xywh {275 150 55 20} labelsize 11 align 5 textsize 11 }} tooltip {The minimum value of the widget.} xywh {155 185 55 20} labelsize 11 align 5 textsize 11 } - Fl_Value_Input {} {uid 7717 + Fl_Value_Input {} {uid 8d4f label {Maximum:} callback {if (v == LOAD) { if (current_widget->is_a(Type::Valuator_)) { @@ -1138,7 +1139,7 @@ h, ph, sh, ch, and i} xywh {275 150 55 20} labelsize 11 align 5 textsize 11 }} tooltip {The maximum value of the widget.} xywh {215 185 55 20} labelsize 11 align 5 value 1 textsize 11 } - Fl_Value_Input {} {uid 2da8 + Fl_Value_Input {} {uid eb71 label {Step:} callback {if (v == LOAD) { if (current_widget->is_a(Type::Valuator_)) { @@ -1170,7 +1171,7 @@ h, ph, sh, ch, and i} xywh {275 150 55 20} labelsize 11 align 5 textsize 11 }} tooltip {The resolution of the widget value.} xywh {275 185 55 20} labelsize 11 align 5 textsize 11 } - Fl_Value_Input {} {uid 4cb2 + Fl_Value_Input {} {uid 2080 label {Value:} callback {if (v == LOAD) { if (current_widget->is_a(Type::Valuator_)) { @@ -1205,11 +1206,11 @@ h, ph, sh, ch, and i} xywh {275 150 55 20} labelsize 11 align 5 textsize 11 }} tooltip {The current widget value.} xywh {335 185 55 20} labelsize 11 align 5 textsize 11 } - Fl_Box {} {uid d1cd + Fl_Box {} {uid 14d7 xywh {395 185 0 20} resizable } } - Fl_Group wp_gui_margins {uid 6932 + Fl_Group wp_gui_margins {uid 7fd3 label {Margins:} callback {if (v == LOAD) { if (current_widget->is_a(Type::Flex)) { @@ -1222,7 +1223,7 @@ h, ph, sh, ch, and i} xywh {275 150 55 20} labelsize 11 align 5 textsize 11 comment {This group is only visible for Fl_Flex widgets} xywh {95 185 300 20} labelfont 1 labelsize 11 align 4 hide } { - Fl_Value_Input {} {uid 903e + Fl_Value_Input {} {uid 0df4 label {Left:} callback {flex_margin_cb(o, v, [](Fl_Flex *w, Fl_Value_Input* i) -> void @@ -1245,7 +1246,7 @@ h, ph, sh, ch, and i} xywh {275 150 55 20} labelsize 11 align 5 textsize 11 );} tooltip {Left margin in group.} xywh {95 185 55 20} labelsize 11 align 5 textsize 11 } - Fl_Value_Input {} {uid 4a38 + Fl_Value_Input {} {uid d6f1 label {Top:} callback {flex_margin_cb(o, v, [](Fl_Flex *w, Fl_Value_Input* i) -> void @@ -1268,7 +1269,7 @@ h, ph, sh, ch, and i} xywh {275 150 55 20} labelsize 11 align 5 textsize 11 );} tooltip {Top margin in group.} xywh {155 185 55 20} labelsize 11 align 5 textsize 11 } - Fl_Value_Input {} {uid 2554 + Fl_Value_Input {} {uid 7f94 label {Right:} callback {flex_margin_cb(o, v, [](Fl_Flex *w, Fl_Value_Input* i) -> void @@ -1291,7 +1292,7 @@ h, ph, sh, ch, and i} xywh {275 150 55 20} labelsize 11 align 5 textsize 11 );} tooltip {Right margin in group.} xywh {215 185 55 20} labelsize 11 align 5 textsize 11 } - Fl_Value_Input {} {uid 47f0 + Fl_Value_Input {} {uid 32e8 label {Bottom:} callback {flex_margin_cb(o, v, [](Fl_Flex *w, Fl_Value_Input* i) -> void @@ -1314,7 +1315,7 @@ h, ph, sh, ch, and i} xywh {275 150 55 20} labelsize 11 align 5 textsize 11 );} tooltip {Bottom margin in group.} xywh {275 185 55 20} labelsize 11 align 5 textsize 11 } - Fl_Value_Input {} {uid 9208 + Fl_Value_Input {} {uid cfab label {Gap:} callback {flex_margin_cb(o, v, [](Fl_Flex *w, Fl_Value_Input* o) -> void @@ -1335,11 +1336,11 @@ h, ph, sh, ch, and i} xywh {275 150 55 20} labelsize 11 align 5 textsize 11 );} tooltip {Gap between children.} xywh {335 185 55 20} labelsize 11 align 5 textsize 11 } - Fl_Box {} {uid c296 + Fl_Box {} {uid f893 xywh {395 185 0 20} resizable } } - Fl_Group wp_gui_sizerange {uid a574 + Fl_Group wp_gui_sizerange {uid 0573 label {Size Range:} callback {if (v == LOAD) { if (current_widget->is_a(Type::Window)) { @@ -1351,7 +1352,7 @@ h, ph, sh, ch, and i} xywh {275 150 55 20} labelsize 11 align 5 textsize 11 }} xywh {95 185 300 20} labelfont 1 labelsize 11 align 4 hide } { - Fl_Value_Input {} {uid 65af + Fl_Value_Input {} {uid e91b label {Minimum Size:} callback {if (v == LOAD) { if (!current_widget->is_a(Type::Window)) return; @@ -1370,7 +1371,7 @@ h, ph, sh, ch, and i} xywh {275 150 55 20} labelsize 11 align 5 textsize 11 }} tooltip {The size of the slider.} xywh {95 185 55 20} labelsize 11 align 5 maximum 2048 step 1 textsize 11 } - Fl_Value_Input {} {uid 5985 + Fl_Value_Input {} {uid 2cd9 callback {if (v == LOAD) { if (!current_widget->is_a(Type::Window)) return; o->value(((Window_Node*)current_widget)->sr_min_h); @@ -1388,7 +1389,7 @@ h, ph, sh, ch, and i} xywh {275 150 55 20} labelsize 11 align 5 textsize 11 }} tooltip {The minimum value of the widget.} xywh {155 185 55 20} labelsize 11 align 5 maximum 2048 step 1 textsize 11 } - Fl_Button {} {uid 2382 + Fl_Button {} {uid e939 label set callback {if (v == LOAD) { } else { @@ -1407,7 +1408,7 @@ h, ph, sh, ch, and i} xywh {275 150 55 20} labelsize 11 align 5 textsize 11 }} xywh {215 185 25 20} labelsize 11 } - Fl_Value_Input {} {uid b841 + Fl_Value_Input {} {uid 8216 label {Maximum Size:} callback {if (v == LOAD) { if (!current_widget->is_a(Type::Window)) return; @@ -1426,7 +1427,7 @@ h, ph, sh, ch, and i} xywh {275 150 55 20} labelsize 11 align 5 textsize 11 }} tooltip {The maximum value of the widget.} xywh {245 185 55 20} labelsize 11 align 5 maximum 2048 step 1 textsize 11 } - Fl_Value_Input {} {uid 9258 + Fl_Value_Input {} {uid 3341 callback {if (v == LOAD) { if (!current_widget->is_a(Type::Window)) return; o->value(((Window_Node*)current_widget)->sr_max_h); @@ -1444,7 +1445,7 @@ h, ph, sh, ch, and i} xywh {275 150 55 20} labelsize 11 align 5 textsize 11 }} tooltip {The resolution of the widget value.} xywh {305 185 55 20} labelsize 11 align 5 maximum 2048 step 1 textsize 11 } - Fl_Button {} {uid 091c + Fl_Button {} {uid 5e35 label set callback {if (v == LOAD) { } else { @@ -1463,16 +1464,16 @@ h, ph, sh, ch, and i} xywh {275 150 55 20} labelsize 11 align 5 textsize 11 }} xywh {365 185 25 20} labelsize 11 } - Fl_Box {} {uid 5b84 + Fl_Box {} {uid b8e8 xywh {395 185 0 20} resizable } } - Fl_Group {} {uid 2348 + Fl_Group {} {uid fe3c label {Shortcut:} callback propagate_load xywh {95 210 310 20} labelfont 1 labelsize 11 align 4 } { - Fl_Button wp_gui_shortcut {uid eaec + Fl_Button wp_gui_shortcut {uid 56d8 callback {if (v == LOAD) { if (current_widget->is_button()) o->value( ((Fl_Button*)(current_widget->o))->shortcut() ); @@ -1521,12 +1522,12 @@ Use 'Backspace' key to clear.} xywh {95 210 310 20} box DOWN_BOX color 7 selecti class Fl_Shortcut_Button } } - Fl_Group wp_gui_xclass {uid 0339 + Fl_Group wp_gui_xclass {uid 29ce label {X Class:} callback propagate_load xywh {95 235 300 20} labelfont 1 labelsize 11 align 4 } { - Fl_Input {} {uid 366a + Fl_Input {} {uid ed18 label {:} callback {if (v == LOAD) { if (current_widget->is_a(Type::Window)) { @@ -1552,7 +1553,7 @@ Use 'Backspace' key to clear.} xywh {95 210 310 20} box DOWN_BOX color 7 selecti }} tooltip {The X resource class.} xywh {95 235 95 20} labelfont 1 labelsize 11 textsize 11 resizable } - Fl_Light_Button {} {uid 2fca + Fl_Light_Button {} {uid aefa label Border callback {if (v == LOAD) { if (!current_widget->is_a(Type::Window)) {o->hide(); return;} @@ -1565,7 +1566,7 @@ Use 'Backspace' key to clear.} xywh {95 210 310 20} box DOWN_BOX color 7 selecti }} tooltip {Add a border around the window.} xywh {195 235 60 20} selection_color 1 labelsize 11 } - Fl_Light_Button {} {uid b7b9 + Fl_Light_Button {} {uid 2b68 label Modal callback {if (v == LOAD) { if (!current_widget->is_a(Type::Window)) {o->hide(); return;} @@ -1578,7 +1579,7 @@ Use 'Backspace' key to clear.} xywh {95 210 310 20} box DOWN_BOX color 7 selecti }} tooltip {Make the window modal.} xywh {260 235 55 20} selection_color 1 labelsize 11 } - Fl_Light_Button {} {uid 4cf0 + Fl_Light_Button {} {uid 5afc label Nonmodal callback {if (v == LOAD) { if (!current_widget->is_a(Type::Window)) {o->hide(); return;} @@ -1592,12 +1593,12 @@ Use 'Backspace' key to clear.} xywh {95 210 310 20} box DOWN_BOX color 7 selecti tooltip {Make the window non-modal.} xywh {320 235 75 20} selection_color 1 labelsize 11 align 148 } } - Fl_Group wp_gui_attributes {uid 0e6b + Fl_Group wp_gui_attributes {uid e632 label {Attributes:} callback propagate_load xywh {95 260 305 20} labelfont 1 labelsize 11 align 4 } { - Fl_Light_Button {} {uid f50b + Fl_Light_Button {} {uid 8701 label Visible callback {if (v == LOAD) { o->value(current_widget->o->visible()); @@ -1628,7 +1629,7 @@ Use 'Backspace' key to clear.} xywh {95 210 310 20} box DOWN_BOX color 7 selecti }} tooltip {Show the widget.} xywh {95 260 60 20} selection_color 1 labelsize 11 } - Fl_Light_Button {} {uid 99ee + Fl_Light_Button {} {uid b839 label Active callback {if (v == LOAD) { o->value(current_widget->o->active()); @@ -1649,7 +1650,7 @@ Use 'Backspace' key to clear.} xywh {95 210 310 20} box DOWN_BOX color 7 selecti }} tooltip {Activate the widget.} xywh {160 260 60 20} selection_color 1 labelsize 11 } - Fl_Light_Button {} {uid 0e1f + Fl_Light_Button {} {uid 940f label Resizable callback {if (v == LOAD) { if (current_widget->is_a(Type::Menu_Item)) { @@ -1670,7 +1671,7 @@ Use 'Backspace' key to clear.} xywh {95 210 310 20} box DOWN_BOX color 7 selecti }} tooltip {Make the widget resizable.} xywh {225 260 75 20} selection_color 1 labelsize 11 when 1 } - Fl_Light_Button {} {uid 4eeb + Fl_Light_Button {} {uid a5e5 label Headline callback {if (v == LOAD) { if (!current_widget->is_a(Type::Menu_Item)) { @@ -1697,7 +1698,7 @@ Use 'Backspace' key to clear.} xywh {95 210 310 20} box DOWN_BOX color 7 selecti tooltip {Make a menu item the headline of a menu unselectable, but not grayed out} xywh {225 260 75 20} selection_color 1 labelsize 11 when 1 hide } - Fl_Light_Button {} {uid ccce + Fl_Light_Button {} {uid c471 label Hotspot callback {if (v == LOAD) { if (numselected > 1) {o->deactivate(); return;} @@ -1725,11 +1726,11 @@ unselectable, but not grayed out} xywh {225 260 75 20} selection_color 1 labelsi }} tooltip {Center the window under this widget.} xywh {305 260 70 20} selection_color 1 labelsize 11 when 1 } - Fl_Box {} {uid eca1 + Fl_Box {} {uid 7c05 xywh {395 260 0 20} labelsize 11 resizable } } - Fl_Input wp_gui_tooltip {uid 3574 + Fl_Input wp_gui_tooltip {uid 3b2e label {Tooltip:} callback {if (v == LOAD) { if (current_widget->is_widget()) { @@ -1749,21 +1750,21 @@ unselectable, but not grayed out} xywh {225 260 75 20} selection_color 1 labelsi tooltip {The tooltip text for the widget. Use Ctrl-J for newlines.} xywh {95 285 310 20} labelfont 1 labelsize 11 textsize 11 } - Fl_Box {} {uid ce4b + Fl_Box {} {uid 5cdc xywh {95 305 300 5} hide resizable } } - Fl_Group wp_style_tab {uid 9305 + Fl_Group wp_style_tab {uid b6ad label Style callback propagate_load open xywh {10 30 400 330} labelsize 11 when 0 hide } { - Fl_Group wp_style_label {uid 28fc + Fl_Group wp_style_label {uid 2c6a label {Label Font:} callback propagate_load open xywh {99 40 305 20} labelfont 1 labelsize 11 align 4 } { - Fl_Choice {} {uid 5977 + Fl_Choice {} {uid 01ed callback {if (v == LOAD) { int n = current_widget->o->labelfont(); if (n > 15) n = 0; @@ -1784,7 +1785,7 @@ Use Ctrl-J for newlines.} xywh {95 285 310 20} labelfont 1 labelsize 11 textsize code0 {extern Fl_Menu_Item fontmenu[];} code1 {o->menu(fontmenu);} } {} - Fl_Value_Input {} {uid 16d9 + Fl_Value_Input {} {uid 3880 callback {int n; if (v == LOAD) { n = current_widget->o->labelsize(); @@ -1802,7 +1803,7 @@ if (v == LOAD) { o->value(n);} tooltip {The size of the label text.} xywh {247 40 49 20} labelsize 11 maximum 100 step 1 value 14 textsize 11 } - Fl_Button w_labelcolor {uid 686d + Fl_Button w_labelcolor {uid 8e9a label {Label Color} callback {Fl_Color c = current_widget->o->labelcolor(); if (v != LOAD) { @@ -1816,7 +1817,7 @@ o->labelcolor(fl_contrast(FL_BLACK,c)); o->redraw();} tooltip {The color of the label text.} xywh {296 40 90 20} labelsize 11 } - Fl_Menu_Button {} {uid 4f7e + Fl_Menu_Button {} {uid 2ecf callback {Fl_Color c = current_widget->o->labelcolor(); if (v != LOAD) { Fl_Color d = (Fl_Color)(o->mvalue()->argument()); @@ -1832,12 +1833,12 @@ if (v != LOAD) { code1 {o->menu(colormenu);} } {} } - Fl_Group wp_style_box {uid 4488 + Fl_Group wp_style_box {uid e026 label {Box:} callback propagate_load open xywh {99 65 305 20} labelfont 1 labelsize 11 align 4 } { - Fl_Choice {} {uid 894a + Fl_Choice {} {uid 6519 callback {if (v == LOAD) { if (current_widget->is_a(Type::Menu_Item)) {o->deactivate(); return;} else o->activate(); int n = current_widget->o->box(); @@ -1861,7 +1862,7 @@ if (v != LOAD) { code0 {extern Fl_Menu_Item boxmenu[];} code1 {o->menu(boxmenu);} } {} - Fl_Button w_color {uid eed8 + Fl_Button w_color {uid edaf label Color callback {Fl_Color c = current_widget->o->color(); if (v == LOAD) { @@ -1881,7 +1882,7 @@ o->labelcolor(fl_contrast(FL_BLACK,c)); o->redraw();} tooltip {The background color of the widget.} xywh {296 65 90 20} labelsize 11 } - Fl_Menu_Button {} {uid d85c + Fl_Menu_Button {} {uid 783a callback {Fl_Color c = current_widget->o->color(); if (v == LOAD) { if (current_widget->is_a(Type::Menu_Item)) {o->deactivate(); return;} else o->activate(); @@ -1899,12 +1900,12 @@ if (v == LOAD) { code1 {o->menu(colormenu);} } {} } - Fl_Group wp_style_downbox {uid 6128 + Fl_Group wp_style_downbox {uid 7cc5 label {Down Box:} callback propagate_load open xywh {99 90 305 20} labelfont 1 labelsize 11 align 4 } { - Fl_Choice {} {uid 580a + Fl_Choice {} {uid 053c callback {if (v == LOAD) { int n; if (current_widget->is_a(Type::Button)) @@ -1943,7 +1944,7 @@ if (v == LOAD) { code0 {extern Fl_Menu_Item boxmenu[];} code1 {o->menu(boxmenu);} } {} - Fl_Button w_selectcolor {uid 172b + Fl_Button w_selectcolor {uid 9319 label {Select Color} callback {Fl_Color c = current_widget->o->selection_color(); if (v == LOAD) { @@ -1964,7 +1965,7 @@ o->labelcolor(fl_contrast(FL_BLACK,c)); o->redraw();} tooltip {The selection color of the widget.} xywh {296 90 90 20} labelsize 11 } - Fl_Menu_Button {} {uid 491b + Fl_Menu_Button {} {uid e738 callback {Fl_Color c = current_widget->o->selection_color(); if (v == LOAD) { if (current_widget->is_a(Type::Menu_Item)) { @@ -1987,12 +1988,12 @@ if (v == LOAD) { code1 {o->menu(colormenu);} } {} } - Fl_Group wp_style_text {uid e250 + Fl_Group wp_style_text {uid 7410 label {Text Font:} callback propagate_load open xywh {99 115 305 20} labelfont 1 labelsize 11 align 4 } { - Fl_Choice {} {uid cead + Fl_Choice {} {uid 8760 callback {Fl_Font n; int s; Fl_Color c; if (v == LOAD) { if (!current_widget->textstuff(0,n,s,c)) {o->deactivate(); return;} @@ -2014,7 +2015,7 @@ if (v == LOAD) { code0 {extern Fl_Menu_Item fontmenu[];} code1 {o->menu(fontmenu);} } {} - Fl_Value_Input {} {uid 0590 + Fl_Value_Input {} {uid 867b callback {Fl_Font n; int s; Fl_Color c; if (v == LOAD) { if (!current_widget->textstuff(0,n,s,c)) {o->deactivate(); return;} @@ -2034,7 +2035,7 @@ if (v == LOAD) { o->value(s);} tooltip {The value text size.} xywh {247 115 49 20} labelsize 11 maximum 100 step 1 value 14 textsize 11 } - Fl_Button w_textcolor {uid 31e6 + Fl_Button w_textcolor {uid ee72 label {Text Color} callback {Fl_Font n; int s; Fl_Color c; if (v == LOAD) { @@ -2055,7 +2056,7 @@ o->labelcolor(fl_contrast(FL_BLACK,c)); o->redraw();} tooltip {The value text color.} xywh {296 115 90 20} labelsize 11 } - Fl_Menu_Button {} {uid a01b + Fl_Menu_Button {} {uid 09f2 callback {Fl_Font n; int s; Fl_Color c; if (v == LOAD) { if (!current_widget->textstuff(0,n,s,c)) { @@ -2078,12 +2079,12 @@ if (v == LOAD) { code1 {o->menu(colormenu);} } {} } - Fl_Group {} {uid c54f + Fl_Group {} {uid a916 label {Label Margin:} callback propagate_load open xywh {99 150 242 20} labelfont 1 labelsize 11 align 4 } { - Fl_Value_Input {} {uid 4dda + Fl_Value_Input {} {uid 43de label {Horizontal:} callback {int s; if (v == LOAD) { @@ -2112,7 +2113,7 @@ if (v == LOAD) { }} tooltip {Spacing between label and the horizontally aligned side of the widget.} xywh {99 150 55 20} labelsize 11 align 5 minimum -127 maximum 128 step 1 textsize 11 } - Fl_Value_Input {} {uid ffbf + Fl_Value_Input {} {uid 81c9 label {Vertical:} callback {int s; if (v == LOAD) { @@ -2141,7 +2142,7 @@ if (v == LOAD) { }} tooltip {Spacing between label and the vertically aligned side of the widget.} xywh {159 150 55 20} labelsize 11 align 5 minimum -127 maximum 127 step 1 textsize 11 } - Fl_Value_Input {} {uid 6acb + Fl_Value_Input {} {uid 4c02 label {Image Gap:} callback {int s; if (v == LOAD) { @@ -2170,11 +2171,11 @@ if (v == LOAD) { }} tooltip {Gap between label image and text in pixels} xywh {219 150 55 20} labelsize 11 align 5 maximum 255 step 1 textsize 11 } - Fl_Box {} {uid 10e2 + Fl_Box {} {uid 9a10 xywh {281 150 60 20} labelsize 11 hide resizable } } - Fl_Light_Button {} {uid 5a8e + Fl_Light_Button {} {uid 1b62 label Compact callback {if (v == LOAD) { uchar n; @@ -2205,21 +2206,21 @@ if (v == LOAD) { }} tooltip {use compact box types for closely set buttons} xywh {99 175 90 20} selection_color 1 labelsize 11 } - Fl_Box {} {uid f2ec + Fl_Box {} {uid 36b9 xywh {195 205 40 40} labelsize 11 resizable } } - Fl_Group wp_cpp_tab {uid 3ad9 + Fl_Group wp_cpp_tab {uid 5cf7 label {C++} callback propagate_load open xywh {10 30 400 330} labelsize 11 when 0 hide } { - Fl_Group wp_cpp_class {uid 9fbf + Fl_Group wp_cpp_class {uid e676 label {Class:} callback propagate_load open xywh {95 40 310 20} labelfont 1 labelsize 11 align 4 } { - Fl_Input {} {uid ba4c + Fl_Input {} {uid 21d3 user_data 4 callback {if (v == LOAD) { if (current_widget->is_a(Type::Menu_Item)) { @@ -2239,7 +2240,7 @@ if (v == LOAD) { }} tooltip {The widget subclass.} xywh {95 40 172 20} labelfont 1 labelsize 11 textfont 4 textsize 11 resizable } - Fl_Choice {} {uid 3ee9 + Fl_Choice {} {uid 08b7 callback {static Fl_Menu_Item empty_type_menu[] = { {"Normal",0,nullptr,(void*)nullptr}, {nullptr}}; @@ -2286,12 +2287,12 @@ if (v == LOAD) { tooltip {The widget subtype.} xywh {267 40 138 20} box THIN_UP_BOX down_box BORDER_BOX labelsize 11 textsize 11 } {} } - Fl_Group wp_cpp_name {uid be7e + Fl_Group wp_cpp_name {uid ccd5 label {Name:} callback propagate_load open xywh {95 65 310 20} labelfont 1 labelsize 11 align 4 } { - Fl_Input {} {uid 09d1 + Fl_Input {} {uid 6287 callback {if (v == LOAD) { static char buf[1024]; if (numselected != 1) { @@ -2315,7 +2316,7 @@ if (v == LOAD) { }} tooltip {The name of the widget.} xywh {95 65 235 20} labelfont 1 labelsize 11 textsize 11 resizable } - Fl_Choice {} {uid 3ae5 + Fl_Choice {} {uid 117f callback {if (v == LOAD) { o->value(current_widget->public_); if (current_widget->is_in_class()) o->show(); else o->hide(); @@ -2337,39 +2338,39 @@ if (v == LOAD) { }} open tooltip {Change member access attribute.} xywh {330 65 75 20} down_box BORDER_BOX labelsize 11 when 1 textsize 11 } { - MenuItem {} {uid c387 + MenuItem {} {uid a381 label private user_data 0 user_data_type long xywh {0 0 100 20} labelsize 11 } - MenuItem {} {uid 0b09 + MenuItem {} {uid 5603 label public user_data 1 user_data_type long xywh {0 0 100 20} labelsize 11 } - MenuItem {} {uid 7e40 + MenuItem {} {uid c4ca label protected user_data 2 user_data_type long xywh {0 0 100 20} labelsize 11 } } - Fl_Choice {} {uid e705 + Fl_Choice {} {uid 094c callback name_public_cb open tooltip {Change widget accessibility.} xywh {330 65 75 20} down_box BORDER_BOX labelsize 11 when 1 textsize 11 hide } { - MenuItem {} {uid a347 + MenuItem {} {uid 03b3 label local user_data 0 user_data_type long xywh {10 10 100 20} labelsize 11 } - MenuItem {} {uid b9bc + MenuItem {} {uid 9310 label global user_data 1 user_data_type long xywh {10 10 100 20} labelsize 11 } } } - Fl_Input {v_input[0]} {uid 6268 + Fl_Input {v_input[0]} {uid 647f label {Extra Code:} user_data 0 callback {int n = fl_int(o->user_data()); @@ -2388,30 +2389,30 @@ if (v == LOAD) { }} tooltip {Extra initialization code for the widget.} xywh {95 90 310 20} labelfont 1 labelsize 11 textfont 4 textsize 11 } - Fl_Input {v_input[1]} {uid 7d3b + Fl_Input {v_input[1]} {uid b76b user_data 1 callback {cb_v_input(o, v);} tooltip {Extra initialization code for the widget.} xywh {95 110 310 20} labelsize 11 textfont 4 textsize 11 } - Fl_Input {v_input[2]} {uid a638 + Fl_Input {v_input[2]} {uid 5f88 user_data 2 callback {cb_v_input(o, v);} tooltip {Extra initialization code for the widget.} xywh {95 130 310 20} labelsize 11 textfont 4 textsize 11 } - Fl_Input {v_input[3]} {uid 8d7a + Fl_Input {v_input[3]} {uid 2eaa user_data 3 callback {cb_v_input(o, v);} tooltip {Extra initialization code for the widget.} xywh {95 150 310 20} labelsize 11 textfont 4 textsize 11 } - Fl_Tile {} {uid f233 + Fl_Tile {} {uid cdf4 callback {wComment->do_callback(wComment, v); wCallback->do_callback(wCallback, v);} open xywh {95 175 310 130} resizable } { - Fl_Group {} {uid a0fe open + Fl_Group {} {uid 803e open xywh {95 175 310 48} box FLAT_BOX } { - Fl_Text_Editor wComment {uid 8c0e + Fl_Text_Editor wComment {uid 8947 label {Comment:} callback {if (v == LOAD) { const char *cmttext = current_widget->comment(); @@ -2430,10 +2431,10 @@ wCallback->do_callback(wCallback, v);} open code0 {wComment->buffer(new Fl_Text_Buffer());} } } - Fl_Group {} {uid e7bf open + Fl_Group {} {uid 2ece open xywh {95 223 310 82} box FLAT_BOX } { - Fl_Text_Editor wCallback {uid 35da + Fl_Text_Editor wCallback {uid fe4e label {Callback:} callback {if (v == LOAD) { const char *cbtext = current_widget->callback(); @@ -2460,12 +2461,12 @@ wCallback->do_callback(wCallback, v);} open } } } - Fl_Group wp_cpp_callback {uid b4f1 + Fl_Group wp_cpp_callback {uid fe23 label {User Data:} callback propagate_load open xywh {95 310 310 20} labelfont 1 labelsize 11 align 4 } { - Fl_Input {} {uid 638c + Fl_Input {} {uid 81e7 callback {if (v == LOAD) { o->value(current_widget->user_data()); } else { @@ -2481,7 +2482,7 @@ wCallback->do_callback(wCallback, v);} open }} tooltip {The user data to pass into the callback code.} xywh {95 310 158 20} labelfont 1 labelsize 11 textfont 4 textsize 11 resizable } - Fl_Menu_Button {} {uid 95d2 + Fl_Menu_Button {} {uid bc92 label When callback {if (v == LOAD) { if (current_widget->is_a(Type::Menu_Item)) {o->deactivate(); return;} else o->activate(); @@ -2513,12 +2514,12 @@ wCallback->do_callback(wCallback, v);} open code1 {o->menu(whenmenu);} } {} } - Fl_Group {} {uid 5488 + Fl_Group {} {uid 9da3 label {Type:} callback propagate_load open xywh {95 332 310 26} labelfont 1 labelsize 11 align 4 } { - Fl_Input_Choice {} {uid 314c + Fl_Input_Choice {} {uid 3abb callback {static const char *dflt = "void*"; if (v == LOAD) { const char *c = current_widget->user_data_type(); @@ -2543,50 +2544,50 @@ if (v == LOAD) { }} open tooltip {The type of the user data.} xywh {95 335 158 20} labelfont 1 labelsize 11 textfont 4 textsize 11 resizable } { - MenuItem {} {uid a977 + MenuItem {} {uid 0bee label {void*} xywh {0 0 31 20} labelfont 4 labelsize 11 } - MenuItem {} {uid 2af0 + MenuItem {} {uid 601b label long xywh {0 0 31 20} labelfont 4 labelsize 11 } } - Fl_Box w_when_box {uid 9923 + Fl_Box w_when_box {uid db15 label FL_WHEN_NEVER xywh {260 332 145 26} box FLAT_BOX selection_color 1 labelsize 8 align 209 } } } - Fl_Group widget_tab_grid {uid 6a28 + Fl_Group widget_tab_grid {uid d20c label Grid callback {o->callback((Fl_Callback*)propagate_load);} open xywh {10 30 400 330} labelsize 11 hide class Grid_Tab } {} - Fl_Group widget_tab_grid_child {uid b795 + Fl_Group widget_tab_grid_child {uid b11e label {Grid Child} callback {o->callback((Fl_Callback*)propagate_load);} open xywh {10 30 400 330} labelsize 11 hide class Grid_Child_Tab } {} } - Fl_Tabs data_tabs {uid 9765 + Fl_Tabs data_tabs {uid fb93 callback {if (current_node && current_node->is_a(Type::Data)) propagate_load((Fl_Group *)o,v);} xywh {10 10 400 350} selection_color 12 labelsize 11 labelcolor 255 hide } { - Fl_Group data_tabs_data {uid 02cf + Fl_Group data_tabs_data {uid 6888 label {Inline Data} callback propagate_load open xywh {10 30 400 330} labelsize 11 resizable } { - Fl_Group {} {uid 1686 + Fl_Group {} {uid 189f label {Visibility:} callback propagate_load open xywh {95 49 310 21} labelfont 1 labelsize 11 align 4 } { - Fl_Choice {} {uid b33d + Fl_Choice {} {uid 9057 callback {if (!current_node || !current_node->is_a(Type::Data)) return; Data_Node* nd = (Data_Node*)current_node; if (v == LOAD) { @@ -2611,24 +2612,24 @@ if (v == LOAD) { }} open xywh {95 50 210 20} down_box BORDER_BOX labelsize 11 textsize 11 } { - MenuItem {} {uid b97f + MenuItem {} {uid f0e1 label {in source file only} xywh {10 10 100 20} labelsize 11 } - MenuItem {} {uid d45d + MenuItem {} {uid 2e88 label {in header file only} xywh {10 10 100 20} labelsize 11 hide } - MenuItem {} {uid d059 + MenuItem {} {uid 4f6a label {"static" in source file} xywh {10 10 100 20} labelsize 11 } - MenuItem {} {uid 615b + MenuItem {} {uid eb9d label {in source and "extern" in header} xywh {10 10 100 20} labelsize 11 } } - Fl_Choice {} {uid 1e25 + Fl_Choice {} {uid e831 callback {if (!current_node || !current_node->is_a(Type::Data)) return; Data_Node* nd = (Data_Node*)current_node; if (v == LOAD) { @@ -2653,29 +2654,29 @@ if (v == LOAD) { }} open xywh {95 50 75 20} down_box BORDER_BOX labelsize 11 textsize 11 } { - MenuItem {} {uid 796e + MenuItem {} {uid 3317 label private xywh {20 20 100 20} labelsize 11 } - MenuItem {} {uid 10d8 + MenuItem {} {uid 63b5 label public xywh {20 20 100 20} labelsize 11 } - MenuItem {} {uid c476 + MenuItem {} {uid 4e4e label protected xywh {20 20 100 20} labelsize 11 } } - Fl_Box {} {uid b84e + Fl_Box {} {uid 6bdb xywh {363 49 42 20} resizable } } - Fl_Group {} {uid 0067 + Fl_Group {} {uid aa3f label {Output: } callback propagate_load open xywh {95 75 310 20} labelfont 1 labelsize 11 align 4 } { - Fl_Choice data_mode_2 {uid 63d0 + Fl_Choice data_mode_2 {uid 910a callback {if (!current_node || !current_node->is_a(Type::Data)) return; Data_Node* nd = (Data_Node*)current_node; if (v == LOAD) { @@ -2692,42 +2693,42 @@ if (v == LOAD) { }} open tooltip {text mode generates a "const char*" and a trailing NUL, compressed mode uses zlib to generate a binary block} xywh {95 75 210 20} down_box BORDER_BOX labelsize 11 textsize 11 } { - MenuItem {} {uid 0157 + MenuItem {} {uid 9b11 label {binary: unsigned char[]} user_data 0 user_data_type long xywh {10 10 100 20} labelsize 11 } - MenuItem {} {uid f3cf + MenuItem {} {uid ea1d label {text: const char*} user_data 1 user_data_type long xywh {10 10 100 20} labelsize 11 } - MenuItem {} {uid ff87 + MenuItem {} {uid 6086 label {compressed: unsigned char[]} user_data 2 user_data_type long xywh {10 10 100 20} labelsize 11 } - MenuItem {} {uid 7e4b + MenuItem {} {uid a350 label {binary: std::vector} user_data 3 user_data_type long xywh {10 10 100 20} labelsize 11 } - MenuItem {} {uid bc28 + MenuItem {} {uid da8d label {text: std::string} user_data 4 user_data_type long xywh {10 10 100 20} labelsize 11 } - MenuItem {} {uid 8105 + MenuItem {} {uid e850 label {compressed: std::vector} user_data 5 user_data_type long xywh {10 10 100 20} labelsize 11 } } - Fl_Box {} {uid a836 + Fl_Box {} {uid 42d7 xywh {363 75 42 20} resizable } } - Fl_Input {} {uid 2fa7 + Fl_Input {} {uid 379b label {Name:} callback {if (!current_node || !current_node->is_a(Type::Data)) return; Data_Node* nd = (Data_Node*)current_node; @@ -2745,11 +2746,14 @@ if (v == LOAD) { nd->name( o->value() ); mod = 1; } - if (mod) Fluid.proj.set_modflag(1); + if (mod) { + Fluid.proj.set_modflag(1); + redraw_browser(); + } }} tooltip {Inline Data variables are declared "const unsigned char []" in binary mode and "const char*" in text mode.} xywh {95 100 310 20} labelfont 1 labelsize 11 align 132 textfont 4 textsize 11 } - Fl_Input wp_data_filename {uid adc5 + Fl_Input wp_data_filename {uid f009 label {Filename:} callback {if (!current_node || !current_node->is_a(Type::Data)) return; Data_Node* nd = (Data_Node*)current_node; @@ -2772,7 +2776,7 @@ if (v == LOAD) { }} tooltip {Name and path of file that will be inlined.} xywh {95 125 270 20} labelfont 1 labelsize 11 align 132 textfont 4 textsize 11 } - Fl_Button {} {uid 4f85 + Fl_Button {} {uid 457d label {@fileopen} callback {if (v == LOAD) { } else { @@ -2790,7 +2794,7 @@ if (v == LOAD) { }} xywh {365 125 40 20} labelcolor 134 } - Fl_Text_Editor {} {uid df63 + Fl_Text_Editor {} {uid 5312 label {Comment:} callback {if (!current_node || !current_node->is_a(Type::Data)) return; Data_Node* nd = (Data_Node*)current_node; @@ -2810,7 +2814,10 @@ if (v == LOAD) { mod = 1; } free(c); - if (mod) Fluid.proj.set_modflag(1); + if (mod) { + Fluid.proj.set_modflag(1); + redraw_browser(); + } }} tooltip {Declaration comment in Doxygen format} xywh {95 150 310 105} box DOWN_BOX labelfont 1 labelsize 11 align 4 textfont 4 textsize 11 resizable code0 {o->buffer(new Fl_Text_Buffer());} @@ -2818,17 +2825,17 @@ if (v == LOAD) { } } } - Fl_Tabs comment_tabs {uid 3cb7 + Fl_Tabs comment_tabs {uid c546 callback {if (current_node && current_node->is_a(Type::Comment)) - propagate_load((Fl_Group *)o,v);} open - xywh {10 10 400 350} selection_color 12 labelsize 11 labelcolor 255 resizable + propagate_load((Fl_Group *)o,v);} + xywh {10 10 400 350} selection_color 12 labelsize 11 labelcolor 255 hide } { - Fl_Group comment_tabs_comment {uid 01de + Fl_Group comment_tabs_comment {uid 32ad label Comment - callback propagate_load open selected + callback propagate_load open xywh {10 30 400 330} labelsize 11 resizable } { - Fl_Text_Editor comment_tabs_name {uid 3194 + Fl_Text_Editor comment_tabs_name {uid d107 label {Comment:} callback {if (!current_node || !current_node->is_a(Type::Comment)) return; Comment_Node* nd = (Comment_Node*)current_node; @@ -2849,17 +2856,20 @@ if (v == LOAD) { mod = 1; } free(c); - if (mod) Fluid.proj.set_modflag(1); + if (mod) { + Fluid.proj.set_modflag(1); + redraw_browser(); + } }} xywh {95 45 310 235} box DOWN_BOX labelfont 1 labelsize 11 align 4 textfont 4 textsize 11 textcolor 58 resizable code0 {o->when(FL_WHEN_ENTER_KEY_CHANGED|FL_WHEN_RELEASE);} code1 {o->buffer(new Fl_Text_Buffer());} } - Fl_Group {} {uid 7667 + Fl_Group {} {uid 9bbe callback propagate_load open xywh {95 285 310 65} } { - Fl_Menu_Button comment_predefined_2 {uid f01f + Fl_Menu_Button comment_predefined_2 {uid 0281 label Predefined callback {if (!current_node || !current_node->is_a(Type::Comment)) return; Comment_Node* nd = (Comment_Node*)current_node; @@ -2939,7 +2949,7 @@ static int last_selected_item { 0 }; code0 {extern void load_comments_preset(Fl_Preferences &menu);} code1 {\#include } } {} - Fl_Button comment_load_2 {uid 1ddc + Fl_Button comment_load_2 {uid ec8d label {Import...} callback {// load a comment from disk if (v == LOAD) { @@ -2956,7 +2966,7 @@ if (v == LOAD) { }} xywh {190 285 90 20} labelsize 11 } - Fl_Check_Button {} {uid 29a1 + Fl_Check_Button {} {uid 1684 label {output to header file} callback {if (!current_node || !current_node->is_a(Type::Comment)) return; Comment_Node* nd = (Comment_Node*)current_node; @@ -2975,7 +2985,7 @@ if (v == LOAD) { }} tooltip {Put the comment into the header (.h) file.} xywh {95 310 120 20} down_box DOWN_BOX labelsize 11 when 1 } - Fl_Check_Button {} {uid b2d2 + Fl_Check_Button {} {uid 5454 label {output to source file} callback {if (!current_node || !current_node->is_a(Type::Comment)) return; Comment_Node* nd = (Comment_Node*)current_node; @@ -2994,39 +3004,197 @@ if (v == LOAD) { }} tooltip {Put the comment into the source (.cxx) file.} xywh {95 330 120 20} down_box DOWN_BOX labelsize 11 when 1 } - Fl_Box {} {uid 0b77 + Fl_Box {} {uid 7a18 xywh {404 285 1 65} labelsize 11 resizable } } } } + Fl_Tabs class_tabs {uid d304 + callback {if (current_node && current_node->is_a(Type::Class)) + propagate_load((Fl_Group *)o,v);} open + xywh {10 10 400 350} selection_color 12 labelsize 11 labelcolor 255 resizable + } { + Fl_Group class_tabs_main {uid b1b3 + label Class + callback propagate_load open + xywh {10 30 400 330} labelsize 11 resizable + } { + Fl_Group {} {uid 983b + label {Visibility:} + callback propagate_load + comment {This elemnt is hidden because we don't +support a class inside a class at this point} + xywh {95 50 310 21} labelfont 1 labelsize 11 align 4 hide + } { + Fl_Choice {} {uid 1d75 + callback {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 { + int mod = 0; + if (nd->is_in_class()) { + if (nd->visibility() != o->value()) { + nd->visibility(o->value()); + mod = 1; } - Fl_Tabs widget_tabs_repo {uid bf38 open + } + if (mod) { + Fluid.proj.set_modflag(1); + redraw_browser(); + } +}} open + tooltip {visibilit for a class inside a class} xywh {95 50 75 20} down_box BORDER_BOX labelsize 11 textsize 11 + } { + MenuItem {} {uid 3088 + label private + xywh {30 30 100 20} labelsize 11 + } + MenuItem {} {uid 9a5f + label public + xywh {30 30 100 20} labelsize 11 + } + MenuItem {} {uid 1d0f + label protected + xywh {30 30 100 20} labelsize 11 + } + } + Fl_Box {} {uid f0b5 + xywh {363 50 42 20} resizable + } + } + Fl_Input {} {uid 3410 + label {Attribute:} + callback {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 { + int mod; + const char *nn = nd->prefix(); + if ( (nn && (strcmp(nn, o->value()) == 0)) + || (!nn && (strcmp("", o->value()) == 0)) ) + { + mod = 0; + } else { + nd->prefix( o->value() ); + mod = 1; + } + Fluid.proj.set_modflag(1); +}} + tooltip {class attribute or `alignas()`} xywh {95 50 305 20} labelfont 1 labelsize 11 textfont 4 textsize 11 + } + Fl_Input c_name_input_2 {uid fb3d + label {Class Name:} + callback {if (!current_node || !current_node->is_a(Type::Class)) return; +Class_Node* nd = (Class_Node*)current_node; +if (v == LOAD) { + o->value( nd->name() ); + the_panel->label("Class Properties"); +} else { + int mod; + const char *nn = nd->name(); + if ( (nn && (strcmp(nn, o->value()) == 0)) + || (!nn && (strcmp("", o->value()) == 0)) ) + { + mod = 0; + } else { + nd->name( o->value() ); + mod = 1; + } + if (mod) { + Fluid.proj.set_modflag(1); + redraw_browser(); + } +}} + tooltip {class name, must be one C++ keyword} xywh {95 75 305 20} labelfont 1 labelsize 11 textfont 4 textsize 11 + } + Fl_Input c_subclass_input_2 {uid 6c66 + label {Base Class:} + callback {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 { + int mod; + const char *nn = nd->base_class_name(); + if ( (nn && (strcmp(nn, o->value()) == 0)) + || (!nn && (strcmp("", o->value()) == 0)) ) + { + mod = 0; + } else { + nd->base_class_name( o->value() ); + mod = 1; + } + Fluid.proj.set_modflag(1); +}} + tooltip {visibility and name of base class or classes +e.g. `public Fl_Widget`} xywh {95 100 305 20} labelfont 1 labelsize 11 textfont 4 textsize 11 + } + Fl_Text_Editor c_comment_input_2 {uid 018b + label {Comment:} + callback {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 { + int mod; + char *c = o->buffer()->text(); + const char *nn = nd->comment(); + if ( (nn && (strcmp(nn, c) == 0)) + || (!nn && (strcmp("", c) == 0)) ) + { + mod = 0; + } else { + nd->comment(c); + mod = 1; + } + free(c); + if (mod) { + Fluid.proj.set_modflag(1); + redraw_browser(); + } +}} + tooltip {class comment in Doxygen format} xywh {95 125 305 110} box DOWN_BOX labelfont 1 labelsize 11 align 4 textfont 4 textsize 11 resizable + code0 {o->buffer(new Fl_Text_Buffer());} + code1 {o->add_key_binding(FL_Tab, 0, use_tab_navigation);} + } + } + } + } + Fl_Tabs widget_tabs_repo {uid 4a2d open xywh {10 10 400 350} hide code0 {o->hide();} } { - Fl_Group {} {uid 1876 + Fl_Group {} {uid 7533 xywh {10 30 400 330} resizable } {} } - Fl_Group {} {uid 0889 + Fl_Group {} {uid 526b xywh {10 370 400 20} labelsize 11 } { - Fl_Button wLiveMode {uid 3329 + Fl_Button wLiveMode {uid 981c label {Live &Resize} callback live_mode_cb tooltip {Create a live duplicate of the selected widgets to test resizing and menu behavior.} xywh {10 370 80 20} type Toggle labelsize 10 } - Fl_Button overlay_button {uid 2d8b + Fl_Button overlay_button {uid 3db3 label {Hide &Overlays} callback overlay_cb tooltip {Hide the widget overlay box.} xywh {94 370 80 20} labelsize 10 } - Fl_Box {} {uid 9857 + Fl_Box {} {uid 82a9 comment {Hidden resizable box} xywh {258 370 72 20} labelsize 11 hide resizable } - Fl_Return_Button {} {uid 818c + Fl_Return_Button {} {uid 99d5 label Close callback ok_cb xywh {330 370 80 20} labelsize 11 diff --git a/fluid/panels/widget_panel.h b/fluid/panels/widget_panel.h index ea4c8df57..02e686f14 100644 --- a/fluid/panels/widget_panel.h +++ b/fluid/panels/widget_panel.h @@ -14,7 +14,7 @@ // https://www.fltk.org/bugs.php // -// generated by Fast Light User Interface Designer (fluid) version 1.0400 +// generated by Fast Light User Interface Designer (fluid) version 1.0500 #ifndef widget_panel_h #define widget_panel_h @@ -118,6 +118,11 @@ extern void load_comments_preset(Fl_Preferences &menu); #include extern Fl_Menu_Button *comment_predefined_2; extern Fl_Button *comment_load_2; +extern Fl_Tabs *class_tabs; +extern Fl_Group *class_tabs_main; +extern Fl_Input *c_name_input_2; +extern Fl_Input *c_subclass_input_2; +extern Fl_Text_Editor *c_comment_input_2; extern Fl_Tabs *widget_tabs_repo; extern void live_mode_cb(Fl_Button*, void*); extern Fl_Button *wLiveMode; @@ -135,4 +140,5 @@ extern Fl_Menu_Item menu_4[]; extern Fl_Menu_Item menu_5[]; extern Fl_Menu_Item menu_6[]; extern Fl_Menu_Item menu_data_mode_2[]; +extern Fl_Menu_Item menu_7[]; #endif diff --git a/fluid/tools/autodoc.cxx b/fluid/tools/autodoc.cxx index 11eb77576..5597c7e7e 100644 --- a/fluid/tools/autodoc.cxx +++ b/fluid/tools/autodoc.cxx @@ -405,6 +405,7 @@ void run_autodoc(const std::string &target_dir) { Node *t_data = add_new_widget_from_user("Data", Strategy::AS_LAST_CHILD, false); Node *t_comment = add_new_widget_from_user("Comment", Strategy::AS_LAST_CHILD, false); t_comment->name("All work and no play make Jack a dull boy."); + Node *t_class = add_new_widget_from_user("Class", Strategy::AS_LAST_CHILD, false); widget_browser->rebuild(); Fluid.proj.update_settings_dialog(); @@ -526,12 +527,8 @@ void run_autodoc(const std::string &target_dir) { adoc_declblock_panel->hide(); // -- Type::Class - Fl_Window *adoc_class_panel = make_class_panel(); - decl_class_choice->hide(); - c_name_input->value("Zoo_Giraffe"); - c_subclass_input->value("Zoo_Animal"); - fl_snapshot((target_dir + "class_panel.png").c_str(), adoc_class_panel, win_margin, win_blend); - adoc_class_panel->hide(); + select_only(t_class); + fl_snapshot((target_dir + "class_panel.png").c_str(), class_tabs_main, tab_margin, row_blend); // -- Type::Widget_Class is handled like Window_Node