diff --git a/fluid/CMakeLists.txt b/fluid/CMakeLists.txt index 4e53bd4069bd8fad136d8a72a681224199c6bb1b..afde756aa03db058874b6f36e3d1cfb1e0e336ec 100644 --- a/fluid/CMakeLists.txt +++ b/fluid/CMakeLists.txt @@ -50,9 +50,12 @@ set(CPPFILES rsrcs/pixmaps.cxx tools/autodoc.cxx tools/fluid_filename.cxx - widgets/CodeEditor.cxx - widgets/custom_widgets.cxx - widgets/StyleParse.cxx + widgets/Code_Editor.cxx + widgets/Code_Viewer.cxx + widgets/Text_Viewer.cxx + widgets/Formula_Input.cxx + widgets/Bin_Button.cxx + widgets/Style_Parser.cxx widgets/widget_browser.cxx ) @@ -87,9 +90,12 @@ set(HEADERFILES rsrcs/pixmaps.h tools/autodoc.h tools/fluid_filename.h - widgets/CodeEditor.h - widgets/custom_widgets.h - widgets/StyleParse.h + widgets/Code_Editor.h + widgets/Code_Viewer.h + widgets/Text_Viewer.h + widgets/Formula_Input.h + widgets/Bin_Button.h + widgets/Style_Parser.h widgets/widget_browser.h ) diff --git a/fluid/nodes/Fl_Grid_Type.cxx b/fluid/nodes/Fl_Grid_Type.cxx index 2ae05a0cedd3a50d69374852bf6bfad5c84da5e3..ea22323051476a725a736dc6a7eb7f54dc367ce8 100644 --- a/fluid/nodes/Fl_Grid_Type.cxx +++ b/fluid/nodes/Fl_Grid_Type.cxx @@ -22,7 +22,7 @@ #include "io/file.h" #include "io/code.h" #include "widgets/widget_browser.h" -#include "widgets/custom_widgets.h" +#include "widgets/Formula_Input.h" #include <FL/Fl_Grid.H> #include <FL/Fl_Value_Input.H> @@ -777,11 +777,11 @@ void Fl_Grid_Type::layout_widget() { // TODO: ways to resize rows and columns, add and delete them in the project window, pulldown menu? // TODO: alignment can be FL_GRID_LEFT|FL_GRID_VERTICAL? -extern Fluid_Coord_Input *widget_grid_row_input, *widget_grid_col_input, +extern fld::widget::Formula_Input *widget_grid_row_input, *widget_grid_col_input, *widget_grid_rowspan_input, *widget_grid_colspan_input; extern Fl_Group *widget_tab_grid_child; -void grid_child_cb(Fluid_Coord_Input* i, void* v, int what) { +void grid_child_cb(fld::widget::Formula_Input* i, void* v, int what) { if ( !current_widget || !current_widget->parent || !current_widget->parent->is_a(ID_Grid)) @@ -850,7 +850,7 @@ void grid_child_cb(Fluid_Coord_Input* i, void* v, int what) { } } } -void grid_set_row_cb(Fluid_Coord_Input* i, void* v) { +void grid_set_row_cb(fld::widget::Formula_Input* i, void* v) { grid_child_cb(i, v, 8); if (v!=LOAD) widget_tab_grid_child->do_callback(widget_tab_grid_child, LOAD); } @@ -866,7 +866,7 @@ void grid_inc_row_cb(Fl_Button* i, void* v) { widget_tab_grid_child->do_callback(widget_tab_grid_child, LOAD); } } -void grid_set_col_cb(Fluid_Coord_Input* i, void* v) { +void grid_set_col_cb(fld::widget::Formula_Input* i, void* v) { grid_child_cb(i, v, 9); if (v!=LOAD) widget_tab_grid_child->do_callback(widget_tab_grid_child, LOAD); } @@ -882,7 +882,7 @@ void grid_inc_col_cb(Fl_Button* i, void* v) { widget_tab_grid_child->do_callback(widget_tab_grid_child, LOAD); } } -void grid_set_rowspan_cb(Fluid_Coord_Input* i, void* v) { +void grid_set_rowspan_cb(fld::widget::Formula_Input* i, void* v) { grid_child_cb(i, v, 10); if (v!=LOAD) widget_tab_grid_child->do_callback(widget_tab_grid_child, LOAD); } @@ -898,7 +898,7 @@ void grid_inc_rowspan_cb(Fl_Button* i, void* v) { widget_tab_grid_child->do_callback(widget_tab_grid_child, LOAD); } } -void grid_set_colspan_cb(Fluid_Coord_Input* i, void* v) { +void grid_set_colspan_cb(fld::widget::Formula_Input* i, void* v) { grid_child_cb(i, v, 11); if (v!=LOAD) widget_tab_grid_child->do_callback(widget_tab_grid_child, LOAD); } @@ -914,10 +914,10 @@ void grid_inc_colspan_cb(Fl_Button* i, void* v) { widget_tab_grid_child->do_callback(widget_tab_grid_child, LOAD); } } -void grid_set_min_wdt_cb(Fluid_Coord_Input* i, void* v) { +void grid_set_min_wdt_cb(fld::widget::Formula_Input* i, void* v) { grid_child_cb(i, v, 12); } -void grid_set_min_hgt_cb(Fluid_Coord_Input* i, void* v) { +void grid_set_min_hgt_cb(fld::widget::Formula_Input* i, void* v) { grid_child_cb(i, v, 13); } diff --git a/fluid/nodes/Fl_Menu_Type.cxx b/fluid/nodes/Fl_Menu_Type.cxx index 684d765f88929628bb735b4faaada3b29a15084c..2fb80fec2144b3cf269f7410cccffc3fd9467859 100644 --- a/fluid/nodes/Fl_Menu_Type.cxx +++ b/fluid/nodes/Fl_Menu_Type.cxx @@ -29,7 +29,7 @@ #include "io/file.h" #include "io/code.h" #include "nodes/Fl_Window_Type.h" -#include "widgets/custom_widgets.h" +#include "widgets/Formula_Input.h" #include "widgets/widget_browser.h" #include <FL/Fl.H> diff --git a/fluid/nodes/Fl_Widget_Type.cxx b/fluid/nodes/Fl_Widget_Type.cxx index 27e309cbe0943308077b208c9ec6e18d45951516..2ed31f0d864611fad9084ba8560a03ad31404473 100644 --- a/fluid/nodes/Fl_Widget_Type.cxx +++ b/fluid/nodes/Fl_Widget_Type.cxx @@ -627,92 +627,92 @@ void tooltip_cb(Fl_Input* i, void *v) { } } -Fluid_Coord_Input *x_input, *y_input, *w_input, *h_input; +fld::widget::Formula_Input *x_input, *y_input, *w_input, *h_input; static int widget_i = 0; -static int vars_i_cb(const Fluid_Coord_Input*, void *v) { +static int vars_i_cb(const fld::widget::Formula_Input*, void *v) { return widget_i; } -static int vars_x_cb(const Fluid_Coord_Input*, void *v) { +static int vars_x_cb(const fld::widget::Formula_Input*, void *v) { Fl_Type *t = (Fl_Type*)v; if (t->is_widget()) return ((Fl_Widget_Type*)t)->o->x(); return 0; } -static int vars_y_cb(const Fluid_Coord_Input*, void *v) { +static int vars_y_cb(const fld::widget::Formula_Input*, void *v) { Fl_Type *t = (Fl_Type*)v; if (t->is_widget()) return ((Fl_Widget_Type*)t)->o->y(); return 0; } -static int vars_w_cb(const Fluid_Coord_Input*, void *v) { +static int vars_w_cb(const fld::widget::Formula_Input*, void *v) { Fl_Type *t = (Fl_Type*)v; if (t->is_widget()) return ((Fl_Widget_Type*)t)->o->w(); return 0; } -static int vars_h_cb(const Fluid_Coord_Input*, void *v) { +static int vars_h_cb(const fld::widget::Formula_Input*, void *v) { Fl_Type *t = (Fl_Type*)v; if (t->is_widget()) return ((Fl_Widget_Type*)t)->o->h(); return 0; } -static int vars_px_cb(const Fluid_Coord_Input*, void *v) { +static int vars_px_cb(const fld::widget::Formula_Input*, void *v) { Fl_Type *t = ((Fl_Type*)v)->parent; if (t && t->is_widget()) return ((Fl_Widget_Type*)t)->o->x(); return 0; } -static int vars_py_cb(const Fluid_Coord_Input*, void *v) { +static int vars_py_cb(const fld::widget::Formula_Input*, void *v) { Fl_Type *t = ((Fl_Type*)v)->parent; if (t && t->is_widget()) return ((Fl_Widget_Type*)t)->o->y(); return 0; } -static int vars_pw_cb(const Fluid_Coord_Input*, void *v) { +static int vars_pw_cb(const fld::widget::Formula_Input*, void *v) { Fl_Type *t = ((Fl_Type*)v)->parent; if (t && t->is_widget()) return ((Fl_Widget_Type*)t)->o->w(); return 0; } -static int vars_ph_cb(const Fluid_Coord_Input*, void *v) { +static int vars_ph_cb(const fld::widget::Formula_Input*, void *v) { Fl_Type *t = ((Fl_Type*)v)->parent; if (t && t->is_widget()) return ((Fl_Widget_Type*)t)->o->h(); return 0; } -static int vars_sx_cb(const Fluid_Coord_Input*, void *v) { +static int vars_sx_cb(const fld::widget::Formula_Input*, void *v) { Fl_Type *t = ((Fl_Type*)v)->prev_sibling(); if (t && t->is_widget()) return ((Fl_Widget_Type*)t)->o->x(); return 0; } -static int vars_sy_cb(const Fluid_Coord_Input*, void *v) { +static int vars_sy_cb(const fld::widget::Formula_Input*, void *v) { Fl_Type *t = ((Fl_Type*)v)->prev_sibling(); if (t && t->is_widget()) return ((Fl_Widget_Type*)t)->o->y(); return 0; } -static int vars_sw_cb(const Fluid_Coord_Input*, void *v) { +static int vars_sw_cb(const fld::widget::Formula_Input*, void *v) { Fl_Type *t = ((Fl_Type*)v)->prev_sibling(); if (t && t->is_widget()) return ((Fl_Widget_Type*)t)->o->w(); return 0; } -static int vars_sh_cb(const Fluid_Coord_Input*, void *v) { +static int vars_sh_cb(const fld::widget::Formula_Input*, void *v) { Fl_Type *t = ((Fl_Type*)v)->prev_sibling(); if (t && t->is_widget()) return ((Fl_Widget_Type*)t)->o->h(); @@ -743,27 +743,27 @@ static void calculate_bbox(Fl_Type *p) { } } -static int vars_cx_cb(const Fluid_Coord_Input*, void *v) { +static int vars_cx_cb(const fld::widget::Formula_Input*, void *v) { calculate_bbox((Fl_Type*)v); return bbox_x; } -static int vars_cy_cb(const Fluid_Coord_Input*, void *v) { +static int vars_cy_cb(const fld::widget::Formula_Input*, void *v) { calculate_bbox((Fl_Type*)v); return bbox_y; } -static int vars_cw_cb(const Fluid_Coord_Input*, void *v) { +static int vars_cw_cb(const fld::widget::Formula_Input*, void *v) { calculate_bbox((Fl_Type*)v); return bbox_r - bbox_x; } -static int vars_ch_cb(const Fluid_Coord_Input*, void *v) { +static int vars_ch_cb(const fld::widget::Formula_Input*, void *v) { calculate_bbox((Fl_Type*)v); return bbox_b - bbox_y; } -Fluid_Coord_Input_Vars widget_vars[] = { +fld::widget::Formula_Input_Vars widget_vars[] = { { "i", vars_i_cb }, // zero based counter of selected widgets { "x", vars_x_cb }, // position and size of current widget { "y", vars_y_cb }, @@ -784,7 +784,7 @@ Fluid_Coord_Input_Vars widget_vars[] = { { 0 } }; -void x_cb(Fluid_Coord_Input *i, void *v) { +void x_cb(fld::widget::Formula_Input *i, void *v) { if (v == LOAD) { x_input = i; if (current_widget->is_true_widget()) { @@ -815,7 +815,7 @@ void x_cb(Fluid_Coord_Input *i, void *v) { } } -void y_cb(Fluid_Coord_Input *i, void *v) { +void y_cb(fld::widget::Formula_Input *i, void *v) { if (v == LOAD) { y_input = i; if (current_widget->is_true_widget()) { @@ -845,7 +845,7 @@ void y_cb(Fluid_Coord_Input *i, void *v) { } } -void w_cb(Fluid_Coord_Input *i, void *v) { +void w_cb(fld::widget::Formula_Input *i, void *v) { if (v == LOAD) { w_input = i; if (current_widget->is_true_widget()) { @@ -875,7 +875,7 @@ void w_cb(Fluid_Coord_Input *i, void *v) { } } -void h_cb(Fluid_Coord_Input *i, void *v) { +void h_cb(fld::widget::Formula_Input *i, void *v) { if (v == LOAD) { h_input = i; if (current_widget->is_true_widget()) { @@ -1739,7 +1739,7 @@ void align_text_image_cb(Fl_Choice *i, void *v) { //////////////////////////////////////////////////////////////// -void callback_cb(CodeEditor* i, void *v) { +void callback_cb(fld::widget::Code_Editor* i, void *v) { if (v == LOAD) { const char *cbtext = current_widget->callback(); i->buffer()->text( cbtext ? cbtext : "" ); diff --git a/fluid/panels/codeview_panel.cxx b/fluid/panels/codeview_panel.cxx index 33fb92ebdad4710c4d93a0f4c57184f885d10d25..6a877896d16adf7712d45721f00699fcaa23afae 100644 --- a/fluid/panels/codeview_panel.cxx +++ b/fluid/panels/codeview_panel.cxx @@ -265,13 +265,13 @@ Fl_Tabs *cv_tab=(Fl_Tabs *)0; Fl_Group *cv_source_tab=(Fl_Group *)0; -CodeViewer *cv_source=(CodeViewer *)0; +fld::widget::Code_Viewer *cv_source=(fld::widget::Code_Viewer *)0; -CodeViewer *cv_header=(CodeViewer *)0; +fld::widget::Code_Viewer *cv_header=(fld::widget::Code_Viewer *)0; -TextViewer *cv_strings=(TextViewer *)0; +fld::widget::Text_Viewer *cv_strings=(fld::widget::Text_Viewer *)0; -TextViewer *cv_project=(TextViewer *)0; +fld::widget::Text_Viewer *cv_project=(fld::widget::Text_Viewer *)0; Fl_Group *cv_find_row=(Fl_Group *)0; @@ -400,7 +400,7 @@ Fl_Double_Window* make_codeview() { cv_tab->callback((Fl_Callback*)update_codeview_position_cb); { cv_source_tab = new Fl_Group(10, 35, 500, 415, "Source"); cv_source_tab->labelsize(13); - { CodeViewer* o = cv_source = new CodeViewer(10, 40, 500, 410); + { fld::widget::Code_Viewer* o = cv_source = new fld::widget::Code_Viewer(10, 40, 500, 410); cv_source->box(FL_DOWN_FRAME); cv_source->color(FL_BACKGROUND2_COLOR); cv_source->selection_color(FL_SELECTION_COLOR); @@ -415,14 +415,14 @@ Fl_Double_Window* make_codeview() { Fl_Group::current()->resizable(cv_source); o->linenumber_width(60); o->linenumber_size(o->Fl_Text_Display::textsize()); - } // CodeViewer* cv_source + } // fld::widget::Code_Viewer* cv_source cv_source_tab->end(); Fl_Group::current()->resizable(cv_source_tab); } // Fl_Group* cv_source_tab { Fl_Group* o = new Fl_Group(10, 35, 500, 415, "Header"); o->labelsize(13); o->hide(); - { CodeViewer* o = cv_header = new CodeViewer(10, 40, 500, 410); + { fld::widget::Code_Viewer* o = cv_header = new fld::widget::Code_Viewer(10, 40, 500, 410); cv_header->box(FL_DOWN_FRAME); cv_header->color(FL_BACKGROUND2_COLOR); cv_header->selection_color(FL_SELECTION_COLOR); @@ -437,13 +437,13 @@ Fl_Double_Window* make_codeview() { Fl_Group::current()->resizable(cv_header); o->linenumber_width(60); o->linenumber_size(o->Fl_Text_Display::textsize()); - } // CodeViewer* cv_header + } // fld::widget::Code_Viewer* cv_header o->end(); } // Fl_Group* o { Fl_Group* o = new Fl_Group(10, 35, 500, 415, "Strings"); o->labelsize(13); o->hide(); - { TextViewer* o = cv_strings = new TextViewer(10, 40, 500, 410); + { fld::widget::Text_Viewer* o = cv_strings = new fld::widget::Text_Viewer(10, 40, 500, 410); cv_strings->box(FL_DOWN_FRAME); cv_strings->color(FL_BACKGROUND2_COLOR); cv_strings->selection_color(FL_SELECTION_COLOR); @@ -458,13 +458,13 @@ Fl_Double_Window* make_codeview() { Fl_Group::current()->resizable(cv_strings); o->linenumber_width(60); o->linenumber_size(o->Fl_Text_Display::textsize()); - } // TextViewer* cv_strings + } // fld::widget::Text_Viewer* cv_strings o->end(); } // Fl_Group* o { Fl_Group* o = new Fl_Group(10, 35, 500, 415, "Project"); o->labelsize(13); o->hide(); - { TextViewer* o = cv_project = new TextViewer(10, 40, 500, 410); + { fld::widget::Text_Viewer* o = cv_project = new fld::widget::Text_Viewer(10, 40, 500, 410); cv_project->box(FL_DOWN_FRAME); cv_project->color(FL_BACKGROUND2_COLOR); cv_project->selection_color(FL_SELECTION_COLOR); @@ -479,7 +479,7 @@ Fl_Double_Window* make_codeview() { Fl_Group::current()->resizable(cv_project); o->linenumber_width(60); o->linenumber_size(o->Fl_Text_Display::textsize()); - } // TextViewer* cv_project + } // fld::widget::Text_Viewer* cv_project o->end(); } // Fl_Group* o cv_tab->end(); diff --git a/fluid/panels/codeview_panel.fl b/fluid/panels/codeview_panel.fl index 54f0d790fd6120e9654d1fede1f5d2be05a60dff..e2ae3e88835860ebca30a5a67117c0fcf59e3ef9 100644 --- a/fluid/panels/codeview_panel.fl +++ b/fluid/panels/codeview_panel.fl @@ -296,10 +296,10 @@ Function {make_codeview()} {open } { Fl_Text_Editor cv_source { xywh {10 40 500 410} textfont 4 textsize 11 resizable - code0 {\#include "widgets/CodeEditor.h"} + code0 {\#include "widgets/Code_Viewer.h"} code1 {o->linenumber_width(60);} code2 {o->linenumber_size(o->Fl_Text_Display::textsize());} - class CodeViewer + class {fld::widget::Code_Viewer} } } Fl_Group {} { @@ -308,10 +308,10 @@ Function {make_codeview()} {open } { Fl_Text_Editor cv_header { xywh {10 40 500 410} textfont 4 textsize 11 resizable - code0 {\#include "widgets/CodeEditor.h"} + code0 {\#include "widgets/Code_Viewer.h"} code1 {o->linenumber_width(60);} code2 {o->linenumber_size(o->Fl_Text_Display::textsize());} - class CodeViewer + class {fld::widget::Code_Viewer} } } Fl_Group {} { @@ -320,9 +320,10 @@ Function {make_codeview()} {open } { Fl_Text_Display cv_strings { xywh {10 40 500 410} textfont 4 textsize 11 resizable + code0 {\#include "widgets/Text_Viewer.h"} code1 {o->linenumber_width(60);} code2 {o->linenumber_size(o->Fl_Text_Display::textsize());} - class TextViewer + class {fld::widget::Text_Viewer} } } Fl_Group {} { @@ -331,9 +332,10 @@ Function {make_codeview()} {open } { Fl_Text_Display cv_project { xywh {10 40 500 410} textfont 4 textsize 11 resizable + code0 {\#include "widgets/Text_Viewer.h"} code1 {o->linenumber_width(60);} code2 {o->linenumber_size(o->Fl_Text_Display::textsize());} - class TextViewer + class {fld::widget::Text_Viewer} } } } diff --git a/fluid/panels/codeview_panel.h b/fluid/panels/codeview_panel.h index 6dbbde1b4cedd4f446e95e712e465ba6496e28de..ba30336df1ac26834f10a73ab9a2565e4b94aac8 100644 --- a/fluid/panels/codeview_panel.h +++ b/fluid/panels/codeview_panel.h @@ -33,11 +33,12 @@ extern Fl_Double_Window *codeview_panel; extern Fl_Tabs *cv_tab; #include <FL/Fl_Group.H> extern Fl_Group *cv_source_tab; -#include "widgets/CodeEditor.h" -extern CodeViewer *cv_source; -extern CodeViewer *cv_header; -extern TextViewer *cv_strings; -extern TextViewer *cv_project; +#include "widgets/Code_Viewer.h" +extern fld::widget::Code_Viewer *cv_source; +extern fld::widget::Code_Viewer *cv_header; +#include "widgets/Text_Viewer.h" +extern fld::widget::Text_Viewer *cv_strings; +extern fld::widget::Text_Viewer *cv_project; extern Fl_Group *cv_find_row; #include <FL/Fl_Button.H> extern Fl_Button *cv_find_text_case; diff --git a/fluid/panels/function_panel.cxx b/fluid/panels/function_panel.cxx index 2f8f728174f68edb177a23dc6287c953f761d6ae..34f67b881a6dba2708d61cfdbe77d93c0ee0a675 100644 --- a/fluid/panels/function_panel.cxx +++ b/fluid/panels/function_panel.cxx @@ -22,7 +22,7 @@ #include "nodes/Fl_Type.h" #include "nodes/factory.h" #include "rsrcs/pixmaps.h" -#include "widgets/custom_widgets.h" +#include "widgets/Bin_Button.h" #include "widgets/widget_browser.h" /** @@ -152,7 +152,7 @@ static void cb_code_panel(Fl_Double_Window*, void*) { code_panel->hide(); // otherwise hide..; } -CodeEditor *code_input=(CodeEditor *)0; +fld::widget::Code_Editor *code_input=(fld::widget::Code_Editor *)0; Fl_Return_Button *code_panel_ok=(Fl_Return_Button *)0; @@ -162,7 +162,7 @@ Fl_Double_Window* make_code_panel() { { Fl_Double_Window* o = code_panel = new Fl_Double_Window(540, 180, "Code Properties"); code_panel->labelsize(11); code_panel->callback((Fl_Callback*)cb_code_panel); - { CodeEditor* o = code_input = new CodeEditor(10, 10, 520, 130); + { fld::widget::Code_Editor* o = code_input = new fld::widget::Code_Editor(10, 10, 520, 130); code_input->box(FL_DOWN_BOX); code_input->color(FL_BACKGROUND2_COLOR); code_input->selection_color(FL_SELECTION_COLOR); @@ -176,7 +176,7 @@ Fl_Double_Window* make_code_panel() { code_input->when(FL_WHEN_RELEASE); Fl_Group::current()->resizable(code_input); o->when(FL_WHEN_ENTER_KEY_CHANGED|FL_WHEN_RELEASE); - } // CodeEditor* code_input + } // fld::widget::Code_Editor* code_input { Fl_Group* o = new Fl_Group(10, 150, 520, 20); o->labelsize(11); { code_panel_ok = new Fl_Return_Button(400, 150, 60, 20, "OK"); @@ -385,7 +385,7 @@ Fl_Menu_Item menu_decl_class_choice[] = { {0,0,0,0,0,0,0,0,0} }; -CodeEditor *decl_input=(CodeEditor *)0; +fld::widget::Code_Editor *decl_input=(fld::widget::Code_Editor *)0; Fl_Text_Editor *decl_comment_input=(Fl_Text_Editor *)0; @@ -417,7 +417,7 @@ Fl_Double_Window* make_decl_panel() { { Fl_Tile* o = new Fl_Tile(10, 40, 320, 180); { Fl_Group* o = new Fl_Group(10, 40, 320, 100); o->box(FL_FLAT_BOX); - { decl_input = new CodeEditor(10, 40, 320, 45, "This can be any declaration, like \"int x;\", an external symbol like \"exter" + { decl_input = new fld::widget::Code_Editor(10, 40, 320, 45, "This can be any declaration, like \"int x;\", an external symbol like \"exter" "n int foo();\", a #directive like \"#include <foo.h>\", a comment like \"//foo" "\" or \"/*foo*/\", or typedef like \"typedef char byte;\" or \"using std::list" ";\"."); @@ -431,7 +431,7 @@ Fl_Double_Window* make_decl_panel() { decl_input->align(Fl_Align(134)); decl_input->when(FL_WHEN_RELEASE); Fl_Group::current()->resizable(decl_input); - } // CodeEditor* decl_input + } // fld::widget::Code_Editor* decl_input { Fl_Box* o = new Fl_Box(20, 139, 300, 1); o->box(FL_BORDER_FRAME); o->color((Fl_Color)43); @@ -816,7 +816,7 @@ Fl_Window* make_widgetbin() { o->callback((Fl_Callback*)type_make_cb, (void*)("CodeBlock")); o->image(pixmap[ID_CodeBlock]); } // Fl_Button* o - { Widget_Bin_Window_Button* o = new Widget_Bin_Window_Button(55, 46, 24, 24); + { fld::widget::Bin_Window_Button* o = new fld::widget::Bin_Window_Button(55, 46, 24, 24); o->tooltip("Widget Class"); o->box(FL_THIN_UP_BOX); o->color(FL_BACKGROUND_COLOR); @@ -829,7 +829,7 @@ Fl_Window* make_widgetbin() { o->align(Fl_Align(FL_ALIGN_CENTER)); o->when(FL_WHEN_RELEASE); o->image(pixmap[ID_Widget_Class]); - } // Widget_Bin_Window_Button* o + } // fld::widget::Bin_Window_Button* o { Fl_Button* o = new Fl_Button(5, 71, 24, 24); o->tooltip("Declaration"); o->box(FL_THIN_UP_BOX); @@ -852,7 +852,7 @@ Fl_Window* make_widgetbin() { } // Fl_Group* o { Fl_Group* o = new Fl_Group(87, 19, 79, 79, "Groups"); o->labelsize(12); - { Widget_Bin_Window_Button* o = new Widget_Bin_Window_Button(89, 21, 24, 24); + { fld::widget::Bin_Window_Button* o = new fld::widget::Bin_Window_Button(89, 21, 24, 24); o->tooltip("Window"); o->box(FL_THIN_UP_BOX); o->color(FL_BACKGROUND_COLOR); @@ -865,8 +865,8 @@ Fl_Window* make_widgetbin() { o->align(Fl_Align(FL_ALIGN_CENTER)); o->when(FL_WHEN_RELEASE); o->image(pixmap[ID_Window]); - } // Widget_Bin_Window_Button* o - { Widget_Bin_Button* o = new Widget_Bin_Button(114, 21, 24, 24); + } // fld::widget::Bin_Window_Button* o + { fld::widget::Bin_Button* o = new fld::widget::Bin_Button(114, 21, 24, 24); o->tooltip("Group"); o->box(FL_THIN_UP_BOX); o->color(FL_BACKGROUND_COLOR); @@ -879,8 +879,8 @@ Fl_Window* make_widgetbin() { o->align(Fl_Align(FL_ALIGN_CENTER)); o->when(FL_WHEN_RELEASE); o->image(pixmap[ID_Group]); - } // Widget_Bin_Button* o - { Widget_Bin_Button* o = new Widget_Bin_Button(139, 21, 24, 24); + } // fld::widget::Bin_Button* o + { fld::widget::Bin_Button* o = new fld::widget::Bin_Button(139, 21, 24, 24); o->tooltip("Pack"); o->box(FL_THIN_UP_BOX); o->color(FL_BACKGROUND_COLOR); @@ -893,8 +893,8 @@ Fl_Window* make_widgetbin() { o->align(Fl_Align(FL_ALIGN_CENTER)); o->when(FL_WHEN_RELEASE); o->image(pixmap[ID_Pack]); - } // Widget_Bin_Button* o - { Widget_Bin_Button* o = new Widget_Bin_Button(89, 46, 24, 24); + } // fld::widget::Bin_Button* o + { fld::widget::Bin_Button* o = new fld::widget::Bin_Button(89, 46, 24, 24); o->tooltip("Tabs"); o->box(FL_THIN_UP_BOX); o->color(FL_BACKGROUND_COLOR); @@ -907,8 +907,8 @@ Fl_Window* make_widgetbin() { o->align(Fl_Align(FL_ALIGN_CENTER)); o->when(FL_WHEN_RELEASE); o->image(pixmap[ID_Tabs]); - } // Widget_Bin_Button* o - { Widget_Bin_Button* o = new Widget_Bin_Button(114, 46, 24, 24); + } // fld::widget::Bin_Button* o + { fld::widget::Bin_Button* o = new fld::widget::Bin_Button(114, 46, 24, 24); o->tooltip("Scroll"); o->box(FL_THIN_UP_BOX); o->color(FL_BACKGROUND_COLOR); @@ -921,8 +921,8 @@ Fl_Window* make_widgetbin() { o->align(Fl_Align(FL_ALIGN_CENTER)); o->when(FL_WHEN_RELEASE); o->image(pixmap[ID_Scroll]); - } // Widget_Bin_Button* o - { Widget_Bin_Button* o = new Widget_Bin_Button(139, 46, 24, 24); + } // fld::widget::Bin_Button* o + { fld::widget::Bin_Button* o = new fld::widget::Bin_Button(139, 46, 24, 24); o->tooltip("Flex"); o->box(FL_THIN_UP_BOX); o->color(FL_BACKGROUND_COLOR); @@ -935,8 +935,8 @@ Fl_Window* make_widgetbin() { o->align(Fl_Align(FL_ALIGN_CENTER)); o->when(FL_WHEN_RELEASE); o->image(pixmap[ID_Flex]); - } // Widget_Bin_Button* o - { Widget_Bin_Button* o = new Widget_Bin_Button(89, 71, 24, 24); + } // fld::widget::Bin_Button* o + { fld::widget::Bin_Button* o = new fld::widget::Bin_Button(89, 71, 24, 24); o->tooltip("Tile"); o->box(FL_THIN_UP_BOX); o->color(FL_BACKGROUND_COLOR); @@ -949,8 +949,8 @@ Fl_Window* make_widgetbin() { o->align(Fl_Align(FL_ALIGN_CENTER)); o->when(FL_WHEN_RELEASE); o->image(pixmap[ID_Tile]); - } // Widget_Bin_Button* o - { Widget_Bin_Button* o = new Widget_Bin_Button(114, 71, 24, 24); + } // fld::widget::Bin_Button* o + { fld::widget::Bin_Button* o = new fld::widget::Bin_Button(114, 71, 24, 24); o->tooltip("Wizard"); o->box(FL_THIN_UP_BOX); o->color(FL_BACKGROUND_COLOR); @@ -963,8 +963,8 @@ Fl_Window* make_widgetbin() { o->align(Fl_Align(FL_ALIGN_CENTER)); o->when(FL_WHEN_RELEASE); o->image(pixmap[ID_Wizard]); - } // Widget_Bin_Button* o - { Widget_Bin_Button* o = new Widget_Bin_Button(139, 71, 24, 24); + } // fld::widget::Bin_Button* o + { fld::widget::Bin_Button* o = new fld::widget::Bin_Button(139, 71, 24, 24); o->tooltip("Grid"); o->box(FL_THIN_UP_BOX); o->color(FL_BACKGROUND_COLOR); @@ -977,12 +977,12 @@ Fl_Window* make_widgetbin() { o->align(Fl_Align(FL_ALIGN_CENTER)); o->when(FL_WHEN_RELEASE); o->image(pixmap[ID_Grid]); - } // Widget_Bin_Button* o + } // fld::widget::Bin_Button* o o->end(); } // Fl_Group* o { Fl_Group* o = new Fl_Group(171, 19, 54, 79, "Buttons"); o->labelsize(12); - { Widget_Bin_Button* o = new Widget_Bin_Button(173, 21, 24, 24); + { fld::widget::Bin_Button* o = new fld::widget::Bin_Button(173, 21, 24, 24); o->tooltip("Button"); o->box(FL_THIN_UP_BOX); o->color(FL_BACKGROUND_COLOR); @@ -995,8 +995,8 @@ Fl_Window* make_widgetbin() { o->align(Fl_Align(FL_ALIGN_CENTER)); o->when(FL_WHEN_RELEASE); o->image(pixmap[ID_Button]); - } // Widget_Bin_Button* o - { Widget_Bin_Button* o = new Widget_Bin_Button(198, 21, 24, 24); + } // fld::widget::Bin_Button* o + { fld::widget::Bin_Button* o = new fld::widget::Bin_Button(198, 21, 24, 24); o->tooltip("Return Button"); o->box(FL_THIN_UP_BOX); o->color(FL_BACKGROUND_COLOR); @@ -1009,8 +1009,8 @@ Fl_Window* make_widgetbin() { o->align(Fl_Align(FL_ALIGN_CENTER)); o->when(FL_WHEN_RELEASE); o->image(pixmap[ID_Return_Button]); - } // Widget_Bin_Button* o - { Widget_Bin_Button* o = new Widget_Bin_Button(173, 46, 24, 24); + } // fld::widget::Bin_Button* o + { fld::widget::Bin_Button* o = new fld::widget::Bin_Button(173, 46, 24, 24); o->tooltip("Light Button"); o->box(FL_THIN_UP_BOX); o->color(FL_BACKGROUND_COLOR); @@ -1023,8 +1023,8 @@ Fl_Window* make_widgetbin() { o->align(Fl_Align(FL_ALIGN_CENTER)); o->when(FL_WHEN_RELEASE); o->image(pixmap[ID_Light_Button]); - } // Widget_Bin_Button* o - { Widget_Bin_Button* o = new Widget_Bin_Button(198, 46, 24, 24); + } // fld::widget::Bin_Button* o + { fld::widget::Bin_Button* o = new fld::widget::Bin_Button(198, 46, 24, 24); o->tooltip("Repeat Button"); o->box(FL_THIN_UP_BOX); o->color(FL_BACKGROUND_COLOR); @@ -1037,8 +1037,8 @@ Fl_Window* make_widgetbin() { o->align(Fl_Align(FL_ALIGN_CENTER)); o->when(FL_WHEN_RELEASE); o->image(pixmap[ID_Repeat_Button]); - } // Widget_Bin_Button* o - { Widget_Bin_Button* o = new Widget_Bin_Button(173, 71, 24, 24); + } // fld::widget::Bin_Button* o + { fld::widget::Bin_Button* o = new fld::widget::Bin_Button(173, 71, 24, 24); o->tooltip("Check Button"); o->box(FL_THIN_UP_BOX); o->color(FL_BACKGROUND_COLOR); @@ -1051,8 +1051,8 @@ Fl_Window* make_widgetbin() { o->align(Fl_Align(FL_ALIGN_CENTER)); o->when(FL_WHEN_RELEASE); o->image(pixmap[ID_Check_Button]); - } // Widget_Bin_Button* o - { Widget_Bin_Button* o = new Widget_Bin_Button(198, 71, 24, 24); + } // fld::widget::Bin_Button* o + { fld::widget::Bin_Button* o = new fld::widget::Bin_Button(198, 71, 24, 24); o->tooltip("Round Button"); o->box(FL_THIN_UP_BOX); o->color(FL_BACKGROUND_COLOR); @@ -1065,12 +1065,12 @@ Fl_Window* make_widgetbin() { o->align(Fl_Align(FL_ALIGN_CENTER)); o->when(FL_WHEN_RELEASE); o->image(pixmap[ID_Round_Button]); - } // Widget_Bin_Button* o + } // fld::widget::Bin_Button* o o->end(); } // Fl_Group* o { Fl_Group* o = new Fl_Group(230, 19, 104, 79, "Valuators"); o->labelsize(12); - { Widget_Bin_Button* o = new Widget_Bin_Button(232, 21, 24, 24); + { fld::widget::Bin_Button* o = new fld::widget::Bin_Button(232, 21, 24, 24); o->tooltip("Slider"); o->box(FL_THIN_UP_BOX); o->color(FL_BACKGROUND_COLOR); @@ -1083,8 +1083,8 @@ Fl_Window* make_widgetbin() { o->align(Fl_Align(FL_ALIGN_CENTER)); o->when(FL_WHEN_RELEASE); o->image(pixmap[ID_Slider]); - } // Widget_Bin_Button* o - { Widget_Bin_Button* o = new Widget_Bin_Button(257, 21, 24, 24); + } // fld::widget::Bin_Button* o + { fld::widget::Bin_Button* o = new fld::widget::Bin_Button(257, 21, 24, 24); o->tooltip("Scroll Bar"); o->box(FL_THIN_UP_BOX); o->color(FL_BACKGROUND_COLOR); @@ -1097,8 +1097,8 @@ Fl_Window* make_widgetbin() { o->align(Fl_Align(FL_ALIGN_CENTER)); o->when(FL_WHEN_RELEASE); o->image(pixmap[ID_Scrollbar]); - } // Widget_Bin_Button* o - { Widget_Bin_Button* o = new Widget_Bin_Button(282, 21, 24, 24); + } // fld::widget::Bin_Button* o + { fld::widget::Bin_Button* o = new fld::widget::Bin_Button(282, 21, 24, 24); o->tooltip("Value Slider"); o->box(FL_THIN_UP_BOX); o->color(FL_BACKGROUND_COLOR); @@ -1111,8 +1111,8 @@ Fl_Window* make_widgetbin() { o->align(Fl_Align(FL_ALIGN_CENTER)); o->when(FL_WHEN_RELEASE); o->image(pixmap[ID_Value_Slider]); - } // Widget_Bin_Button* o - { Widget_Bin_Button* o = new Widget_Bin_Button(307, 21, 24, 24); + } // fld::widget::Bin_Button* o + { fld::widget::Bin_Button* o = new fld::widget::Bin_Button(307, 21, 24, 24); o->tooltip("Value Output"); o->box(FL_THIN_UP_BOX); o->color(FL_BACKGROUND_COLOR); @@ -1125,8 +1125,8 @@ Fl_Window* make_widgetbin() { o->align(Fl_Align(FL_ALIGN_CENTER)); o->when(FL_WHEN_RELEASE); o->image(pixmap[ID_Value_Output]); - } // Widget_Bin_Button* o - { Widget_Bin_Button* o = new Widget_Bin_Button(232, 46, 24, 24); + } // fld::widget::Bin_Button* o + { fld::widget::Bin_Button* o = new fld::widget::Bin_Button(232, 46, 24, 24); o->tooltip("Adjuster"); o->box(FL_THIN_UP_BOX); o->color(FL_BACKGROUND_COLOR); @@ -1139,8 +1139,8 @@ Fl_Window* make_widgetbin() { o->align(Fl_Align(FL_ALIGN_CENTER)); o->when(FL_WHEN_RELEASE); o->image(pixmap[ID_Adjuster]); - } // Widget_Bin_Button* o - { Widget_Bin_Button* o = new Widget_Bin_Button(257, 46, 24, 24); + } // fld::widget::Bin_Button* o + { fld::widget::Bin_Button* o = new fld::widget::Bin_Button(257, 46, 24, 24); o->tooltip("Counter"); o->box(FL_THIN_UP_BOX); o->color(FL_BACKGROUND_COLOR); @@ -1153,8 +1153,8 @@ Fl_Window* make_widgetbin() { o->align(Fl_Align(FL_ALIGN_CENTER)); o->when(FL_WHEN_RELEASE); o->image(pixmap[ID_Counter]); - } // Widget_Bin_Button* o - { Widget_Bin_Button* o = new Widget_Bin_Button(282, 46, 24, 24); + } // fld::widget::Bin_Button* o + { fld::widget::Bin_Button* o = new fld::widget::Bin_Button(282, 46, 24, 24); o->tooltip("Dial"); o->box(FL_THIN_UP_BOX); o->color(FL_BACKGROUND_COLOR); @@ -1167,8 +1167,8 @@ Fl_Window* make_widgetbin() { o->align(Fl_Align(FL_ALIGN_CENTER)); o->when(FL_WHEN_RELEASE); o->image(pixmap[ID_Dial]); - } // Widget_Bin_Button* o - { Widget_Bin_Button* o = new Widget_Bin_Button(232, 71, 24, 24); + } // fld::widget::Bin_Button* o + { fld::widget::Bin_Button* o = new fld::widget::Bin_Button(232, 71, 24, 24); o->tooltip("Roller"); o->box(FL_THIN_UP_BOX); o->color(FL_BACKGROUND_COLOR); @@ -1181,8 +1181,8 @@ Fl_Window* make_widgetbin() { o->align(Fl_Align(FL_ALIGN_CENTER)); o->when(FL_WHEN_RELEASE); o->image(pixmap[ID_Roller]); - } // Widget_Bin_Button* o - { Widget_Bin_Button* o = new Widget_Bin_Button(257, 71, 24, 24); + } // fld::widget::Bin_Button* o + { fld::widget::Bin_Button* o = new fld::widget::Bin_Button(257, 71, 24, 24); o->tooltip("Spinner"); o->box(FL_THIN_UP_BOX); o->color(FL_BACKGROUND_COLOR); @@ -1195,8 +1195,8 @@ Fl_Window* make_widgetbin() { o->align(Fl_Align(FL_ALIGN_CENTER)); o->when(FL_WHEN_RELEASE); o->image(pixmap[ID_Spinner]); - } // Widget_Bin_Button* o - { Widget_Bin_Button* o = new Widget_Bin_Button(282, 71, 24, 24); + } // fld::widget::Bin_Button* o + { fld::widget::Bin_Button* o = new fld::widget::Bin_Button(282, 71, 24, 24); o->tooltip("Value Input"); o->box(FL_THIN_UP_BOX); o->color(FL_BACKGROUND_COLOR); @@ -1209,12 +1209,12 @@ Fl_Window* make_widgetbin() { o->align(Fl_Align(FL_ALIGN_CENTER)); o->when(FL_WHEN_RELEASE); o->image(pixmap[ID_Value_Input]); - } // Widget_Bin_Button* o + } // fld::widget::Bin_Button* o o->end(); } // Fl_Group* o { Fl_Group* o = new Fl_Group(339, 19, 54, 79, "Text"); o->labelsize(12); - { Widget_Bin_Button* o = new Widget_Bin_Button(341, 21, 24, 24); + { fld::widget::Bin_Button* o = new fld::widget::Bin_Button(341, 21, 24, 24); o->tooltip("Input"); o->box(FL_THIN_UP_BOX); o->color(FL_BACKGROUND_COLOR); @@ -1227,8 +1227,8 @@ Fl_Window* make_widgetbin() { o->align(Fl_Align(FL_ALIGN_CENTER)); o->when(FL_WHEN_RELEASE); o->image(pixmap[ID_Input]); - } // Widget_Bin_Button* o - { Widget_Bin_Button* o = new Widget_Bin_Button(366, 21, 24, 24); + } // fld::widget::Bin_Button* o + { fld::widget::Bin_Button* o = new fld::widget::Bin_Button(366, 21, 24, 24); o->tooltip("Output"); o->box(FL_THIN_UP_BOX); o->color(FL_BACKGROUND_COLOR); @@ -1241,8 +1241,8 @@ Fl_Window* make_widgetbin() { o->align(Fl_Align(FL_ALIGN_CENTER)); o->when(FL_WHEN_RELEASE); o->image(pixmap[ID_Output]); - } // Widget_Bin_Button* o - { Widget_Bin_Button* o = new Widget_Bin_Button(341, 46, 24, 24); + } // fld::widget::Bin_Button* o + { fld::widget::Bin_Button* o = new fld::widget::Bin_Button(341, 46, 24, 24); o->tooltip("Text Edit"); o->box(FL_THIN_UP_BOX); o->color(FL_BACKGROUND_COLOR); @@ -1255,8 +1255,8 @@ Fl_Window* make_widgetbin() { o->align(Fl_Align(FL_ALIGN_CENTER)); o->when(FL_WHEN_RELEASE); o->image(pixmap[ID_Text_Editor]); - } // Widget_Bin_Button* o - { Widget_Bin_Button* o = new Widget_Bin_Button(366, 46, 24, 24); + } // fld::widget::Bin_Button* o + { fld::widget::Bin_Button* o = new fld::widget::Bin_Button(366, 46, 24, 24); o->tooltip("Text Display"); o->box(FL_THIN_UP_BOX); o->color(FL_BACKGROUND_COLOR); @@ -1269,8 +1269,8 @@ Fl_Window* make_widgetbin() { o->align(Fl_Align(FL_ALIGN_CENTER)); o->when(FL_WHEN_RELEASE); o->image(pixmap[ID_Text_Display]); - } // Widget_Bin_Button* o - { Widget_Bin_Button* o = new Widget_Bin_Button(341, 71, 24, 24); + } // fld::widget::Bin_Button* o + { fld::widget::Bin_Button* o = new fld::widget::Bin_Button(341, 71, 24, 24); o->tooltip("File Input"); o->box(FL_THIN_UP_BOX); o->color(FL_BACKGROUND_COLOR); @@ -1283,8 +1283,8 @@ Fl_Window* make_widgetbin() { o->align(Fl_Align(FL_ALIGN_CENTER)); o->when(FL_WHEN_RELEASE); o->image(pixmap[ID_File_Input]); - } // Widget_Bin_Button* o - { Widget_Bin_Button* o = new Widget_Bin_Button(366, 71, 24, 24); + } // fld::widget::Bin_Button* o + { fld::widget::Bin_Button* o = new fld::widget::Bin_Button(366, 71, 24, 24); o->tooltip("Terminal"); o->box(FL_THIN_UP_BOX); o->color(FL_BACKGROUND_COLOR); @@ -1297,12 +1297,12 @@ Fl_Window* make_widgetbin() { o->align(Fl_Align(FL_ALIGN_CENTER)); o->when(FL_WHEN_RELEASE); o->image(pixmap[ID_Terminal]); - } // Widget_Bin_Button* o + } // fld::widget::Bin_Button* o o->end(); } // Fl_Group* o { Fl_Group* o = new Fl_Group(398, 19, 79, 79, "Menus"); o->labelsize(12); - { Widget_Bin_Button* o = new Widget_Bin_Button(400, 22, 24, 24); + { fld::widget::Bin_Button* o = new fld::widget::Bin_Button(400, 22, 24, 24); o->tooltip("Input Choice"); o->box(FL_THIN_UP_BOX); o->color(FL_BACKGROUND_COLOR); @@ -1315,8 +1315,8 @@ Fl_Window* make_widgetbin() { o->align(Fl_Align(FL_ALIGN_CENTER)); o->when(FL_WHEN_RELEASE); o->image(pixmap[ID_Input_Choice]); - } // Widget_Bin_Button* o - { Widget_Bin_Button* o = new Widget_Bin_Button(425, 21, 24, 24); + } // fld::widget::Bin_Button* o + { fld::widget::Bin_Button* o = new fld::widget::Bin_Button(425, 21, 24, 24); o->tooltip("Menu Item"); o->box(FL_THIN_UP_BOX); o->color(FL_BACKGROUND_COLOR); @@ -1329,8 +1329,8 @@ Fl_Window* make_widgetbin() { o->align(Fl_Align(FL_ALIGN_CENTER)); o->when(FL_WHEN_RELEASE); o->image(pixmap[ID_Menu_Item]); - } // Widget_Bin_Button* o - { Widget_Bin_Button* o = new Widget_Bin_Button(450, 21, 24, 24); + } // fld::widget::Bin_Button* o + { fld::widget::Bin_Button* o = new fld::widget::Bin_Button(450, 21, 24, 24); o->tooltip("Menu Bar"); o->box(FL_THIN_UP_BOX); o->color(FL_BACKGROUND_COLOR); @@ -1343,8 +1343,8 @@ Fl_Window* make_widgetbin() { o->align(Fl_Align(FL_ALIGN_CENTER)); o->when(FL_WHEN_RELEASE); o->image(pixmap[ID_Menu_Bar]); - } // Widget_Bin_Button* o - { Widget_Bin_Button* o = new Widget_Bin_Button(400, 46, 24, 24); + } // fld::widget::Bin_Button* o + { fld::widget::Bin_Button* o = new fld::widget::Bin_Button(400, 46, 24, 24); o->tooltip("Menu Button"); o->box(FL_THIN_UP_BOX); o->color(FL_BACKGROUND_COLOR); @@ -1357,8 +1357,8 @@ Fl_Window* make_widgetbin() { o->align(Fl_Align(FL_ALIGN_CENTER)); o->when(FL_WHEN_RELEASE); o->image(pixmap[ID_Menu_Button]); - } // Widget_Bin_Button* o - { Widget_Bin_Button* o = new Widget_Bin_Button(425, 46, 24, 24); + } // fld::widget::Bin_Button* o + { fld::widget::Bin_Button* o = new fld::widget::Bin_Button(425, 46, 24, 24); o->tooltip("Checkbox Menu Item"); o->box(FL_THIN_UP_BOX); o->color(FL_BACKGROUND_COLOR); @@ -1371,8 +1371,8 @@ Fl_Window* make_widgetbin() { o->align(Fl_Align(FL_ALIGN_CENTER)); o->when(FL_WHEN_RELEASE); o->image(pixmap[ID_Checkbox_Menu_Item]); - } // Widget_Bin_Button* o - { Widget_Bin_Button* o = new Widget_Bin_Button(450, 46, 24, 24); + } // fld::widget::Bin_Button* o + { fld::widget::Bin_Button* o = new fld::widget::Bin_Button(450, 46, 24, 24); o->tooltip("Sub Menu"); o->box(FL_THIN_UP_BOX); o->color(FL_BACKGROUND_COLOR); @@ -1385,8 +1385,8 @@ Fl_Window* make_widgetbin() { o->align(Fl_Align(FL_ALIGN_CENTER)); o->when(FL_WHEN_RELEASE); o->image(pixmap[ID_Submenu]); - } // Widget_Bin_Button* o - { Widget_Bin_Button* o = new Widget_Bin_Button(400, 71, 24, 24); + } // fld::widget::Bin_Button* o + { fld::widget::Bin_Button* o = new fld::widget::Bin_Button(400, 71, 24, 24); o->tooltip("Choice"); o->box(FL_THIN_UP_BOX); o->color(FL_BACKGROUND_COLOR); @@ -1399,8 +1399,8 @@ Fl_Window* make_widgetbin() { o->align(Fl_Align(FL_ALIGN_CENTER)); o->when(FL_WHEN_RELEASE); o->image(pixmap[ID_Choice]); - } // Widget_Bin_Button* o - { Widget_Bin_Button* o = new Widget_Bin_Button(425, 71, 24, 24); + } // fld::widget::Bin_Button* o + { fld::widget::Bin_Button* o = new fld::widget::Bin_Button(425, 71, 24, 24); o->tooltip("Radio Menu Item"); o->box(FL_THIN_UP_BOX); o->color(FL_BACKGROUND_COLOR); @@ -1413,12 +1413,12 @@ Fl_Window* make_widgetbin() { o->align(Fl_Align(FL_ALIGN_CENTER)); o->when(FL_WHEN_RELEASE); o->image(pixmap[ID_Radio_Menu_Item]); - } // Widget_Bin_Button* o + } // fld::widget::Bin_Button* o o->end(); } // Fl_Group* o { Fl_Group* o = new Fl_Group(482, 19, 54, 79, "Browsers"); o->labelsize(12); - { Widget_Bin_Button* o = new Widget_Bin_Button(484, 21, 24, 24); + { fld::widget::Bin_Button* o = new fld::widget::Bin_Button(484, 21, 24, 24); o->tooltip("Browser"); o->box(FL_THIN_UP_BOX); o->color(FL_BACKGROUND_COLOR); @@ -1431,8 +1431,8 @@ Fl_Window* make_widgetbin() { o->align(Fl_Align(FL_ALIGN_CENTER)); o->when(FL_WHEN_RELEASE); o->image(pixmap[ID_Browser]); - } // Widget_Bin_Button* o - { Widget_Bin_Button* o = new Widget_Bin_Button(509, 21, 24, 24); + } // fld::widget::Bin_Button* o + { fld::widget::Bin_Button* o = new fld::widget::Bin_Button(509, 21, 24, 24); o->tooltip("Tree"); o->box(FL_THIN_UP_BOX); o->color(FL_BACKGROUND_COLOR); @@ -1445,8 +1445,8 @@ Fl_Window* make_widgetbin() { o->align(Fl_Align(FL_ALIGN_CENTER)); o->when(FL_WHEN_RELEASE); o->image(pixmap[ID_Tree]); - } // Widget_Bin_Button* o - { Widget_Bin_Button* o = new Widget_Bin_Button(484, 46, 24, 24); + } // fld::widget::Bin_Button* o + { fld::widget::Bin_Button* o = new fld::widget::Bin_Button(484, 46, 24, 24); o->tooltip("Check Browser"); o->box(FL_THIN_UP_BOX); o->color(FL_BACKGROUND_COLOR); @@ -1459,8 +1459,8 @@ Fl_Window* make_widgetbin() { o->align(Fl_Align(FL_ALIGN_CENTER)); o->when(FL_WHEN_RELEASE); o->image(pixmap[ID_Check_Browser]); - } // Widget_Bin_Button* o - { Widget_Bin_Button* o = new Widget_Bin_Button(509, 46, 24, 24); + } // fld::widget::Bin_Button* o + { fld::widget::Bin_Button* o = new fld::widget::Bin_Button(509, 46, 24, 24); o->tooltip("Help Browser"); o->box(FL_THIN_UP_BOX); o->color(FL_BACKGROUND_COLOR); @@ -1473,8 +1473,8 @@ Fl_Window* make_widgetbin() { o->align(Fl_Align(FL_ALIGN_CENTER)); o->when(FL_WHEN_RELEASE); o->image(pixmap[ID_Help_View]); - } // Widget_Bin_Button* o - { Widget_Bin_Button* o = new Widget_Bin_Button(484, 71, 24, 24); + } // fld::widget::Bin_Button* o + { fld::widget::Bin_Button* o = new fld::widget::Bin_Button(484, 71, 24, 24); o->tooltip("File Browser"); o->box(FL_THIN_UP_BOX); o->color(FL_BACKGROUND_COLOR); @@ -1487,8 +1487,8 @@ Fl_Window* make_widgetbin() { o->align(Fl_Align(FL_ALIGN_CENTER)); o->when(FL_WHEN_RELEASE); o->image(pixmap[ID_File_Browser]); - } // Widget_Bin_Button* o - { Widget_Bin_Button* o = new Widget_Bin_Button(509, 71, 24, 24); + } // fld::widget::Bin_Button* o + { fld::widget::Bin_Button* o = new fld::widget::Bin_Button(509, 71, 24, 24); o->tooltip("Table"); o->box(FL_THIN_UP_BOX); o->color(FL_BACKGROUND_COLOR); @@ -1501,12 +1501,12 @@ Fl_Window* make_widgetbin() { o->align(Fl_Align(FL_ALIGN_CENTER)); o->when(FL_WHEN_RELEASE); o->image(pixmap[ID_Table]); - } // Widget_Bin_Button* o + } // fld::widget::Bin_Button* o o->end(); } // Fl_Group* o { Fl_Group* o = new Fl_Group(540, 19, 55, 79, "Misc"); o->labelsize(12); - { Widget_Bin_Button* o = new Widget_Bin_Button(542, 21, 24, 24); + { fld::widget::Bin_Button* o = new fld::widget::Bin_Button(542, 21, 24, 24); o->tooltip("Box"); o->box(FL_THIN_UP_BOX); o->color(FL_BACKGROUND_COLOR); @@ -1519,8 +1519,8 @@ Fl_Window* make_widgetbin() { o->align(Fl_Align(FL_ALIGN_CENTER)); o->when(FL_WHEN_RELEASE); o->image(pixmap[ID_Box]); - } // Widget_Bin_Button* o - { Widget_Bin_Button* o = new Widget_Bin_Button(567, 21, 24, 24); + } // fld::widget::Bin_Button* o + { fld::widget::Bin_Button* o = new fld::widget::Bin_Button(567, 21, 24, 24); o->tooltip("Clock"); o->box(FL_THIN_UP_BOX); o->color(FL_BACKGROUND_COLOR); @@ -1533,8 +1533,8 @@ Fl_Window* make_widgetbin() { o->align(Fl_Align(FL_ALIGN_CENTER)); o->when(FL_WHEN_RELEASE); o->image(pixmap[ID_Clock]); - } // Widget_Bin_Button* o - { Widget_Bin_Button* o = new Widget_Bin_Button(542, 46, 24, 24); + } // fld::widget::Bin_Button* o + { fld::widget::Bin_Button* o = new fld::widget::Bin_Button(542, 46, 24, 24); o->tooltip("Progress"); o->box(FL_THIN_UP_BOX); o->color(FL_BACKGROUND_COLOR); @@ -1547,7 +1547,7 @@ Fl_Window* make_widgetbin() { o->align(Fl_Align(FL_ALIGN_CENTER)); o->when(FL_WHEN_RELEASE); o->image(pixmap[ID_Progress]); - } // Widget_Bin_Button* o + } // fld::widget::Bin_Button* o o->end(); } // Fl_Group* o widgetbin_panel->set_non_modal(); diff --git a/fluid/panels/function_panel.fl b/fluid/panels/function_panel.fl index 5ad6325fc38a661b03b9991f797adee8c24960f4..b63b4bf5099d7b9829d5906177aec22ec1a940d0 100644 --- a/fluid/panels/function_panel.fl +++ b/fluid/panels/function_panel.fl @@ -28,7 +28,7 @@ comment {// decl {\#include "app/fluid.h"} {private local } -decl {\#include "app/undo.h"} {selected private local +decl {\#include "app/undo.h"} {private local } decl {\#include "nodes/Fl_Type.h"} {private local @@ -40,7 +40,7 @@ decl {\#include "nodes/factory.h"} {private local decl {\#include "rsrcs/pixmaps.h"} {private local } -decl {\#include "widgets/custom_widgets.h"} {private global +decl {\#include "widgets/Bin_Button.h"} {private global } decl {\#include "widgets/widget_browser.h"} {private local @@ -152,8 +152,8 @@ code_panel->hide(); // otherwise hide..} Fl_Text_Editor code_input { xywh {10 10 520 130} box DOWN_BOX labelsize 11 textfont 4 textsize 11 resizable code0 {o->when(FL_WHEN_ENTER_KEY_CHANGED|FL_WHEN_RELEASE);} - code1 {\#include "widgets/CodeEditor.h"} - class CodeEditor + code1 {\#include "widgets/Code_Editor.h"} + class {fld::widget::Code_Editor} } Fl_Group {} {open xywh {10 150 520 20} labelsize 11 @@ -343,8 +343,8 @@ Function {make_decl_panel()} {open Fl_Text_Editor decl_input { label {This can be any declaration, like "int x;", an external symbol like "extern int foo();", a \#directive like "\#include <foo.h>", a comment like "//foo" or "/*foo*/", or typedef like "typedef char byte;" or "using std::list;".} xywh {10 40 320 45} labelsize 11 align 134 resizable - code0 {\#include "widgets/CodeEditor.h"} - class CodeEditor + code0 {\#include "widgets/Code_Editor.h"} + class {fld::widget::Code_Editor} } Fl_Box {} { xywh {20 139 300 1} box BORDER_FRAME color 43 @@ -643,7 +643,7 @@ else callback type_make_cb tooltip {Widget Class} xywh {55 46 24 24} box THIN_UP_BOX code0 {o->image(pixmap[ID_Widget_Class]);} - class Widget_Bin_Window_Button + class {fld::widget::Bin_Window_Button} } Fl_Button {} { user_data {"decl"} @@ -673,63 +673,63 @@ else callback type_make_cb tooltip Window xywh {89 21 24 24} box THIN_UP_BOX code0 {o->image(pixmap[ID_Window]);} - class Widget_Bin_Window_Button + class {fld::widget::Bin_Window_Button} } Fl_Button {} { user_data {"Fl_Group"} - callback type_make_cb + callback type_make_cb selected tooltip Group xywh {114 21 24 24} box THIN_UP_BOX code0 {o->image(pixmap[ID_Group]);} - class Widget_Bin_Button + class {fld::widget::Bin_Button} } Fl_Button {} { user_data {"Fl_Pack"} callback type_make_cb tooltip Pack xywh {139 21 24 24} box THIN_UP_BOX code0 {o->image(pixmap[ID_Pack]);} - class Widget_Bin_Button + class {fld::widget::Bin_Button} } Fl_Button {} { user_data {"Fl_Tabs"} callback type_make_cb tooltip Tabs xywh {89 46 24 24} box THIN_UP_BOX code0 {o->image(pixmap[ID_Tabs]);} - class Widget_Bin_Button + class {fld::widget::Bin_Button} } Fl_Button {} { user_data {"Fl_Scroll"} callback type_make_cb tooltip Scroll xywh {114 46 24 24} box THIN_UP_BOX code0 {o->image(pixmap[ID_Scroll]);} - class Widget_Bin_Button + class {fld::widget::Bin_Button} } Fl_Button {} { user_data {"Fl_Flex"} callback type_make_cb tooltip Flex xywh {139 46 24 24} box THIN_UP_BOX code0 {o->image(pixmap[ID_Flex]);} - class Widget_Bin_Button + class {fld::widget::Bin_Button} } Fl_Button {} { user_data {"Fl_Tile"} callback type_make_cb tooltip Tile xywh {89 71 24 24} box THIN_UP_BOX code0 {o->image(pixmap[ID_Tile]);} - class Widget_Bin_Button + class {fld::widget::Bin_Button} } Fl_Button {} { user_data {"Fl_Wizard"} callback type_make_cb tooltip Wizard xywh {114 71 24 24} box THIN_UP_BOX code0 {o->image(pixmap[ID_Wizard]);} - class Widget_Bin_Button + class {fld::widget::Bin_Button} } Fl_Button {} { user_data {"Fl_Grid"} callback type_make_cb tooltip Grid xywh {139 71 24 24} box THIN_UP_BOX code0 {o->image(pixmap[ID_Grid]);} - class Widget_Bin_Button + class {fld::widget::Bin_Button} } } Fl_Group {} { @@ -741,42 +741,42 @@ else callback type_make_cb tooltip Button xywh {173 21 24 24} box THIN_UP_BOX code0 {o->image(pixmap[ID_Button]);} - class Widget_Bin_Button + class {fld::widget::Bin_Button} } Fl_Button {} { user_data {"Fl_Return_Button"} callback type_make_cb tooltip {Return Button} xywh {198 21 24 24} box THIN_UP_BOX code0 {o->image(pixmap[ID_Return_Button]);} - class Widget_Bin_Button + class {fld::widget::Bin_Button} } Fl_Button {} { user_data {"Fl_Light_Button"} callback type_make_cb tooltip {Light Button} xywh {173 46 24 24} box THIN_UP_BOX code0 {o->image(pixmap[ID_Light_Button]);} - class Widget_Bin_Button + class {fld::widget::Bin_Button} } Fl_Button {} { user_data {"Fl_Repeat_Button"} callback type_make_cb tooltip {Repeat Button} xywh {198 46 24 24} box THIN_UP_BOX code0 {o->image(pixmap[ID_Repeat_Button]);} - class Widget_Bin_Button + class {fld::widget::Bin_Button} } Fl_Button {} { user_data {"Fl_Check_Button"} callback type_make_cb tooltip {Check Button} xywh {173 71 24 24} box THIN_UP_BOX code0 {o->image(pixmap[ID_Check_Button]);} - class Widget_Bin_Button + class {fld::widget::Bin_Button} } Fl_Button {} { user_data {"Fl_Round_Button"} callback type_make_cb tooltip {Round Button} xywh {198 71 24 24} box THIN_UP_BOX code0 {o->image(pixmap[ID_Round_Button]);} - class Widget_Bin_Button + class {fld::widget::Bin_Button} } } Fl_Group {} { @@ -788,70 +788,70 @@ else callback type_make_cb tooltip Slider xywh {232 21 24 24} box THIN_UP_BOX code0 {o->image(pixmap[ID_Slider]);} - class Widget_Bin_Button + class {fld::widget::Bin_Button} } Fl_Button {} { user_data {"Fl_Scrollbar"} callback type_make_cb tooltip {Scroll Bar} xywh {257 21 24 24} box THIN_UP_BOX code0 {o->image(pixmap[ID_Scrollbar]);} - class Widget_Bin_Button + class {fld::widget::Bin_Button} } Fl_Button {} { user_data {"Fl_Value_Slider"} callback type_make_cb tooltip {Value Slider} xywh {282 21 24 24} box THIN_UP_BOX code0 {o->image(pixmap[ID_Value_Slider]);} - class Widget_Bin_Button + class {fld::widget::Bin_Button} } Fl_Button {} { user_data {"Fl_Value_Output"} callback type_make_cb tooltip {Value Output} xywh {307 21 24 24} box THIN_UP_BOX code0 {o->image(pixmap[ID_Value_Output]);} - class Widget_Bin_Button + class {fld::widget::Bin_Button} } Fl_Button {} { user_data {"Fl_Adjuster"} callback type_make_cb tooltip Adjuster xywh {232 46 24 24} box THIN_UP_BOX code0 {o->image(pixmap[ID_Adjuster]);} - class Widget_Bin_Button + class {fld::widget::Bin_Button} } Fl_Button {} { user_data {"Fl_Counter"} callback type_make_cb tooltip Counter xywh {257 46 24 24} box THIN_UP_BOX code0 {o->image(pixmap[ID_Counter]);} - class Widget_Bin_Button + class {fld::widget::Bin_Button} } Fl_Button {} { user_data {"Fl_Dial"} callback type_make_cb tooltip Dial xywh {282 46 24 24} box THIN_UP_BOX code0 {o->image(pixmap[ID_Dial]);} - class Widget_Bin_Button + class {fld::widget::Bin_Button} } Fl_Button {} { user_data {"Fl_Roller"} callback type_make_cb tooltip Roller xywh {232 71 24 24} box THIN_UP_BOX code0 {o->image(pixmap[ID_Roller]);} - class Widget_Bin_Button + class {fld::widget::Bin_Button} } Fl_Button {} { user_data {"Fl_Spinner"} callback type_make_cb tooltip Spinner xywh {257 71 24 24} box THIN_UP_BOX code0 {o->image(pixmap[ID_Spinner]);} - class Widget_Bin_Button + class {fld::widget::Bin_Button} } Fl_Button {} { user_data {"Fl_Value_Input"} callback type_make_cb tooltip {Value Input} xywh {282 71 24 24} box THIN_UP_BOX code0 {o->image(pixmap[ID_Value_Input]);} - class Widget_Bin_Button + class {fld::widget::Bin_Button} } } Fl_Group {} { @@ -863,42 +863,42 @@ else callback type_make_cb tooltip Input xywh {341 21 24 24} box THIN_UP_BOX code0 {o->image(pixmap[ID_Input]);} - class Widget_Bin_Button + class {fld::widget::Bin_Button} } Fl_Button {} { user_data {"Fl_Output"} callback type_make_cb tooltip Output xywh {366 21 24 24} box THIN_UP_BOX code0 {o->image(pixmap[ID_Output]);} - class Widget_Bin_Button + class {fld::widget::Bin_Button} } Fl_Button {} { user_data {"Fl_Text_Editor"} callback type_make_cb tooltip {Text Edit} xywh {341 46 24 24} box THIN_UP_BOX code0 {o->image(pixmap[ID_Text_Editor]);} - class Widget_Bin_Button + class {fld::widget::Bin_Button} } Fl_Button {} { user_data {"Fl_Text_Display"} callback type_make_cb tooltip {Text Display} xywh {366 46 24 24} box THIN_UP_BOX code0 {o->image(pixmap[ID_Text_Display]);} - class Widget_Bin_Button + class {fld::widget::Bin_Button} } Fl_Button {} { user_data {"Fl_File_Input"} callback type_make_cb tooltip {File Input} xywh {341 71 24 24} box THIN_UP_BOX code0 {o->image(pixmap[ID_File_Input]);} - class Widget_Bin_Button + class {fld::widget::Bin_Button} } Fl_Button {} { user_data {"Fl_Terminal"} callback type_make_cb tooltip Terminal xywh {366 71 24 24} box THIN_UP_BOX code0 {o->image(pixmap[ID_Terminal]);} - class Widget_Bin_Button + class {fld::widget::Bin_Button} } } Fl_Group {} { @@ -910,56 +910,56 @@ else callback type_make_cb tooltip {Input Choice} xywh {400 22 24 24} box THIN_UP_BOX code0 {o->image(pixmap[ID_Input_Choice]);} - class Widget_Bin_Button + class {fld::widget::Bin_Button} } Fl_Button {} { user_data {"menuitem"} callback type_make_cb tooltip {Menu Item} xywh {425 21 24 24} box THIN_UP_BOX code0 {o->image(pixmap[ID_Menu_Item]);} - class Widget_Bin_Button + class {fld::widget::Bin_Button} } Fl_Button {} { user_data {"Fl_Menu_Bar"} callback type_make_cb tooltip {Menu Bar} xywh {450 21 24 24} box THIN_UP_BOX code0 {o->image(pixmap[ID_Menu_Bar]);} - class Widget_Bin_Button + class {fld::widget::Bin_Button} } Fl_Button {} { user_data {"Fl_Menu_Button"} callback type_make_cb tooltip {Menu Button} xywh {400 46 24 24} box THIN_UP_BOX code0 {o->image(pixmap[ID_Menu_Button]);} - class Widget_Bin_Button + class {fld::widget::Bin_Button} } Fl_Button {} { user_data {"checkmenuitem"} callback type_make_cb tooltip {Checkbox Menu Item} xywh {425 46 24 24} box THIN_UP_BOX code0 {o->image(pixmap[ID_Checkbox_Menu_Item]);} - class Widget_Bin_Button + class {fld::widget::Bin_Button} } Fl_Button {} { user_data {"submenu"} callback type_make_cb tooltip {Sub Menu} xywh {450 46 24 24} box THIN_UP_BOX code0 {o->image(pixmap[ID_Submenu]);} - class Widget_Bin_Button + class {fld::widget::Bin_Button} } Fl_Button {} { user_data {"Fl_Choice"} callback type_make_cb tooltip Choice xywh {400 71 24 24} box THIN_UP_BOX code0 {o->image(pixmap[ID_Choice]);} - class Widget_Bin_Button + class {fld::widget::Bin_Button} } Fl_Button {} { user_data {"radiomenuitem"} callback type_make_cb tooltip {Radio Menu Item} xywh {425 71 24 24} box THIN_UP_BOX code0 {o->image(pixmap[ID_Radio_Menu_Item]);} - class Widget_Bin_Button + class {fld::widget::Bin_Button} } } Fl_Group {} { @@ -971,42 +971,42 @@ else callback type_make_cb tooltip Browser xywh {484 21 24 24} box THIN_UP_BOX code0 {o->image(pixmap[ID_Browser]);} - class Widget_Bin_Button + class {fld::widget::Bin_Button} } Fl_Button {} { user_data {"Fl_Tree"} callback type_make_cb tooltip Tree xywh {509 21 24 24} box THIN_UP_BOX code0 {o->image(pixmap[ID_Tree]);} - class Widget_Bin_Button + class {fld::widget::Bin_Button} } Fl_Button {} { user_data {"Fl_Check_Browser"} callback type_make_cb tooltip {Check Browser} xywh {484 46 24 24} box THIN_UP_BOX code0 {o->image(pixmap[ID_Check_Browser]);} - class Widget_Bin_Button + class {fld::widget::Bin_Button} } Fl_Button {} { user_data {"Fl_Help_View"} callback type_make_cb tooltip {Help Browser} xywh {509 46 24 24} box THIN_UP_BOX code0 {o->image(pixmap[ID_Help_View]);} - class Widget_Bin_Button + class {fld::widget::Bin_Button} } Fl_Button {} { user_data {"Fl_File_Browser"} callback type_make_cb tooltip {File Browser} xywh {484 71 24 24} box THIN_UP_BOX code0 {o->image(pixmap[ID_File_Browser]);} - class Widget_Bin_Button + class {fld::widget::Bin_Button} } Fl_Button {} { user_data {"Fl_Table"} callback type_make_cb tooltip Table xywh {509 71 24 24} box THIN_UP_BOX code0 {o->image(pixmap[ID_Table]);} - class Widget_Bin_Button + class {fld::widget::Bin_Button} } } Fl_Group {} { @@ -1018,21 +1018,21 @@ else callback type_make_cb tooltip Box xywh {542 21 24 24} box THIN_UP_BOX code0 {o->image(pixmap[ID_Box]);} - class Widget_Bin_Button + class {fld::widget::Bin_Button} } Fl_Button {} { user_data {"Fl_Clock"} callback type_make_cb tooltip Clock xywh {567 21 24 24} box THIN_UP_BOX code0 {o->image(pixmap[ID_Clock]);} - class Widget_Bin_Button + class {fld::widget::Bin_Button} } Fl_Button {} { user_data {"Fl_Progress"} callback type_make_cb tooltip Progress xywh {542 46 24 24} box THIN_UP_BOX code0 {o->image(pixmap[ID_Progress]);} - class Widget_Bin_Button + class {fld::widget::Bin_Button} } } } diff --git a/fluid/panels/function_panel.h b/fluid/panels/function_panel.h index 9dffa5c0495e0941bf5807c20a9cc002047735ba..b7c9f749dcbf67b1bad736e246f93f5550318465 100644 --- a/fluid/panels/function_panel.h +++ b/fluid/panels/function_panel.h @@ -41,8 +41,8 @@ Fl_Double_Window* make_function_panel(); extern Fl_Menu_Item menu_f_public_member_choice[]; extern Fl_Menu_Item menu_f_public_choice[]; extern Fl_Double_Window *code_panel; -#include "widgets/CodeEditor.h" -extern CodeEditor *code_input; +#include "widgets/Code_Editor.h" +extern fld::widget::Code_Editor *code_input; extern Fl_Return_Button *code_panel_ok; extern Fl_Button *code_panel_cancel; Fl_Double_Window* make_code_panel(); @@ -68,7 +68,7 @@ extern Fl_Double_Window *decl_panel; extern Fl_Choice *decl_choice; extern Fl_Choice *decl_class_choice; #include <FL/Fl_Tile.H> -extern CodeEditor *decl_input; +extern fld::widget::Code_Editor *decl_input; extern Fl_Text_Editor *decl_comment_input; extern Fl_Return_Button *decl_panel_ok; extern Fl_Button *decl_panel_cancel; diff --git a/fluid/panels/template_panel.cxx b/fluid/panels/template_panel.cxx index ec4a5e29a2abc3f8c66f1d00feb8b0bf523e8eeb..c93500d7218e8fca496096da56001f9ca2ed4fa7 100644 --- a/fluid/panels/template_panel.cxx +++ b/fluid/panels/template_panel.cxx @@ -219,25 +219,25 @@ void template_delete_cb(Fl_Button *, void *) { static int tmpl_FLTK_License_fl_size = 614; static unsigned char tmpl_FLTK_License_fl[397] = /* data compressed and inlined from ../templates/FLTK_License.fl */ -{120,156,133,82,77,79,27,49,16,189,239,175,120,162,23,144,202,110,130,56,20, -78,208,80,170,8,148,34,17,14,61,33,239,122,118,61,194,177,87,246,44,75,26,229, -191,215,94,18,245,88,159,236,241,251,154,177,191,64,43,81,104,217,18,90,31,32, -134,112,111,229,13,47,145,2,150,78,40,180,170,33,220,81,228,206,165,210,105,107, -7,214,103,197,59,133,200,222,97,94,206,46,103,243,194,144,210,20,94,157,218, -16,118,165,217,23,141,215,116,60,54,31,31,185,176,217,144,19,236,170,170,168, -42,220,44,87,207,235,219,213,226,199,205,63,95,21,5,143,220,25,193,218,123,139, -7,22,156,222,63,174,31,206,202,226,147,180,240,253,54,76,128,249,213,213,183, -243,139,217,197,37,234,45,190,179,181,120,238,89,254,168,55,40,167,225,147,92, -136,71,214,218,112,132,229,58,168,176,69,218,182,129,8,209,183,50,170,64,37,238, -56,74,224,122,144,220,78,102,15,145,48,185,68,36,0,252,32,150,29,105,176,203, -106,57,233,52,174,147,197,175,167,223,203,213,207,19,140,134,27,131,104,252,96, -53,140,122,39,212,68,46,225,27,59,232,68,28,89,76,226,101,235,68,44,129,101,59, -29,179,220,36,149,110,54,28,35,187,14,105,22,90,109,84,71,250,43,98,202,153, -237,44,55,228,82,40,37,215,135,150,242,50,34,125,188,174,170,113,28,203,54,61, -89,233,67,87,29,50,149,189,233,15,208,39,75,42,113,143,90,173,183,214,143,217, -169,79,38,72,45,27,63,66,60,2,245,62,8,234,161,139,211,20,82,158,129,226,127,13, -51,254,232,182,199,142,221,107,244,67,72,63,38,237,62,63,69,177,47,254,2,228, -190,201,192}; +{120,156,133,82,77,79,27,49,16,189,239,175,120,130,11,72,237,110,130,90,169, +112,130,134,82,69,160,20,137,244,208,19,242,174,103,215,35,28,123,101,123,89, +210,40,255,157,241,146,168,199,250,100,143,223,215,140,125,10,173,146,66,203, +150,208,250,128,100,8,119,54,189,224,119,164,128,165,75,20,90,213,16,110,41,114, +231,164,116,214,218,129,245,121,241,74,33,178,119,152,151,179,47,179,121,97,72, +105,10,207,78,109,8,187,210,236,139,198,107,58,30,155,183,183,92,216,108,200,37, +236,170,170,168,42,92,47,87,79,235,155,213,226,199,245,63,95,21,19,30,184,51,9, +107,239,45,238,57,225,236,238,97,125,127,94,22,31,164,133,239,183,97,2,204,47, +47,191,125,190,152,93,124,69,189,197,119,182,22,79,61,167,191,234,5,202,105, +120,145,11,241,200,90,27,142,176,92,7,21,182,144,109,27,136,16,125,155,70,21, +168,196,45,199,20,184,30,82,110,39,179,135,72,152,92,34,4,0,63,36,203,142,52, +216,101,181,156,116,26,215,201,226,215,227,159,229,234,231,9,70,195,141,65,52, +126,176,26,70,189,18,106,34,39,248,198,14,90,136,35,39,35,188,108,45,196,18,88, +182,211,49,203,77,82,114,179,225,24,217,117,144,89,104,181,81,29,233,79,136,146, +51,219,89,110,200,73,40,149,174,14,45,229,101,82,234,227,85,85,141,227,88,182, +242,100,165,15,93,117,200,84,246,166,63,64,31,45,41,225,30,181,90,111,173,31, +179,83,47,38,144,150,141,31,145,60,2,245,62,36,212,67,23,167,41,72,158,129,226, +127,13,51,254,232,182,199,142,221,115,244,67,144,31,35,187,143,79,81,236,139, +119,230,100,201,193}; static int tmpl_1of7GUIs_fl_size = 763; static unsigned char tmpl_1of7GUIs_fl[486] = /* data compressed and inlined from ../templates/1of7GUIs.fl */ diff --git a/fluid/panels/widget_panel.cxx b/fluid/panels/widget_panel.cxx index cd377985171b6f202d2d3dbc52a6d504cd9642e1..df903d4a24e7382fc1061accf1a9b66ab4282cc6 100644 --- a/fluid/panels/widget_panel.cxx +++ b/fluid/panels/widget_panel.cxx @@ -52,9 +52,9 @@ static void cb_image_panel_data(Fl_Box* o, void* v) { } } -Fluid_Coord_Input *image_panel_imagew=(Fluid_Coord_Input *)0; +fld::widget::Formula_Input *image_panel_imagew=(fld::widget::Formula_Input *)0; -static void cb_image_panel_imagew(Fluid_Coord_Input* o, void* v) { +static void cb_image_panel_imagew(fld::widget::Formula_Input* o, void* v) { if (v == LOAD) { if (current_widget->is_widget() && !current_widget->is_a(ID_Window)) { o->value(current_widget->scale_image_w_); @@ -82,9 +82,9 @@ static void cb_image_panel_imagew(Fluid_Coord_Input* o, void* v) { } } -Fluid_Coord_Input *image_panel_imageh=(Fluid_Coord_Input *)0; +fld::widget::Formula_Input *image_panel_imageh=(fld::widget::Formula_Input *)0; -static void cb_image_panel_imageh(Fluid_Coord_Input* o, void* v) { +static void cb_image_panel_imageh(fld::widget::Formula_Input* o, void* v) { if (v == LOAD) { if (current_widget->is_widget() && !current_widget->is_a(ID_Window)) { o->value(current_widget->scale_image_h_); @@ -144,9 +144,9 @@ static void cb_image_panel_dedata(Fl_Box* o, void* v) { } } -Fluid_Coord_Input *image_panel_deimagew=(Fluid_Coord_Input *)0; +fld::widget::Formula_Input *image_panel_deimagew=(fld::widget::Formula_Input *)0; -static void cb_image_panel_deimagew(Fluid_Coord_Input* o, void* v) { +static void cb_image_panel_deimagew(fld::widget::Formula_Input* o, void* v) { if (v == LOAD) { if (current_widget->is_widget() && !current_widget->is_a(ID_Window)) { o->value(current_widget->scale_deimage_w_); @@ -174,9 +174,9 @@ static void cb_image_panel_deimagew(Fluid_Coord_Input* o, void* v) { } } -Fluid_Coord_Input *image_panel_deimageh=(Fluid_Coord_Input *)0; +fld::widget::Formula_Input *image_panel_deimageh=(fld::widget::Formula_Input *)0; -static void cb_image_panel_deimageh(Fluid_Coord_Input* o, void* v) { +static void cb_image_panel_deimageh(fld::widget::Formula_Input* o, void* v) { if (v == LOAD) { if (current_widget->is_widget() && !current_widget->is_a(ID_Window)) { o->value(current_widget->scale_deimage_h_); @@ -240,7 +240,7 @@ Fl_Double_Window* make_image_panel() { } // Fl_Box* image_panel_data { Fl_Group* o = new Fl_Group(75, 75, 170, 20); o->callback((Fl_Callback*)propagate_load); - { image_panel_imagew = new Fluid_Coord_Input(75, 75, 55, 20, "Width:"); + { image_panel_imagew = new fld::widget::Formula_Input(75, 75, 55, 20, "Width:"); image_panel_imagew->tooltip("Scale image to this width in pixel units"); image_panel_imagew->box(FL_DOWN_BOX); image_panel_imagew->color(FL_BACKGROUND2_COLOR); @@ -253,8 +253,8 @@ Fl_Double_Window* make_image_panel() { image_panel_imagew->callback((Fl_Callback*)cb_image_panel_imagew); image_panel_imagew->align(Fl_Align(FL_ALIGN_TOP_LEFT)); image_panel_imagew->when(FL_WHEN_RELEASE); - } // Fluid_Coord_Input* image_panel_imagew - { image_panel_imageh = new Fluid_Coord_Input(135, 75, 55, 20, "Height:"); + } // fld::widget::Formula_Input* image_panel_imagew + { image_panel_imageh = new fld::widget::Formula_Input(135, 75, 55, 20, "Height:"); image_panel_imageh->tooltip("Scale image to this height in pixel units"); image_panel_imageh->box(FL_DOWN_BOX); image_panel_imageh->color(FL_BACKGROUND2_COLOR); @@ -267,7 +267,7 @@ Fl_Double_Window* make_image_panel() { image_panel_imageh->callback((Fl_Callback*)cb_image_panel_imageh); image_panel_imageh->align(Fl_Align(FL_ALIGN_TOP_LEFT)); image_panel_imageh->when(FL_WHEN_RELEASE); - } // Fluid_Coord_Input* image_panel_imageh + } // fld::widget::Formula_Input* image_panel_imageh { Fl_Button* o = new Fl_Button(195, 75, 50, 20, "Reset"); o->tooltip("Reset scale to original size"); o->labelsize(11); @@ -316,7 +316,7 @@ Fl_Double_Window* make_image_panel() { } // Fl_Box* image_panel_dedata { Fl_Group* o = new Fl_Group(75, 215, 170, 20); o->callback((Fl_Callback*)propagate_load); - { image_panel_deimagew = new Fluid_Coord_Input(75, 215, 55, 20, "Width:"); + { image_panel_deimagew = new fld::widget::Formula_Input(75, 215, 55, 20, "Width:"); image_panel_deimagew->tooltip("Scale image to this width in pixel units"); image_panel_deimagew->box(FL_DOWN_BOX); image_panel_deimagew->color(FL_BACKGROUND2_COLOR); @@ -329,8 +329,8 @@ Fl_Double_Window* make_image_panel() { image_panel_deimagew->callback((Fl_Callback*)cb_image_panel_deimagew); image_panel_deimagew->align(Fl_Align(FL_ALIGN_TOP_LEFT)); image_panel_deimagew->when(FL_WHEN_RELEASE); - } // Fluid_Coord_Input* image_panel_deimagew - { image_panel_deimageh = new Fluid_Coord_Input(135, 215, 55, 20, "Height:"); + } // fld::widget::Formula_Input* image_panel_deimagew + { image_panel_deimageh = new fld::widget::Formula_Input(135, 215, 55, 20, "Height:"); image_panel_deimageh->tooltip("Scale image to this height in pixel units"); image_panel_deimageh->box(FL_DOWN_BOX); image_panel_deimageh->color(FL_BACKGROUND2_COLOR); @@ -343,7 +343,7 @@ Fl_Double_Window* make_image_panel() { image_panel_deimageh->callback((Fl_Callback*)cb_image_panel_deimageh); image_panel_deimageh->align(Fl_Align(FL_ALIGN_TOP_LEFT)); image_panel_deimageh->when(FL_WHEN_RELEASE); - } // Fluid_Coord_Input* image_panel_deimageh + } // fld::widget::Formula_Input* image_panel_deimageh { Fl_Button* o = new Fl_Button(195, 215, 50, 20, "Reset"); o->tooltip("Reset scale to original size"); o->labelsize(11); @@ -460,13 +460,13 @@ Fl_Menu_Item menu_1[] = { {0,0,0,0,0,0,0,0,0} }; -Fluid_Coord_Input *widget_x_input=(Fluid_Coord_Input *)0; +fld::widget::Formula_Input *widget_x_input=(fld::widget::Formula_Input *)0; -Fluid_Coord_Input *widget_y_input=(Fluid_Coord_Input *)0; +fld::widget::Formula_Input *widget_y_input=(fld::widget::Formula_Input *)0; -Fluid_Coord_Input *widget_w_input=(Fluid_Coord_Input *)0; +fld::widget::Formula_Input *widget_w_input=(fld::widget::Formula_Input *)0; -Fluid_Coord_Input *widget_h_input=(Fluid_Coord_Input *)0; +fld::widget::Formula_Input *widget_h_input=(fld::widget::Formula_Input *)0; Fl_Menu_Item menu_Children[] = { {"Fixed", 0, 0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0}, @@ -541,7 +541,7 @@ static void cb_1(Fl_Tile*, void* v) { Fl_Text_Editor *wComment=(Fl_Text_Editor *)0; -CodeEditor *wCallback=(CodeEditor *)0; +fld::widget::Code_Editor *wCallback=(fld::widget::Code_Editor *)0; Fl_Group *wp_cpp_callback=(Fl_Group *)0; @@ -555,9 +555,9 @@ Fl_Box *w_when_box=(Fl_Box *)0; Fl_Group *widget_tab_grid_child=(Fl_Group *)0; -Fluid_Coord_Input *widget_grid_row_input=(Fluid_Coord_Input *)0; +fld::widget::Formula_Input *widget_grid_row_input=(fld::widget::Formula_Input *)0; -Fluid_Coord_Input *widget_grid_col_input=(Fluid_Coord_Input *)0; +fld::widget::Formula_Input *widget_grid_col_input=(fld::widget::Formula_Input *)0; Fl_Box *widget_grid_transient=(Fl_Box *)0; @@ -599,15 +599,15 @@ Fl_Menu_Item menu_Vertical[] = { Fl_Group *wp_gridc_size=(Fl_Group *)0; -Fluid_Coord_Input *widget_grid_rowspan_input=(Fluid_Coord_Input *)0; +fld::widget::Formula_Input *widget_grid_rowspan_input=(fld::widget::Formula_Input *)0; -Fluid_Coord_Input *widget_grid_colspan_input=(Fluid_Coord_Input *)0; +fld::widget::Formula_Input *widget_grid_colspan_input=(fld::widget::Formula_Input *)0; Fl_Group *widget_tab_grid=(Fl_Group *)0; -Fluid_Coord_Input *widget_grid_rows=(Fluid_Coord_Input *)0; +fld::widget::Formula_Input *widget_grid_rows=(fld::widget::Formula_Input *)0; -static void cb_widget_grid_rows(Fluid_Coord_Input* o, void* v) { +static void cb_widget_grid_rows(fld::widget::Formula_Input* o, void* v) { // grid_rows_cb Fl_Grid *grid = Fl_Grid_Type::selected(); if (!grid) return; @@ -647,9 +647,9 @@ static void cb_3(Fl_Button*, void* v) { } } -Fluid_Coord_Input *widget_grid_cols=(Fluid_Coord_Input *)0; +fld::widget::Formula_Input *widget_grid_cols=(fld::widget::Formula_Input *)0; -static void cb_widget_grid_cols(Fluid_Coord_Input* o, void* v) { +static void cb_widget_grid_cols(fld::widget::Formula_Input* o, void* v) { // grid_rows_cb Fl_Grid *grid = Fl_Grid_Type::selected(); if (!grid) return; @@ -818,9 +818,9 @@ static void cb_Row1(Fl_Group* o, void* v) { } } -Fluid_Coord_Input *widget_grid_curr_row=(Fluid_Coord_Input *)0; +fld::widget::Formula_Input *widget_grid_curr_row=(fld::widget::Formula_Input *)0; -static void cb_widget_grid_curr_row(Fluid_Coord_Input* o, void* v) { +static void cb_widget_grid_curr_row(fld::widget::Formula_Input* o, void* v) { Fl_Grid *grid = Fl_Grid_Type::selected(); if (!grid) return; int r = o->value(), old_r = r; @@ -850,7 +850,7 @@ static void cb_7(Fl_Button*, void* v) { Fl_Group *widget_grid_curr_row_attributes=(Fl_Group *)0; -static void cb_Height(Fluid_Coord_Input* o, void* v) { +static void cb_Height(fld::widget::Formula_Input* o, void* v) { Fl_Grid *grid = Fl_Grid_Type::selected(); if (!grid) return; int r = widget_grid_curr_row->value(); @@ -868,7 +868,7 @@ static void cb_Height(Fluid_Coord_Input* o, void* v) { } } -static void cb_Weight(Fluid_Coord_Input* o, void* v) { +static void cb_Weight(fld::widget::Formula_Input* o, void* v) { Fl_Grid *grid = Fl_Grid_Type::selected(); if (!grid) return; int r = widget_grid_curr_row->value(); @@ -886,7 +886,7 @@ static void cb_Weight(Fluid_Coord_Input* o, void* v) { } } -static void cb_Gap(Fluid_Coord_Input* o, void* v) { +static void cb_Gap(fld::widget::Formula_Input* o, void* v) { Fl_Grid *grid = Fl_Grid_Type::selected(); if (!grid) return; int r = widget_grid_curr_row->value(); @@ -904,9 +904,9 @@ static void cb_Gap(Fluid_Coord_Input* o, void* v) { } } -Fluid_Coord_Input *widget_grid_curr_col=(Fluid_Coord_Input *)0; +fld::widget::Formula_Input *widget_grid_curr_col=(fld::widget::Formula_Input *)0; -static void cb_widget_grid_curr_col(Fluid_Coord_Input* o, void* v) { +static void cb_widget_grid_curr_col(fld::widget::Formula_Input* o, void* v) { Fl_Grid *grid = Fl_Grid_Type::selected(); if (!grid) return; int c = o->value(), old_c = c; @@ -936,7 +936,7 @@ static void cb_9(Fl_Button*, void* v) { Fl_Group *widget_grid_curr_col_attributes=(Fl_Group *)0; -static void cb_Width(Fluid_Coord_Input* o, void* v) { +static void cb_Width(fld::widget::Formula_Input* o, void* v) { Fl_Grid *grid = Fl_Grid_Type::selected(); if (!grid) return; int c = widget_grid_curr_col->value(); @@ -954,7 +954,7 @@ static void cb_Width(Fluid_Coord_Input* o, void* v) { } } -static void cb_Weight1(Fluid_Coord_Input* o, void* v) { +static void cb_Weight1(fld::widget::Formula_Input* o, void* v) { Fl_Grid *grid = Fl_Grid_Type::selected(); if (!grid) return; int c = widget_grid_curr_col->value(); @@ -972,7 +972,7 @@ static void cb_Weight1(Fluid_Coord_Input* o, void* v) { } } -static void cb_Gap1(Fluid_Coord_Input* o, void* v) { +static void cb_Gap1(fld::widget::Formula_Input* o, void* v) { Fl_Grid *grid = Fl_Grid_Type::selected(); if (!grid) return; int c = widget_grid_curr_col->value(); @@ -1177,7 +1177,7 @@ Fl_Double_Window* make_widget_panel() { o->labelsize(11); o->callback((Fl_Callback*)position_group_cb); o->align(Fl_Align(FL_ALIGN_LEFT)); - { widget_x_input = new Fluid_Coord_Input(95, 150, 55, 20, "X:"); + { widget_x_input = new fld::widget::Formula_Input(95, 150, 55, 20, "X:"); widget_x_input->tooltip("The X position of the widget as a number or formula.\nFormulas can be simple " "math, including the variables\nx, px, sx, cx, and i"); widget_x_input->box(FL_DOWN_BOX); @@ -1191,8 +1191,8 @@ Fl_Double_Window* make_widget_panel() { widget_x_input->callback((Fl_Callback*)x_cb); widget_x_input->align(Fl_Align(FL_ALIGN_TOP_LEFT)); widget_x_input->when(FL_WHEN_RELEASE); - } // Fluid_Coord_Input* widget_x_input - { widget_y_input = new Fluid_Coord_Input(155, 150, 55, 20, "Y:"); + } // fld::widget::Formula_Input* widget_x_input + { widget_y_input = new fld::widget::Formula_Input(155, 150, 55, 20, "Y:"); widget_y_input->tooltip("The Y position of the widget as a number or formula.\nFormulas can be simple " "math, including the variables\ny, py, sy, cy, and i"); widget_y_input->box(FL_DOWN_BOX); @@ -1206,8 +1206,8 @@ Fl_Double_Window* make_widget_panel() { widget_y_input->callback((Fl_Callback*)y_cb); widget_y_input->align(Fl_Align(FL_ALIGN_TOP_LEFT)); widget_y_input->when(FL_WHEN_RELEASE); - } // Fluid_Coord_Input* widget_y_input - { widget_w_input = new Fluid_Coord_Input(215, 150, 55, 20, "Width:"); + } // fld::widget::Formula_Input* widget_y_input + { widget_w_input = new fld::widget::Formula_Input(215, 150, 55, 20, "Width:"); widget_w_input->tooltip("The width of the widget as a number or formula.\nFormulas can be simple math," " including the variables\nw, pw, sw, cw, and i"); widget_w_input->box(FL_DOWN_BOX); @@ -1221,8 +1221,8 @@ Fl_Double_Window* make_widget_panel() { widget_w_input->callback((Fl_Callback*)w_cb); widget_w_input->align(Fl_Align(FL_ALIGN_TOP_LEFT)); widget_w_input->when(FL_WHEN_RELEASE); - } // Fluid_Coord_Input* widget_w_input - { widget_h_input = new Fluid_Coord_Input(275, 150, 55, 20, "Height:"); + } // fld::widget::Formula_Input* widget_w_input + { widget_h_input = new fld::widget::Formula_Input(275, 150, 55, 20, "Height:"); widget_h_input->tooltip("The height of the widget as a number or formula.\nFormulas can be simple math" ", including the variables\nh, ph, sh, ch, and i"); widget_h_input->box(FL_DOWN_BOX); @@ -1236,7 +1236,7 @@ Fl_Double_Window* make_widget_panel() { widget_h_input->callback((Fl_Callback*)h_cb); widget_h_input->align(Fl_Align(FL_ALIGN_TOP_LEFT)); widget_h_input->when(FL_WHEN_RELEASE); - } // Fluid_Coord_Input* widget_h_input + } // fld::widget::Formula_Input* widget_h_input { Fl_Choice* o = new Fl_Choice(335, 150, 64, 20, "Children:"); o->tooltip("When instantiating a widget class, the children can either be fixed in their " "original position, automatically be repositioned, or both repsositioned and re" @@ -1832,7 +1832,7 @@ Fl_Double_Window* make_widget_panel() { } // Fl_Group* o { Fl_Group* o = new Fl_Group(95, 223, 310, 82); o->box(FL_FLAT_BOX); - { wCallback = new CodeEditor(95, 225, 310, 80, "Callback:"); + { wCallback = new fld::widget::Code_Editor(95, 225, 310, 80, "Callback:"); wCallback->tooltip("The callback function or code for the widget. Use the variable name \'o\' to " "access the Widget pointer and \'v\' to access the user value."); wCallback->box(FL_DOWN_BOX); @@ -1848,7 +1848,7 @@ Fl_Double_Window* make_widget_panel() { wCallback->align(Fl_Align(FL_ALIGN_LEFT)); wCallback->when(FL_WHEN_RELEASE); Fl_Group::current()->resizable(wCallback); - } // CodeEditor* wCallback + } // fld::widget::Code_Editor* wCallback o->end(); } // Fl_Group* o o->end(); @@ -1916,7 +1916,7 @@ Fl_Double_Window* make_widget_panel() { o->labelsize(11); o->callback((Fl_Callback*)propagate_load); o->align(Fl_Align(FL_ALIGN_LEFT)); - { widget_grid_row_input = new Fluid_Coord_Input(95, 60, 40, 20, "Row:"); + { widget_grid_row_input = new fld::widget::Formula_Input(95, 60, 40, 20, "Row:"); widget_grid_row_input->box(FL_DOWN_BOX); widget_grid_row_input->color(FL_BACKGROUND2_COLOR); widget_grid_row_input->selection_color(FL_SELECTION_COLOR); @@ -1928,7 +1928,7 @@ Fl_Double_Window* make_widget_panel() { widget_grid_row_input->callback((Fl_Callback*)grid_set_row_cb); widget_grid_row_input->align(Fl_Align(FL_ALIGN_TOP_LEFT)); widget_grid_row_input->when(FL_WHEN_RELEASE); - } // Fluid_Coord_Input* widget_grid_row_input + } // fld::widget::Formula_Input* widget_grid_row_input { Fl_Group* o = new Fl_Group(135, 60, 30, 20); { Fl_Button* o = new Fl_Button(135, 60, 15, 20, "-"); o->compact(1); @@ -1944,7 +1944,7 @@ Fl_Double_Window* make_widget_panel() { } // Fl_Button* o o->end(); } // Fl_Group* o - { widget_grid_col_input = new Fluid_Coord_Input(175, 60, 40, 20, "Column:"); + { widget_grid_col_input = new fld::widget::Formula_Input(175, 60, 40, 20, "Column:"); widget_grid_col_input->box(FL_DOWN_BOX); widget_grid_col_input->color(FL_BACKGROUND2_COLOR); widget_grid_col_input->selection_color(FL_SELECTION_COLOR); @@ -1956,7 +1956,7 @@ Fl_Double_Window* make_widget_panel() { widget_grid_col_input->callback((Fl_Callback*)grid_set_col_cb); widget_grid_col_input->align(Fl_Align(FL_ALIGN_TOP_LEFT)); widget_grid_col_input->when(FL_WHEN_RELEASE); - } // Fluid_Coord_Input* widget_grid_col_input + } // fld::widget::Formula_Input* widget_grid_col_input { Fl_Group* o = new Fl_Group(215, 60, 30, 20); { Fl_Button* o = new Fl_Button(215, 60, 15, 20, "-"); o->compact(1); @@ -2020,7 +2020,7 @@ Fl_Double_Window* make_widget_panel() { wp_gridc_size->labelsize(11); wp_gridc_size->callback((Fl_Callback*)propagate_load); wp_gridc_size->align(Fl_Align(FL_ALIGN_LEFT)); - { Fluid_Coord_Input* o = new Fluid_Coord_Input(95, 135, 55, 20, "Width:"); + { fld::widget::Formula_Input* o = new fld::widget::Formula_Input(95, 135, 55, 20, "Width:"); o->box(FL_DOWN_BOX); o->color(FL_BACKGROUND2_COLOR); o->selection_color(FL_SELECTION_COLOR); @@ -2032,8 +2032,8 @@ Fl_Double_Window* make_widget_panel() { o->callback((Fl_Callback*)grid_set_min_wdt_cb); o->align(Fl_Align(FL_ALIGN_TOP_LEFT)); o->when(FL_WHEN_RELEASE); - } // Fluid_Coord_Input* o - { Fluid_Coord_Input* o = new Fluid_Coord_Input(155, 135, 55, 20, "Height:"); + } // fld::widget::Formula_Input* o + { fld::widget::Formula_Input* o = new fld::widget::Formula_Input(155, 135, 55, 20, "Height:"); o->box(FL_DOWN_BOX); o->color(FL_BACKGROUND2_COLOR); o->selection_color(FL_SELECTION_COLOR); @@ -2045,7 +2045,7 @@ Fl_Double_Window* make_widget_panel() { o->callback((Fl_Callback*)grid_set_min_hgt_cb); o->align(Fl_Align(FL_ALIGN_TOP_LEFT)); o->when(FL_WHEN_RELEASE); - } // Fluid_Coord_Input* o + } // fld::widget::Formula_Input* o { Fl_Box* o = new Fl_Box(395, 135, 1, 20); o->hide(); Fl_Group::current()->resizable(o); @@ -2057,7 +2057,7 @@ Fl_Double_Window* make_widget_panel() { o->labelsize(11); o->callback((Fl_Callback*)propagate_load); o->align(Fl_Align(FL_ALIGN_LEFT)); - { widget_grid_rowspan_input = new Fluid_Coord_Input(95, 170, 40, 20, "Row Span:"); + { widget_grid_rowspan_input = new fld::widget::Formula_Input(95, 170, 40, 20, "Row Span:"); widget_grid_rowspan_input->box(FL_DOWN_BOX); widget_grid_rowspan_input->color(FL_BACKGROUND2_COLOR); widget_grid_rowspan_input->selection_color(FL_SELECTION_COLOR); @@ -2069,7 +2069,7 @@ Fl_Double_Window* make_widget_panel() { widget_grid_rowspan_input->callback((Fl_Callback*)grid_set_rowspan_cb); widget_grid_rowspan_input->align(Fl_Align(FL_ALIGN_TOP_LEFT)); widget_grid_rowspan_input->when(FL_WHEN_RELEASE); - } // Fluid_Coord_Input* widget_grid_rowspan_input + } // fld::widget::Formula_Input* widget_grid_rowspan_input { Fl_Group* o = new Fl_Group(135, 170, 30, 20); { Fl_Button* o = new Fl_Button(135, 170, 15, 20, "-"); o->compact(1); @@ -2085,7 +2085,7 @@ Fl_Double_Window* make_widget_panel() { } // Fl_Button* o o->end(); } // Fl_Group* o - { widget_grid_colspan_input = new Fluid_Coord_Input(175, 170, 40, 20, "Col. Span:"); + { widget_grid_colspan_input = new fld::widget::Formula_Input(175, 170, 40, 20, "Col. Span:"); widget_grid_colspan_input->box(FL_DOWN_BOX); widget_grid_colspan_input->color(FL_BACKGROUND2_COLOR); widget_grid_colspan_input->selection_color(FL_SELECTION_COLOR); @@ -2097,7 +2097,7 @@ Fl_Double_Window* make_widget_panel() { widget_grid_colspan_input->callback((Fl_Callback*)grid_set_colspan_cb); widget_grid_colspan_input->align(Fl_Align(FL_ALIGN_TOP_LEFT)); widget_grid_colspan_input->when(FL_WHEN_RELEASE); - } // Fluid_Coord_Input* widget_grid_colspan_input + } // fld::widget::Formula_Input* widget_grid_colspan_input { Fl_Group* o = new Fl_Group(215, 170, 30, 20); { Fl_Button* o = new Fl_Button(215, 170, 15, 20, "-"); o->compact(1); @@ -2135,7 +2135,7 @@ Fl_Double_Window* make_widget_panel() { o->labelsize(11); o->callback((Fl_Callback*)propagate_load); o->align(Fl_Align(FL_ALIGN_LEFT)); - { widget_grid_rows = new Fluid_Coord_Input(95, 60, 40, 20, "Rows:"); + { widget_grid_rows = new fld::widget::Formula_Input(95, 60, 40, 20, "Rows:"); widget_grid_rows->tooltip("Number of horizontal rows in the Grid group"); widget_grid_rows->box(FL_DOWN_BOX); widget_grid_rows->color(FL_BACKGROUND2_COLOR); @@ -2148,7 +2148,7 @@ Fl_Double_Window* make_widget_panel() { widget_grid_rows->callback((Fl_Callback*)cb_widget_grid_rows); widget_grid_rows->align(Fl_Align(FL_ALIGN_TOP_LEFT)); widget_grid_rows->when(FL_WHEN_RELEASE); - } // Fluid_Coord_Input* widget_grid_rows + } // fld::widget::Formula_Input* widget_grid_rows { Fl_Group* o = new Fl_Group(135, 60, 30, 20); { Fl_Button* o = new Fl_Button(135, 60, 15, 20, "-"); o->compact(1); @@ -2164,7 +2164,7 @@ Fl_Double_Window* make_widget_panel() { } // Fl_Button* o o->end(); } // Fl_Group* o - { widget_grid_cols = new Fluid_Coord_Input(175, 60, 40, 20, "Columns:"); + { widget_grid_cols = new fld::widget::Formula_Input(175, 60, 40, 20, "Columns:"); widget_grid_cols->tooltip("Number of vertical columns in the Grid group"); widget_grid_cols->box(FL_DOWN_BOX); widget_grid_cols->color(FL_BACKGROUND2_COLOR); @@ -2177,7 +2177,7 @@ Fl_Double_Window* make_widget_panel() { widget_grid_cols->callback((Fl_Callback*)cb_widget_grid_cols); widget_grid_cols->align(Fl_Align(FL_ALIGN_TOP_LEFT)); widget_grid_cols->when(FL_WHEN_RELEASE); - } // Fluid_Coord_Input* widget_grid_cols + } // fld::widget::Formula_Input* widget_grid_cols { Fl_Group* o = new Fl_Group(215, 60, 30, 20); { Fl_Button* o = new Fl_Button(215, 60, 15, 20, "-"); o->compact(1); @@ -2277,7 +2277,7 @@ Fl_Double_Window* make_widget_panel() { o->labelsize(11); o->callback((Fl_Callback*)cb_Row1); o->align(Fl_Align(FL_ALIGN_LEFT)); - { widget_grid_curr_row = new Fluid_Coord_Input(95, 175, 40, 20, "Index"); + { widget_grid_curr_row = new fld::widget::Formula_Input(95, 175, 40, 20, "Index"); widget_grid_curr_row->box(FL_DOWN_BOX); widget_grid_curr_row->color(FL_BACKGROUND2_COLOR); widget_grid_curr_row->selection_color(FL_SELECTION_COLOR); @@ -2289,7 +2289,7 @@ Fl_Double_Window* make_widget_panel() { widget_grid_curr_row->callback((Fl_Callback*)cb_widget_grid_curr_row); widget_grid_curr_row->align(Fl_Align(FL_ALIGN_TOP_LEFT)); widget_grid_curr_row->when(FL_WHEN_RELEASE); - } // Fluid_Coord_Input* widget_grid_curr_row + } // fld::widget::Formula_Input* widget_grid_curr_row { Fl_Group* o = new Fl_Group(135, 175, 30, 20); o->callback((Fl_Callback*)propagate_load); { Fl_Button* o = new Fl_Button(135, 175, 15, 20, "-"); @@ -2311,7 +2311,7 @@ Fl_Double_Window* make_widget_panel() { } // Fl_Box* o { widget_grid_curr_row_attributes = new Fl_Group(180, 175, 175, 20); widget_grid_curr_row_attributes->callback((Fl_Callback*)propagate_load); - { Fluid_Coord_Input* o = new Fluid_Coord_Input(180, 175, 55, 20, "Height:"); + { fld::widget::Formula_Input* o = new fld::widget::Formula_Input(180, 175, 55, 20, "Height:"); o->box(FL_DOWN_BOX); o->color(FL_BACKGROUND2_COLOR); o->selection_color(FL_SELECTION_COLOR); @@ -2323,8 +2323,8 @@ Fl_Double_Window* make_widget_panel() { o->callback((Fl_Callback*)cb_Height); o->align(Fl_Align(FL_ALIGN_TOP_LEFT)); o->when(FL_WHEN_RELEASE); - } // Fluid_Coord_Input* o - { Fluid_Coord_Input* o = new Fluid_Coord_Input(240, 175, 55, 20, "Weight:"); + } // fld::widget::Formula_Input* o + { fld::widget::Formula_Input* o = new fld::widget::Formula_Input(240, 175, 55, 20, "Weight:"); o->box(FL_DOWN_BOX); o->color(FL_BACKGROUND2_COLOR); o->selection_color(FL_SELECTION_COLOR); @@ -2336,8 +2336,8 @@ Fl_Double_Window* make_widget_panel() { o->callback((Fl_Callback*)cb_Weight); o->align(Fl_Align(FL_ALIGN_TOP_LEFT)); o->when(FL_WHEN_RELEASE); - } // Fluid_Coord_Input* o - { Fluid_Coord_Input* o = new Fluid_Coord_Input(300, 175, 55, 20, "Gap:"); + } // fld::widget::Formula_Input* o + { fld::widget::Formula_Input* o = new fld::widget::Formula_Input(300, 175, 55, 20, "Gap:"); o->box(FL_DOWN_BOX); o->color(FL_BACKGROUND2_COLOR); o->selection_color(FL_SELECTION_COLOR); @@ -2349,7 +2349,7 @@ Fl_Double_Window* make_widget_panel() { o->callback((Fl_Callback*)cb_Gap); o->align(Fl_Align(FL_ALIGN_TOP_LEFT)); o->when(FL_WHEN_RELEASE); - } // Fluid_Coord_Input* o + } // fld::widget::Formula_Input* o widget_grid_curr_row_attributes->end(); } // Fl_Group* widget_grid_curr_row_attributes { Fl_Box* o = new Fl_Box(400, 175, 1, 20); @@ -2363,7 +2363,7 @@ Fl_Double_Window* make_widget_panel() { o->labelsize(11); o->callback((Fl_Callback*)propagate_load); o->align(Fl_Align(FL_ALIGN_LEFT)); - { widget_grid_curr_col = new Fluid_Coord_Input(95, 210, 40, 20, "Index"); + { widget_grid_curr_col = new fld::widget::Formula_Input(95, 210, 40, 20, "Index"); widget_grid_curr_col->box(FL_DOWN_BOX); widget_grid_curr_col->color(FL_BACKGROUND2_COLOR); widget_grid_curr_col->selection_color(FL_SELECTION_COLOR); @@ -2375,7 +2375,7 @@ Fl_Double_Window* make_widget_panel() { widget_grid_curr_col->callback((Fl_Callback*)cb_widget_grid_curr_col); widget_grid_curr_col->align(Fl_Align(FL_ALIGN_TOP_LEFT)); widget_grid_curr_col->when(FL_WHEN_RELEASE); - } // Fluid_Coord_Input* widget_grid_curr_col + } // fld::widget::Formula_Input* widget_grid_curr_col { Fl_Group* o = new Fl_Group(135, 210, 30, 20); { Fl_Button* o = new Fl_Button(135, 210, 15, 20, "-"); o->compact(1); @@ -2396,7 +2396,7 @@ Fl_Double_Window* make_widget_panel() { } // Fl_Box* o { widget_grid_curr_col_attributes = new Fl_Group(180, 210, 175, 20); widget_grid_curr_col_attributes->callback((Fl_Callback*)propagate_load); - { Fluid_Coord_Input* o = new Fluid_Coord_Input(180, 210, 55, 20, "Width:"); + { fld::widget::Formula_Input* o = new fld::widget::Formula_Input(180, 210, 55, 20, "Width:"); o->box(FL_DOWN_BOX); o->color(FL_BACKGROUND2_COLOR); o->selection_color(FL_SELECTION_COLOR); @@ -2408,8 +2408,8 @@ Fl_Double_Window* make_widget_panel() { o->callback((Fl_Callback*)cb_Width); o->align(Fl_Align(FL_ALIGN_TOP_LEFT)); o->when(FL_WHEN_RELEASE); - } // Fluid_Coord_Input* o - { Fluid_Coord_Input* o = new Fluid_Coord_Input(240, 210, 55, 20, "Weight:"); + } // fld::widget::Formula_Input* o + { fld::widget::Formula_Input* o = new fld::widget::Formula_Input(240, 210, 55, 20, "Weight:"); o->box(FL_DOWN_BOX); o->color(FL_BACKGROUND2_COLOR); o->selection_color(FL_SELECTION_COLOR); @@ -2421,8 +2421,8 @@ Fl_Double_Window* make_widget_panel() { o->callback((Fl_Callback*)cb_Weight1); o->align(Fl_Align(FL_ALIGN_TOP_LEFT)); o->when(FL_WHEN_RELEASE); - } // Fluid_Coord_Input* o - { Fluid_Coord_Input* o = new Fluid_Coord_Input(300, 210, 55, 20, "Gap:"); + } // fld::widget::Formula_Input* o + { fld::widget::Formula_Input* o = new fld::widget::Formula_Input(300, 210, 55, 20, "Gap:"); o->box(FL_DOWN_BOX); o->color(FL_BACKGROUND2_COLOR); o->selection_color(FL_SELECTION_COLOR); @@ -2434,7 +2434,7 @@ Fl_Double_Window* make_widget_panel() { o->callback((Fl_Callback*)cb_Gap1); o->align(Fl_Align(FL_ALIGN_TOP_LEFT)); o->when(FL_WHEN_RELEASE); - } // Fluid_Coord_Input* o + } // fld::widget::Formula_Input* o widget_grid_curr_col_attributes->end(); } // Fl_Group* widget_grid_curr_col_attributes { Fl_Box* o = new Fl_Box(400, 210, 1, 20); diff --git a/fluid/panels/widget_panel.fl b/fluid/panels/widget_panel.fl index 57ae3027378405bbcf3412e1947cb002c4265aba..517271e08ef212db567473d0ba6e23e958f83024 100644 --- a/fluid/panels/widget_panel.fl +++ b/fluid/panels/widget_panel.fl @@ -34,7 +34,7 @@ decl {\#include "nodes/Fl_Widget_Type.h"} {private global decl {\#include "nodes/Fl_Grid_Type.h"} {private global } -decl {\#include "widgets/custom_widgets.h"} {selected public global +decl {\#include "widgets/Formula_Input.h"} {selected public global } decl {\#include <FL/Fl_Grid.H>} {private global @@ -112,7 +112,7 @@ Function {make_image_panel()} { if (mod) set_modflag(1); }} tooltip {Scale image to this width in pixel units} xywh {75 75 55 20} labelsize 11 align 5 textsize 11 - class Fluid_Coord_Input + class {fld::widget::Formula_Input} } Fl_Input image_panel_imageh { label {Height:} @@ -142,7 +142,7 @@ Function {make_image_panel()} { if (mod) set_modflag(1); }} tooltip {Scale image to this height in pixel units} xywh {135 75 55 20} labelsize 11 align 5 textsize 11 - class Fluid_Coord_Input + class {fld::widget::Formula_Input} } Fl_Button {} { label Reset @@ -234,7 +234,7 @@ Function {make_image_panel()} { if (mod) set_modflag(1); }} tooltip {Scale image to this width in pixel units} xywh {75 215 55 20} labelsize 11 align 5 textsize 11 - class Fluid_Coord_Input + class {fld::widget::Formula_Input} } Fl_Input image_panel_deimageh { label {Height:} @@ -264,7 +264,7 @@ Function {make_image_panel()} { if (mod) set_modflag(1); }} tooltip {Scale image to this height in pixel units} xywh {135 215 55 20} labelsize 11 align 5 textsize 11 - class Fluid_Coord_Input + class {fld::widget::Formula_Input} } Fl_Button {} { label Reset @@ -577,7 +577,7 @@ Use Ctrl-J for newlines.} xywh {95 40 190 20} labelfont 1 labelsize 11 when 15 t tooltip {The X position of the widget as a number or formula. 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 Fluid_Coord_Input + class {fld::widget::Formula_Input} } Fl_Input widget_y_input { label {Y:} @@ -585,7 +585,7 @@ x, px, sx, cx, and i} xywh {95 150 55 20} labelsize 11 align 5 textsize 11 tooltip {The Y position of the widget as a number or formula. 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 Fluid_Coord_Input + class {fld::widget::Formula_Input} } Fl_Input widget_w_input { label {Width:} @@ -593,7 +593,7 @@ y, py, sy, cy, and i} xywh {155 150 55 20} labelsize 11 align 5 textsize 11 tooltip {The width of the widget as a number or formula. 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 Fluid_Coord_Input + class {fld::widget::Formula_Input} } Fl_Input widget_h_input { label {Height:} @@ -601,7 +601,7 @@ w, pw, sw, cw, and i} xywh {215 150 55 20} labelsize 11 align 5 textsize 11 tooltip {The height of the widget as a number or formula. 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 Fluid_Coord_Input + class {fld::widget::Formula_Input} } Fl_Choice {} { label {Children:} @@ -1076,8 +1076,8 @@ wCallback->do_callback(wCallback, v);} open label {Callback:} callback callback_cb tooltip {The callback function or code for the widget. Use the variable name 'o' to access the Widget pointer and 'v' to access the user value.} xywh {95 225 310 80} box DOWN_BOX labelfont 1 labelsize 11 align 4 textfont 4 textsize 11 resizable - code0 {\#include "widgets/CodeEditor.h"} - class CodeEditor + code0 {\#include "widgets/Code_Editor.h"} + class {fld::widget::Code_Editor} } } } @@ -1136,7 +1136,7 @@ wCallback->do_callback(wCallback, v);} open label {Row:} callback grid_set_row_cb xywh {95 60 40 20} labelsize 11 align 5 textsize 11 - class Fluid_Coord_Input + class {fld::widget::Formula_Input} } Fl_Group {} {open xywh {135 60 30 20} @@ -1158,7 +1158,7 @@ wCallback->do_callback(wCallback, v);} open label {Column:} callback grid_set_col_cb xywh {175 60 40 20} labelsize 11 align 5 textsize 11 - class Fluid_Coord_Input + class {fld::widget::Formula_Input} } Fl_Group {} {open xywh {215 60 30 20} @@ -1271,13 +1271,13 @@ wCallback->do_callback(wCallback, v);} open label {Width:} callback grid_set_min_wdt_cb xywh {95 135 55 20} labelsize 11 align 5 textsize 11 - class Fluid_Coord_Input + class {fld::widget::Formula_Input} } Fl_Input {} { label {Height:} callback grid_set_min_hgt_cb xywh {155 135 55 20} labelsize 11 align 5 textsize 11 - class Fluid_Coord_Input + class {fld::widget::Formula_Input} } Fl_Box {} { xywh {395 135 1 20} hide resizable @@ -1292,7 +1292,7 @@ wCallback->do_callback(wCallback, v);} open label {Row Span:} callback grid_set_rowspan_cb xywh {95 170 40 20} labelsize 11 align 5 textsize 11 - class Fluid_Coord_Input + class {fld::widget::Formula_Input} } Fl_Group {} {open xywh {135 170 30 20} @@ -1314,7 +1314,7 @@ wCallback->do_callback(wCallback, v);} open label {Col. Span:} callback grid_set_colspan_cb xywh {175 170 40 20} labelsize 11 align 5 textsize 11 - class Fluid_Coord_Input + class {fld::widget::Formula_Input} } Fl_Group {} {open xywh {215 170 30 20} @@ -1376,7 +1376,7 @@ if (v == LOAD) { } }} tooltip {Number of horizontal rows in the Grid group} xywh {95 60 40 20} labelsize 11 align 5 textsize 11 - class Fluid_Coord_Input + class {fld::widget::Formula_Input} } Fl_Group {} {open xywh {135 60 30 20} @@ -1426,7 +1426,7 @@ if (v == LOAD) { } }} tooltip {Number of vertical columns in the Grid group} xywh {175 60 40 20} labelsize 11 align 5 textsize 11 - class Fluid_Coord_Input + class {fld::widget::Formula_Input} } Fl_Group {} {open xywh {215 60 30 20} @@ -1618,7 +1618,7 @@ if (v == LOAD) { widget_grid_curr_row_attributes->do_callback(widget_grid_curr_row_attributes, LOAD); }} xywh {95 175 40 20} labelsize 11 align 5 textsize 11 - class Fluid_Coord_Input + class {fld::widget::Formula_Input} } Fl_Group {} { callback propagate_load open @@ -1669,7 +1669,7 @@ if (v == LOAD) { } }} xywh {180 175 55 20} labelsize 11 align 5 textsize 11 - class Fluid_Coord_Input + class {fld::widget::Formula_Input} } Fl_Input {} { label {Weight:} @@ -1689,7 +1689,7 @@ if (v == LOAD) { } }} xywh {240 175 55 20} labelsize 11 align 5 textsize 11 - class Fluid_Coord_Input + class {fld::widget::Formula_Input} } Fl_Input {} { label {Gap:} @@ -1709,7 +1709,7 @@ if (v == LOAD) { } }} xywh {300 175 55 20} labelsize 11 align 5 textsize 11 - class Fluid_Coord_Input + class {fld::widget::Formula_Input} } } Fl_Box {} { @@ -1735,7 +1735,7 @@ if (v == LOAD) { widget_grid_curr_col_attributes->do_callback(widget_grid_curr_col_attributes, LOAD); }} xywh {95 210 40 20} labelsize 11 align 5 textsize 11 - class Fluid_Coord_Input + class {fld::widget::Formula_Input} } Fl_Group {} {open xywh {135 210 30 20} @@ -1785,7 +1785,7 @@ if (v == LOAD) { } }} xywh {180 210 55 20} labelsize 11 align 5 textsize 11 - class Fluid_Coord_Input + class {fld::widget::Formula_Input} } Fl_Input {} { label {Weight:} @@ -1805,7 +1805,7 @@ if (v == LOAD) { } }} xywh {240 210 55 20} labelsize 11 align 5 textsize 11 - class Fluid_Coord_Input + class {fld::widget::Formula_Input} } Fl_Input {} { label {Gap:} @@ -1825,7 +1825,7 @@ if (v == LOAD) { } }} xywh {300 210 55 20} labelsize 11 align 5 textsize 11 - class Fluid_Coord_Input + class {fld::widget::Formula_Input} } } Fl_Box {} { diff --git a/fluid/panels/widget_panel.h b/fluid/panels/widget_panel.h index de827464efde3b234fe4bc9c24bb1217e6098f9e..bac21a771ac688cb0d5afc46b8ba004e52fe5e3a 100644 --- a/fluid/panels/widget_panel.h +++ b/fluid/panels/widget_panel.h @@ -19,7 +19,7 @@ #ifndef widget_panel_h #define widget_panel_h #include <FL/Fl.H> -#include "widgets/custom_widgets.h" +#include "widgets/Formula_Input.h" #include <FL/Fl_Double_Window.H> extern Fl_Double_Window *image_panel_window; #include <FL/Fl_Group.H> @@ -28,16 +28,16 @@ extern Fl_Group *image_panel_imagegroup; #include <FL/Fl_Box.H> #include <FL/Fl_Shared_Image.H> extern Fl_Box *image_panel_data; -extern Fluid_Coord_Input *image_panel_imagew; -extern Fluid_Coord_Input *image_panel_imageh; +extern fld::widget::Formula_Input *image_panel_imagew; +extern fld::widget::Formula_Input *image_panel_imageh; #include <FL/Fl_Button.H> #include <FL/Fl_Check_Button.H> extern void compress_image_cb(Fl_Check_Button*, void*); extern void bind_image_cb(Fl_Check_Button*, void*); extern Fl_Group *image_panel_deimagegroup; extern Fl_Box *image_panel_dedata; -extern Fluid_Coord_Input *image_panel_deimagew; -extern Fluid_Coord_Input *image_panel_deimageh; +extern fld::widget::Formula_Input *image_panel_deimagew; +extern fld::widget::Formula_Input *image_panel_deimageh; extern void compress_deimage_cb(Fl_Check_Button*, void*); extern void bind_deimage_cb(Fl_Check_Button*, void*); extern Fl_Button *image_panel_close; @@ -63,14 +63,14 @@ extern void align_cb(Fl_Button*, void*); extern void align_text_image_cb(Fl_Choice*, void*); extern void align_position_cb(Fl_Choice*, void*); extern void position_group_cb(Fl_Group*, void*); -extern void x_cb(Fluid_Coord_Input*, void*); -extern Fluid_Coord_Input *widget_x_input; -extern void y_cb(Fluid_Coord_Input*, void*); -extern Fluid_Coord_Input *widget_y_input; -extern void w_cb(Fluid_Coord_Input*, void*); -extern Fluid_Coord_Input *widget_w_input; -extern void h_cb(Fluid_Coord_Input*, void*); -extern Fluid_Coord_Input *widget_h_input; +extern void x_cb(fld::widget::Formula_Input*, void*); +extern fld::widget::Formula_Input *widget_x_input; +extern void y_cb(fld::widget::Formula_Input*, void*); +extern fld::widget::Formula_Input *widget_y_input; +extern void w_cb(fld::widget::Formula_Input*, void*); +extern fld::widget::Formula_Input *widget_w_input; +extern void h_cb(fld::widget::Formula_Input*, void*); +extern fld::widget::Formula_Input *widget_h_input; extern void wc_relative_cb(Fl_Choice*, void*); extern void flex_size_group_cb(Fl_Group*, void*); extern Fl_Group *wp_gui_flexp; @@ -161,9 +161,9 @@ extern Fl_Input *v_input[4]; #include <FL/Fl_Tile.H> #include <FL/Fl_Text_Editor.H> extern Fl_Text_Editor *wComment; -#include "widgets/CodeEditor.h" -extern void callback_cb(CodeEditor*, void*); -extern CodeEditor *wCallback; +#include "widgets/Code_Editor.h" +extern void callback_cb(fld::widget::Code_Editor*, void*); +extern fld::widget::Code_Editor *wCallback; extern Fl_Group *wp_cpp_callback; extern void user_data_cb(Fl_Input*, void*); extern Fl_Menu_Item whenmenu[]; @@ -172,12 +172,12 @@ extern void when_cb(Fl_Menu_Button*, void*); extern void user_data_type_cb(Fl_Input_Choice*, void*); extern Fl_Box *w_when_box; extern Fl_Group *widget_tab_grid_child; -extern void grid_set_row_cb(Fluid_Coord_Input*, void*); -extern Fluid_Coord_Input *widget_grid_row_input; +extern void grid_set_row_cb(fld::widget::Formula_Input*, void*); +extern fld::widget::Formula_Input *widget_grid_row_input; extern void grid_dec_row_cb(Fl_Button*, void*); extern void grid_inc_row_cb(Fl_Button*, void*); -extern void grid_set_col_cb(Fluid_Coord_Input*, void*); -extern Fluid_Coord_Input *widget_grid_col_input; +extern void grid_set_col_cb(fld::widget::Formula_Input*, void*); +extern fld::widget::Formula_Input *widget_grid_col_input; extern void grid_dec_col_cb(Fl_Button*, void*); extern void grid_inc_col_cb(Fl_Button*, void*); extern Fl_Box *widget_grid_transient; @@ -186,24 +186,24 @@ extern Fl_Group *wp_gridc_align; extern void grid_align_horizontal_cb(Fl_Choice*, void*); extern void grid_align_vertical_cb(Fl_Choice*, void*); extern Fl_Group *wp_gridc_size; -extern void grid_set_min_wdt_cb(Fluid_Coord_Input*, void*); -extern void grid_set_min_hgt_cb(Fluid_Coord_Input*, void*); -extern void grid_set_rowspan_cb(Fluid_Coord_Input*, void*); -extern Fluid_Coord_Input *widget_grid_rowspan_input; +extern void grid_set_min_wdt_cb(fld::widget::Formula_Input*, void*); +extern void grid_set_min_hgt_cb(fld::widget::Formula_Input*, void*); +extern void grid_set_rowspan_cb(fld::widget::Formula_Input*, void*); +extern fld::widget::Formula_Input *widget_grid_rowspan_input; extern void grid_dec_rowspan_cb(Fl_Button*, void*); extern void grid_inc_rowspan_cb(Fl_Button*, void*); -extern void grid_set_colspan_cb(Fluid_Coord_Input*, void*); -extern Fluid_Coord_Input *widget_grid_colspan_input; +extern void grid_set_colspan_cb(fld::widget::Formula_Input*, void*); +extern fld::widget::Formula_Input *widget_grid_colspan_input; extern void grid_dec_colspan_cb(Fl_Button*, void*); extern void grid_inc_colspan_cb(Fl_Button*, void*); extern Fl_Group *widget_tab_grid; -extern Fluid_Coord_Input *widget_grid_rows; -extern Fluid_Coord_Input *widget_grid_cols; +extern fld::widget::Formula_Input *widget_grid_rows; +extern fld::widget::Formula_Input *widget_grid_cols; extern Fl_Group *wp_grid_margin; extern Fl_Group *wp_grid_gaps; -extern Fluid_Coord_Input *widget_grid_curr_row; +extern fld::widget::Formula_Input *widget_grid_curr_row; extern Fl_Group *widget_grid_curr_row_attributes; -extern Fluid_Coord_Input *widget_grid_curr_col; +extern fld::widget::Formula_Input *widget_grid_curr_col; extern Fl_Group *widget_grid_curr_col_attributes; extern Fl_Tabs *widget_tabs_repo; extern void live_mode_cb(Fl_Button*, void*); diff --git a/fluid/widgets/Bin_Button.cxx b/fluid/widgets/Bin_Button.cxx new file mode 100644 index 0000000000000000000000000000000000000000..cc351085d93d5aa2bb657ea7d6ebeb566b9b122c --- /dev/null +++ b/fluid/widgets/Bin_Button.cxx @@ -0,0 +1,128 @@ +// +// Widget Bin Button code for the Fast Light Tool Kit (FLTK). +// +// Copyright 1998-2025 by Bill Spitzak and others. +// +// This library is free software. Distribution and use rights are outlined in +// the file "COPYING" which should have been included with this file. If this +// file is missing or damaged, see the license at: +// +// https://www.fltk.org/COPYING.php +// +// Please see the following page on how to report bugs and issues: +// +// https://www.fltk.org/bugs.php +// + +#include "widgets/Bin_Button.h" + +#include "app/fluid.h" +#include "nodes/factory.h" +#include "nodes/Fl_Window_Type.h" +#include "widgets/widget_browser.h" + +#include <FL/Fl_Button.H> +#include <FL/Fl_Window.H> + +using namespace fld; +using namespace fld::widget; + + +/** \class fld::widget::Bin_Button + The Bin_Button button is a button that can be used in the widget bin to + allow the user to drag and drop widgets into a window or group. This feature + makes it easy for the user to position a widget at a specific location within + the window or group. + */ + +/** + Convert mouse dragging into a drag and drop event. + */ +int fld::widget::Bin_Button::handle(int inEvent) +{ + int ret = 0; + switch (inEvent) { + case FL_PUSH: + Fl_Button::handle(inEvent); + return 1; // make sure that we get drag events + case FL_DRAG: + ret = Fl_Button::handle(inEvent); + if (!user_data()) + return ret; + if (!Fl::event_is_click()) { // make it a dnd event + // fake a drag outside of the widget + Fl::e_x = x()-1; + Fl_Button::handle(inEvent); + // fake a button release + Fl_Button::handle(FL_RELEASE); + // make it into a dnd event + const char *type_name = (const char*)user_data(); + Fl_Type::current_dnd = Fl_Type::current; + Fl::copy(type_name, (int)strlen(type_name)+1, 0); + Fl::dnd(); + return 1; + } + return ret; + } + return Fl_Button::handle(inEvent); +} + +/** \class fld::widget::Bin_Window_Button + The Bin_Window_Button button is used in the widget bin to create new + windows by dragging and dropping. When the button is dragged and dropped onto + the desktop, a new window will be created at the drop location. + + This does not work in Wayland because Wayland does not allow client + applications to control window placement. + */ + +/** + Convert mouse dragging into a drag and drop event. + */ +int fld::widget::Bin_Window_Button::handle(int inEvent) +{ + static Fl_Window *drag_win = NULL; + int ret = 0; + switch (inEvent) { + case FL_PUSH: + Fl_Button::handle(inEvent); + return 1; // make sure that we get drag events + case FL_DRAG: + ret = Fl_Button::handle(inEvent); + if (!user_data()) + return ret; + if (!Fl::event_is_click()) { + if (!drag_win) { + drag_win = new Fl_Window(0, 0, 480, 320); + drag_win->border(0); + drag_win->set_non_modal(); + } + if (drag_win) { + drag_win->position(Fl::event_x_root()+1, Fl::event_y_root()+1); + drag_win->show(); + } + // Does not work outside window: fl_cursor(FL_CURSOR_HAND); + } + return ret; + case FL_RELEASE: + if (drag_win) { + Fl::delete_widget(drag_win); + drag_win = NULL; + // create a new window here + Fl_Type *prototype = typename_to_prototype((char*)user_data()); + if (prototype) { + Fl_Type *new_type = add_new_widget_from_user(prototype, Strategy::AFTER_CURRENT); + if (new_type && new_type->is_a(ID_Window)) { + Fl_Window_Type *new_window = (Fl_Window_Type*)new_type; + Fl_Window *w = (Fl_Window *)new_window->o; + w->position(Fl::event_x_root(), Fl::event_y_root()); + } + } + widget_browser->display(Fl_Type::current); + widget_browser->rebuild(); + } + return Fl_Button::handle(inEvent); + } + return Fl_Button::handle(inEvent); +} + diff --git a/fluid/widgets/Bin_Button.h b/fluid/widgets/Bin_Button.h new file mode 100644 index 0000000000000000000000000000000000000000..342fe0eacb69aac4224c02b605ee840656874a2e --- /dev/null +++ b/fluid/widgets/Bin_Button.h @@ -0,0 +1,44 @@ +// +// Widget Bin Button header file for the Fast Light Tool Kit (FLTK). +// +// Copyright 1998-2025 by Bill Spitzak and others. +// +// This library is free software. Distribution and use rights are outlined in +// the file "COPYING" which should have been included with this file. If this +// file is missing or damaged, see the license at: +// +// https://www.fltk.org/COPYING.php +// +// Please see the following page on how to report bugs and issues: +// +// https://www.fltk.org/bugs.php +// + +#ifndef FLUID_WIDGETS_BIN_BUTTON_H +#define FLUID_WIDGETS_BIN_BUTTON_H + +#include <FL/Fl_Button.H> + +namespace fld { +namespace widget { + +// Adding drag and drop for dragging widgets into windows. +class Bin_Button : public Fl_Button { +public: + int handle(int) override; + Bin_Button(int X,int Y,int W,int H, const char* l = nullptr) : + Fl_Button(X,Y,W,H,l) { } +}; + +// Adding drag and drop functionality to drag window prototypes onto the desktop. +class Bin_Window_Button : public Fl_Button { +public: + int handle(int) override; + Bin_Window_Button(int X,int Y,int W,int H, const char* l = nullptr) : + Fl_Button(X,Y,W,H,l) { } +}; + +} // namespace widget +} // namespace fld + +#endif // FLUID_WIDGETS_BIN_BUTTON_H diff --git a/fluid/widgets/CodeEditor.h b/fluid/widgets/CodeEditor.h deleted file mode 100644 index cc720d6182665a6420d141f28dec93e3c20740e7..0000000000000000000000000000000000000000 --- a/fluid/widgets/CodeEditor.h +++ /dev/null @@ -1,105 +0,0 @@ -// -// Code editor widget for the Fast Light Tool Kit (FLTK). -// Syntax highlighting rewritten by erco@seriss.com 09/15/20. -// -// Copyright 1998-2025 by Bill Spitzak and others. -// -// This library is free software. Distribution and use rights are outlined in -// the file "COPYING" which should have been included with this file. If this -// file is missing or damaged, see the license at: -// -// https://www.fltk.org/COPYING.php -// -// Please see the following page on how to report bugs and issues: -// -// https://www.fltk.org/bugs.php -// - -#ifndef CodeEditor_h -#define CodeEditor_h - -// -// Include necessary headers... -// - -#include "StyleParse.h" - -#include <FL/Fl.H> -#include <FL/Fl_Text_Buffer.H> -#include <FL/Fl_Text_Editor.H> - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <ctype.h> - -// ---- CodeEditor declaration - -/** - A widget derived from Fl_Text_Editor that implements C++ code highlighting. - - CodeEditor is used in Fluid whenever the user can edit C++ source - code or header text. - */ -class CodeEditor : public Fl_Text_Editor { - friend class StyleParse; - - static Fl_Text_Display::Style_Table_Entry styletable[]; - static void style_parse(const char *tbuff, char *sbuff, int len, char style); - static void style_unfinished_cb(int, void*); - static void style_update(int pos, int nInserted, int nDeleted, - int /*nRestyled*/, const char * /*deletedText*/, - void *cbArg); - static int auto_indent(int, CodeEditor* e); - -public: - CodeEditor(int X, int Y, int W, int H, const char *L=0); - ~CodeEditor(); - void textsize(Fl_Fontsize s); - - /// access to protected member get_absolute_top_line_number() - int top_line() { return get_absolute_top_line_number(); } - - /// access to protected member mTopLineNum - int scroll_row() { return mTopLineNum; } - - /// access to protected member mHorizOffset - int scroll_col() { return mHorizOffset; } -}; - -// ---- CodeViewer declaration - -/** - A widget derived from CodeEditor with highlighting for code blocks. - - This widget is used by the codeview system to show the design's - source and header code. The secondary highlighting show the text - part that corresponds to the selected widget(s). - */ -class CodeViewer : public CodeEditor { -public: - CodeViewer(int X, int Y, int W, int H, const char *L=0); - -protected: - void draw() FL_OVERRIDE; - - /// Limit event handling to viewing, not editing - int handle(int ev) FL_OVERRIDE { return Fl_Text_Display::handle(ev); } -}; - -// ---- Project File Text Viewer declaration - -/** - A text viewer with an additional highlighting color scheme. - */ -class TextViewer : public Fl_Text_Display { -public: - TextViewer(int X, int Y, int W, int H, const char *L=0); - ~TextViewer(); - void draw() FL_OVERRIDE; - - /// access to protected member get_absolute_top_line_number() - int top_line() { return get_absolute_top_line_number(); } -}; - -#endif // !CodeEditor_h diff --git a/fluid/widgets/CodeEditor.cxx b/fluid/widgets/Code_Editor.cxx similarity index 77% rename from fluid/widgets/CodeEditor.cxx rename to fluid/widgets/Code_Editor.cxx index ca114b577ef847cb7a4f47fff5d4dd4ce107ec53..a145b5055219059da3ec68a1cb55c6fed9e14c23 100644 --- a/fluid/widgets/CodeEditor.cxx +++ b/fluid/widgets/Code_Editor.cxx @@ -19,20 +19,18 @@ // Include necessary headers... // -#include "widgets/CodeEditor.h" +#include "widgets/Code_Editor.h" -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <ctype.h> +using namespace fld; +using namespace fld::widget; -// ---- CodeEditor implementation +// ---- Code_Editor implementation /** Lookup table for all supported styles. Every table entry describes a rendering style for the corresponding text. */ -Fl_Text_Display::Style_Table_Entry CodeEditor::styletable[] = { // Style table +Fl_Text_Display::Style_Table_Entry Code_Editor::styletable[] = { // Style table { FL_FOREGROUND_COLOR, FL_COURIER, 11 }, // A - Plain { FL_DARK_GREEN, FL_COURIER_ITALIC, 11 }, // B - Line comments { FL_DARK_GREEN, FL_COURIER_ITALIC, 11 }, // C - Block comments @@ -50,7 +48,7 @@ Fl_Text_Display::Style_Table_Entry CodeEditor::styletable[] = { // Style table \param[in] in_len byte length to parse \param[in] in_style starting style letter */ -void CodeEditor::style_parse(const char *in_tbuff, // text buffer to parse +void Code_Editor::style_parse(const char *in_tbuff, // text buffer to parse char *in_sbuff, // style buffer we modify int in_len, // byte length to parse char in_style) { // starting style letter @@ -65,7 +63,7 @@ void CodeEditor::style_parse(const char *in_tbuff, // text buffer to par // 'G' - Keywords if, while.. // 'H' - Chars 'x' - StyleParse sp; + Style_Parser sp; sp.tbuff = in_tbuff; sp.sbuff = in_sbuff; sp.len = in_len; @@ -103,7 +101,7 @@ void CodeEditor::style_parse(const char *in_tbuff, // text buffer to par /** Update unfinished styles. */ -void CodeEditor::style_unfinished_cb(int, void*) { +void Code_Editor::style_unfinished_cb(int, void*) { } /** @@ -113,10 +111,10 @@ void CodeEditor::style_unfinished_cb(int, void*) { \param[in] nDeleted number of bytes deleted \param[in] cbArg pointer back to the code editor */ -void CodeEditor::style_update(int pos, int nInserted, int nDeleted, +void Code_Editor::style_update(int pos, int nInserted, int nDeleted, int /*nRestyled*/, const char * /*deletedText*/, void *cbArg) { - CodeEditor *editor = (CodeEditor*)cbArg; + Code_Editor *editor = (Code_Editor*)cbArg; char *style, // Style data *text; // Text data @@ -164,7 +162,7 @@ void CodeEditor::style_update(int pos, int nInserted, int nDeleted, Find the right indentation depth after pressing the Enter key. \param[in] e pointer back to the code editor */ -int CodeEditor::auto_indent(int, CodeEditor* e) { +int Code_Editor::auto_indent(int, Code_Editor* e) { if (e->buffer()->selected()) { e->insert_position(e->buffer()->primary_selection()->start()); e->buffer()->remove_selection(); @@ -198,11 +196,11 @@ int CodeEditor::auto_indent(int, CodeEditor* e) { } /** - Create a CodeEditor widget. + Create a Code_Editor widget. \param[in] X, Y, W, H position and size of the widget \param[in] L optional label */ -CodeEditor::CodeEditor(int X, int Y, int W, int H, const char *L) : +Code_Editor::Code_Editor(int X, int Y, int W, int H, const char *L) : Fl_Text_Editor(X, Y, W, H, L) { buffer(new Fl_Text_Buffer); @@ -228,9 +226,9 @@ CodeEditor::CodeEditor(int X, int Y, int W, int H, const char *L) : } /** - Destroy a CodeEditor widget. + Destroy a Code_Editor widget. */ -CodeEditor::~CodeEditor() { +Code_Editor::~Code_Editor() { Fl_Text_Buffer *buf = mStyleBuffer; mStyleBuffer = 0; delete buf; @@ -245,7 +243,7 @@ CodeEditor::~CodeEditor() { This works by updating the fontsizes in the style table. \param[in] s the new general height of the text font */ -void CodeEditor::textsize(Fl_Fontsize s) { +void Code_Editor::textsize(Fl_Fontsize s) { Fl_Text_Editor::textsize(s); // call base class method // now attempt to update our styletable to honor the new size... int entries = sizeof(styletable) / sizeof(styletable[0]); @@ -254,63 +252,3 @@ void CodeEditor::textsize(Fl_Fontsize s) { } } // textsize -// ---- CodeViewer implementation - -/** - Create a CodeViewer widget. - \param[in] X, Y, W, H position and size of the widget - \param[in] L optional label - */ -CodeViewer::CodeViewer(int X, int Y, int W, int H, const char *L) -: CodeEditor(X, Y, W, H, L) -{ - default_key_function(kf_ignore); - remove_all_key_bindings(&key_bindings); - cursor_style(CARET_CURSOR); -} - -/** - Tricking Fl_Text_Display into using bearable colors for this specific task. - */ -void CodeViewer::draw() -{ - Fl_Color c = Fl::get_color(FL_SELECTION_COLOR); - Fl::set_color(FL_SELECTION_COLOR, fl_color_average(FL_BACKGROUND_COLOR, FL_FOREGROUND_COLOR, 0.9f)); - CodeEditor::draw(); - Fl::set_color(FL_SELECTION_COLOR, c); -} - -// ---- TextViewer implementation - -/** - Create a TextViewer widget. - \param[in] X, Y, W, H position and size of the widget - \param[in] L optional label - */ -TextViewer::TextViewer(int X, int Y, int W, int H, const char *L) -: Fl_Text_Display(X, Y, W, H, L) -{ - buffer(new Fl_Text_Buffer); -} - -/** - Avoid memory leaks. - */ -TextViewer::~TextViewer() { - Fl_Text_Buffer *buf = mBuffer; - buffer(0); - delete buf; -} - -/** - Tricking Fl_Text_Display into using bearable colors for this specific task. - */ -void TextViewer::draw() -{ - Fl_Color c = Fl::get_color(FL_SELECTION_COLOR); - Fl::set_color(FL_SELECTION_COLOR, fl_color_average(FL_BACKGROUND_COLOR, FL_FOREGROUND_COLOR, 0.9f)); - Fl_Text_Display::draw(); - Fl::set_color(FL_SELECTION_COLOR, c); -} - - diff --git a/fluid/widgets/Code_Editor.h b/fluid/widgets/Code_Editor.h new file mode 100644 index 0000000000000000000000000000000000000000..ef8df0e0d0a86694c23046b9f0bbb48edf143fc7 --- /dev/null +++ b/fluid/widgets/Code_Editor.h @@ -0,0 +1,70 @@ +// +// Code editor widget for the Fast Light Tool Kit (FLTK). +// Syntax highlighting rewritten by erco@seriss.com 09/15/20. +// +// Copyright 1998-2025 by Bill Spitzak and others. +// +// This library is free software. Distribution and use rights are outlined in +// the file "COPYING" which should have been included with this file. If this +// file is missing or damaged, see the license at: +// +// https://www.fltk.org/COPYING.php +// +// Please see the following page on how to report bugs and issues: +// +// https://www.fltk.org/bugs.php +// + +#ifndef FLUID_WIDGETS_CODE_EDITOR_H +#define FLUID_WIDGETS_CODE_EDITOR_H + +// +// Include necessary headers... +// + +#include "Style_Parser.h" + +#include <FL/Fl_Text_Editor.H> + +namespace fld { +namespace widget { + +// ---- Code_Editor declaration + +/** + A widget derived from Fl_Text_Editor that implements C++ code highlighting. + + Code_Editor is used in Fluid whenever the user can edit C++ source + code or header text. + */ +class Code_Editor : public Fl_Text_Editor { + friend class Style_Parser; + + static Fl_Text_Display::Style_Table_Entry styletable[]; + static void style_parse(const char *tbuff, char *sbuff, int len, char style); + static void style_unfinished_cb(int, void*); + static void style_update(int pos, int nInserted, int nDeleted, + int /*nRestyled*/, const char * /*deletedText*/, + void *cbArg); + static int auto_indent(int, Code_Editor* e); + +public: + Code_Editor(int X, int Y, int W, int H, const char *L=0); + ~Code_Editor(); + void textsize(Fl_Fontsize s); + + /// access to protected member get_absolute_top_line_number() + int top_line() { return get_absolute_top_line_number(); } + + /// access to protected member mTopLineNum + int scroll_row() { return mTopLineNum; } + + /// access to protected member mHorizOffset + int scroll_col() { return mHorizOffset; } +}; + +} // namespace widget +} // namespace fld + + +#endif // FLUID_WIDGETS_CODE_EDITOR_H diff --git a/fluid/widgets/Code_Viewer.cxx b/fluid/widgets/Code_Viewer.cxx new file mode 100644 index 0000000000000000000000000000000000000000..82a71f4f693d46d6b6455990043d97414727c9e9 --- /dev/null +++ b/fluid/widgets/Code_Viewer.cxx @@ -0,0 +1,51 @@ +// +// Code editor widget for the Fast Light Tool Kit (FLTK). +// Syntax highlighting rewritten by erco@seriss.com 09/15/20. +// +// Copyright 1998-2025 by Bill Spitzak and others. +// +// This library is free software. Distribution and use rights are outlined in +// the file "COPYING" which should have been included with this file. If this +// file is missing or damaged, see the license at: +// +// https://www.fltk.org/COPYING.php +// +// Please see the following page on how to report bugs and issues: +// +// https://www.fltk.org/bugs.php +// + +// +// Include necessary headers... +// + +#include "widgets/Code_Viewer.h" + +using namespace fld; +using namespace fld::widget; + +/** + Create a fld::widget::Code_Viewer widget. + \param[in] X, Y, W, H position and size of the widget + \param[in] L optional label + */ +Code_Viewer::Code_Viewer(int X, int Y, int W, int H, const char *L) +: Code_Editor(X, Y, W, H, L) +{ + default_key_function(kf_ignore); + remove_all_key_bindings(&key_bindings); + cursor_style(CARET_CURSOR); +} + +/** + Tricking Fl_Text_Display into using bearable colors for this specific task. + */ +void Code_Viewer::draw() +{ + Fl_Color c = Fl::get_color(FL_SELECTION_COLOR); + Fl::set_color(FL_SELECTION_COLOR, fl_color_average(FL_BACKGROUND_COLOR, FL_FOREGROUND_COLOR, 0.9f)); + Code_Editor::draw(); + Fl::set_color(FL_SELECTION_COLOR, c); +} + + diff --git a/fluid/widgets/Code_Viewer.h b/fluid/widgets/Code_Viewer.h new file mode 100644 index 0000000000000000000000000000000000000000..5bf8b870a37b59a384240b89a06147a36900066c --- /dev/null +++ b/fluid/widgets/Code_Viewer.h @@ -0,0 +1,51 @@ +// +// Code editor widget for the Fast Light Tool Kit (FLTK). +// Syntax highlighting rewritten by erco@seriss.com 09/15/20. +// +// Copyright 1998-2025 by Bill Spitzak and others. +// +// This library is free software. Distribution and use rights are outlined in +// the file "COPYING" which should have been included with this file. If this +// file is missing or damaged, see the license at: +// +// https://www.fltk.org/COPYING.php +// +// Please see the following page on how to report bugs and issues: +// +// https://www.fltk.org/bugs.php +// + +#ifndef FLUID_WIDGETS_CODE_VIEWER_H +#define FLUID_WIDGETS_CODE_VIEWER_H + +// +// Include necessary headers... +// + +#include "widgets/Code_Editor.h" + +namespace fld { +namespace widget { + +/** + A widget derived from Code_Editor with highlighting for code blocks. + + This widget is used by the codeview system to show the design's + source and header code. The secondary highlighting show the text + part that corresponds to the selected widget(s). + */ +class Code_Viewer : public Code_Editor { +public: + Code_Viewer(int X, int Y, int W, int H, const char *L = nullptr); + +protected: + void draw() override; + + /// Limit event handling to viewing, not editing + int handle(int ev) override { return Fl_Text_Display::handle(ev); } +}; + +} // namespace widget +} // namespace fld + +#endif // FLUID_WIDGETS_CODE_VIEWER_H diff --git a/fluid/widgets/custom_widgets.cxx b/fluid/widgets/Formula_Input.cxx similarity index 53% rename from fluid/widgets/custom_widgets.cxx rename to fluid/widgets/Formula_Input.cxx index 25a63078362f362478b4faac88dc98a051c359e8..b26bd83e30bad83d132eed42d3a0db37c5687133 100644 --- a/fluid/widgets/custom_widgets.cxx +++ b/fluid/widgets/Formula_Input.cxx @@ -1,7 +1,7 @@ // // Widget type code for the Fast Light Tool Kit (FLTK). // -// Copyright 1998-2023 by Bill Spitzak and others. +// Copyright 1998-2025 by Bill Spitzak and others. // // This library is free software. Distribution and use rights are outlined in // the file "COPYING" which should have been included with this file. If this @@ -14,119 +14,20 @@ // https://www.fltk.org/bugs.php // -#include "widgets/custom_widgets.h" +#include "widgets/Formula_Input.h" -#include "app/fluid.h" -#include "nodes/Fl_Window_Type.h" -#include "nodes/factory.h" -#include "panels/widget_panel.h" -#include "widgets/widget_browser.h" - -#include <FL/platform.H> -#include <FL/Fl_Button.H> -#include <FL/Fl_Window.H> -#include <FL/fl_draw.H> -#include <FL/Fl_Menu_.H> #include <FL/fl_string_functions.h> #include "../src/flstring.h" -/** \class Widget_Bin_Button - The Widget_Bin_Button button is a button that can be used in the widget bin to - allow the user to drag and drop widgets into a window or group. This feature - makes it easy for the user to position a widget at a specific location within - the window or group. - */ - -/** - Convert mouse dragging into a drag and drop event. - */ -int Widget_Bin_Button::handle(int inEvent) -{ - int ret = 0; - switch (inEvent) { - case FL_PUSH: - Fl_Button::handle(inEvent); - return 1; // make sure that we get drag events - case FL_DRAG: - ret = Fl_Button::handle(inEvent); - if (!user_data()) - return ret; - if (!Fl::event_is_click()) { // make it a dnd event - // fake a drag outside of the widget - Fl::e_x = x()-1; - Fl_Button::handle(inEvent); - // fake a button release - Fl_Button::handle(FL_RELEASE); - // make it into a dnd event - const char *type_name = (const char*)user_data(); - Fl_Type::current_dnd = Fl_Type::current; - Fl::copy(type_name, (int)strlen(type_name)+1, 0); - Fl::dnd(); - return 1; - } - return ret; - } - return Fl_Button::handle(inEvent); -} - -/** \class Widget_Bin_Window_Button - The Widget_Bin_Window_Button button is used in the widget bin to create new - windows by dragging and dropping. When the button is dragged and dropped onto - the desktop, a new window will be created at the drop location. - */ +#include <stdlib.h> +#include <ctype.h> +#include <string.h> -/** - Convert mouse dragging into a drag and drop event. - */ -int Widget_Bin_Window_Button::handle(int inEvent) -{ - static Fl_Window *drag_win = NULL; - int ret = 0; - switch (inEvent) { - case FL_PUSH: - Fl_Button::handle(inEvent); - return 1; // make sure that we get drag events - case FL_DRAG: - ret = Fl_Button::handle(inEvent); - if (!user_data()) - return ret; - if (!Fl::event_is_click()) { - if (!drag_win) { - drag_win = new Fl_Window(0, 0, 480, 320); - drag_win->border(0); - drag_win->set_non_modal(); - } - if (drag_win) { - drag_win->position(Fl::event_x_root()+1, Fl::event_y_root()+1); - drag_win->show(); - } - // Does not work outside window: fl_cursor(FL_CURSOR_HAND); - } - return ret; - case FL_RELEASE: - if (drag_win) { - Fl::delete_widget(drag_win); - drag_win = NULL; - // create a new window here - Fl_Type *prototype = typename_to_prototype((char*)user_data()); - if (prototype) { - Fl_Type *new_type = add_new_widget_from_user(prototype, Strategy::AFTER_CURRENT); - if (new_type && new_type->is_a(ID_Window)) { - Fl_Window_Type *new_window = (Fl_Window_Type*)new_type; - Fl_Window *w = (Fl_Window *)new_window->o; - w->position(Fl::event_x_root(), Fl::event_y_root()); - } - } - widget_browser->display(Fl_Type::current); - widget_browser->rebuild(); - } - return Fl_Button::handle(inEvent); - } - return Fl_Button::handle(inEvent); -} +using namespace fld; +using namespace fld::widget; -/** \class Fluid_Coord_Input - The Fluid_Coord_Input widget is an input field for entering widget coordinates +/** \class fld::widget::Formula_Input + The Formula_Input widget is an input field for entering widget coordinates and sizes. It includes basic math capabilities and allows the use of variables in formulas. This widget is useful for specifying precise positions and dimensions for widgets in a graphical user interface. @@ -135,21 +36,18 @@ int Widget_Bin_Window_Button::handle(int inEvent) /** Create an input field. */ -Fluid_Coord_Input::Fluid_Coord_Input(int x, int y, int w, int h, const char *l) : -Fl_Input(x, y, w, h, l), -user_callback_(0L), -vars_(0L), -vars_user_data_(0L) +Formula_Input::Formula_Input(int x, int y, int w, int h, const char *l) +: Fl_Input(x, y, w, h, l) { Fl_Input::callback((Fl_Callback*)callback_handler_cb); text("0"); } -void Fluid_Coord_Input::callback_handler_cb(Fluid_Coord_Input *This, void *v) { +void Formula_Input::callback_handler_cb(Formula_Input *This, void *v) { This->callback_handler(v); } -void Fluid_Coord_Input::callback_handler(void *v) { +void Formula_Input::callback_handler(void *v) { if (user_callback_) (*user_callback_)(this, v); // do *not* update the value to show the evaluated formula here, because the @@ -165,7 +63,7 @@ void Fluid_Coord_Input::callback_handler(void *v) { the last character of the variable name when returning. \return the integer value that was found or calculated */ -int Fluid_Coord_Input::eval_var(uchar *&s) const { +int Formula_Input::eval_var(uchar *&s) const { if (!vars_) return 0; // find the end of the variable name @@ -173,7 +71,7 @@ int Fluid_Coord_Input::eval_var(uchar *&s) const { while (isalpha(*s)) s++; int n = (int)(s-v); // find the variable in the list - for (Fluid_Coord_Input_Vars *vars = vars_; vars->name_; vars++) { + for (Formula_Input_Vars *vars = vars_; vars->name_; vars++) { if (strncmp((char*)v, vars->name_, n)==0 && vars->name_[n]==0) return vars->callback_(this, vars_user_data_); } @@ -187,7 +85,7 @@ int Fluid_Coord_Input::eval_var(uchar *&s) const { \param prio priority of current operation \return the value so far */ -int Fluid_Coord_Input::eval(uchar *&s, int prio) const { +int Formula_Input::eval(uchar *&s, int prio) const { int v = 0, sgn = 1; uchar c = *s++; @@ -248,7 +146,7 @@ int Fluid_Coord_Input::eval(uchar *&s, int prio) const { /** Evaluate a formula into an integer. - The Fluid_Coord_Input widget includes a formula interpreter that allows you + The Formula_Input widget includes a formula interpreter that allows you to evaluate a string containing a mathematical formula and obtain the result as an integer. The interpreter supports unary plus and minus, basic integer math operations (such as addition, subtraction, multiplication, and division), @@ -259,7 +157,7 @@ int Fluid_Coord_Input::eval(uchar *&s, int prio) const { \param s formula as a C string \return the calculated value */ -int Fluid_Coord_Input::eval(const char *s) const +int Formula_Input::eval(const char *s) const { // duplicate the text, so we can modify it uchar *buf = (uchar*)fl_strdup(s); @@ -281,14 +179,14 @@ int Fluid_Coord_Input::eval(const char *s) const /** Evaluate the formula and return the result. */ -int Fluid_Coord_Input::value() const { +int Formula_Input::value() const { return eval(text()); } /** Set the field to an integer value, replacing previous texts. */ -void Fluid_Coord_Input::value(int v) { +void Formula_Input::value(int v) { char buf[32]; fl_snprintf(buf, sizeof(buf), "%d", v); text(buf); @@ -297,7 +195,7 @@ void Fluid_Coord_Input::value(int v) { /** Allow vertical mouse dragging and mouse wheel to interactively change the value. */ -int Fluid_Coord_Input::handle(int event) { +int Formula_Input::handle(int event) { switch (event) { case FL_MOUSEWHEEL: if (Fl::event_dy()) { @@ -309,3 +207,11 @@ int Fluid_Coord_Input::handle(int event) { } return Fl_Input::handle(event); } + +/** Set the list of the available variables + \param vars array of variables, last entry `has name_` set to `NULL` + \param user_data is forwarded to the Variable callback */ +void Formula_Input::variables(Formula_Input_Vars *vars, void *user_data) { + vars_ = vars; + vars_user_data_ = user_data; +} diff --git a/fluid/widgets/Formula_Input.h b/fluid/widgets/Formula_Input.h new file mode 100644 index 0000000000000000000000000000000000000000..5307cdc880269e2f4ec4cebdd717ee4ac06206bf --- /dev/null +++ b/fluid/widgets/Formula_Input.h @@ -0,0 +1,73 @@ +// +// Formula_Input widget header file for the Fast Light Tool Kit (FLTK). +// +// Copyright 1998-2025 by Bill Spitzak and others. +// +// This library is free software. Distribution and use rights are outlined in +// the file "COPYING" which should have been included with this file. If this +// file is missing or damaged, see the license at: +// +// https://www.fltk.org/COPYING.php +// +// Please see the following page on how to report bugs and issues: +// +// https://www.fltk.org/bugs.php +// + +#ifndef FLUID_WIDGETS_FORMULA_INPUT_H +#define FLUID_WIDGETS_FORMULA_INPUT_H + +#include <FL/Fl_Input.H> + +namespace fld { +namespace widget { + +class Formula_Input; + +// Callback signature for function returning the value of a variable. +typedef int (Fluid_Coord_Callback)(Formula_Input const *, void*); + +// Entry for a list of variables available to an input field. +// Formula_Input::variables() expects an array of +// Formula_Input_Vars with the last entry's name_ set to NULL. +typedef struct Formula_Input_Vars { + const char *name_; + Fluid_Coord_Callback *callback_; +} Formula_Input_Vars; + +// A text input widget that understands simple math. +class Formula_Input : public Fl_Input +{ + Fl_Callback *user_callback_ { nullptr }; + Formula_Input_Vars *vars_ { nullptr }; + void *vars_user_data_ { nullptr }; + + static void callback_handler_cb(Formula_Input *This, void *v); + void callback_handler(void *v); + int eval_var(uchar *&s) const; + int eval(uchar *&s, int prio) const; + int eval(const char *s) const; + +public: + Formula_Input(int x, int y, int w, int h, const char *l = nullptr); + + /** Return the text in the widget text field. */ + const char *text() const { return Fl_Input::value(); } + + /** Set the text in the text field */ + void text(const char *v) { Fl_Input::value(v); } + + int value() const; + void value(int v); + + /** Set the general callback for this widget. */ + void callback(Fl_Callback *cb) { user_callback_ = cb; } + + void variables(fld::widget::Formula_Input_Vars *vars, void *user_data); + int handle(int) override; +}; + +} // namespace widget +} // namespace fld + +#endif // FLUID_WIDGETS_FORMULA_INPUT_H diff --git a/fluid/widgets/StyleParse.cxx b/fluid/widgets/Style_Parser.cxx similarity index 91% rename from fluid/widgets/StyleParse.cxx rename to fluid/widgets/Style_Parser.cxx index b8b8ff4f0e8684dcf68f2035395a440064693c9c..9929cc01a426cf48d44c2c9a48f52fa27b589ef3 100644 --- a/fluid/widgets/StyleParse.cxx +++ b/fluid/widgets/Style_Parser.cxx @@ -1,7 +1,7 @@ // // Syntax highlighting for the Fast Light Tool Kit (FLTK). // -// Copyright 1998-2020 by Bill Spitzak and others. +// Copyright 1998-2025 by Bill Spitzak and others. // Copyright 2020 Greg Ercolano. // // This library is free software. Distribution and use rights are outlined in @@ -15,13 +15,16 @@ // https://www.fltk.org/bugs.php // -#include "StyleParse.h" +#include "Style_Parser.h" #include <stdio.h> #include <string.h> #include <ctype.h> #include <stdlib.h> // bsearch() +using namespace fld; +using namespace fld::widget; + // Sorted list of C/C++ keywords... static const char * const code_keywords[] = { "and", @@ -130,7 +133,7 @@ static void* search_types(char *find) { // Applies the current style, advances to next text + style char. // Returns 0 if hit end of buffer, 1 otherwise. // -int StyleParse::parse_over_char(int handle_crlf) { +int Style_Parser::parse_over_char(int handle_crlf) { char c = *tbuff; // End of line? @@ -157,7 +160,7 @@ int StyleParse::parse_over_char(int handle_crlf) { // Parse over white space using current style // Returns 0 if hit end of buffer, 1 otherwise. // -int StyleParse::parse_over_white() { +int Style_Parser::parse_over_white() { while ( len > 0 && strchr(" \t", *tbuff)) { if ( !parse_over_char() ) return 0; } return 1; @@ -166,7 +169,7 @@ int StyleParse::parse_over_white() { // Parse over non-white alphabetic text // Returns 0 if hit end of buffer, 1 otherwise. // -int StyleParse::parse_over_alpha() { +int Style_Parser::parse_over_alpha() { while ( len > 0 && isalpha(*tbuff) ) { if ( !parse_over_char() ) return 0; } return 1; @@ -175,7 +178,7 @@ int StyleParse::parse_over_alpha() { // Parse to end of line in specified style. // Returns 0 if hit end of buffer, 1 otherwise. // -int StyleParse::parse_to_eol(char s) { +int Style_Parser::parse_to_eol(char s) { char save = style; style = s; while ( *tbuff != '\n' ) @@ -187,7 +190,7 @@ int StyleParse::parse_to_eol(char s) { // Parse a block comment until end of comment or buffer. // Returns 0 if hit end of buffer, 1 otherwise. // -int StyleParse::parse_block_comment() { +int Style_Parser::parse_block_comment() { char save = style; style = 'C'; // block comment style while ( len > 0 ) { @@ -203,7 +206,7 @@ int StyleParse::parse_block_comment() { } // Copy keyword from tbuff -> keyword[] buffer -void StyleParse::buffer_keyword() { +void Style_Parser::buffer_keyword() { char *key = keyword; char *kend = key + sizeof(keyword) - 1; // end of buffer for ( const char *s=tbuff; @@ -215,7 +218,7 @@ void StyleParse::buffer_keyword() { // Parse over specified 'key'word in specified style 's'. // Returns 0 if hit end of buffer, 1 otherwise. // -int StyleParse::parse_over_key(const char *key, char s) { +int Style_Parser::parse_over_key(const char *key, char s) { char save = style; style = s; // Parse over the keyword while applying style to sbuff @@ -229,7 +232,7 @@ int StyleParse::parse_over_key(const char *key, char s) { // Parse over angle brackets <..> in specified style. // Returns 0 if hit end of buffer, 1 otherwise. // -int StyleParse::parse_over_angles(char s) { +int Style_Parser::parse_over_angles(char s) { if ( *tbuff != '<' ) return 1; // not <..>, early exit char save = style; style = s; @@ -245,7 +248,7 @@ int StyleParse::parse_over_angles(char s) { // spi.keyword[] will contain parsed word. // Returns 0 if hit end of buffer, 1 otherwise. // -int StyleParse::parse_keyword() { +int Style_Parser::parse_keyword() { // Parse into 'keyword' buffer buffer_keyword(); char *key = keyword; @@ -262,7 +265,7 @@ int StyleParse::parse_keyword() { // Style parse a quoted string, either "" or ''. // Returns 0 if hit end of buffer, 1 otherwise. // -int StyleParse::parse_quoted_string(char quote_char, // e.g. '"' or '\'' +int Style_Parser::parse_quoted_string(char quote_char, // e.g. '"' or '\'' char in_style) { // style for quoted text style = in_style; // start string style if ( !parse_over_char() ) return 0; // parse over opening quote @@ -289,7 +292,7 @@ int StyleParse::parse_quoted_string(char quote_char, // e.g. '"' or '\'' // Style parse a directive (#include, #define..) // Returns 0 if hit end of buffer, 1 otherwise. // -int StyleParse::parse_directive() { +int Style_Parser::parse_directive() { style = 'E'; // start directive style if ( !parse_over_char() ) return 0; // Parse over '#' if ( !parse_over_white() ) return 0; // Parse over any whitespace after '#' @@ -303,7 +306,7 @@ int StyleParse::parse_directive() { // Style parse a line comment to end of line. // Returns 0 if hit end of buffer, 1 otherwise. // -int StyleParse::parse_line_comment() { +int Style_Parser::parse_line_comment() { return parse_to_eol('B'); } @@ -312,7 +315,7 @@ int StyleParse::parse_line_comment() { // a continuation of a line, such as in a multiline #directive. // Returns 0 if hit end of buffer, 1 otherwise. // -int StyleParse::parse_escape() { +int Style_Parser::parse_escape() { const char no_crlf = 0; if ( !parse_over_char(no_crlf) ) return 0; // backslash if ( !parse_over_char(no_crlf) ) return 0; // char escaped @@ -322,7 +325,7 @@ int StyleParse::parse_escape() { // Parse all other non-specific characters // Returns 0 if hit end of buffer, 1 otherwise. // -int StyleParse::parse_all_else() { +int Style_Parser::parse_all_else() { last = isalnum(*tbuff) || *tbuff == '_' || *tbuff == '.'; return parse_over_char(); } diff --git a/fluid/widgets/StyleParse.h b/fluid/widgets/Style_Parser.h similarity index 56% rename from fluid/widgets/StyleParse.h rename to fluid/widgets/Style_Parser.h index 2fcc4f4dba96611c1929f92612708fadedf4c535..287ea6b211f3e343adc556d16d95ef552d7defc0 100644 --- a/fluid/widgets/StyleParse.h +++ b/fluid/widgets/Style_Parser.h @@ -1,7 +1,7 @@ // // Syntax highlighting for the Fast Light Tool Kit (FLTK). // -// Copyright 1998-2020 by Bill Spitzak and others. +// Copyright 1998-2025 by Bill Spitzak and others. // Copyright 2020 Greg Ercolano. // // This library is free software. Distribution and use rights are outlined in @@ -15,30 +15,25 @@ // https://www.fltk.org/bugs.php // -#ifndef StyleParse_h -#define StyleParse_h +#ifndef FLUID_WIDGETS_STYLE_PARSER_H +#define FLUID_WIDGETS_STYLE_PARSER_H -// Class to manage style parsing, friend of CodeEditor -class StyleParse { +namespace fld { +namespace widget { + +// Class to manage style parsing, friend of Code_Editor +class Style_Parser { public: - const char *tbuff; // text buffer - char *sbuff; // style buffer - int len; // running length - char style; // current style - char lwhite; // leading white space (1=white, 0=past white) - int col; // line's column counter - char keyword[40]; // keyword parsing buffer - char last; // flag for keyword parsing + const char *tbuff { nullptr }; // text buffer + char *sbuff { nullptr }; // style buffer + int len { 0 }; // running length + char style { 0 }; // current style + char lwhite { 1 }; // leading white space (1=white, 0=past white) + int col { 0 }; // line's column counter + char keyword[40] { }; // keyword parsing buffer + char last { 0 }; // flag for keyword parsing - StyleParse() { - tbuff = 0; - sbuff = 0; - len = 0; - style = 0; - lwhite = 1; - col = 0; - last = 0; - } + Style_Parser() = default; // Methods to aid in parsing int parse_over_char(int handle_crlf=1); @@ -51,11 +46,14 @@ public: int parse_over_angles(char s); int parse_keyword(); // "switch" int parse_quoted_string(char quote_char, char in_style); - // "hello", 'x' + // "hello", 'x' int parse_directive(); // "#define" int parse_line_comment(); // "// text.." int parse_escape(); // "\'" int parse_all_else(); // all other code }; -#endif // StyleParse_h +} // namespace widget +} // namespace fld + +#endif // FLUID_WIDGETS_STYLE_PARSER_H diff --git a/fluid/widgets/Text_Viewer.cxx b/fluid/widgets/Text_Viewer.cxx new file mode 100644 index 0000000000000000000000000000000000000000..ba2d145fe50b3bf5cc986c1e24dcc243339977c9 --- /dev/null +++ b/fluid/widgets/Text_Viewer.cxx @@ -0,0 +1,58 @@ +// +// Code editor widget for the Fast Light Tool Kit (FLTK). +// Syntax highlighting rewritten by erco@seriss.com 09/15/20. +// +// Copyright 1998-2025 by Bill Spitzak and others. +// +// This library is free software. Distribution and use rights are outlined in +// the file "COPYING" which should have been included with this file. If this +// file is missing or damaged, see the license at: +// +// https://www.fltk.org/COPYING.php +// +// Please see the following page on how to report bugs and issues: +// +// https://www.fltk.org/bugs.php +// + +// +// Include necessary headers... +// + +#include "widgets/Text_Viewer.h" + +using namespace fld; +using namespace fld::widget; + +/** + Create a fld::widget::Text_Viewer widget. + \param[in] X, Y, W, H position and size of the widget + \param[in] L optional label + */ +Text_Viewer::Text_Viewer(int X, int Y, int W, int H, const char *L) +: Fl_Text_Display(X, Y, W, H, L) +{ + buffer(new Fl_Text_Buffer); +} + +/** + Avoid memory leaks. + */ +Text_Viewer::~Text_Viewer() { + Fl_Text_Buffer *buf = mBuffer; + buffer(0); + delete buf; +} + +/** + Tricking Fl_Text_Display into using bearable colors for this specific task. + */ +void Text_Viewer::draw() +{ + Fl_Color c = Fl::get_color(FL_SELECTION_COLOR); + Fl::set_color(FL_SELECTION_COLOR, fl_color_average(FL_BACKGROUND_COLOR, FL_FOREGROUND_COLOR, 0.9f)); + Fl_Text_Display::draw(); + Fl::set_color(FL_SELECTION_COLOR, c); +} + + diff --git a/fluid/widgets/Text_Viewer.h b/fluid/widgets/Text_Viewer.h new file mode 100644 index 0000000000000000000000000000000000000000..1e5810d5094f1a6c44647433b0116e9c148c066d --- /dev/null +++ b/fluid/widgets/Text_Viewer.h @@ -0,0 +1,46 @@ +// +// Code editor widget for the Fast Light Tool Kit (FLTK). +// Syntax highlighting rewritten by erco@seriss.com 09/15/20. +// +// Copyright 1998-2025 by Bill Spitzak and others. +// +// This library is free software. Distribution and use rights are outlined in +// the file "COPYING" which should have been included with this file. If this +// file is missing or damaged, see the license at: +// +// https://www.fltk.org/COPYING.php +// +// Please see the following page on how to report bugs and issues: +// +// https://www.fltk.org/bugs.php +// + +#ifndef FLUID_WIDGETS_TEXT_VIEWER_H +#define FLUID_WIDGETS_TEXT_VIEWER_H + +// +// Include necessary headers... +// + +#include <FL/Fl_Text_Display.H> + +namespace fld { +namespace widget { + +/** + A text viewer with an additional highlighting color scheme. + */ +class Text_Viewer : public Fl_Text_Display { +public: + Text_Viewer(int X, int Y, int W, int H, const char *L = nullptr); + ~Text_Viewer(); + void draw() override; + + /// access to protected member get_absolute_top_line_number() + int top_line() { return get_absolute_top_line_number(); } +}; + +} // namespace widget +} // namespace fld + +#endif // FLUID_WIDGETS_TEXT_VIEWER_H diff --git a/fluid/widgets/custom_widgets.h b/fluid/widgets/custom_widgets.h deleted file mode 100644 index 875496b8ed79abde23df501284000ed25ed3c78f..0000000000000000000000000000000000000000 --- a/fluid/widgets/custom_widgets.h +++ /dev/null @@ -1,90 +0,0 @@ -// -// Shortcut header file for the Fast Light Tool Kit (FLTK). -// -// Copyright 1998-2023 by Bill Spitzak and others. -// -// This library is free software. Distribution and use rights are outlined in -// the file "COPYING" which should have been included with this file. If this -// file is missing or damaged, see the license at: -// -// https://www.fltk.org/COPYING.php -// -// Please see the following page on how to report bugs and issues: -// -// https://www.fltk.org/bugs.php -// - -#ifndef _FLUID_SHORTCUT_BUTTON_H -#define _FLUID_SHORTCUT_BUTTON_H - -#include <FL/Fl_Button.H> -#include <FL/Fl_Input.H> - -// Adding drag and drop for dragging widgets into windows. -class Widget_Bin_Button : public Fl_Button { -public: - int handle(int) FL_OVERRIDE; - Widget_Bin_Button(int X,int Y,int W,int H, const char* l = 0) : - Fl_Button(X,Y,W,H,l) { } -}; - -// Adding drag and drop functionality to drag window prototypes onto the desktop. -class Widget_Bin_Window_Button : public Fl_Button { -public: - int handle(int) FL_OVERRIDE; - Widget_Bin_Window_Button(int X,int Y,int W,int H, const char* l = 0) : - Fl_Button(X,Y,W,H,l) { } -}; - -// Callback signature for function returning the value of a variable. -typedef int (Fluid_Coord_Callback)(class Fluid_Coord_Input const *, void*); - -// Entry for a list of variables available to an input field. -// Fluid_Coord_Input::variables() expects an array of Fluid_Coord_Input_Vars -// with the last entry's name_ set to NULL. -typedef struct Fluid_Coord_Input_Vars { - const char *name_; - Fluid_Coord_Callback *callback_; -} Fluid_Coord_Input_Vars; - -// A text input widget that understands simple math. -class Fluid_Coord_Input : public Fl_Input -{ - Fl_Callback *user_callback_; - Fluid_Coord_Input_Vars *vars_; - void *vars_user_data_; - static void callback_handler_cb(Fluid_Coord_Input *This, void *v); - void callback_handler(void *v); - int eval_var(uchar *&s) const; - int eval(uchar *&s, int prio) const; - int eval(const char *s) const; - -public: - Fluid_Coord_Input(int x, int y, int w, int h, const char *l=0L); - - /** Return the text in the widget text field. */ - const char *text() const { return Fl_Input::value(); } - - /** Set the text in the text field */ - void text(const char *v) { Fl_Input::value(v); } - - int value() const; - void value(int v); - - /** Set the general callback for this widget. */ - void callback(Fl_Callback *cb) { - user_callback_ = cb; - } - - /** Set the list of the available variables - \param vars array of variables, last entry `has name_` set to `NULL` - \param user_data is forwarded to the Variable callback */ - void variables(Fluid_Coord_Input_Vars *vars, void *user_data) { - vars_ = vars; - vars_user_data_ = user_data; - } - - int handle(int) FL_OVERRIDE; -}; - -#endif