diff options
| -rw-r--r-- | fluid/Fluid.cxx | 5 | ||||
| -rw-r--r-- | fluid/nodes/Function_Node.cxx | 22 | ||||
| -rw-r--r-- | fluid/nodes/Function_Node.h | 11 | ||||
| -rw-r--r-- | fluid/panels/widget_panel.cxx | 301 | ||||
| -rw-r--r-- | fluid/panels/widget_panel.fl | 673 | ||||
| -rw-r--r-- | fluid/proj/mergeback.cxx | 51 | ||||
| -rw-r--r-- | fluid/proj/mergeback.h | 6 |
7 files changed, 694 insertions, 375 deletions
diff --git a/fluid/Fluid.cxx b/fluid/Fluid.cxx index bfbd5902c..8d1bd29d3 100644 --- a/fluid/Fluid.cxx +++ b/fluid/Fluid.cxx @@ -234,6 +234,7 @@ int Application::run(int argc,char **argv) { } #endif + start_auto_mergeback(); Fl::run(); proj.undo.clear(); @@ -507,7 +508,9 @@ bool Application::open_project_file(const std::string &filename_arg) { // clear the project and merge a file by the given name new_project(false); - return merge_project_file(new_filename); + bool success = merge_project_file(new_filename); + if (success) mergeback_on_load(); + return success; } diff --git a/fluid/nodes/Function_Node.cxx b/fluid/nodes/Function_Node.cxx index 42c3f3996..66e425533 100644 --- a/fluid/nodes/Function_Node.cxx +++ b/fluid/nodes/Function_Node.cxx @@ -1226,8 +1226,6 @@ DeclBlock_Node::DeclBlock_Node() Destructor. */ DeclBlock_Node::~DeclBlock_Node() { - if (after) - ::free((void*)after); } /** @@ -1253,7 +1251,7 @@ Node *DeclBlock_Node::make(Strategy strategy) { DeclBlock_Node *o = new DeclBlock_Node(); o->name("#if 1"); o->write_map_ = CODE_IN_SOURCE; - o->after = fl_strdup("#endif"); + o->end_code_ = "#endif"; o->add(anchor, strategy); o->factory = this; return o; @@ -1272,7 +1270,7 @@ void DeclBlock_Node::write_properties(fld::io::Project_Writer &f) { if (write_map_ != CODE_IN_SOURCE) f.write_string("map %d", write_map_); f.write_string("after"); - f.write_word(after); + f.write_word(end_code().c_str()); } /** @@ -1286,7 +1284,7 @@ void DeclBlock_Node::read_property(fld::io::Project_Reader &f, const char *c) { } else if(!strcmp(c,"map")) { write_map_ = (int)atol(f.read_word()); } else if (!strcmp(c,"after")) { - storestring(f.read_word(),after); + end_code(f.read_word()); } else { Node::read_property(f, c); } @@ -1317,12 +1315,11 @@ void DeclBlock_Node::write_static(fld::io::Code_Writer& f) { Write the \b after static code to the source file, and to the header file if declared public. */ void DeclBlock_Node::write_static_after(fld::io::Code_Writer& f) { - const char* c = after; - if (c && *c) { + if (!end_code().empty()) { if (write_map_ & STATIC_IN_HEADER) - f.write_h("%s\n", c); + f.write_h("%s\n", end_code().c_str()); if (write_map_ & STATIC_IN_SOURCE) - f.write_c("%s\n", c); + f.write_c("%s\n", end_code().c_str()); } } @@ -1344,12 +1341,11 @@ void DeclBlock_Node::write_code1(fld::io::Code_Writer& f) { Write the \b after code to the source file, and to the header file if declared public. */ void DeclBlock_Node::write_code2(fld::io::Code_Writer& f) { - const char* c = after; - if (c && *c) { + if (!end_code().empty()) { if (write_map_ & CODE_IN_HEADER) - f.write_h("%s\n", c); + f.write_h("%s\n", end_code().c_str()); if (write_map_ & CODE_IN_SOURCE) - f.write_c("%s\n", c); + f.write_c("%s\n", end_code().c_str()); } } diff --git a/fluid/nodes/Function_Node.h b/fluid/nodes/Function_Node.h index 33bcc1849..c35a26705 100644 --- a/fluid/nodes/Function_Node.h +++ b/fluid/nodes/Function_Node.h @@ -208,8 +208,9 @@ public: STATIC_IN_HEADER = 4, STATIC_IN_SOURCE = 8 }; + private: - const char* after { nullptr }; ///< code after all children of this block + std::string end_code_; ///< code after all children of this block int write_map_ { CODE_IN_SOURCE }; ///< see enum above public: @@ -229,8 +230,8 @@ public: int is_public() const override; Type type() const override { return Type::DeclBlock; } bool is_a(Type inType) const override { return (inType==Type::DeclBlock) ? true : super::is_a(inType); } - const char *end_code() { return after; } - void end_code(const char *c) { storestring(c, after); } + std::string end_code() { return end_code_; } + void end_code(const std::string& p) { storestring(p, end_code_); } int write_map() { return write_map_; } void write_map(int v) { write_map_ = v; } }; @@ -242,6 +243,7 @@ class Comment_Node : public Node public: typedef Node super; static Comment_Node prototype; + private: char in_c_, in_h_, style_; @@ -270,17 +272,18 @@ class Class_Node : public Node public: typedef Node super; static Class_Node prototype; + private: std::string base_class_; std::string prefix_; char public_; + public: Class_Node(); ~Class_Node(); // state variables for output: char write_public_state; // true when public: has been printed Class_Node* parent_class; // save class if nested -// Node *make(Strategy strategy) override; void write_code1(fld::io::Code_Writer& f) override; void write_code2(fld::io::Code_Writer& f) override; diff --git a/fluid/panels/widget_panel.cxx b/fluid/panels/widget_panel.cxx index 5f84c911f..57c1b4b1b 100644 --- a/fluid/panels/widget_panel.cxx +++ b/fluid/panels/widget_panel.cxx @@ -51,13 +51,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; @@ -65,6 +69,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); @@ -81,11 +86,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_); @@ -111,11 +118,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_); @@ -141,18 +150,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(); @@ -168,9 +181,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(); @@ -186,6 +201,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; @@ -193,6 +209,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); @@ -209,11 +226,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_); @@ -239,11 +258,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_); @@ -269,18 +290,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(); @@ -296,9 +321,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(); @@ -314,13 +341,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// } /** @@ -491,6 +521,7 @@ Fl_Double_Window* make_image_panel() { } void run_image_panel() { +//fl ▼ ------------------------ code --~~~~--~==--~=---=-=~~~ ▼ fl// if (!image_panel_window) make_image_panel(); @@ -510,9 +541,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); @@ -532,19 +565,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; @@ -554,6 +592,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(); @@ -567,9 +606,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(); @@ -587,17 +628,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(); @@ -611,9 +656,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(); @@ -631,6 +678,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; @@ -667,6 +715,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()); @@ -694,11 +743,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()); @@ -725,11 +776,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()); @@ -756,11 +809,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()); @@ -787,9 +842,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(); @@ -809,6 +866,7 @@ static void cb_Children(Fl_Choice* o, void* v) { } if (mod) Fluid.proj.set_modflag(1); } +//fl ▲ ----------~=-==~=-=-~-----------~~=~=~~=~=-=-=~=~-~=-= ▲ fl// } Fl_Menu_Item menu_Children[] = { @@ -821,6 +879,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(); @@ -829,11 +888,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)); @@ -866,11 +927,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)); @@ -900,11 +963,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) @@ -916,9 +981,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(); @@ -936,9 +1003,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(); @@ -967,9 +1036,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(); @@ -998,9 +1069,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(); @@ -1029,9 +1102,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(); @@ -1063,11 +1138,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(); @@ -1076,9 +1153,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 { @@ -1098,9 +1177,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 { @@ -1120,9 +1201,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 { @@ -1142,9 +1225,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 { @@ -1164,9 +1249,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 { @@ -1184,11 +1271,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(); @@ -1197,9 +1286,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); @@ -1215,9 +1306,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); @@ -1233,9 +1326,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; @@ -1251,9 +1346,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); @@ -1269,9 +1366,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); @@ -1287,9 +1386,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; @@ -1305,11 +1406,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() ); @@ -1351,11 +1454,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(); @@ -1378,9 +1483,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(); @@ -1390,9 +1497,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(); @@ -1402,9 +1511,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(); @@ -1414,11 +1525,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(); @@ -1446,9 +1559,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(); @@ -1466,9 +1581,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(); @@ -1486,9 +1603,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(); @@ -1511,9 +1630,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"); @@ -1538,11 +1659,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(); @@ -1558,6 +1681,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; @@ -1565,6 +1689,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; @@ -1581,9 +1706,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(); @@ -1599,11 +1726,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); @@ -1614,9 +1743,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()); @@ -1627,11 +1758,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(); @@ -1651,11 +1784,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)) { @@ -1672,9 +1807,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(); @@ -1687,11 +1824,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)) @@ -1726,11 +1865,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)) { @@ -1748,9 +1889,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)) { @@ -1768,11 +1911,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;} @@ -1790,9 +1935,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;} @@ -1810,11 +1957,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)) { @@ -1832,9 +1981,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)) { @@ -1852,9 +2003,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()) { @@ -1880,9 +2033,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()) { @@ -1908,9 +2063,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()) { @@ -1936,9 +2093,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)) { @@ -1966,6 +2125,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; @@ -1973,6 +2133,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(); @@ -1989,9 +2150,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}}; @@ -2035,11 +2198,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) { @@ -2061,9 +2226,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(); @@ -2083,6 +2250,7 @@ static void cb_11(Fl_Choice* o, void* v) { redraw_browser(); } } +//fl ▲ ----------=~-=~-=--~=~----------~--~=-~~~=-==--=~-~==- ▲ fl// } Fl_Menu_Item menu_2[] = { @@ -2099,6 +2267,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)); @@ -2113,30 +2282,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 : "" ); @@ -2150,11 +2329,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 : "" ); @@ -2174,11 +2355,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 { @@ -2192,9 +2375,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(); @@ -2220,9 +2405,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(); @@ -2245,6 +2432,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[] = { @@ -2258,25 +2446,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; @@ -2296,6 +2491,7 @@ static void cb_15(Fl_Choice* o, void* v) { } } } +//fl ▲ ----------~=--=-=-~--~----------~~~-=~--~~~-=~~-=~=--= ▲ fl// } Fl_Menu_Item menu_5[] = { @@ -2307,6 +2503,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; @@ -2326,6 +2523,7 @@ static void cb_16(Fl_Choice* o, void* v) { } } } +//fl ▲ ----------=~~=~~-=--=-----------~~~~=-~~-=~~---~-==~=~ ▲ fl// } Fl_Menu_Item menu_6[] = { @@ -2336,6 +2534,7 @@ Fl_Menu_Item menu_6[] = { }; static void cb_17(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; @@ -2347,6 +2546,7 @@ static void cb_17(Fl_Choice* o, void* v) { Fluid.proj.set_modflag(1); } } +//fl ▲ ----------~=~=-~-~=-------------~~~-~~-=-~-=~~-~~==~~~ ▲ fl// } Fl_Menu_Item menu_7[] = { @@ -2360,6 +2560,7 @@ Fl_Menu_Item menu_7[] = { }; 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; @@ -2376,11 +2577,13 @@ static void cb_Name(Fl_Input* o, void* v) { 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; @@ -2397,9 +2600,11 @@ static void cb_wp_data_filename(Fl_Input* o, void* v) { Fluid.proj.set_modflag(1); } } +//fl ▲ ----------~=-~--=--~------------~~-~-----~=~-~=~--~-~- ▲ fl// } static void cb_fileopen(Fl_Button*, void* v) { +//fl ▼ ---------------------- callback ~--=-~~~=~~--~=-=~-=~- ▼ fl// if (v != LOAD) { Fluid.proj.enter_project_dir(); const char *fn = fl_file_chooser("Load Inline Data", @@ -2413,9 +2618,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; @@ -2434,13 +2641,16 @@ static void cb_Comment(Fl_Text_Editor* o, void* v) { } free(c); } +//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; @@ -2448,6 +2658,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; @@ -2467,11 +2678,13 @@ static void cb_comment_tabs_name(Fl_Text_Editor* o, void* v) { } free(c); } +//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; static char itempath[256]; @@ -2547,11 +2760,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) { fl_file_chooser_ok_label("Load"); @@ -2564,9 +2779,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; @@ -2578,9 +2795,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; @@ -2592,18 +2811,22 @@ 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_18(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; @@ -2623,6 +2846,7 @@ static void cb_18(Fl_Choice* o, void* v) { } } } +//fl ▲ ----------~==-~-~--~--------------=~-=--~-=~~--==--==~ ▲ fl// } Fl_Menu_Item menu_8[] = { @@ -2633,6 +2857,7 @@ Fl_Menu_Item menu_8[] = { }; 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; @@ -2646,9 +2871,11 @@ static void cb_Attribute(Fl_Input* o, void* v) { Fluid.proj.set_modflag(1); } } +//fl ▲ ----------=~=-=~~=-~~~------------~--~=~-~=~~=--~-~~~~ ▲ fl// } static void cb_Class(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; @@ -2689,9 +2916,11 @@ static void cb_Class(Fl_Input* o, void* v) { free((void*)nv); } } +//fl ▲ ----------~=~-=-~~~=------------~-~~=~~-=-=-~--=-~=~~= ▲ fl// } static void cb_Base(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; @@ -2704,9 +2933,11 @@ static void cb_Base(Fl_Input* o, void* v) { Fluid.proj.set_modflag(1); } } +//fl ▲ ----------~=~~--=~~--~----------~~---~~--~~-=~~=~=~~-- ▲ fl// } static void cb_Comment1(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; @@ -2725,18 +2956,22 @@ static void cb_Comment1(Fl_Text_Editor* o, void* v) { } free(c); } +//fl ▲ ----------=~-~-=-=-=~~-----------~=--~--~=-~~--~----~- ▲ fl// } Fl_Tabs *declblock_tabs=(Fl_Tabs *)0; static void cb_declblock_tabs(Fl_Tabs* o, void* v) { +//fl ▼ ---------------------- callback ~~--=~~=~~~~-==-~=~~=~ ▼ fl// if (current_node && current_node->is_a(Type::DeclBlock)) propagate_load((Fl_Group *)o,v); +//fl ▲ ----------=~=~~=-=~--=-------------~-~=~~=-=-~=~----=~ ▲ fl// } Fl_Group *declblock_tabs_main=(Fl_Group *)0; static void cb_Start(Fl_Input* o, void* v) { +//fl ▼ ---------------------- callback ~-~=~-~=----~=~==~~-~~ ▼ fl// if (!current_node || !current_node->is_a(Type::DeclBlock)) return; DeclBlock_Node* nd = (DeclBlock_Node*)current_node; @@ -2753,26 +2988,27 @@ static void cb_Start(Fl_Input* o, void* v) { redraw_browser(); } } +//fl ▲ ----------~==~-~=-~--=------------=-~~~=~----~=~=-=--- ▲ fl// } static void cb_End(Fl_Input* o, void* v) { +//fl ▼ ---------------------- callback -~-~--~-----=-~~~~~=-~ ▼ fl// if (!current_node || !current_node->is_a(Type::DeclBlock)) return; DeclBlock_Node* nd = (DeclBlock_Node*)current_node; - - if (v == LOAD) { - o->value( nd->end_code() ); + if (v == LOAD) { + o->value( nd->end_code().c_str() ); } else { - const char *nn = nd->end_code(); - if ( ( nn && (strcmp(nn, o->value()) != 0)) - || (!nn && (strcmp("", o->value()) != 0)) ) - { - nd->end_code( o->value() ); + std::string v = o->value(); + if (v != nd->end_code()) { + nd->end_code( v ); Fluid.proj.set_modflag(1); } } +//fl ▲ ----------=~~~~~~=~-=-----------~~-~~---=--=-~~=---=~- ▲ fl// } static void cb_implementations(Fl_Check_Button* o, void* v) { +//fl ▼ ---------------------- callback ~-~=-~~=-==~=~--=-=~-= ▼ fl// if (!current_node || !current_node->is_a(Type::DeclBlock)) return; DeclBlock_Node* nd = (DeclBlock_Node*)current_node; @@ -2789,9 +3025,11 @@ static void cb_implementations(Fl_Check_Button* o, void* v) { Fluid.proj.set_modflag(1); } } +//fl ▲ ----------~==~=--=~-~=------------=-----=-=-=-~-~~-~=~ ▲ fl// } static void cb_static(Fl_Check_Button* o, void* v) { +//fl ▼ ---------------------- callback ~-~=-~~=~~-~=~~=~==-=~ ▼ fl// if (!current_node || !current_node->is_a(Type::DeclBlock)) return; DeclBlock_Node* nd = (DeclBlock_Node*)current_node; @@ -2808,9 +3046,11 @@ static void cb_static(Fl_Check_Button* o, void* v) { Fluid.proj.set_modflag(1); } } +//fl ▲ ----------~=---~~~-~=~--------------~=-~~-~=~=-~~~=~=~ ▲ fl// } static void cb_forward(Fl_Check_Button* o, void* v) { +//fl ▼ ---------------------- callback ~--=~=-==~~--=--~~~-~~ ▼ fl// if (!current_node || !current_node->is_a(Type::DeclBlock)) return; DeclBlock_Node* nd = (DeclBlock_Node*)current_node; @@ -2827,9 +3067,11 @@ static void cb_forward(Fl_Check_Button* o, void* v) { Fluid.proj.set_modflag(1); } } +//fl ▲ ----------~=-~~~~---~=----------~~=-=~--=-~--~--=~--~~ ▲ fl// } static void cb_preprecessor(Fl_Check_Button* o, void* v) { +//fl ▼ ---------------------- callback ~~~~-=~=~~~=~==~-~-=~= ▼ fl// if (!current_node || !current_node->is_a(Type::DeclBlock)) return; DeclBlock_Node* nd = (DeclBlock_Node*)current_node; @@ -2846,9 +3088,11 @@ static void cb_preprecessor(Fl_Check_Button* o, void* v) { Fluid.proj.set_modflag(1); } } +//fl ▲ ----------=~~=~~-=~~~~----------~-=-~--~-~~-=~~=~==~-- ▲ fl// } static void cb_Comment2(Fl_Text_Editor* o, void* v) { +//fl ▼ ---------------------- callback ~-=~=~-=~-~=-==~~~=-~- ▼ fl// if (!current_node || !current_node->is_a(Type::DeclBlock)) return; DeclBlock_Node* nd = (DeclBlock_Node*)current_node; @@ -2867,18 +3111,22 @@ static void cb_Comment2(Fl_Text_Editor* o, void* v) { } free(c); } +//fl ▲ ----------=~-~=~-~~=~~-----------~-=-=-=-~---~=-~-=~-~ ▲ fl// } Fl_Tabs *decl_tabs=(Fl_Tabs *)0; static void cb_decl_tabs(Fl_Tabs* o, void* v) { +//fl ▼ ---------------------- callback --~--~=~~~-~--=~--=~=~ ▼ fl// if (current_node && current_node->is_a(Type::Decl)) propagate_load((Fl_Group *)o,v); +//fl ▲ ----------=~~~-==-=~=~----------~~-~=~~~~==~--~--=--=~ ▲ fl// } Fl_Group *decl_tabs_main=(Fl_Group *)0; static void cb_19(Fl_Choice* o, void* v) { +//fl ▼ ---------------------- callback -~~==~--~~~-=-~~-==--= ▼ fl// if (!current_node || !current_node->is_a(Type::Decl)) return; Decl_Node* nd = (Decl_Node*)current_node; @@ -2898,6 +3146,7 @@ static void cb_19(Fl_Choice* o, void* v) { } } } +//fl ▲ ----------=~--~~-=~~-=----------~--=--~~~~-=~-~=~----~ ▲ fl// } Fl_Menu_Item menu_9[] = { @@ -2909,6 +3158,7 @@ Fl_Menu_Item menu_9[] = { }; static void cb_1a(Fl_Choice* o, void* v) { +//fl ▼ ---------------------- callback -~-~-=~~~~=~~=--~-~~~= ▼ fl// if (!current_node || !current_node->is_a(Type::Decl)) return; Decl_Node* nd = (Decl_Node*)current_node; @@ -2928,6 +3178,7 @@ static void cb_1a(Fl_Choice* o, void* v) { } } } +//fl ▲ ----------~==~-==-=-~=----------~-=~~--=~~~~~~~--=~~~~ ▲ fl// } Fl_Menu_Item menu_a[] = { @@ -2938,10 +3189,13 @@ Fl_Menu_Item menu_a[] = { }; static void cb_1b(Fl_Tile* o, void* v) { +//fl ▼ ---------------------- callback ~~~=~=--=~=-=-~~--=--- ▼ fl// propagate_load(o, v); +//fl ▲ ----------=~-=~--~~=~=-----------~~----=--~=~~-~-----= ▲ fl// } static void cb_Declaration(fld::widget::Code_Editor* o, void* v) { +//fl ▼ ---------------------- callback ---==--~~-=-=-~=----=- ▼ fl// if (!current_node || !current_node->is_a(Type::Decl)) return; Decl_Node* nd = (Decl_Node*)current_node; @@ -2961,9 +3215,11 @@ static void cb_Declaration(fld::widget::Code_Editor* o, void* v) { } free(c); } +//fl ▲ ----------=~~~-=-~-~~=-------------~~=-~~-~-=-~~~~-~~~ ▲ fl// } static void cb_Comment3(Fl_Text_Editor* o, void* v) { +//fl ▼ ---------------------- callback -~-~~=~--=~--==-=----- ▼ fl// if (!current_node || !current_node->is_a(Type::Decl)) return; Decl_Node* nd = (Decl_Node*)current_node; @@ -2982,18 +3238,22 @@ static void cb_Comment3(Fl_Text_Editor* o, void* v) { } free(c); } +//fl ▲ ----------~=-----~-==~-------------==~-=~--~=~-~--~-~- ▲ fl// } Fl_Tabs *codeblock_tabs=(Fl_Tabs *)0; static void cb_codeblock_tabs(Fl_Tabs* o, void* v) { +//fl ▼ ---------------------- callback ~-~=~~~--~~=-~~-~---~~ ▼ fl// if (current_node && current_node->is_a(Type::CodeBlock)) propagate_load((Fl_Group *)o,v); +//fl ▲ ----------=~--~~~~~-~-----------~-=-=--~-=-=---=---~=- ▲ fl// } Fl_Group *codeblock_tabs_main=(Fl_Group *)0; static void cb_Start1(Fl_Input* o, void* v) { +//fl ▼ ---------------------- callback -~-~=-=~~=~=~-~==-~-=- ▼ fl// if (!current_node || !current_node->is_a(Type::CodeBlock)) return; CodeBlock_Node* nd = (CodeBlock_Node*)current_node; @@ -3010,9 +3270,11 @@ static void cb_Start1(Fl_Input* o, void* v) { redraw_browser(); } } +//fl ▲ ----------~=~-~--==~-~------------~-~=~--~~==-~~~~~==- ▲ fl// } static void cb_End1(Fl_Input* o, void* v) { +//fl ▼ ---------------------- callback ~~-~~=~=-~=-~-=~~~=-=~ ▼ fl// if (!current_node || !current_node->is_a(Type::CodeBlock)) return; CodeBlock_Node* nd = (CodeBlock_Node*)current_node; @@ -3027,9 +3289,11 @@ static void cb_End1(Fl_Input* o, void* v) { Fluid.proj.set_modflag(1); } } +//fl ▲ ----------~=----=-~-=~-------------=~~--=--~=~=--~-~~- ▲ fl// } static void cb_Comment4(Fl_Text_Editor* o, void* v) { +//fl ▼ ---------------------- callback ~~~=~=~=-~--=--==~~-=- ▼ fl// if (!current_node || !current_node->is_a(Type::CodeBlock)) return; CodeBlock_Node* nd = (CodeBlock_Node*)current_node; @@ -3048,18 +3312,22 @@ static void cb_Comment4(Fl_Text_Editor* o, void* v) { } free(c); } +//fl ▲ ----------~=-~-~=~~=-------------~--=~=----~-=-=-~~~=~ ▲ fl// } Fl_Tabs *code_tabs=(Fl_Tabs *)0; static void cb_code_tabs(Fl_Tabs* o, void* v) { +//fl ▼ ---------------------- callback ---~-=-~-==-~=-=~~=-~- ▼ fl// if (current_node && current_node->is_a(Type::Code)) propagate_load((Fl_Group *)o,v); +//fl ▲ ----------=~=~-~=~-~=~----------~~=~~~-=--~-=~--=~---= ▲ fl// } Fl_Group *code_tabs_main=(Fl_Group *)0; static void cb_1c(fld::widget::Code_Editor* o, void* v) { +//fl ▼ ---------------------- callback ~-=--~=~~==~=~=~-~--=~ ▼ fl// if (!current_node || !current_node->is_a(Type::Code)) return; Code_Node* nd = (Code_Node*)current_node; @@ -3084,18 +3352,22 @@ static void cb_1c(fld::widget::Code_Editor* o, void* v) { nd->code_input_scroll_col = o->scroll_col(); free(c); } +//fl ▲ ----------=~=~=~~=--=~----------~~=~~--==-=----=-~~=~~ ▲ fl// } Fl_Tabs *func_tabs=(Fl_Tabs *)0; static void cb_func_tabs(Fl_Tabs* o, void* v) { +//fl ▼ ---------------------- callback ~~=~~==~~-~~-~=~=-=~-- ▼ fl// if (current_node && current_node->is_a(Type::Function)) propagate_load((Fl_Group *)o,v); +//fl ▲ ----------~=~--=~=--~~------------~-~=-~=~=~=~~~~~=--= ▲ fl// } Fl_Group *func_tabs_main=(Fl_Group *)0; static void cb_1d(Fl_Choice* o, void* v) { +//fl ▼ ---------------------- callback ----~-~=--~-=~~~-~~==- ▼ fl// if (!current_node || !current_node->is_a(Type::Function)) return; Function_Node* nd = (Function_Node*)current_node; @@ -3115,6 +3387,7 @@ static void cb_1d(Fl_Choice* o, void* v) { } } } +//fl ▲ ----------=~-----=--=------------~-~=~~=~=~=~~~~-~-~-= ▲ fl// } Fl_Menu_Item menu_b[] = { @@ -3125,6 +3398,7 @@ Fl_Menu_Item menu_b[] = { }; static void cb_1e(Fl_Choice* o, void* v) { +//fl ▼ ---------------------- callback ~-=~-=~---=~--~==-=~=- ▼ fl// if (!current_node || !current_node->is_a(Type::Function)) return; Function_Node* nd = (Function_Node*)current_node; @@ -3144,6 +3418,7 @@ static void cb_1e(Fl_Choice* o, void* v) { } } } +//fl ▲ ----------~=~-=~~=-==~----------~~-~-~~~-~=~-~~=~~=~-~ ▲ fl// } Fl_Menu_Item menu_c[] = { @@ -3154,6 +3429,7 @@ Fl_Menu_Item menu_c[] = { }; static void cb_declare(Fl_Check_Button* o, void* v) { +//fl ▼ ---------------------- callback ~-~-=-~-=~-=~=~-~=-=-~ ▼ fl// if (!current_node || !current_node->is_a(Type::Function)) return; Function_Node* nd = (Function_Node*)current_node; @@ -3165,13 +3441,17 @@ static void cb_declare(Fl_Check_Button* o, void* v) { Fluid.proj.set_modflag(1); } } +//fl ▲ ----------~=-==~~=--=-------------~-=~--=--~~-~~~-=--~ ▲ fl// } static void cb_1f(Fl_Tile* o, void* v) { +//fl ▼ ---------------------- callback -~-=~~---~=~-==~~=-=-- ▼ fl// propagate_load(o, v); +//fl ▲ ----------=~~=~~-~---~-----------~~----=--~=~~-~-----= ▲ fl// } static void cb_Function(fld::widget::Code_Editor* o, void* v) { +//fl ▼ ---------------------- callback --=~=----~=~~-=~-==--~ ▼ fl// if (!current_node || !current_node->is_a(Type::Function)) return; Function_Node* nd = (Function_Node*)current_node; @@ -3191,9 +3471,11 @@ static void cb_Function(fld::widget::Code_Editor* o, void* v) { } free(c); } +//fl ▲ ----------=~=~=-=--~=~-----------~=-=~~~~~-=~~~=-=-~-- ▲ fl// } static void cb_Return(fld::widget::Code_Editor* o, void* v) { +//fl ▼ ---------------------- callback -~=--~-~=~=~~~---=~~=~ ▼ fl// if (!current_node || !current_node->is_a(Type::Function)) return; Function_Node* nd = (Function_Node*)current_node; @@ -3211,9 +3493,11 @@ static void cb_Return(fld::widget::Code_Editor* o, void* v) { } free(c); } +//fl ▲ ----------~=~~=~~==~~------------~~=------=~-=~==~-~-- ▲ fl// } static void cb_Comment5(Fl_Text_Editor* o, void* v) { +//fl ▼ ---------------------- callback ----=~--=~-==-~=-~=~=~ ▼ fl// if (!current_node || !current_node->is_a(Type::Function)) return; Function_Node* nd = (Function_Node*)current_node; @@ -3232,6 +3516,7 @@ static void cb_Comment5(Fl_Text_Editor* o, void* v) { } free(c); } +//fl ▲ ----------=~~~-==-~~=~----------~-~=~=-=-~-~=-~-~=~-=- ▲ fl// } Fl_Tabs *widget_tabs_repo=(Fl_Tabs *)0; diff --git a/fluid/panels/widget_panel.fl b/fluid/panels/widget_panel.fl index f2b2cbfbf..287baf023 100644 --- a/fluid/panels/widget_panel.fl +++ b/fluid/panels/widget_panel.fl @@ -8,6 +8,7 @@ snap { current_suite FLTK current_preset 1 } +mergeback 1 comment {// // Widget panel for the Fast Light Tool Kit (FLTK). // @@ -23,67 +24,67 @@ comment {// // // https://www.fltk.org/bugs.php // -} {in_source in_header +} {uid 901f in_source in_header } -decl {\#include <stdlib.h> // free()} {private global +decl {\#include <stdlib.h> // free()} {uid 053c private global } -decl {\#include "panels/widget_panel/Grid_Child_Tab.h"} {public global +decl {\#include "panels/widget_panel/Grid_Child_Tab.h"} {uid c26d public global } -decl {\#include "panels/widget_panel/Grid_Tab.h"} {public global +decl {\#include "panels/widget_panel/Grid_Tab.h"} {uid 9319 public global } -decl {\#include "widgets/Formula_Input.h"} {public global +decl {\#include "widgets/Formula_Input.h"} {uid 669d public global } -decl {class Fl_Flex;} {public global +decl {class Fl_Flex;} {uid e738 public global } -decl {\#include "Fluid.h"} {private global +decl {\#include "Fluid.h"} {uid 2ade private global } -decl {\#include "app/Snap_Action.h"} {private global +decl {\#include "app/Snap_Action.h"} {uid 7410 private global } -decl {\#include "app/Image_Asset.h"} {private global +decl {\#include "app/Image_Asset.h"} {uid dfe6 private global } -decl {\#include "proj/undo.h"} {private global +decl {\#include "proj/undo.h"} {uid 8760 private global } -decl {\#include "nodes/Window_Node.h"} {private global +decl {\#include "nodes/Window_Node.h"} {uid b4c3 private global } -decl {\#include "nodes/Grid_Node.h"} {private global +decl {\#include "nodes/Grid_Node.h"} {uid 867b private global } -decl {\#include "nodes/Function_Node.h"} {private global +decl {\#include "nodes/Function_Node.h"} {uid 05e8 private global } -decl {\#include <FL/Fl_Spinner.H>} {private global +decl {\#include <FL/Fl_Spinner.H>} {uid ee72 private global } -decl {\#include <FL/Fl_Grid.H>} {private global +decl {\#include <FL/Fl_Grid.H>} {uid aac3 private global } -decl {\#include <FL/Fl_Flex.H>} {private global +decl {\#include <FL/Fl_Flex.H>} {uid 09f2 private global } -decl {\#include <FL/fl_ask.H>} {private global +decl {\#include <FL/fl_ask.H>} {uid 1eb3 private global } -decl {\#include <FL/Fl_Menu_Item.H>} {private global +decl {\#include <FL/Fl_Menu_Item.H>} {uid a916 private global } -decl {\#include <FL/Fl_File_Chooser.H>} {private global +decl {\#include <FL/Fl_File_Chooser.H>} {uid 2160 private global } -decl {\#include <ctype.h>} {private global +decl {\#include <ctype.h>} {uid 43de private global } -decl {\#define ZERO_ENTRY 1000} {private global +decl {\#define ZERO_ENTRY 1000} {uid e18b private global } decl {extern const char* when_symbol_name(int n); @@ -95,39 +96,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[];} {private global +extern fld::widget::Formula_Input_Vars widget_vars[];} {uid 81c9 private global } decl {extern int numselected; -extern Fl_Menu_Item boxmenu[];} {private global +extern Fl_Menu_Item boxmenu[];} {uid d159 private global } -decl {extern int haderror;} {private global +decl {extern int haderror;} {uid 4c02 private global } -Function {use_tab_navigation(int, Fl_Text_Editor*)} { +Function {use_tab_navigation(int, Fl_Text_Editor*)} {uid 42b9 comment {Allow widget navigation on text fields with Tab.} private return_type int } { - code {return 0;} {} + code {return 0;} {uid 9a10 + } } -Function {make_image_panel()} { +Function {make_image_panel()} {uid b832 comment {Create a panel for editing widget image data} } { - Fl_Window image_panel_window { + Fl_Window image_panel_window {uid 1b62 label {Image Options} callback {propagate_load(o, v);} open xywh {527 684 260 332} type Double modal visible } { - Fl_Group image_panel_imagegroup { + Fl_Group image_panel_imagegroup {uid c8cd callback propagate_load open xywh {10 15 235 125} } { - Fl_Box {} { + Fl_Box {} {uid 36b9 label { ---- Active Image ----} xywh {75 15 170 20} labelfont 1 labelsize 11 align 20 } - Fl_Box image_panel_data { + Fl_Box image_panel_data {uid c241 label {... x ... pixels, ...} callback {if (v == LOAD) { Fl_Shared_Image *img = Fl_Shared_Image::get(widget_image_input->value()); @@ -148,11 +150,11 @@ Function {make_image_panel()} { xywh {75 35 170 20} labelsize 11 align 20 code0 {\#include <FL/Fl_Shared_Image.H>} } - Fl_Group {} { + Fl_Group {} {uid 5cf7 callback propagate_load open xywh {75 75 170 20} } { - Fl_Input image_panel_imagew { + Fl_Input image_panel_imagew {uid 7e73 label {Width:} callback {if (v == LOAD) { if (current_widget->is_widget() && !current_widget->is_a(Type::Window)) { @@ -182,7 +184,7 @@ Function {make_image_panel()} { 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 { + Fl_Input image_panel_imageh {uid e676 label {Height:} callback {if (v == LOAD) { if (current_widget->is_widget() && !current_widget->is_a(Type::Window)) { @@ -212,7 +214,7 @@ Function {make_image_panel()} { 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 {} { + Fl_Button {} {uid 4df5 label Reset callback {if (v != LOAD) { image_panel_imagew->value(0); @@ -223,15 +225,15 @@ Function {make_image_panel()} { tooltip {Reset scale to original size} xywh {195 75 50 20} labelsize 11 } } - Fl_Box {} { + Fl_Box {} {uid 21d3 label {Scale:} xywh {10 75 60 20} labelfont 1 labelsize 11 align 24 } - Fl_Box {} { + Fl_Box {} {uid cddb label {Storage:} xywh {10 100 60 20} labelfont 1 labelsize 11 align 24 } - Fl_Check_Button {} { + Fl_Check_Button {} {uid 08b7 label {convert to raw pixel data} callback {if (v == LOAD) { if (current_widget->is_widget() && !current_widget->is_a(Type::Window)) { @@ -250,7 +252,7 @@ Function {make_image_panel()} { }} 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 {} { + Fl_Check_Button {} {uid 62a3 label {bind to widget} callback {if (v == LOAD) { if (current_widget->is_widget() && !current_widget->is_a(Type::Window)) { @@ -270,15 +272,15 @@ Function {make_image_panel()} { tooltip {bind the image to the widget, so it will be deleted with the widget} xywh {75 120 170 20} down_box DOWN_BOX labelsize 11 hotspot } } - Fl_Group image_panel_deimagegroup { + Fl_Group image_panel_deimagegroup {uid ccd5 callback propagate_load open xywh {10 155 235 125} } { - Fl_Box {} { + Fl_Box {} {uid f3a3 label { ---- Inactive Image ----} xywh {75 155 170 20} labelfont 1 labelsize 11 align 20 } - Fl_Box image_panel_dedata { + Fl_Box image_panel_dedata {uid 6287 label {... x ... pixels, ...} callback {if (v == LOAD) { Fl_Shared_Image *img = Fl_Shared_Image::get(widget_deimage_input->value()); @@ -298,11 +300,11 @@ Function {make_image_panel()} { }} xywh {75 175 170 20} labelsize 11 align 20 } - Fl_Group {} { + Fl_Group {} {uid c479 callback propagate_load open xywh {75 215 170 20} } { - Fl_Input image_panel_deimagew { + Fl_Input image_panel_deimagew {uid 117f label {Width:} callback {if (v == LOAD) { if (current_widget->is_widget() && !current_widget->is_a(Type::Window)) { @@ -332,7 +334,7 @@ Function {make_image_panel()} { 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 { + Fl_Input image_panel_deimageh {uid c6c4 label {Height:} callback {if (v == LOAD) { if (current_widget->is_widget() && !current_widget->is_a(Type::Window)) { @@ -362,7 +364,7 @@ Function {make_image_panel()} { 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 {} { + Fl_Button {} {uid a381 label Reset callback {if (v != LOAD) { image_panel_deimagew->value(0); @@ -373,15 +375,15 @@ Function {make_image_panel()} { tooltip {Reset scale to original size} xywh {195 215 50 20} labelsize 11 } } - Fl_Box {} { + Fl_Box {} {uid 6b9a label {Scale:} xywh {10 215 60 20} labelfont 1 labelsize 11 align 24 } - Fl_Box {} { + Fl_Box {} {uid 5603 label {Storage:} xywh {10 240 60 20} labelfont 1 labelsize 11 align 24 } - Fl_Check_Button {} { + Fl_Check_Button {} {uid 0d5e label {convert to raw pixel data} callback {if (v == LOAD) { if (current_widget->is_widget() && !current_widget->is_a(Type::Window)) { @@ -400,7 +402,7 @@ Function {make_image_panel()} { }} 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 {} { + Fl_Check_Button {} {uid c4ca label {bind to widget} callback {if (v == LOAD) { if (current_widget->is_widget() && !current_widget->is_a(Type::Window)) { @@ -420,7 +422,7 @@ Function {make_image_panel()} { tooltip {bind the image to the widget, so it will be deleted with the widget} xywh {75 260 170 20} down_box DOWN_BOX labelsize 11 } } - Fl_Button image_panel_close { + Fl_Button image_panel_close {uid c670 label Close callback {if (v != LOAD) image_panel_window->hide();} @@ -429,7 +431,7 @@ Function {make_image_panel()} { } } -Function {run_image_panel()} {return_type void +Function {run_image_panel()} {uid 094c return_type void } { code {if (!image_panel_window) make_image_panel(); @@ -449,10 +451,11 @@ Fl_Shared_Image *img = (Fl_Shared_Image*)image_panel_data->user_data(); if (img) { img->release(); image_panel_data->user_data(nullptr); -}} {} +}} {uid 8ded + } } -Function {flex_margin_cb(Fl_Value_Input* i, void* v, void (*load_margin)(Fl_Flex*,Fl_Value_Input*), int (*update_margin)(Fl_Flex*,int))} {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 03b3 return_type void } { code {if (v == LOAD) { if (current_widget->is_a(Type::Flex)) { @@ -472,55 +475,56 @@ Function {flex_margin_cb(Fl_Value_Input* i, void* v, void (*load_margin)(Fl_Flex } } if (mod) Fluid.proj.set_modflag(1); -}} {} +}} {uid 0a71 + } } -Function {make_widget_panel()} { +Function {make_widget_panel()} {uid 9310 comment {Create a panel that can be used with all known widgets} open } { - Fl_Window {} { + Fl_Window {} {uid 30ee comment {Use a Double Window to avoid flickering.} open xywh {485 255 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 { + Fl_Wizard tabs_wizard {uid 647f callback {propagate_load((Fl_Group *)o,v);} open xywh {10 10 400 350} box NO_BOX labelsize 11 resizable } { - Fl_Tabs widget_tabs { + Fl_Tabs widget_tabs {uid ce20 callback {if (current_widget) - propagate_load((Fl_Group *)o,v);} selected + propagate_load((Fl_Group *)o,v);} xywh {10 10 400 350} selection_color 12 labelsize 11 labelcolor 7 when 0 code0 {o->show();} } { - Fl_Group wp_gui_tab { + Fl_Group wp_gui_tab {uid b76b label GUI callback propagate_load open xywh {10 30 400 330} labelsize 11 when 0 resizable } { - Fl_Group {} { + Fl_Group {} {uid d70c label {Label:} callback propagate_load open xywh {95 40 309 20} labelfont 1 labelsize 11 align 4 } { - Fl_Input wp_gui_label { + Fl_Input wp_gui_label {uid 5f88 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 {} { + Fl_Choice {} {uid 1505 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 {} { + Fl_Group {} {uid 2eaa label {Image:} callback propagate_load open xywh {95 65 309 20} labelfont 1 labelsize 11 align 4 } { - Fl_Input widget_image_input { + Fl_Input widget_image_input {uid cbeb callback {if (v == LOAD) { if (current_widget->is_widget() && !current_widget->is_a(Type::Window)) { o->activate(); @@ -536,7 +540,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 {} { + Fl_Button {} {uid cdf4 label {Browse...} callback {if (v == LOAD) { if (current_widget->is_widget() && !current_widget->is_a(Type::Window)) @@ -557,7 +561,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 {} { + Fl_Button {} {uid 4e96 label {...} callback {if (v != LOAD) { run_image_panel(); @@ -565,12 +569,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 {} { + Fl_Group {} {uid 803e label {Inactive:} callback propagate_load open xywh {95 90 309 20} labelfont 1 labelsize 11 align 4 } { - Fl_Input widget_deimage_input { + Fl_Input widget_deimage_input {uid 887c callback {if (v == LOAD) { if (current_widget->is_widget() && !current_widget->is_a(Type::Window)) { o->activate(); @@ -586,7 +590,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 {} { + Fl_Button {} {uid 8947 label {Browse...} callback {if (v == LOAD) { if (current_widget->is_widget() && !current_widget->is_a(Type::Window)) @@ -608,178 +612,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 { + Fl_Group wp_gui_alignment {uid b808 label {Alignment:} callback propagate_load open xywh {95 115 312 20} labelfont 1 labelsize 11 align 4 } { - Fl_Button {} { + Fl_Button {} {uid 2ece 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 {} { + Fl_Button {} {uid e48d 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 {} { + Fl_Button {} {uid fe4e 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 {} { + Fl_Button {} {uid dc09 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 {} { + Fl_Button {} {uid fe23 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 {} { + Fl_Button {} {uid da66 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 {} { + Fl_Choice {} {uid 81e7 callback align_text_image_cb xywh {172 115 116 20} down_box BORDER_BOX labelsize 11 textsize 11 } { - MenuItem {} { + MenuItem {} {uid 7717 label { Image Alignment } user_data {(fl_intptr_t)-1} xywh {145 145 100 20} labelfont 1 labelsize 10 } - MenuItem {} { + MenuItem {} {uid bc92 label {image over text} user_data {(fl_intptr_t)FL_ALIGN_IMAGE_OVER_TEXT} xywh {25 25 100 20} labelsize 9 } - MenuItem {} { + MenuItem {} {uid 2da8 label {text over image} user_data {(fl_intptr_t)FL_ALIGN_TEXT_OVER_IMAGE} xywh {15 15 100 20} labelsize 9 } - MenuItem {} { + MenuItem {} {uid 9da3 label {text next to image} user_data {(fl_intptr_t)FL_ALIGN_TEXT_NEXT_TO_IMAGE} xywh {35 35 100 20} labelsize 9 } - MenuItem {} { + MenuItem {} {uid 4cb2 label {image next to text} user_data {(fl_intptr_t)FL_ALIGN_IMAGE_NEXT_TO_TEXT} xywh {45 45 100 20} labelsize 9 } - MenuItem {} { + MenuItem {} {uid 3abb label {image is backdrop} user_data {(fl_intptr_t)FL_ALIGN_IMAGE_BACKDROP} xywh {55 55 100 20} labelsize 9 } } - Fl_Choice {} { + Fl_Choice {} {uid d1cd callback align_position_cb xywh {293 115 86 20} down_box BORDER_BOX labelsize 11 textsize 11 } { - MenuItem {} { + MenuItem {} {uid 0bee label { Inside && Outside } user_data {(fl_intptr_t)-1} xywh {135 135 100 20} labelfont 1 labelsize 10 } - MenuItem {} { + MenuItem {} {uid 6932 label {top left} user_data {(fl_intptr_t)FL_ALIGN_TOP_LEFT} xywh {45 45 100 20} labelsize 9 } - MenuItem {} { + MenuItem {} {uid 601b label top user_data {(fl_intptr_t)FL_ALIGN_TOP} xywh {55 55 100 20} labelsize 9 } - MenuItem {} { + MenuItem {} {uid 903e label {top right} user_data {(fl_intptr_t)FL_ALIGN_TOP_RIGHT} xywh {65 65 100 20} labelsize 9 } - MenuItem {} { + MenuItem {} {uid db15 label left user_data {(fl_intptr_t)FL_ALIGN_LEFT} xywh {75 75 100 20} labelsize 9 } - MenuItem {} { + MenuItem {} {uid 4a38 label center user_data {(fl_intptr_t)FL_ALIGN_CENTER} xywh {35 35 100 20} labelsize 9 } - MenuItem {} { + MenuItem {} {uid d20c label right user_data {(fl_intptr_t)FL_ALIGN_RIGHT} xywh {85 85 100 20} labelsize 9 } - MenuItem {} { + MenuItem {} {uid 2554 label {bottom left} user_data {(fl_intptr_t)FL_ALIGN_BOTTOM_LEFT} xywh {95 95 100 20} labelsize 9 } - MenuItem {} { + MenuItem {} {uid b11e label bottom user_data {(fl_intptr_t)FL_ALIGN_BOTTOM} xywh {105 105 100 20} labelsize 9 } - MenuItem {} { + MenuItem {} {uid 47f0 label {bottom right} user_data {(fl_intptr_t)FL_ALIGN_BOTTOM_RIGHT} xywh {115 115 100 20} labelsize 9 } - MenuItem {} { + MenuItem {} {uid fb93 label { Outside Alignment } user_data {(fl_intptr_t)-1} xywh {125 125 100 20} labelfont 1 labelsize 10 } - MenuItem {} { + MenuItem {} {uid 9208 label {left top} user_data {(fl_intptr_t)FL_ALIGN_LEFT_TOP} xywh {135 135 100 20} labelsize 9 } - MenuItem {} { + MenuItem {} {uid 6888 label {right top} user_data {(fl_intptr_t)FL_ALIGN_RIGHT_TOP} xywh {145 145 100 20} labelsize 9 } - MenuItem {} { + MenuItem {} {uid c296 label {left bottom} user_data {(fl_intptr_t)FL_ALIGN_LEFT_BOTTOM} xywh {155 155 100 20} labelsize 9 } - MenuItem {} { + MenuItem {} {uid 189f label {right bottom} user_data {(fl_intptr_t)FL_ALIGN_RIGHT_BOTTOM} xywh {45 45 100 20} labelsize 9 } } - Fl_Button {} { + Fl_Button {} {uid a574 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 {} { + Fl_Box {} {uid 9057 xywh {406 115 1 20} labelsize 11 resizable } } - Fl_Group {} { + Fl_Group {} {uid 65af label {Position:} callback position_group_cb open xywh {95 150 314 20} labelfont 1 labelsize 11 align 4 } { - Fl_Input widget_x_input { + Fl_Input widget_x_input {uid f0e1 label {X:} callback {if (v == LOAD) { if (current_widget->is_true_widget()) { @@ -813,7 +817,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 { + Fl_Input widget_y_input {uid 5985 label {Y:} callback {if (v == LOAD) { if (current_widget->is_true_widget()) { @@ -846,7 +850,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 { + Fl_Input widget_w_input {uid 2e88 label {Width:} callback {if (v == LOAD) { if (current_widget->is_true_widget()) { @@ -879,7 +883,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 { + Fl_Input widget_h_input {uid 2382 label {Height:} callback {if (v == LOAD) { if (current_widget->is_true_widget()) { @@ -912,7 +916,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 {} { + Fl_Choice {} {uid 4f6a label {Children:} callback {if (v == LOAD) { if (current_widget->is_a(Type::Widget_Class)) { @@ -935,24 +939,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 {} { + MenuItem {} {uid b841 label Fixed xywh {0 0 31 20} labelsize 11 } - MenuItem {} { + MenuItem {} {uid eb9d label Reposition xywh {0 0 31 20} labelsize 11 } - MenuItem {} { + MenuItem {} {uid 9258 label Resize xywh {0 0 31 20} labelsize 11 } } - Fl_Box {} { + Fl_Box {} {uid e831 xywh {399 150 1 20} hide resizable } } - Fl_Group wp_gui_flexp { + Fl_Group wp_gui_flexp {uid 091c label {Flex Parent:} callback {if (v == LOAD) { if (Flex_Node::parent_is_flex(current_widget)) { @@ -965,7 +969,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 { + Fl_Value_Input widget_flex_size {uid 3317 label {Size:} callback {if (v == LOAD) { if (Flex_Node::parent_is_flex(current_widget)) { @@ -1001,7 +1005,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 { + Fl_Check_Button widget_flex_fixed {uid 5b84 label fixed callback {if (v == LOAD) { if (Flex_Node::parent_is_flex(current_widget)) { @@ -1034,11 +1038,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 {} { + Fl_Box {} {uid 63b5 xywh {398 150 1 20} resizable } } - Fl_Group wp_gui_values { + Fl_Group wp_gui_values {uid 2348 label {Values:} callback {if (v == LOAD) { if ( current_widget->is_a(Type::Flex) @@ -1053,7 +1057,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 {} { + Fl_Value_Input {} {uid 4e4e label {Size:} callback {if (v == LOAD) { if (!current_widget->is_a(Type::Slider)) {o->deactivate(); return;} @@ -1074,7 +1078,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 {} { + Fl_Value_Input {} {uid eaec label {Minimum:} callback {if (v == LOAD) { if (current_widget->is_a(Type::Valuator_)) { @@ -1106,7 +1110,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 {} { + Fl_Value_Input {} {uid 6bdb label {Maximum:} callback {if (v == LOAD) { if (current_widget->is_a(Type::Valuator_)) { @@ -1138,7 +1142,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 {} { + Fl_Value_Input {} {uid 0339 label {Step:} callback {if (v == LOAD) { if (current_widget->is_a(Type::Valuator_)) { @@ -1170,7 +1174,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 {} { + Fl_Value_Input {} {uid aa3f label {Value:} callback {if (v == LOAD) { if (current_widget->is_a(Type::Valuator_)) { @@ -1205,11 +1209,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 {} { + Fl_Box {} {uid 366a xywh {395 185 0 20} resizable } } - Fl_Group wp_gui_margins { + Fl_Group wp_gui_margins {uid 910a label {Margins:} callback {if (v == LOAD) { if (current_widget->is_a(Type::Flex)) { @@ -1222,7 +1226,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 {} { + Fl_Value_Input {} {uid 2fca label {Left:} callback {flex_margin_cb(o, v, [](Fl_Flex *w, Fl_Value_Input* i) -> void @@ -1245,7 +1249,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 {} { + Fl_Value_Input {} {uid 9b11 label {Top:} callback {flex_margin_cb(o, v, [](Fl_Flex *w, Fl_Value_Input* i) -> void @@ -1268,7 +1272,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 {} { + Fl_Value_Input {} {uid b7b9 label {Right:} callback {flex_margin_cb(o, v, [](Fl_Flex *w, Fl_Value_Input* i) -> void @@ -1291,7 +1295,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 {} { + Fl_Value_Input {} {uid ea1d label {Bottom:} callback {flex_margin_cb(o, v, [](Fl_Flex *w, Fl_Value_Input* i) -> void @@ -1314,7 +1318,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 {} { + Fl_Value_Input {} {uid 4cf0 label {Gap:} callback {flex_margin_cb(o, v, [](Fl_Flex *w, Fl_Value_Input* o) -> void @@ -1335,11 +1339,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 {} { + Fl_Box {} {uid 6086 xywh {395 185 0 20} resizable } } - Fl_Group wp_gui_sizerange { + Fl_Group wp_gui_sizerange {uid 0e6b label {Size Range:} callback {if (v == LOAD) { if (current_widget->is_a(Type::Window)) { @@ -1351,7 +1355,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 {} { + Fl_Value_Input {} {uid a350 label {Minimum Size:} callback {if (v == LOAD) { if (!current_widget->is_a(Type::Window)) return; @@ -1370,7 +1374,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 {} { + Fl_Value_Input {} {uid f50b callback {if (v == LOAD) { if (!current_widget->is_a(Type::Window)) return; o->value(((Window_Node*)current_widget)->sr_min_h); @@ -1388,7 +1392,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 {} { + Fl_Button {} {uid da8d label set callback {if (v == LOAD) { } else { @@ -1407,7 +1411,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 {} { + Fl_Value_Input {} {uid 99ee label {Maximum Size:} callback {if (v == LOAD) { if (!current_widget->is_a(Type::Window)) return; @@ -1426,7 +1430,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 {} { + Fl_Value_Input {} {uid e850 callback {if (v == LOAD) { if (!current_widget->is_a(Type::Window)) return; o->value(((Window_Node*)current_widget)->sr_max_h); @@ -1444,7 +1448,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 {} { + Fl_Button {} {uid 0e1f label set callback {if (v == LOAD) { } else { @@ -1463,16 +1467,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 {} { + Fl_Box {} {uid 42d7 xywh {395 185 0 20} resizable } } - Fl_Group {} { + Fl_Group {} {uid 4eeb label {Shortcut:} callback propagate_load xywh {95 210 310 20} labelfont 1 labelsize 11 align 4 } { - Fl_Button wp_gui_shortcut { + Fl_Button wp_gui_shortcut {uid 379b callback {if (v == LOAD) { if (current_widget->is_button()) o->value( ((Fl_Button*)(current_widget->o))->shortcut() ); @@ -1521,12 +1525,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 { + Fl_Group wp_gui_xclass {uid ccce label {X Class:} callback propagate_load xywh {95 235 300 20} labelfont 1 labelsize 11 align 4 } { - Fl_Input {} { + Fl_Input {} {uid f009 label {:} callback {if (v == LOAD) { if (current_widget->is_a(Type::Window)) { @@ -1552,7 +1556,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 {} { + Fl_Light_Button {} {uid eca1 label Border callback {if (v == LOAD) { if (!current_widget->is_a(Type::Window)) {o->hide(); return;} @@ -1565,7 +1569,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 {} { + Fl_Light_Button {} {uid 457d label Modal callback {if (v == LOAD) { if (!current_widget->is_a(Type::Window)) {o->hide(); return;} @@ -1578,7 +1582,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 {} { + Fl_Light_Button {} {uid 3574 label Nonmodal callback {if (v == LOAD) { if (!current_widget->is_a(Type::Window)) {o->hide(); return;} @@ -1592,12 +1596,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 { + Fl_Group wp_gui_attributes {uid 5312 label {Attributes:} callback propagate_load xywh {95 260 305 20} labelfont 1 labelsize 11 align 4 } { - Fl_Light_Button {} { + Fl_Light_Button {} {uid ce4b label Visible callback {if (v == LOAD) { o->value(current_widget->o->visible()); @@ -1628,7 +1632,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 {} { + Fl_Light_Button {} {uid c546 label Active callback {if (v == LOAD) { o->value(current_widget->o->active()); @@ -1649,7 +1653,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 {} { + Fl_Light_Button {} {uid 9305 label Resizable callback {if (v == LOAD) { if (current_widget->is_a(Type::Menu_Item)) { @@ -1670,7 +1674,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 {} { + Fl_Light_Button {} {uid 32ad label Headline callback {if (v == LOAD) { if (!current_widget->is_a(Type::Menu_Item)) { @@ -1697,7 +1701,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 {} { + Fl_Light_Button {} {uid 28fc label Hotspot callback {if (v == LOAD) { if (numselected > 1) {o->deactivate(); return;} @@ -1725,11 +1729,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 {} { + Fl_Box {} {uid d107 xywh {395 260 0 20} labelsize 11 resizable } } - Fl_Input wp_gui_tooltip { + Fl_Input wp_gui_tooltip {uid 5977 label {Tooltip:} callback {if (v == LOAD) { if (current_widget->is_widget()) { @@ -1749,21 +1753,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 {} { + Fl_Box {} {uid 9bbe xywh {95 305 300 5} hide resizable } } - Fl_Group wp_style_tab { + Fl_Group wp_style_tab {uid 16d9 label Style callback propagate_load open xywh {10 30 400 330} labelsize 11 when 0 hide } { - Fl_Group wp_style_label { + Fl_Group wp_style_label {uid 0281 label {Label Font:} callback propagate_load open xywh {99 40 305 20} labelfont 1 labelsize 11 align 4 } { - Fl_Choice {} { + Fl_Choice {} {uid 686d callback {if (v == LOAD) { int n = current_widget->o->labelfont(); if (n > 15) n = 0; @@ -1784,7 +1788,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 {} { + Fl_Value_Input {} {uid ec8d callback {int n; if (v == LOAD) { n = current_widget->o->labelsize(); @@ -1802,7 +1806,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 { + Fl_Button w_labelcolor {uid 4f7e label {Label Color} callback {Fl_Color c = current_widget->o->labelcolor(); if (v != LOAD) { @@ -1816,7 +1820,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 {} { + Fl_Menu_Button {} {uid 1684 callback {Fl_Color c = current_widget->o->labelcolor(); if (v != LOAD) { Fl_Color d = (Fl_Color)(o->mvalue()->argument()); @@ -1832,12 +1836,12 @@ if (v != LOAD) { code1 {o->menu(colormenu);} } {} } - Fl_Group wp_style_box { + Fl_Group wp_style_box {uid 4488 label {Box:} callback propagate_load open xywh {99 65 305 20} labelfont 1 labelsize 11 align 4 } { - Fl_Choice {} { + Fl_Choice {} {uid 5454 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 +1865,7 @@ if (v != LOAD) { code0 {extern Fl_Menu_Item boxmenu[];} code1 {o->menu(boxmenu);} } {} - Fl_Button w_color { + Fl_Button w_color {uid 894a label Color callback {Fl_Color c = current_widget->o->color(); if (v == LOAD) { @@ -1881,7 +1885,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 {} { + Fl_Menu_Button {} {uid 7a18 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 +1903,12 @@ if (v == LOAD) { code1 {o->menu(colormenu);} } {} } - Fl_Group wp_style_downbox { + Fl_Group wp_style_downbox {uid eed8 label {Down Box:} callback propagate_load open xywh {99 90 305 20} labelfont 1 labelsize 11 align 4 } { - Fl_Choice {} { + Fl_Choice {} {uid d304 callback {if (v == LOAD) { int n; if (current_widget->is_a(Type::Button)) @@ -1943,7 +1947,7 @@ if (v == LOAD) { code0 {extern Fl_Menu_Item boxmenu[];} code1 {o->menu(boxmenu);} } {} - Fl_Button w_selectcolor { + Fl_Button w_selectcolor {uid d85c label {Select Color} callback {Fl_Color c = current_widget->o->selection_color(); if (v == LOAD) { @@ -1964,7 +1968,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 {} { + Fl_Menu_Button {} {uid b1b3 callback {Fl_Color c = current_widget->o->selection_color(); if (v == LOAD) { if (current_widget->is_a(Type::Menu_Item)) { @@ -1987,12 +1991,12 @@ if (v == LOAD) { code1 {o->menu(colormenu);} } {} } - Fl_Group wp_style_text { + Fl_Group wp_style_text {uid 6128 label {Text Font:} callback propagate_load open xywh {99 115 305 20} labelfont 1 labelsize 11 align 4 } { - Fl_Choice {} { + Fl_Choice {} {uid 983b 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 +2018,7 @@ if (v == LOAD) { code0 {extern Fl_Menu_Item fontmenu[];} code1 {o->menu(fontmenu);} } {} - Fl_Value_Input {} { + Fl_Value_Input {} {uid 580a 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 +2038,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 { + Fl_Button w_textcolor {uid 1d75 label {Text Color} callback {Fl_Font n; int s; Fl_Color c; if (v == LOAD) { @@ -2055,7 +2059,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 {} { + Fl_Menu_Button {} {uid 172b callback {Fl_Font n; int s; Fl_Color c; if (v == LOAD) { if (!current_widget->textstuff(0,n,s,c)) { @@ -2078,12 +2082,12 @@ if (v == LOAD) { code1 {o->menu(colormenu);} } {} } - Fl_Group {} { + Fl_Group {} {uid 3088 label {Label Margin:} callback propagate_load open xywh {99 150 242 20} labelfont 1 labelsize 11 align 4 } { - Fl_Value_Input {} { + Fl_Value_Input {} {uid 491b label {Horizontal:} callback {int s; if (v == LOAD) { @@ -2112,7 +2116,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 {} { + Fl_Value_Input {} {uid 9a5f label {Vertical:} callback {int s; if (v == LOAD) { @@ -2141,7 +2145,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 {} { + Fl_Value_Input {} {uid e250 label {Image Gap:} callback {int s; if (v == LOAD) { @@ -2170,11 +2174,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 {} { + Fl_Box {} {uid 1d0f xywh {281 150 60 20} labelsize 11 hide resizable } } - Fl_Light_Button {} { + Fl_Light_Button {} {uid cead label Compact callback {if (v == LOAD) { uchar n; @@ -2205,21 +2209,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 {} { + Fl_Box {} {uid f0b5 xywh {195 205 40 40} labelsize 11 resizable } } - Fl_Group wp_cpp_tab { + Fl_Group wp_cpp_tab {uid 0590 label {C++} callback propagate_load open xywh {10 30 400 330} labelsize 11 when 0 hide } { - Fl_Group wp_cpp_class { + Fl_Group wp_cpp_class {uid 3410 label {Class:} callback propagate_load open xywh {95 40 310 20} labelfont 1 labelsize 11 align 4 } { - Fl_Input {} { + Fl_Input {} {uid 31e6 user_data 4 callback {if (v == LOAD) { if (current_widget->is_a(Type::Menu_Item)) { @@ -2239,7 +2243,7 @@ if (v == LOAD) { }} tooltip {The widget subclass.} xywh {95 40 172 20} labelfont 1 labelsize 11 textfont 4 textsize 11 resizable } - Fl_Choice {} { + Fl_Choice {} {uid fb3d callback {static Fl_Menu_Item empty_type_menu[] = { {"Normal",0,nullptr,(void*)nullptr}, {nullptr}}; @@ -2286,12 +2290,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 { + Fl_Group wp_cpp_name {uid a01b label {Name:} callback propagate_load open xywh {95 65 310 20} labelfont 1 labelsize 11 align 4 } { - Fl_Input {} { + Fl_Input {} {uid 6c66 callback {if (v == LOAD) { static char buf[1024]; if (numselected != 1) { @@ -2315,7 +2319,7 @@ if (v == LOAD) { }} tooltip {The name of the widget.} xywh {95 65 235 20} labelfont 1 labelsize 11 textsize 11 resizable } - Fl_Choice {} { + Fl_Choice {} {uid c54f callback {if (v == LOAD) { o->value(current_widget->public_); if (current_widget->is_in_class()) o->show(); else o->hide(); @@ -2337,39 +2341,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 {} { + MenuItem {} {uid 018b label private user_data 0 user_data_type long xywh {0 0 100 20} labelsize 11 } - MenuItem {} { + MenuItem {} {uid 4dda label public user_data 1 user_data_type long xywh {0 0 100 20} labelsize 11 } - MenuItem {} { + MenuItem {} {uid 4a2d label protected user_data 2 user_data_type long xywh {0 0 100 20} labelsize 11 } } - Fl_Choice {} { + Fl_Choice {} {uid ffbf 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 {} { + MenuItem {} {uid 7533 label local user_data 0 user_data_type long xywh {10 10 100 20} labelsize 11 } - MenuItem {} { + MenuItem {} {uid 6acb label global user_data 1 user_data_type long xywh {10 10 100 20} labelsize 11 } } } - Fl_Input {v_input[0]} { + Fl_Input {v_input[0]} {uid 526b label {Extra Code:} user_data 0 callback {int n = fl_int(o->user_data()); @@ -2388,30 +2392,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]} { + Fl_Input {v_input[1]} {uid 10e2 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]} { + Fl_Input {v_input[2]} {uid 981c 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]} { + Fl_Input {v_input[3]} {uid 5a8e 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 {} { + Fl_Tile {} {uid 3db3 callback {wComment->do_callback(wComment, v); wCallback->do_callback(wCallback, v);} open xywh {95 175 310 130} resizable } { - Fl_Group {} {open + Fl_Group {} {uid f2ec open xywh {95 175 310 48} box FLAT_BOX } { - Fl_Text_Editor wComment { + Fl_Text_Editor wComment {uid 82a9 label {Comment:} callback {if (v == LOAD) { const char *cmttext = current_widget->comment(); @@ -2430,10 +2434,10 @@ wCallback->do_callback(wCallback, v);} open code0 {wComment->buffer(new Fl_Text_Buffer());} } } - Fl_Group {} {open + Fl_Group {} {uid 3ad9 open xywh {95 223 310 82} box FLAT_BOX } { - Fl_Text_Editor wCallback { + Fl_Text_Editor wCallback {uid 99d5 label {Callback:} callback {if (v == LOAD) { const char *cbtext = current_widget->callback(); @@ -2460,12 +2464,12 @@ wCallback->do_callback(wCallback, v);} open } } } - Fl_Group wp_cpp_callback { + Fl_Group wp_cpp_callback {uid 9fbf label {User Data:} callback propagate_load open xywh {95 310 310 20} labelfont 1 labelsize 11 align 4 } { - Fl_Input {} { + Fl_Input {} {uid c214 callback {if (v == LOAD) { o->value(current_widget->user_data()); } else { @@ -2481,7 +2485,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 {} { + Fl_Menu_Button {} {uid ba4c label When callback {if (v == LOAD) { if (current_widget->is_a(Type::Menu_Item)) {o->deactivate(); return;} else o->activate(); @@ -2513,12 +2517,12 @@ wCallback->do_callback(wCallback, v);} open code1 {o->menu(whenmenu);} } {} } - Fl_Group {} { + Fl_Group {} {uid ec08 label {Type:} callback propagate_load open xywh {95 332 310 26} labelfont 1 labelsize 11 align 4 } { - Fl_Input_Choice {} { + Fl_Input_Choice {} {uid 3ee9 callback {static const char *dflt = "void*"; if (v == LOAD) { const char *c = current_widget->user_data_type(); @@ -2543,50 +2547,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 {} { + MenuItem {} {uid 7257 label {void*} xywh {0 0 31 20} labelfont 4 labelsize 11 } - MenuItem {} { + MenuItem {} {uid be7e label long xywh {0 0 31 20} labelfont 4 labelsize 11 } } - Fl_Box w_when_box { + Fl_Box w_when_box {uid 46d0 label FL_WHEN_NEVER xywh {260 332 145 26} box FLAT_BOX selection_color 1 labelsize 8 align 209 } } } - Fl_Group widget_tab_grid { + Fl_Group widget_tab_grid {uid 09d1 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 { + Fl_Group widget_tab_grid_child {uid 9ae5 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 { + Fl_Tabs data_tabs {uid 3ae5 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 { + Fl_Group data_tabs_data {uid b260 label {Inline Data} callback propagate_load open xywh {10 30 400 330} labelsize 11 resizable } { - Fl_Group {} { + Fl_Group {} {uid c387 label {Visibility:} callback propagate_load open xywh {95 49 310 21} labelfont 1 labelsize 11 align 4 } { - Fl_Choice {} { + Fl_Choice {} {uid 0b51 callback {if (!current_node || !current_node->is_a(Type::Data)) return; Data_Node* nd = (Data_Node*)current_node; @@ -2608,24 +2612,24 @@ if (v == LOAD) { }} open xywh {95 50 210 20} down_box BORDER_BOX labelsize 11 textsize 11 } { - MenuItem {} { + MenuItem {} {uid 0b09 label {in source file only} xywh {10 10 100 20} labelsize 11 } - MenuItem {} { + MenuItem {} {uid 97b3 label {in header file only} xywh {10 10 100 20} labelsize 11 hide } - MenuItem {} { + MenuItem {} {uid 7e40 label {"static" in source file} xywh {10 10 100 20} labelsize 11 } - MenuItem {} { + MenuItem {} {uid ca98 label {in source and "extern" in header} xywh {10 10 100 20} labelsize 11 } } - Fl_Choice {} { + Fl_Choice {} {uid e705 callback {if (!current_node || !current_node->is_a(Type::Data)) return; Data_Node* nd = (Data_Node*)current_node; @@ -2647,29 +2651,29 @@ if (v == LOAD) { }} open xywh {95 50 75 20} down_box BORDER_BOX labelsize 11 textsize 11 } { - MenuItem {} { + MenuItem {} {uid 3280 label private xywh {20 20 100 20} labelsize 11 } - MenuItem {} { + MenuItem {} {uid a347 label public xywh {20 20 100 20} labelsize 11 } - MenuItem {} { + MenuItem {} {uid c13d label protected xywh {20 20 100 20} labelsize 11 } } - Fl_Box {} { + Fl_Box {} {uid b9bc xywh {363 49 42 20} resizable } } - Fl_Group {} { + Fl_Group {} {uid ff2e label {Output: } callback propagate_load open xywh {95 75 310 20} labelfont 1 labelsize 11 align 4 } { - Fl_Choice {} { + Fl_Choice {} {uid 6268 callback {if (!current_node || !current_node->is_a(Type::Data)) return; Data_Node* nd = (Data_Node*)current_node; @@ -2683,42 +2687,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 {} { + MenuItem {} {uid c19a label {binary: unsigned char[]} user_data 0 user_data_type long xywh {10 10 100 20} labelsize 11 } - MenuItem {} { + MenuItem {} {uid 7d3b label {text: const char*} user_data 1 user_data_type long xywh {10 10 100 20} labelsize 11 } - MenuItem {} { + MenuItem {} {uid cfe8 label {compressed: unsigned char[]} user_data 2 user_data_type long xywh {10 10 100 20} labelsize 11 } - MenuItem {} { + MenuItem {} {uid a638 label {binary: std::vector<uint8_t>} user_data 3 user_data_type long xywh {10 10 100 20} labelsize 11 } - MenuItem {} { + MenuItem {} {uid c0e7 label {text: std::string} user_data 4 user_data_type long xywh {10 10 100 20} labelsize 11 } - MenuItem {} { + MenuItem {} {uid 8d7a label {compressed: std::vector<uint8_t>} user_data 5 user_data_type long xywh {10 10 100 20} labelsize 11 } } - Fl_Box {} { + Fl_Box {} {uid 4a0a xywh {363 75 42 20} resizable } } - Fl_Input {} { + Fl_Input {} {uid f233 label {Name:} callback {if (!current_node || !current_node->is_a(Type::Data)) return; Data_Node* nd = (Data_Node*)current_node; @@ -2738,7 +2742,7 @@ if (v == LOAD) { }} 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 { + Fl_Input wp_data_filename {uid 1148 label {Filename:} callback {if (!current_node || !current_node->is_a(Type::Data)) return; Data_Node* nd = (Data_Node*)current_node; @@ -2758,7 +2762,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 {} { + Fl_Button {} {uid a0fe label {@fileopen} callback {if (v != LOAD) { Fluid.proj.enter_project_dir(); @@ -2775,7 +2779,7 @@ if (v == LOAD) { }} xywh {365 125 40 20} labelcolor 134 } - Fl_Text_Editor {} { + Fl_Text_Editor {} {uid 8a96 label {Comment:} callback {if (!current_node || !current_node->is_a(Type::Data)) return; Data_Node* nd = (Data_Node*)current_node; @@ -2801,17 +2805,17 @@ if (v == LOAD) { } } } - Fl_Tabs comment_tabs { + Fl_Tabs comment_tabs {uid 8c0e callback {if (current_node && current_node->is_a(Type::Comment)) propagate_load((Fl_Group *)o,v);} xywh {10 10 400 350} selection_color 12 labelsize 11 labelcolor 255 hide } { - Fl_Group comment_tabs_comment { + Fl_Group comment_tabs_comment {uid 1fc9 label Comment callback propagate_load open xywh {10 30 400 330} labelsize 11 resizable } { - Fl_Text_Editor comment_tabs_name { + Fl_Text_Editor comment_tabs_name {uid e7bf label {Comment:} callback {if (!current_node || !current_node->is_a(Type::Comment)) return; Comment_Node* nd = (Comment_Node*)current_node; @@ -2836,11 +2840,11 @@ if (v == LOAD) { code0 {o->when(FL_WHEN_ENTER_KEY_CHANGED|FL_WHEN_RELEASE);} code1 {o->buffer(new Fl_Text_Buffer());} } - Fl_Group {} { + Fl_Group {} {uid d881 callback propagate_load open xywh {95 285 310 65} } { - Fl_Menu_Button comment_predefined_2 { + Fl_Menu_Button comment_predefined_2 {uid 35da label Predefined callback {if (!current_node || !current_node->is_a(Type::Comment)) return; @@ -2921,7 +2925,7 @@ if (v == LOAD) { code0 {extern void load_comments_preset(Fl_Preferences &menu);} code1 {\#include <FL/fl_string_functions.h>} } {} - Fl_Button comment_load_2 { + Fl_Button comment_load_2 {uid 8b36 label {Import...} callback {// load a comment from disk if (v != LOAD) { @@ -2937,7 +2941,7 @@ if (v != LOAD) { }} xywh {190 285 90 20} labelsize 11 } - Fl_Check_Button {} { + Fl_Check_Button {} {uid b4f1 label {output to header file} callback {if (!current_node || !current_node->is_a(Type::Comment)) return; Comment_Node* nd = (Comment_Node*)current_node; @@ -2952,7 +2956,7 @@ if (v == LOAD) { }} tooltip {write the comment into the header (.h) file} xywh {95 310 120 20} down_box DOWN_BOX labelsize 11 when 1 } - Fl_Check_Button {} { + Fl_Check_Button {} {uid 4b86 label {output to source file} callback {if (!current_node || !current_node->is_a(Type::Comment)) return; Comment_Node* nd = (Comment_Node*)current_node; @@ -2967,30 +2971,30 @@ if (v == LOAD) { }} tooltip {write the comment into the source (.cxx) file} xywh {95 330 120 20} down_box DOWN_BOX labelsize 11 when 1 } - Fl_Box {} { + Fl_Box {} {uid 638c xywh {404 285 1 65} labelsize 11 resizable } } } } - Fl_Tabs class_tabs { + Fl_Tabs class_tabs {uid 81a5 callback {if (current_node && current_node->is_a(Type::Class)) propagate_load((Fl_Group *)o,v);} xywh {10 10 400 350} selection_color 12 labelsize 11 labelcolor 255 hide } { - Fl_Group class_tabs_main { + Fl_Group class_tabs_main {uid 95d2 label Class callback propagate_load open xywh {10 30 400 330} labelsize 11 resizable } { - Fl_Group {} { + Fl_Group {} {uid 1d47 label {Visibility:} callback propagate_load comment {This elemnt is hidden because we don't support a class inside a class at this point} open xywh {95 50 310 21} labelfont 1 labelsize 11 align 4 hide } { - Fl_Choice {} { + Fl_Choice {} {uid 5488 callback {if (!current_node || !current_node->is_a(Type::Class)) return; Class_Node* nd = (Class_Node*)current_node; @@ -3012,24 +3016,24 @@ if (v == LOAD) { }} open tooltip {visibility for a class inside a class} xywh {95 50 75 20} down_box BORDER_BOX labelsize 11 textsize 11 } { - MenuItem {} { + MenuItem {} {uid ccfa label private xywh {30 30 100 20} labelsize 11 } - MenuItem {} { + MenuItem {} {uid 314c label public xywh {30 30 100 20} labelsize 11 } - MenuItem {} { + MenuItem {} {uid 860c label protected xywh {30 30 100 20} labelsize 11 } } - Fl_Box {} { + Fl_Box {} {uid a977 xywh {363 50 42 20} resizable } } - Fl_Input {} { + Fl_Input {} {uid df8b label {Attribute:} callback {if (!current_node || !current_node->is_a(Type::Class)) return; Class_Node* nd = (Class_Node*)current_node; @@ -3046,7 +3050,7 @@ if (v == LOAD) { }} tooltip {class attribute or `alignas()`} xywh {95 50 305 20} labelfont 1 labelsize 11 textfont 4 textsize 11 } - Fl_Input {} { + Fl_Input {} {uid 2af0 label {Class Name:} callback {if (!current_node || !current_node->is_a(Type::Class)) return; Class_Node* nd = (Class_Node*)current_node; @@ -3090,7 +3094,7 @@ if (v == LOAD) { }} tooltip {class name, must be a single C++ keyword} xywh {95 75 305 20} labelfont 1 labelsize 11 textfont 4 textsize 11 } - Fl_Input {} { + Fl_Input {} {uid 31d1 label {Base Class:} callback {if (!current_node || !current_node->is_a(Type::Class)) return; Class_Node* nd = (Class_Node*)current_node; @@ -3107,7 +3111,7 @@ if (v == LOAD) { 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 {} { + Fl_Text_Editor {} {uid 9923 label {Comment:} callback {if (!current_node || !current_node->is_a(Type::Class)) return; Class_Node* nd = (Class_Node*)current_node; @@ -3133,17 +3137,17 @@ if (v == LOAD) { } } } - Fl_Tabs declblock_tabs { + Fl_Tabs declblock_tabs {uid fd14 callback {if (current_node && current_node->is_a(Type::DeclBlock)) propagate_load((Fl_Group *)o,v);} xywh {10 10 400 350} selection_color 12 labelsize 11 labelcolor 255 hide } { - Fl_Group declblock_tabs_main { + Fl_Group declblock_tabs_main {uid 6a28 label {Declaration Block} callback propagate_load open xywh {10 30 400 330} labelsize 11 resizable } { - Fl_Input {} { + Fl_Input {} {uid 7354 label {Start Code:} callback {if (!current_node || !current_node->is_a(Type::DeclBlock)) return; DeclBlock_Node* nd = (DeclBlock_Node*)current_node; @@ -3163,33 +3167,30 @@ if (v == LOAD) { }} tooltip {`\#ifdef` or similar conditional declaration block} xywh {95 50 305 20} labelfont 1 labelsize 11 textfont 4 textsize 11 } - Fl_Input {} { + Fl_Input {} {uid b795 label {End Code:} callback {if (!current_node || !current_node->is_a(Type::DeclBlock)) return; DeclBlock_Node* nd = (DeclBlock_Node*)current_node; - -if (v == LOAD) { - o->value( nd->end_code() ); + if (v == LOAD) { + o->value( nd->end_code().c_str() ); } else { - const char *nn = nd->end_code(); - if ( ( nn && (strcmp(nn, o->value()) != 0)) - || (!nn && (strcmp("", o->value()) != 0)) ) - { - nd->end_code( o->value() ); + std::string v = o->value(); + if (v != nd->end_code()) { + nd->end_code( v ); Fluid.proj.set_modflag(1); } }} tooltip {`\#endif` or similar declaration code block} xywh {95 75 305 20} labelfont 1 labelsize 11 textfont 4 textsize 11 } - Fl_Group {} { + Fl_Group {} {uid 9b63 callback propagate_load open xywh {95 100 305 120} } { - Fl_Box {} { + Fl_Box {} {uid 9765 label {Enclose code generated by children in source file:} xywh {95 100 270 20} labelsize 11 align 20 } - Fl_Check_Button {} { + Fl_Check_Button {} {uid 7b16 label implementations callback {if (!current_node || !current_node->is_a(Type::DeclBlock)) return; DeclBlock_Node* nd = (DeclBlock_Node*)current_node; @@ -3209,7 +3210,7 @@ if (v == LOAD) { }} xywh {105 120 260 20} down_box DOWN_BOX labelsize 11 } - Fl_Check_Button {} { + Fl_Check_Button {} {uid 02cf label {static initializations and callbacks} callback {if (!current_node || !current_node->is_a(Type::DeclBlock)) return; DeclBlock_Node* nd = (DeclBlock_Node*)current_node; @@ -3229,11 +3230,11 @@ if (v == LOAD) { }} xywh {105 140 260 20} down_box DOWN_BOX labelsize 11 } - Fl_Box {} { + Fl_Box {} {uid 9a40 label {Enclose code in header file:} xywh {95 160 270 20} labelsize 11 align 20 } - Fl_Check_Button {} { + Fl_Check_Button {} {uid 1686 label {forward declarations} callback {if (!current_node || !current_node->is_a(Type::DeclBlock)) return; DeclBlock_Node* nd = (DeclBlock_Node*)current_node; @@ -3253,7 +3254,7 @@ if (v == LOAD) { }} xywh {105 180 260 20} down_box DOWN_BOX labelsize 11 } - Fl_Check_Button {} { + Fl_Check_Button {} {uid e71b label {preprecessor and callback declarations} callback {if (!current_node || !current_node->is_a(Type::DeclBlock)) return; DeclBlock_Node* nd = (DeclBlock_Node*)current_node; @@ -3273,11 +3274,11 @@ if (v == LOAD) { }} xywh {105 200 260 20} down_box DOWN_BOX labelsize 11 } - Fl_Box {} { + Fl_Box {} {uid b33d xywh {365 100 35 120} labelsize 11 hide resizable } } - Fl_Text_Editor {} { + Fl_Text_Editor {} {uid 9e73 label {Comment:} callback {if (!current_node || !current_node->is_a(Type::DeclBlock)) return; DeclBlock_Node* nd = (DeclBlock_Node*)current_node; @@ -3303,28 +3304,28 @@ if (v == LOAD) { } } } - Fl_Tabs decl_tabs { + Fl_Tabs decl_tabs {uid b97f callback {if (current_node && current_node->is_a(Type::Decl)) propagate_load((Fl_Group *)o,v);} xywh {10 10 400 350} selection_color 12 labelsize 11 labelcolor 255 hide } { - Fl_Group decl_tabs_main { + Fl_Group decl_tabs_main {uid 43d3 label Declaration callback propagate_load open xywh {10 30 400 330} labelsize 11 resizable } { - Fl_Group {} { + Fl_Group {} {uid d45d callback propagate_load open xywh {15 50 390 20} labelfont 1 labelsize 11 align 4 } { - Fl_Box {} { + Fl_Box {} {uid 2fbb xywh {404 50 1 20} hide resizable } - Fl_Box {} { + Fl_Box {} {uid d059 label {Visibility:} xywh {95 50 1 20} labelfont 1 labelsize 11 align 4 } - Fl_Choice {} { + Fl_Choice {} {uid 871c callback {if (!current_node || !current_node->is_a(Type::Decl)) return; Decl_Node* nd = (Decl_Node*)current_node; @@ -3346,24 +3347,24 @@ if (v == LOAD) { }} xywh {95 50 185 20} down_box BORDER_BOX labelsize 11 textsize 11 } { - MenuItem {} { + MenuItem {} {uid 615b label {in source file only} xywh {10 10 100 20} labelsize 11 } - MenuItem {} { + MenuItem {} {uid da5d label {in header file only} xywh {10 10 100 20} labelsize 11 } - MenuItem {} { + MenuItem {} {uid 1e25 label {"static" in source file} xywh {10 10 100 20} labelsize 11 } - MenuItem {} { + MenuItem {} {uid 1c91 label {in source and "extern" in header} xywh {10 10 100 20} labelsize 11 } } - Fl_Choice {} { + Fl_Choice {} {uid 796e callback {if (!current_node || !current_node->is_a(Type::Decl)) return; Decl_Node* nd = (Decl_Node*)current_node; @@ -3385,31 +3386,31 @@ if (v == LOAD) { }} xywh {95 50 75 20} down_box BORDER_BOX labelsize 11 textsize 11 } { - MenuItem {} { + MenuItem {} {uid 52b1 label private xywh {20 20 100 20} labelsize 11 } - MenuItem {} { + MenuItem {} {uid 10d8 label public xywh {20 20 100 20} labelsize 11 } - MenuItem {} { + MenuItem {} {uid f561 label protected xywh {20 20 100 20} labelsize 11 } } } - Fl_Tile {} { + Fl_Tile {} {uid c476 callback {propagate_load(o, v);} open xywh {15 75 390 210} resizable code0 {o->size_range(0, 25, 55);} code1 {o->size_range(1, 25, 55);} } { - Fl_Group {} { + Fl_Group {} {uid 4db1 callback propagate_load open xywh {15 75 390 105} box FLAT_BOX labelfont 1 labelsize 11 align 4 } { - Fl_Text_Editor {} { + Fl_Text_Editor {} {uid b84e label {Declaration:} callback {if (!current_node || !current_node->is_a(Type::Decl)) return; Decl_Node* nd = (Decl_Node*)current_node; @@ -3438,11 +3439,11 @@ a `\#` directive: `\#include <foo.h>`, a typedef `typedef char byte;`, class {fld::widget::Code_Editor} } } - Fl_Group {} { + Fl_Group {} {uid 160e callback propagate_load open xywh {15 180 390 105} box FLAT_BOX } { - Fl_Text_Editor {} { + Fl_Text_Editor {} {uid 0067 label {Comment:} callback {if (!current_node || !current_node->is_a(Type::Decl)) return; Decl_Node* nd = (Decl_Node*)current_node; @@ -3470,17 +3471,17 @@ if (v == LOAD) { } } } - Fl_Tabs codeblock_tabs { + Fl_Tabs codeblock_tabs {uid 86d2 callback {if (current_node && current_node->is_a(Type::CodeBlock)) propagate_load((Fl_Group *)o,v);} xywh {10 10 400 350} selection_color 12 labelsize 11 labelcolor 255 hide } { - Fl_Group codeblock_tabs_main { + Fl_Group codeblock_tabs_main {uid 63d0 label {Code Block} callback propagate_load open xywh {10 30 400 330} labelsize 11 resizable } { - Fl_Input {} { + Fl_Input {} {uid 2539 label {Start Code:} callback {if (!current_node || !current_node->is_a(Type::CodeBlock)) return; CodeBlock_Node* nd = (CodeBlock_Node*)current_node; @@ -3500,7 +3501,7 @@ if (v == LOAD) { }} tooltip {condition statement: `if (x==1)`, or empty} xywh {95 50 305 20} labelfont 1 labelsize 11 textfont 4 textsize 11 } - Fl_Input {} { + Fl_Input {} {uid 0157 label {End Code:} callback {if (!current_node || !current_node->is_a(Type::CodeBlock)) return; CodeBlock_Node* nd = (CodeBlock_Node*)current_node; @@ -3518,7 +3519,7 @@ if (v == LOAD) { }} tooltip {condition end: `while (x==1);`, or empty} xywh {95 75 305 20} labelfont 1 labelsize 11 textfont 4 textsize 11 } - Fl_Text_Editor {} { + Fl_Text_Editor {} {uid 13f0 label {Comment:} callback {if (!current_node || !current_node->is_a(Type::CodeBlock)) return; CodeBlock_Node* nd = (CodeBlock_Node*)current_node; @@ -3544,17 +3545,17 @@ if (v == LOAD) { } } } - Fl_Tabs code_tabs { + Fl_Tabs code_tabs {uid f3cf callback {if (current_node && current_node->is_a(Type::Code)) propagate_load((Fl_Group *)o,v);} xywh {10 10 400 350} selection_color 12 labelsize 11 labelcolor 255 hide } { - Fl_Group code_tabs_main { + Fl_Group code_tabs_main {uid bd6c label Code callback propagate_load open xywh {10 30 400 330} labelsize 11 resizable } { - Fl_Text_Editor {} { + Fl_Text_Editor {} {uid ff87 callback {if (!current_node || !current_node->is_a(Type::Code)) return; Code_Node* nd = (Code_Node*)current_node; @@ -3587,28 +3588,28 @@ o->linenumber_size(o->Fl_Text_Display::textsize());} } } } - Fl_Tabs func_tabs { + Fl_Tabs func_tabs {uid 2983 callback {if (current_node && current_node->is_a(Type::Function)) propagate_load((Fl_Group *)o,v);} xywh {10 10 400 350} selection_color 12 labelsize 11 labelcolor 255 hide resizable } { - Fl_Group func_tabs_main { + Fl_Group func_tabs_main {uid 7e4b label Function callback propagate_load open xywh {10 30 400 330} labelsize 11 resizable } { - Fl_Group {} { + Fl_Group {} {uid a3f3 callback propagate_load open xywh {15 50 390 45} labelfont 1 labelsize 11 align 4 } { - Fl_Box {} { + Fl_Box {} {uid bc28 xywh {404 50 1 20} hide resizable } - Fl_Box {} { + Fl_Box {} {uid f554 label {Visibility:} xywh {95 50 1 20} labelfont 1 labelsize 11 align 4 } - Fl_Choice {} { + Fl_Choice {} {uid 8105 callback {if (!current_node || !current_node->is_a(Type::Function)) return; Function_Node* nd = (Function_Node*)current_node; @@ -3630,20 +3631,20 @@ if (v == LOAD) { }} open xywh {95 50 80 20} down_box BORDER_BOX labelsize 11 textsize 11 } { - MenuItem {} { + MenuItem {} {uid 8b88 label static xywh {10 10 100 20} labelsize 11 } - MenuItem {} { + MenuItem {} {uid a836 label global xywh {10 10 100 20} labelsize 11 } - MenuItem {} { + MenuItem {} {uid b20b label local xywh {10 10 100 20} labelsize 11 } } - Fl_Choice {} { + Fl_Choice {} {uid 2fa7 callback {if (!current_node || !current_node->is_a(Type::Function)) return; Function_Node* nd = (Function_Node*)current_node; @@ -3665,20 +3666,20 @@ if (v == LOAD) { }} open xywh {95 50 75 20} down_box BORDER_BOX labelsize 11 textsize 11 } { - MenuItem {} { + MenuItem {} {uid b4c7 label private xywh {20 20 100 20} labelsize 11 } - MenuItem {} { + MenuItem {} {uid adc5 label public xywh {20 20 100 20} labelsize 11 } - MenuItem {} { + MenuItem {} {uid 74f8 label protected xywh {20 20 100 20} labelsize 11 } } - Fl_Check_Button {} { + Fl_Check_Button {} {uid 4f85 label {declare "C"} callback {if (!current_node || !current_node->is_a(Type::Function)) return; Function_Node* nd = (Function_Node*)current_node; @@ -3694,18 +3695,18 @@ if (v == LOAD) { xywh {95 75 90 20} down_box DOWN_BOX labelsize 11 } } - Fl_Tile {} { + Fl_Tile {} {uid e641 callback {propagate_load(o, v);} open xywh {15 100 390 220} resizable code0 {o->size_range(0, 25, 50);} code1 {o->size_range(1, 25, 50);} code2 {o->size_range(2, 25, 50);} } { - Fl_Group {} { + Fl_Group {} {uid df63 callback propagate_load open xywh {15 100 390 55} box FLAT_BOX labelfont 1 labelsize 11 align 4 } { - Fl_Text_Editor {} { + Fl_Text_Editor {} {uid fb4f label {Function Name and Args:} @@ -3734,11 +3735,11 @@ if (v == LOAD) { class {fld::widget::Code_Editor} } } - Fl_Group {} { + Fl_Group {} {uid 3cb7 callback propagate_load open xywh {15 155 390 60} box FLAT_BOX labelfont 1 labelsize 11 align 4 } { - Fl_Text_Editor {} { + Fl_Text_Editor {} {uid 3fba label {Return Type:} callback {if (!current_node || !current_node->is_a(Type::Function)) return; Function_Node* nd = (Function_Node*)current_node; @@ -3763,11 +3764,11 @@ if (v == LOAD) { class {fld::widget::Code_Editor} } } - Fl_Group {} { + Fl_Group {} {uid 01de callback propagate_load open xywh {15 215 390 105} box FLAT_BOX } { - Fl_Text_Editor {} { + Fl_Text_Editor {} {uid b95f label {Comment:} callback {if (!current_node || !current_node->is_a(Type::Function)) return; Function_Node* nd = (Function_Node*)current_node; @@ -3796,32 +3797,32 @@ if (v == LOAD) { } } } - Fl_Tabs widget_tabs_repo {open + Fl_Tabs widget_tabs_repo {uid 3194 open xywh {10 10 400 350} hide code0 {o->hide();} } { - Fl_Group {} { + Fl_Group {} {uid f5ff xywh {10 30 400 330} resizable } {} } - Fl_Group {} { + Fl_Group {} {uid 7667 xywh {10 370 400 20} labelsize 11 } { - Fl_Button wLiveMode { + Fl_Button wLiveMode {uid 9a1d 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 { + Fl_Button overlay_button {uid f01f label {Hide &Overlays} callback overlay_cb tooltip {Hide the widget overlay box.} xywh {94 370 80 20} labelsize 10 } - Fl_Box {} { + Fl_Box {} {uid 85eb comment {Hidden resizable box} xywh {258 370 72 20} labelsize 11 hide resizable } - Fl_Return_Button {} { + Fl_Return_Button {} {uid 1ddc label Close callback ok_cb xywh {330 370 80 20} labelsize 11 diff --git a/fluid/proj/mergeback.cxx b/fluid/proj/mergeback.cxx index d9e5b0136..4ddb86f10 100644 --- a/fluid/proj/mergeback.cxx +++ b/fluid/proj/mergeback.cxx @@ -617,14 +617,24 @@ int Mergeback::merge_back(const std::string &s, const std::string &p, Task task) 0 if MergeBack is not enabled, or the result of the merge_back function. */ -int mergeback_code_files(Project &proj) +int mergeback_code_files(Project &proj, Mergeback::Feedback feedback) { + static bool recursion_lock = false; + if (recursion_lock) return; + recursion_lock = true; + Fluid.flush_text_widgets(); - if (!proj.proj_filename) return 1; + if (!proj.proj_filename) { + recursion_lock = false; + return 1; + } if (!proj.write_mergeback_data) { - fl_message("MergeBack is not enabled for this project.\n" - "Please enable MergeBack in the project settings\n" - "dialog and re-save the project file and the code."); + if (feedback & Mergeback::CHATTY) { + fl_message("MergeBack is not enabled for this project.\n" + "Please enable MergeBack in the project settings\n" + "dialog and re-save the project file and the code."); + } + recursion_lock = false; return 0; } @@ -633,7 +643,7 @@ int mergeback_code_files(Project &proj) #if 1 if (!Fluid.batch_mode) { // Depending on the workflow in interactive mode, an external copy of - // Fluid may have written the source code elswhere (e.g. in a CMake setup). + // Fluid may have written the source code elsewhere (e.g. in a CMake setup). // Fluid tries to keep track of the last write location of a source file // matching a project, and uses that location instead. // TODO: this is not working as expected yet. @@ -656,15 +666,32 @@ int mergeback_code_files(Project &proj) } if (!Fluid.batch_mode) proj.leave_project_dir(); - if (c==0) fl_message("Comparing\n \"%s\"\nto\n \"%s\"\n\n" - "MergeBack found no external modifications\n" - "in the source code.", - code_filename.c_str(), proj_filename.c_str()); - if (c==-2) fl_message("No corresponding source code file found."); + if (feedback & Mergeback::CHATTY) { + if (c==0) fl_message("Comparing\n \"%s\"\nto\n \"%s\"\n\n" + "MergeBack found no external modifications\n" + "in the source code.", + code_filename.c_str(), proj_filename.c_str()); + if (c==-2) fl_message("No corresponding source code file found."); + } + recursion_lock = false; return c; } void mergeback_cb(Fl_Widget *, void *) { - mergeback_code_files(Fluid.proj); + mergeback_code_files(Fluid.proj, Mergeback::CHATTY); +} + +void mergeback_on_load() { + mergeback_code_files(Fluid.proj, Mergeback::QUIET); +} + +static int app_event_handler(int event) { + if (event == FL_APP_ACTIVATE) { + mergeback_code_files(Fluid.proj, Mergeback::QUIET); + } + return 0; } +void start_auto_mergeback() { + Fl::add_handler(app_event_handler); +} diff --git a/fluid/proj/mergeback.h b/fluid/proj/mergeback.h index f395717f8..a515b1815 100644 --- a/fluid/proj/mergeback.h +++ b/fluid/proj/mergeback.h @@ -35,13 +35,14 @@ namespace proj { */ class Mergeback { - public: +public: enum class Tag { GENERIC = 0, CODE, MENU_CALLBACK, WIDGET_CALLBACK, UNUSED_ }; enum class Task { ANALYSE = 0, INTERACTIVE, APPLY, APPLY_IF_SAFE = 3 }; + enum Feedback { QUIET = 0, CHATTY = 1 }; protected: /// Apply mergeback for this project. Project &proj_; @@ -88,5 +89,8 @@ extern int merge_back(const std::string &s, const std::string &p, int task); } // namespace proj } // namespace fld +extern void start_auto_mergeback(); +extern void mergeback_on_load(); + #endif // FLUID_PROJ_MERGEBACK_H |
