diff options
Diffstat (limited to 'fluid/panels/widget_panel.cxx')
| -rw-r--r-- | fluid/panels/widget_panel.cxx | 54 |
1 files changed, 17 insertions, 37 deletions
diff --git a/fluid/panels/widget_panel.cxx b/fluid/panels/widget_panel.cxx index 679a52c6c..f964f7278 100644 --- a/fluid/panels/widget_panel.cxx +++ b/fluid/panels/widget_panel.cxx @@ -3295,19 +3295,11 @@ 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; - - if (v == LOAD) { - o->value( nd->end_code() ); - } else { - const char *nn = nd->end_code(); - if ( ( nn && (strcmp(nn, o->value()) != 0)) - || (!nn && (strcmp("", o->value()) != 0)) ) - { - nd->end_code( o->value() ); - Fluid.proj.set_modflag(1); - } - } -//fl ▲ ----------~=----=-~-=~-------------=~~--=--~=~=--~-~~- ▲ fl// + update_current(o, v, + [nd](){return nd->end_code();}, + [nd](std::string s){nd->end_code(s);} + ); +//fl ▲ ----------~=----=-~-=~----------~~~~-~-=~--=-=~~=---~~ ▲ fl// } static void cb_Comment4(Fl_Text_Editor* o, void* v) { @@ -3348,13 +3340,12 @@ 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; - - if (v == LOAD) { + if (v == LOAD) { the_panel->label("Code Editor"); const char *cmttext = nd->name(); o->buffer()->text( cmttext ? cmttext : "" ); - o->insert_position(nd->cursor_position_); - o->scroll(nd->code_input_scroll_row, nd->code_input_scroll_col); + o->insert_position(nd->cursor_position()); + o->scroll(nd->code_input_scroll_row(), nd->code_input_scroll_col()); } else { char *c = o->buffer()->text(); const char *nn = nd->name(); @@ -3365,12 +3356,12 @@ static void cb_1c(fld::widget::Code_Editor* o, void* v) { Fluid.proj.set_modflag(1); redraw_browser(); } - nd->cursor_position_ = o->insert_position(); - nd->code_input_scroll_row = o->scroll_row(); - nd->code_input_scroll_col = o->scroll_col(); + nd->save_editor_state(o->insert_position(), + o->scroll_row(), + o->scroll_col()); free(c); } -//fl ▲ ----------=~=~=~~=--=~----------~~=~~--==-=----=-~~=~~ ▲ fl// +//fl ▲ ----------=~=~=~~=--=~------------=-----~=~~-~-=-~~=~= ▲ fl// } Fl_Tabs *func_tabs=(Fl_Tabs *)0; @@ -3496,22 +3487,11 @@ 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; - - if (v == LOAD) { - const char *cmttext = nd->return_type(); - o->buffer()->text( cmttext ? cmttext : "" ); - } else { - char *c = o->buffer()->text(); - const char *nn = nd->return_type(); - if ( ( nn && (strcmp(nn, c) != 0)) - || (!nn && (strcmp("", c) != 0)) ) - { - nd->return_type(c); - Fluid.proj.set_modflag(1); - } - free(c); - } -//fl ▲ ----------~=~~=~~==~~------------~~=------=~-=~==~-~-- ▲ fl// + update_current(o, v, + [nd](){return nd->return_type();}, + [nd](std::string s){nd->return_type(s);} + ); +//fl ▲ ----------~=~~=~~==~~-----------~~=~=-~=~-~-~-=~-=~--~ ▲ fl// } static void cb_Comment5(Fl_Text_Editor* o, void* v) { |
