summaryrefslogtreecommitdiff
path: root/fluid/panels/widget_panel.fl
diff options
context:
space:
mode:
authorMatthias Melcher <github@matthiasm.com>2025-11-29 12:57:08 +0100
committerGitHub <noreply@github.com>2025-11-29 12:57:08 +0100
commit349b818d3fd4f568160537616857b9ff7d68d3aa (patch)
treeaa4deb3b74345abf0dd6584bd9e3139c5812e43d /fluid/panels/widget_panel.fl
parent725be0116f1d4dbcd64a99b555572341f2d29eda (diff)
Fluid: convert modal panels into tabs in the widget panel (#1339)
Diffstat (limited to 'fluid/panels/widget_panel.fl')
-rw-r--r--fluid/panels/widget_panel.fl2722
1 files changed, 1973 insertions, 749 deletions
diff --git a/fluid/panels/widget_panel.fl b/fluid/panels/widget_panel.fl
index 2c2e75a08..beba75690 100644
--- a/fluid/panels/widget_panel.fl
+++ b/fluid/panels/widget_panel.fl
@@ -59,6 +59,9 @@ decl {\#include "nodes/Window_Node.h"} {private global
decl {\#include "nodes/Grid_Node.h"} {private global
}
+decl {\#include "nodes/Function_Node.h"} {private global
+}
+
decl {\#include <FL/Fl_Spinner.H>} {private global
}
@@ -74,13 +77,15 @@ decl {\#include <FL/fl_ask.H>} {private global
decl {\#include <FL/Fl_Menu_Item.H>} {private global
}
+decl {\#include <FL/Fl_File_Chooser.H>} {private global
+}
+
decl {\#define ZERO_ENTRY 1000} {private global
}
decl {extern const char* when_symbol_name(int n);
extern void set_whenmenu(int n);
extern void redraw_browser();
-const char *c_check(const char *c, int type=0);
extern Fl_Color fl_show_colormap(Fl_Color oldcol);
extern void labelcolor_common(Fl_Color c);
extern void color_common(Fl_Color c);
@@ -97,6 +102,12 @@ extern Fl_Menu_Item boxmenu[];} {private global
decl {extern int haderror;} {private global
}
+Function {use_tab_navigation(int, Fl_Text_Editor*)} {
+ comment {Allow widget navigation on text fields with Tab.} private return_type int
+} {
+ code {return 0;} {}
+}
+
Function {make_image_panel()} {
comment {Create a panel for editing widget image data}
} {
@@ -253,7 +264,7 @@ Function {make_image_panel()} {
}
if (mod) Fluid.proj.set_modflag(1);
}}
- tooltip {bind the image to the widget, so it will be deleted automatically} xywh {75 120 170 20} down_box DOWN_BOX labelsize 11 hotspot
+ tooltip {bind the image to the widget, so it will be deleted with the widget} xywh {75 120 170 20} down_box DOWN_BOX labelsize 11 hotspot
}
}
Fl_Group image_panel_deimagegroup {
@@ -403,7 +414,7 @@ Function {make_image_panel()} {
}
if (mod) Fluid.proj.set_modflag(1);
}}
- tooltip {bind the image to the widget, so it will be deleted automatically} xywh {75 260 170 20} down_box DOWN_BOX labelsize 11
+ tooltip {bind the image to the widget, so it will be deleted with the widget} xywh {75 260 170 20} down_box DOWN_BOX labelsize 11
}
}
Fl_Button image_panel_close {
@@ -466,43 +477,48 @@ Function {make_widget_panel()} {
} {
Fl_Window {} {
comment {Use a Double Window to avoid flickering.} open
- xywh {372 208 420 400} type Double labelsize 11 align 80 resizable hotspot
+ xywh {485 255 420 400} type Double labelsize 11 align 80 resizable hotspot
code0 {o->size_range(o->w(), o->h());} size_range {420 400 0 0} visible
} {
- Fl_Tabs widget_tabs {
+ Fl_Wizard tabs_wizard {
callback {propagate_load((Fl_Group *)o,v);} open
- xywh {10 10 400 350} selection_color 12 labelsize 11 labelcolor 7 when 0 resizable
- code0 {o->show();}
+ xywh {10 10 400 350} box NO_BOX labelsize 11 resizable
} {
- Fl_Group wp_gui_tab {
- label GUI
- callback propagate_load open
- xywh {10 30 400 330} labelsize 11 when 0 resizable
+ Fl_Tabs widget_tabs {
+ callback {if (current_widget)
+ propagate_load((Fl_Group *)o,v);} selected
+ xywh {10 10 400 350} selection_color 12 labelsize 11 labelcolor 7 when 0
+ code0 {o->show();}
} {
- Fl_Group {} {
- label {Label:}
+ Fl_Group wp_gui_tab {
+ label GUI
callback propagate_load open
- xywh {95 40 309 20} labelfont 1 labelsize 11 align 4
+ xywh {10 30 400 330} labelsize 11 when 0 resizable
} {
- Fl_Input wp_gui_label {
- callback label_cb
- tooltip {The label text for the widget.
+ Fl_Group {} {
+ label {Label:}
+ callback propagate_load open
+ xywh {95 40 309 20} labelfont 1 labelsize 11 align 4
+ } {
+ Fl_Input wp_gui_label {
+ callback label_cb
+ tooltip {The label text for the widget.
Use Ctrl-J for newlines.} xywh {95 40 190 20} labelfont 1 labelsize 11 when 15 textsize 11 resizable
- }
- Fl_Choice {} {
- callback labeltype_cb open
- tooltip {The label style for the widget.} xywh {285 40 119 20} box THIN_UP_BOX down_box BORDER_BOX labelfont 1 labelsize 11 textsize 11
- code0 {extern Fl_Menu_Item labeltypemenu[];}
- code1 {o->menu(labeltypemenu);}
- } {}
- }
- Fl_Group {} {
- label {Image:}
- callback propagate_load open
- xywh {95 65 309 20} labelfont 1 labelsize 11 align 4
- } {
- Fl_Input widget_image_input {
- callback {if (v == LOAD) {
+ }
+ Fl_Choice {} {
+ callback labeltype_cb open
+ tooltip {The label style for the widget.} xywh {285 40 119 20} box THIN_UP_BOX down_box BORDER_BOX labelfont 1 labelsize 11 textsize 11
+ code0 {extern Fl_Menu_Item labeltypemenu[];}
+ code1 {o->menu(labeltypemenu);}
+ } {}
+ }
+ Fl_Group {} {
+ label {Image:}
+ callback propagate_load open
+ xywh {95 65 309 20} labelfont 1 labelsize 11 align 4
+ } {
+ Fl_Input widget_image_input {
+ callback {if (v == LOAD) {
if (current_widget->is_widget() && !current_widget->is_a(Type::Window)) {
o->activate();
o->value(((Widget_Node*)current_widget)->image_name());
@@ -515,11 +531,11 @@ Use Ctrl-J for newlines.} xywh {95 40 190 20} labelfont 1 labelsize 11 when 15 t
}
if (mod) Fluid.proj.set_modflag(1);
}}
- tooltip {The active image for the widget.} xywh {95 65 200 20} labelfont 1 labelsize 11 textsize 11 resizable
- }
- Fl_Button {} {
- label {Browse...}
- callback {if (v == LOAD) {
+ tooltip {The active image for the widget.} xywh {95 65 200 20} labelfont 1 labelsize 11 textsize 11 resizable
+ }
+ Fl_Button {} {
+ label {Browse...}
+ callback {if (v == LOAD) {
if (current_widget->is_widget() && !current_widget->is_a(Type::Window))
o->activate();
else
@@ -536,23 +552,23 @@ Use Ctrl-J for newlines.} xywh {95 40 190 20} labelfont 1 labelsize 11 when 15 t
if (mod) Fluid.proj.set_modflag(1);
}
}}
- tooltip {Click to choose the active image.} xywh {295 65 89 20} labelsize 11 align 256
- }
- Fl_Button {} {
- label {...}
- callback {if (v != LOAD) {
+ tooltip {Click to choose the active image.} xywh {295 65 89 20} labelsize 11 align 256
+ }
+ Fl_Button {} {
+ label {...}
+ callback {if (v != LOAD) {
run_image_panel();
}}
- tooltip {more image options} bind_image 1 xywh {384 65 20 20}
+ tooltip {more image options} bind_image 1 xywh {384 65 20 20}
+ }
}
- }
- Fl_Group {} {
- label {Inactive:}
- callback propagate_load open
- xywh {95 90 309 20} labelfont 1 labelsize 11 align 4
- } {
- Fl_Input widget_deimage_input {
- callback {if (v == LOAD) {
+ Fl_Group {} {
+ label {Inactive:}
+ callback propagate_load open
+ xywh {95 90 309 20} labelfont 1 labelsize 11 align 4
+ } {
+ Fl_Input widget_deimage_input {
+ callback {if (v == LOAD) {
if (current_widget->is_widget() && !current_widget->is_a(Type::Window)) {
o->activate();
o->value(((Widget_Node*)current_widget)->inactive_name());
@@ -565,11 +581,11 @@ Use Ctrl-J for newlines.} xywh {95 40 190 20} labelfont 1 labelsize 11 when 15 t
}
if (mod) Fluid.proj.set_modflag(1);
}}
- tooltip {The inactive image for the widget.} xywh {95 90 200 20} labelfont 1 labelsize 11 textsize 11 resizable
- }
- Fl_Button {} {
- label {Browse...}
- callback {if (v == LOAD) {
+ tooltip {The inactive image for the widget.} xywh {95 90 200 20} labelfont 1 labelsize 11 textsize 11 resizable
+ }
+ Fl_Button {} {
+ label {Browse...}
+ callback {if (v == LOAD) {
if (current_widget->is_widget() && !current_widget->is_a(Type::Window))
o->activate();
else
@@ -586,183 +602,183 @@ Use Ctrl-J for newlines.} xywh {95 40 190 20} labelfont 1 labelsize 11 when 15 t
if (mod) Fluid.proj.set_modflag(1);
}
}}
- tooltip {Click to choose the inactive image.} xywh {295 90 89 20} labelsize 11
- }
- }
- Fl_Group wp_gui_alignment {
- label {Alignment:}
- callback propagate_load open
- xywh {95 115 312 20} labelfont 1 labelsize 11 align 4
- } {
- Fl_Button {} {
- label Clip
- user_data {(fl_intptr_t)FL_ALIGN_CLIP}
- callback align_cb
- tooltip {Clip the label to the inside of the widget.} xywh {95 115 30 20} type Toggle selection_color 8 labelsize 11 align 16
- }
- Fl_Button {} {
- label Wrap
- user_data {(fl_intptr_t)FL_ALIGN_WRAP}
- callback align_cb
- tooltip {Wrap the label text.} xywh {130 115 38 20} type Toggle selection_color 8 labelsize 11
- }
- Fl_Button {} {
- label {@-1<-}
- user_data {(fl_intptr_t)FL_ALIGN_LEFT}
- callback align_cb
- tooltip {Left-align the label.} xywh {278 115 20 20} type Toggle selection_color 8 labelsize 11 labelcolor 8 hide
- }
- Fl_Button {} {
- label {@-1->}
- user_data {(fl_intptr_t)FL_ALIGN_RIGHT}
- callback align_cb
- tooltip {Right-align the label.} xywh {303 115 20 20} type Toggle selection_color 8 labelsize 11 labelcolor 8 hide
- }
- Fl_Button {} {
- label {@-18}
- user_data {(fl_intptr_t)FL_ALIGN_TOP}
- callback align_cb
- tooltip {Top-align the label.} xywh {328 115 20 20} type Toggle selection_color 8 labelsize 11 labelcolor 8 hide
- }
- Fl_Button {} {
- label {@-12}
- user_data {(fl_intptr_t)FL_ALIGN_BOTTOM}
- callback align_cb
- tooltip {Bottom-align the label.} xywh {353 115 20 20} type Toggle selection_color 8 labelsize 11 labelcolor 8 hide
- }
- Fl_Choice {} {
- callback align_text_image_cb open
- xywh {172 115 116 20} down_box BORDER_BOX labelsize 11 textsize 11
- } {
- MenuItem {} {
- label { Image Alignment }
- user_data {(fl_intptr_t)-1} selected
- xywh {145 145 100 20} labelfont 1 labelsize 10 headline
- }
- MenuItem {} {
- label {image over text}
- user_data {(fl_intptr_t)FL_ALIGN_IMAGE_OVER_TEXT}
- xywh {25 25 100 20} labelsize 9
- }
- MenuItem {} {
- label {text over image}
- user_data {(fl_intptr_t)FL_ALIGN_TEXT_OVER_IMAGE}
- xywh {15 15 100 20} labelsize 9
- }
- MenuItem {} {
- label {text next to image}
- user_data {(fl_intptr_t)FL_ALIGN_TEXT_NEXT_TO_IMAGE}
- xywh {35 35 100 20} labelsize 9
- }
- MenuItem {} {
- label {image next to text}
- user_data {(fl_intptr_t)FL_ALIGN_IMAGE_NEXT_TO_TEXT}
- xywh {45 45 100 20} labelsize 9
- }
- MenuItem {} {
- label {image is backdrop}
- user_data {(fl_intptr_t)FL_ALIGN_IMAGE_BACKDROP}
- xywh {55 55 100 20} labelsize 9
+ tooltip {Click to choose the inactive image.} xywh {295 90 89 20} labelsize 11
}
}
- Fl_Choice {} {
- callback align_position_cb open
- xywh {293 115 86 20} down_box BORDER_BOX labelsize 11 textsize 11
+ Fl_Group wp_gui_alignment {
+ label {Alignment:}
+ callback propagate_load open
+ xywh {95 115 312 20} labelfont 1 labelsize 11 align 4
} {
- MenuItem {} {
- label { Inside && Outside }
- user_data {(fl_intptr_t)-1}
- xywh {135 135 100 20} labelfont 1 labelsize 10 headline
- }
- MenuItem {} {
- label {top left}
- user_data {(fl_intptr_t)FL_ALIGN_TOP_LEFT}
- xywh {45 45 100 20} labelsize 9
- }
- MenuItem {} {
- label top
- user_data {(fl_intptr_t)FL_ALIGN_TOP}
- xywh {55 55 100 20} labelsize 9
+ Fl_Button {} {
+ label Clip
+ user_data {(fl_intptr_t)FL_ALIGN_CLIP}
+ callback align_cb
+ tooltip {Clip the label to the inside of the widget.} xywh {95 115 30 20} type Toggle selection_color 8 labelsize 11 align 16
}
- MenuItem {} {
- label {top right}
- user_data {(fl_intptr_t)FL_ALIGN_TOP_RIGHT}
- xywh {65 65 100 20} labelsize 9
+ Fl_Button {} {
+ label Wrap
+ user_data {(fl_intptr_t)FL_ALIGN_WRAP}
+ callback align_cb
+ tooltip {Wrap the label text.} xywh {130 115 38 20} type Toggle selection_color 8 labelsize 11
}
- MenuItem {} {
- label left
+ Fl_Button {} {
+ label {@-1<-}
user_data {(fl_intptr_t)FL_ALIGN_LEFT}
- xywh {75 75 100 20} labelsize 9
- }
- MenuItem {} {
- label center
- user_data {(fl_intptr_t)FL_ALIGN_CENTER}
- xywh {35 35 100 20} labelsize 9
+ callback align_cb
+ tooltip {Left-align the label.} xywh {278 115 20 20} type Toggle selection_color 8 labelsize 11 labelcolor 8 hide
}
- MenuItem {} {
- label right
+ Fl_Button {} {
+ label {@-1->}
user_data {(fl_intptr_t)FL_ALIGN_RIGHT}
- xywh {85 85 100 20} labelsize 9
+ callback align_cb
+ tooltip {Right-align the label.} xywh {303 115 20 20} type Toggle selection_color 8 labelsize 11 labelcolor 8 hide
}
- MenuItem {} {
- label {bottom left}
- user_data {(fl_intptr_t)FL_ALIGN_BOTTOM_LEFT}
- xywh {95 95 100 20} labelsize 9
+ Fl_Button {} {
+ label {@-18}
+ user_data {(fl_intptr_t)FL_ALIGN_TOP}
+ callback align_cb
+ tooltip {Top-align the label.} xywh {328 115 20 20} type Toggle selection_color 8 labelsize 11 labelcolor 8 hide
}
- MenuItem {} {
- label bottom
+ Fl_Button {} {
+ label {@-12}
user_data {(fl_intptr_t)FL_ALIGN_BOTTOM}
- xywh {105 105 100 20} labelsize 9
- }
- MenuItem {} {
- label {bottom right}
- user_data {(fl_intptr_t)FL_ALIGN_BOTTOM_RIGHT}
- xywh {115 115 100 20} labelsize 9
- }
- MenuItem {} {
- label { Outside Alignment }
- user_data {(fl_intptr_t)-1}
- xywh {125 125 100 20} labelfont 1 labelsize 10 headline
- }
- MenuItem {} {
- label {left top}
- user_data {(fl_intptr_t)FL_ALIGN_LEFT_TOP}
- xywh {135 135 100 20} labelsize 9
- }
- MenuItem {} {
- label {right top}
- user_data {(fl_intptr_t)FL_ALIGN_RIGHT_TOP}
- xywh {145 145 100 20} labelsize 9
- }
- MenuItem {} {
- label {left bottom}
- user_data {(fl_intptr_t)FL_ALIGN_LEFT_BOTTOM}
- xywh {155 155 100 20} labelsize 9
- }
- MenuItem {} {
- label {right bottom}
- user_data {(fl_intptr_t)FL_ALIGN_RIGHT_BOTTOM}
- xywh {45 45 100 20} labelsize 9
+ callback align_cb
+ tooltip {Bottom-align the label.} xywh {353 115 20 20} type Toggle selection_color 8 labelsize 11 labelcolor 8 hide
+ }
+ Fl_Choice {} {
+ callback align_text_image_cb
+ xywh {172 115 116 20} down_box BORDER_BOX labelsize 11 textsize 11
+ } {
+ MenuItem {} {
+ label { Image Alignment }
+ user_data {(fl_intptr_t)-1}
+ xywh {145 145 100 20} labelfont 1 labelsize 10
+ }
+ MenuItem {} {
+ label {image over text}
+ user_data {(fl_intptr_t)FL_ALIGN_IMAGE_OVER_TEXT}
+ xywh {25 25 100 20} labelsize 9
+ }
+ MenuItem {} {
+ label {text over image}
+ user_data {(fl_intptr_t)FL_ALIGN_TEXT_OVER_IMAGE}
+ xywh {15 15 100 20} labelsize 9
+ }
+ MenuItem {} {
+ label {text next to image}
+ user_data {(fl_intptr_t)FL_ALIGN_TEXT_NEXT_TO_IMAGE}
+ xywh {35 35 100 20} labelsize 9
+ }
+ MenuItem {} {
+ label {image next to text}
+ user_data {(fl_intptr_t)FL_ALIGN_IMAGE_NEXT_TO_TEXT}
+ xywh {45 45 100 20} labelsize 9
+ }
+ MenuItem {} {
+ label {image is backdrop}
+ user_data {(fl_intptr_t)FL_ALIGN_IMAGE_BACKDROP}
+ xywh {55 55 100 20} labelsize 9
+ }
+ }
+ Fl_Choice {} {
+ callback align_position_cb
+ xywh {293 115 86 20} down_box BORDER_BOX labelsize 11 textsize 11
+ } {
+ MenuItem {} {
+ label { Inside && Outside }
+ user_data {(fl_intptr_t)-1}
+ xywh {135 135 100 20} labelfont 1 labelsize 10
+ }
+ MenuItem {} {
+ label {top left}
+ user_data {(fl_intptr_t)FL_ALIGN_TOP_LEFT}
+ xywh {45 45 100 20} labelsize 9
+ }
+ MenuItem {} {
+ label top
+ user_data {(fl_intptr_t)FL_ALIGN_TOP}
+ xywh {55 55 100 20} labelsize 9
+ }
+ MenuItem {} {
+ label {top right}
+ user_data {(fl_intptr_t)FL_ALIGN_TOP_RIGHT}
+ xywh {65 65 100 20} labelsize 9
+ }
+ MenuItem {} {
+ label left
+ user_data {(fl_intptr_t)FL_ALIGN_LEFT}
+ xywh {75 75 100 20} labelsize 9
+ }
+ MenuItem {} {
+ label center
+ user_data {(fl_intptr_t)FL_ALIGN_CENTER}
+ xywh {35 35 100 20} labelsize 9
+ }
+ MenuItem {} {
+ label right
+ user_data {(fl_intptr_t)FL_ALIGN_RIGHT}
+ xywh {85 85 100 20} labelsize 9
+ }
+ MenuItem {} {
+ label {bottom left}
+ user_data {(fl_intptr_t)FL_ALIGN_BOTTOM_LEFT}
+ xywh {95 95 100 20} labelsize 9
+ }
+ MenuItem {} {
+ label bottom
+ user_data {(fl_intptr_t)FL_ALIGN_BOTTOM}
+ xywh {105 105 100 20} labelsize 9
+ }
+ MenuItem {} {
+ label {bottom right}
+ user_data {(fl_intptr_t)FL_ALIGN_BOTTOM_RIGHT}
+ xywh {115 115 100 20} labelsize 9
+ }
+ MenuItem {} {
+ label { Outside Alignment }
+ user_data {(fl_intptr_t)-1}
+ xywh {125 125 100 20} labelfont 1 labelsize 10
+ }
+ MenuItem {} {
+ label {left top}
+ user_data {(fl_intptr_t)FL_ALIGN_LEFT_TOP}
+ xywh {135 135 100 20} labelsize 9
+ }
+ MenuItem {} {
+ label {right top}
+ user_data {(fl_intptr_t)FL_ALIGN_RIGHT_TOP}
+ xywh {145 145 100 20} labelsize 9
+ }
+ MenuItem {} {
+ label {left bottom}
+ user_data {(fl_intptr_t)FL_ALIGN_LEFT_BOTTOM}
+ xywh {155 155 100 20} labelsize 9
+ }
+ MenuItem {} {
+ label {right bottom}
+ user_data {(fl_intptr_t)FL_ALIGN_RIGHT_BOTTOM}
+ xywh {45 45 100 20} labelsize 9
+ }
+ }
+ Fl_Button {} {
+ label {@-3square}
+ user_data {(fl_intptr_t)FL_ALIGN_INSIDE}
+ callback align_cb
+ tooltip {Show the label inside the widget.} xywh {384 115 20 20} type Toggle selection_color 8 labelsize 11 labelcolor 8
+ }
+ Fl_Box {} {
+ xywh {406 115 1 20} labelsize 11 resizable
}
}
- Fl_Button {} {
- label {@-3square}
- user_data {(fl_intptr_t)FL_ALIGN_INSIDE}
- callback align_cb
- tooltip {Show the label inside the widget.} xywh {384 115 20 20} type Toggle selection_color 8 labelsize 11 labelcolor 8
- }
- Fl_Box {} {
- xywh {406 115 1 20} labelsize 11 resizable
- }
- }
- Fl_Group {} {
- label {Position:}
- callback position_group_cb open
- xywh {95 150 314 20} labelfont 1 labelsize 11 align 4
- } {
- Fl_Input widget_x_input {
- label {X:}
- callback {if (v == LOAD) {
+ Fl_Group {} {
+ label {Position:}
+ callback position_group_cb open
+ xywh {95 150 314 20} labelfont 1 labelsize 11 align 4
+ } {
+ Fl_Input widget_x_input {
+ label {X:}
+ callback {if (v == LOAD) {
if (current_widget->is_true_widget()) {
o->value(((Widget_Node *)current_widget)->o->x());
o->activate();
@@ -789,14 +805,14 @@ Use Ctrl-J for newlines.} xywh {95 40 190 20} labelfont 1 labelsize 11 when 15 t
// calculation. Keep the formula if it was not used.
}
}}
- tooltip {The X position of the widget as a number or formula.
+ 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 {fld::widget::Formula_Input}
- }
- Fl_Input widget_y_input {
- label {Y:}
- callback {if (v == LOAD) {
+ class {fld::widget::Formula_Input}
+ }
+ Fl_Input widget_y_input {
+ label {Y:}
+ callback {if (v == LOAD) {
if (current_widget->is_true_widget()) {
o->value(((Widget_Node *)current_widget)->o->y());
o->activate();
@@ -822,14 +838,14 @@ x, px, sx, cx, and i} xywh {95 150 55 20} labelsize 11 align 5 textsize 11
o->value(v);
}
}}
- tooltip {The Y position of the widget as a number or formula.
+ 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 {fld::widget::Formula_Input}
- }
- Fl_Input widget_w_input {
- label {Width:}
- callback {if (v == LOAD) {
+ class {fld::widget::Formula_Input}
+ }
+ Fl_Input widget_w_input {
+ label {Width:}
+ callback {if (v == LOAD) {
if (current_widget->is_true_widget()) {
o->value(((Widget_Node *)current_widget)->o->w());
o->activate();
@@ -855,14 +871,14 @@ y, py, sy, cy, and i} xywh {155 150 55 20} labelsize 11 align 5 textsize 11
o->value(v);
}
}}
- tooltip {The width of the widget as a number or formula.
+ 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 {fld::widget::Formula_Input}
- }
- Fl_Input widget_h_input {
- label {Height:}
- callback {if (v == LOAD) {
+ class {fld::widget::Formula_Input}
+ }
+ Fl_Input widget_h_input {
+ label {Height:}
+ callback {if (v == LOAD) {
if (current_widget->is_true_widget()) {
o->value(((Widget_Node *)current_widget)->o->h());
o->activate();
@@ -888,14 +904,14 @@ w, pw, sw, cw, and i} xywh {215 150 55 20} labelsize 11 align 5 textsize 11
o->value(v);
}
}}
- tooltip {The height of the widget as a number or formula.
+ 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 {fld::widget::Formula_Input}
- }
- Fl_Choice {} {
- label {Children:}
- callback {if (v == LOAD) {
+ class {fld::widget::Formula_Input}
+ }
+ Fl_Choice {} {
+ label {Children:}
+ callback {if (v == LOAD) {
if (current_widget->is_a(Type::Widget_Class)) {
o->show();
o->value(((Widget_Class_Node *)current_widget)->wc_relative);
@@ -914,28 +930,28 @@ h, ph, sh, ch, and i} xywh {275 150 55 20} labelsize 11 align 5 textsize 11
}
if (mod) Fluid.proj.set_modflag(1);
}}
- tooltip {When instantiating a widget class, the children can either be fixed in their original position, automatically be repositioned, or both repsositioned and resized to fit the container.} xywh {335 150 64 20} down_box BORDER_BOX labelsize 11 align 5 textsize 11
- } {
- MenuItem {} {
- label Fixed
- xywh {0 0 31 20} labelsize 11
+ tooltip {When instantiating a widget class, the children can either be fixed in their original position, automatically be repositioned, or both repsositioned and resized to fit the container.} xywh {335 150 64 20} down_box BORDER_BOX labelsize 11 align 5 textsize 11
+ } {
+ MenuItem {} {
+ label Fixed
+ xywh {0 0 31 20} labelsize 11
+ }
+ MenuItem {} {
+ label Reposition
+ xywh {0 0 31 20} labelsize 11
+ }
+ MenuItem {} {
+ label Resize
+ xywh {0 0 31 20} labelsize 11
+ }
}
- MenuItem {} {
- label Reposition
- xywh {0 0 31 20} labelsize 11
+ Fl_Box {} {
+ xywh {399 150 1 20} hide resizable
}
- MenuItem {} {
- label Resize
- xywh {0 0 31 20} labelsize 11
- }
- }
- Fl_Box {} {
- xywh {399 150 1 20} hide resizable
}
- }
- Fl_Group wp_gui_flexp {
- label {Flex Parent:}
- callback {if (v == LOAD) {
+ Fl_Group wp_gui_flexp {
+ label {Flex Parent:}
+ callback {if (v == LOAD) {
if (Flex_Node::parent_is_flex(current_widget)) {
o->show();
propagate_load(o, v);
@@ -943,12 +959,12 @@ h, ph, sh, ch, and i} xywh {275 150 55 20} labelsize 11 align 5 textsize 11
o->hide();
}
}}
- comment {This group is only visible if the parent is an Fl_Flex widget}
- xywh {95 150 314 20} labelfont 1 labelsize 11 align 4 hide
- } {
- Fl_Value_Input widget_flex_size {
- label {Size:}
- callback {if (v == LOAD) {
+ comment {This group is only visible if the parent is an Fl_Flex widget}
+ xywh {95 150 314 20} labelfont 1 labelsize 11 align 4 hide
+ } {
+ Fl_Value_Input widget_flex_size {
+ label {Size:}
+ callback {if (v == LOAD) {
if (Flex_Node::parent_is_flex(current_widget)) {
o->value(Flex_Node::size(current_widget));
}
@@ -980,11 +996,11 @@ h, ph, sh, ch, and i} xywh {275 150 55 20} labelsize 11 align 5 textsize 11
}
if (mod) Fluid.proj.set_modflag(1);
}}
- tooltip {Fixed Width or Height for a horizontal or vertical Fl_Flex Parent.} xywh {95 150 55 20} labelsize 11 align 5 textsize 11
- }
- Fl_Check_Button widget_flex_fixed {
- label fixed
- callback {if (v == LOAD) {
+ tooltip {Fixed Width or Height for a horizontal or vertical Fl_Flex Parent.} xywh {95 150 55 20} labelsize 11 align 5 textsize 11
+ }
+ Fl_Check_Button widget_flex_fixed {
+ label fixed
+ callback {if (v == LOAD) {
if (Flex_Node::parent_is_flex(current_widget)) {
o->value(Flex_Node::is_fixed(current_widget));
}
@@ -1013,15 +1029,15 @@ h, ph, sh, ch, and i} xywh {275 150 55 20} labelsize 11 align 5 textsize 11
}
if (mod) Fluid.proj.set_modflag(1);
}}
- tooltip {If checked, the size of the widget stays fixed.} xywh {155 150 55 20} down_box DOWN_BOX labelsize 11
- }
- Fl_Box {} {
- xywh {398 150 1 20} resizable
+ tooltip {If checked, the size of the widget stays fixed.} xywh {155 150 55 20} down_box DOWN_BOX labelsize 11
+ }
+ Fl_Box {} {
+ xywh {398 150 1 20} resizable
+ }
}
- }
- Fl_Group wp_gui_values {
- label {Values:}
- callback {if (v == LOAD) {
+ Fl_Group wp_gui_values {
+ label {Values:}
+ callback {if (v == LOAD) {
if ( current_widget->is_a(Type::Flex)
|| current_widget->is_a(Type::Grid)
|| current_widget->is_a(Type::Window))
@@ -1031,12 +1047,12 @@ h, ph, sh, ch, and i} xywh {275 150 55 20} labelsize 11 align 5 textsize 11
o->show();
propagate_load(o, v);
}
-}} open
- xywh {95 185 300 20} labelfont 1 labelsize 11 align 4
- } {
- Fl_Value_Input {} {
- label {Size:}
- callback {if (v == LOAD) {
+}}
+ xywh {95 185 300 20} labelfont 1 labelsize 11 align 4
+ } {
+ Fl_Value_Input {} {
+ label {Size:}
+ callback {if (v == LOAD) {
if (!current_widget->is_a(Type::Slider)) {o->deactivate(); return;}
o->activate();
o->value(((Fl_Slider*)(current_widget->o))->slider_size());
@@ -1053,11 +1069,11 @@ h, ph, sh, ch, and i} xywh {275 150 55 20} labelsize 11 align 5 textsize 11
}
if (mod) Fluid.proj.set_modflag(1);
}}
- tooltip {The size of the slider.} xywh {95 185 55 20} labelsize 11 align 5 textsize 11
- }
- Fl_Value_Input {} {
- label {Minimum:}
- callback {if (v == LOAD) {
+ tooltip {The size of the slider.} xywh {95 185 55 20} labelsize 11 align 5 textsize 11
+ }
+ Fl_Value_Input {} {
+ label {Minimum:}
+ callback {if (v == LOAD) {
if (current_widget->is_a(Type::Valuator_)) {
o->activate();
o->value(((Fl_Valuator*)(current_widget->o))->minimum());
@@ -1085,11 +1101,11 @@ h, ph, sh, ch, and i} xywh {275 150 55 20} labelsize 11 align 5 textsize 11
}
if (mod) Fluid.proj.set_modflag(1);
}}
- tooltip {The minimum value of the widget.} xywh {155 185 55 20} labelsize 11 align 5 textsize 11
- }
- Fl_Value_Input {} {
- label {Maximum:}
- callback {if (v == LOAD) {
+ tooltip {The minimum value of the widget.} xywh {155 185 55 20} labelsize 11 align 5 textsize 11
+ }
+ Fl_Value_Input {} {
+ label {Maximum:}
+ callback {if (v == LOAD) {
if (current_widget->is_a(Type::Valuator_)) {
o->activate();
o->value(((Fl_Valuator*)(current_widget->o))->maximum());
@@ -1117,11 +1133,11 @@ h, ph, sh, ch, and i} xywh {275 150 55 20} labelsize 11 align 5 textsize 11
}
if (mod) Fluid.proj.set_modflag(1);
}}
- tooltip {The maximum value of the widget.} xywh {215 185 55 20} labelsize 11 align 5 value 1 textsize 11
- }
- Fl_Value_Input {} {
- label {Step:}
- callback {if (v == LOAD) {
+ tooltip {The maximum value of the widget.} xywh {215 185 55 20} labelsize 11 align 5 value 1 textsize 11
+ }
+ Fl_Value_Input {} {
+ label {Step:}
+ callback {if (v == LOAD) {
if (current_widget->is_a(Type::Valuator_)) {
o->activate();
o->value(((Fl_Valuator*)(current_widget->o))->step());
@@ -1149,11 +1165,11 @@ h, ph, sh, ch, and i} xywh {275 150 55 20} labelsize 11 align 5 textsize 11
}
if (mod) Fluid.proj.set_modflag(1);
}}
- tooltip {The resolution of the widget value.} xywh {275 185 55 20} labelsize 11 align 5 textsize 11
- }
- Fl_Value_Input {} {
- label {Value:}
- callback {if (v == LOAD) {
+ tooltip {The resolution of the widget value.} xywh {275 185 55 20} labelsize 11 align 5 textsize 11
+ }
+ Fl_Value_Input {} {
+ label {Value:}
+ callback {if (v == LOAD) {
if (current_widget->is_a(Type::Valuator_)) {
o->activate();
o->value(((Fl_Valuator*)(current_widget->o))->value());
@@ -1184,15 +1200,15 @@ h, ph, sh, ch, and i} xywh {275 150 55 20} labelsize 11 align 5 textsize 11
}
if (mod) Fluid.proj.set_modflag(1);
}}
- tooltip {The current widget value.} xywh {335 185 55 20} labelsize 11 align 5 textsize 11
- }
- Fl_Box {} {
- xywh {395 185 0 20} resizable
+ tooltip {The current widget value.} xywh {335 185 55 20} labelsize 11 align 5 textsize 11
+ }
+ Fl_Box {} {
+ xywh {395 185 0 20} resizable
+ }
}
- }
- Fl_Group wp_gui_margins {
- label {Margins:}
- callback {if (v == LOAD) {
+ Fl_Group wp_gui_margins {
+ label {Margins:}
+ callback {if (v == LOAD) {
if (current_widget->is_a(Type::Flex)) {
o->show();
propagate_load(o, v);
@@ -1200,12 +1216,12 @@ h, ph, sh, ch, and i} xywh {275 150 55 20} labelsize 11 align 5 textsize 11
o->hide();
}
}}
- comment {This group is only visible for Fl_Flex widgets}
- xywh {95 185 300 20} labelfont 1 labelsize 11 align 4 hide
- } {
- Fl_Value_Input {} {
- label {Left:}
- callback {flex_margin_cb(o, v,
+ comment {This group is only visible for Fl_Flex widgets}
+ xywh {95 185 300 20} labelfont 1 labelsize 11 align 4 hide
+ } {
+ Fl_Value_Input {} {
+ label {Left:}
+ callback {flex_margin_cb(o, v,
[](Fl_Flex *w, Fl_Value_Input* i) -> void
{
int v;
@@ -1224,11 +1240,11 @@ h, ph, sh, ch, and i} xywh {275 150 55 20} labelsize 11 align 5 textsize 11
}
}
);}
- tooltip {Left margin in group.} xywh {95 185 55 20} labelsize 11 align 5 textsize 11
- }
- Fl_Value_Input {} {
- label {Top:}
- callback {flex_margin_cb(o, v,
+ tooltip {Left margin in group.} xywh {95 185 55 20} labelsize 11 align 5 textsize 11
+ }
+ Fl_Value_Input {} {
+ label {Top:}
+ callback {flex_margin_cb(o, v,
[](Fl_Flex *w, Fl_Value_Input* i) -> void
{
int v;
@@ -1247,11 +1263,11 @@ h, ph, sh, ch, and i} xywh {275 150 55 20} labelsize 11 align 5 textsize 11
}
}
);}
- tooltip {Top margin in group.} xywh {155 185 55 20} labelsize 11 align 5 textsize 11
- }
- Fl_Value_Input {} {
- label {Right:}
- callback {flex_margin_cb(o, v,
+ tooltip {Top margin in group.} xywh {155 185 55 20} labelsize 11 align 5 textsize 11
+ }
+ Fl_Value_Input {} {
+ label {Right:}
+ callback {flex_margin_cb(o, v,
[](Fl_Flex *w, Fl_Value_Input* i) -> void
{
int v;
@@ -1270,11 +1286,11 @@ h, ph, sh, ch, and i} xywh {275 150 55 20} labelsize 11 align 5 textsize 11
}
}
);}
- tooltip {Right margin in group.} xywh {215 185 55 20} labelsize 11 align 5 textsize 11
- }
- Fl_Value_Input {} {
- label {Bottom:}
- callback {flex_margin_cb(o, v,
+ tooltip {Right margin in group.} xywh {215 185 55 20} labelsize 11 align 5 textsize 11
+ }
+ Fl_Value_Input {} {
+ label {Bottom:}
+ callback {flex_margin_cb(o, v,
[](Fl_Flex *w, Fl_Value_Input* i) -> void
{
int v;
@@ -1293,11 +1309,11 @@ h, ph, sh, ch, and i} xywh {275 150 55 20} labelsize 11 align 5 textsize 11
}
}
);}
- tooltip {Bottom margin in group.} xywh {275 185 55 20} labelsize 11 align 5 textsize 11
- }
- Fl_Value_Input {} {
- label {Gap:}
- callback {flex_margin_cb(o, v,
+ tooltip {Bottom margin in group.} xywh {275 185 55 20} labelsize 11 align 5 textsize 11
+ }
+ Fl_Value_Input {} {
+ label {Gap:}
+ callback {flex_margin_cb(o, v,
[](Fl_Flex *w, Fl_Value_Input* o) -> void
{
int v = w->gap();
@@ -1314,15 +1330,15 @@ h, ph, sh, ch, and i} xywh {275 150 55 20} labelsize 11 align 5 textsize 11
}
}
);}
- tooltip {Gap between children.} xywh {335 185 55 20} labelsize 11 align 5 textsize 11
- }
- Fl_Box {} {
- xywh {395 185 0 20} resizable
+ tooltip {Gap between children.} xywh {335 185 55 20} labelsize 11 align 5 textsize 11
+ }
+ Fl_Box {} {
+ xywh {395 185 0 20} resizable
+ }
}
- }
- Fl_Group wp_gui_sizerange {
- label {Size Range:}
- callback {if (v == LOAD) {
+ Fl_Group wp_gui_sizerange {
+ label {Size Range:}
+ callback {if (v == LOAD) {
if (current_widget->is_a(Type::Window)) {
o->show();
propagate_load(o, v);
@@ -1330,11 +1346,11 @@ h, ph, sh, ch, and i} xywh {275 150 55 20} labelsize 11 align 5 textsize 11
o->hide();
}
}}
- xywh {95 185 300 20} labelfont 1 labelsize 11 align 4 hide
- } {
- Fl_Value_Input {} {
- label {Minimum Size:}
- callback {if (v == LOAD) {
+ xywh {95 185 300 20} labelfont 1 labelsize 11 align 4 hide
+ } {
+ Fl_Value_Input {} {
+ label {Minimum Size:}
+ callback {if (v == LOAD) {
if (!current_widget->is_a(Type::Window)) return;
o->value(((Window_Node*)current_widget)->sr_min_w);
} else {
@@ -1349,10 +1365,10 @@ h, ph, sh, ch, and i} xywh {275 150 55 20} labelsize 11 align 5 textsize 11
}
if (mod) Fluid.proj.set_modflag(1);
}}
- tooltip {The size of the slider.} xywh {95 185 55 20} labelsize 11 align 5 maximum 2048 step 1 textsize 11
- }
- Fl_Value_Input {} {
- callback {if (v == LOAD) {
+ tooltip {The size of the slider.} xywh {95 185 55 20} labelsize 11 align 5 maximum 2048 step 1 textsize 11
+ }
+ Fl_Value_Input {} {
+ callback {if (v == LOAD) {
if (!current_widget->is_a(Type::Window)) return;
o->value(((Window_Node*)current_widget)->sr_min_h);
} else {
@@ -1367,11 +1383,11 @@ h, ph, sh, ch, and i} xywh {275 150 55 20} labelsize 11 align 5 textsize 11
}
if (mod) Fluid.proj.set_modflag(1);
}}
- tooltip {The minimum value of the widget.} xywh {155 185 55 20} labelsize 11 align 5 maximum 2048 step 1 textsize 11
- }
- Fl_Button {} {
- label set
- callback {if (v == LOAD) {
+ tooltip {The minimum value of the widget.} xywh {155 185 55 20} labelsize 11 align 5 maximum 2048 step 1 textsize 11
+ }
+ Fl_Button {} {
+ label set
+ callback {if (v == LOAD) {
} else {
int mod = 0;
Fluid.proj.undo.checkpoint();
@@ -1386,11 +1402,11 @@ h, ph, sh, ch, and i} xywh {275 150 55 20} labelsize 11 align 5 textsize 11
propagate_load(the_panel, LOAD);
if (mod) Fluid.proj.set_modflag(1);
}}
- xywh {215 185 25 20} labelsize 11
- }
- Fl_Value_Input {} {
- label {Maximum Size:}
- callback {if (v == LOAD) {
+ xywh {215 185 25 20} labelsize 11
+ }
+ Fl_Value_Input {} {
+ label {Maximum Size:}
+ callback {if (v == LOAD) {
if (!current_widget->is_a(Type::Window)) return;
o->value(((Window_Node*)current_widget)->sr_max_w);
} else {
@@ -1405,10 +1421,10 @@ h, ph, sh, ch, and i} xywh {275 150 55 20} labelsize 11 align 5 textsize 11
}
if (mod) Fluid.proj.set_modflag(1);
}}
- tooltip {The maximum value of the widget.} xywh {245 185 55 20} labelsize 11 align 5 maximum 2048 step 1 textsize 11
- }
- Fl_Value_Input {} {
- callback {if (v == LOAD) {
+ tooltip {The maximum value of the widget.} xywh {245 185 55 20} labelsize 11 align 5 maximum 2048 step 1 textsize 11
+ }
+ Fl_Value_Input {} {
+ callback {if (v == LOAD) {
if (!current_widget->is_a(Type::Window)) return;
o->value(((Window_Node*)current_widget)->sr_max_h);
} else {
@@ -1423,11 +1439,11 @@ h, ph, sh, ch, and i} xywh {275 150 55 20} labelsize 11 align 5 textsize 11
}
if (mod) Fluid.proj.set_modflag(1);
}}
- tooltip {The resolution of the widget value.} xywh {305 185 55 20} labelsize 11 align 5 maximum 2048 step 1 textsize 11
- }
- Fl_Button {} {
- label set
- callback {if (v == LOAD) {
+ tooltip {The resolution of the widget value.} xywh {305 185 55 20} labelsize 11 align 5 maximum 2048 step 1 textsize 11
+ }
+ Fl_Button {} {
+ label set
+ callback {if (v == LOAD) {
} else {
int mod = 0;
Fluid.proj.undo.checkpoint();
@@ -1442,19 +1458,19 @@ h, ph, sh, ch, and i} xywh {275 150 55 20} labelsize 11 align 5 textsize 11
propagate_load(the_panel, LOAD);
if (mod) Fluid.proj.set_modflag(1);
}}
- xywh {365 185 25 20} labelsize 11
- }
- Fl_Box {} {
- xywh {395 185 0 20} resizable
+ xywh {365 185 25 20} labelsize 11
+ }
+ Fl_Box {} {
+ xywh {395 185 0 20} resizable
+ }
}
- }
- Fl_Group {} {
- label {Shortcut:}
- callback propagate_load
- xywh {95 210 310 20} labelfont 1 labelsize 11 align 4
- } {
- Fl_Button wp_gui_shortcut {
- callback {if (v == LOAD) {
+ Fl_Group {} {
+ label {Shortcut:}
+ callback propagate_load
+ xywh {95 210 310 20} labelfont 1 labelsize 11 align 4
+ } {
+ Fl_Button wp_gui_shortcut {
+ callback {if (v == LOAD) {
if (current_widget->is_button())
o->value( ((Fl_Button*)(current_widget->o))->shortcut() );
else if (current_widget->is_a(Type::Input))
@@ -1495,21 +1511,21 @@ h, ph, sh, ch, and i} xywh {275 150 55 20} labelsize 11 align 5 textsize 11
}
if (mod) Fluid.proj.set_modflag(1);
}}
- comment {This is a special button that grabs keystrokes directly}
- tooltip {The shortcut key for the widget.
+ comment {This is a special button that grabs keystrokes directly}
+ tooltip {The shortcut key for the widget.
Use 'Backspace' key to clear.} xywh {95 210 310 20} box DOWN_BOX color 7 selection_color 12 labelsize 11 when 1
- code0 {\#include <FL/Fl_Shortcut_Button.H>}
- class Fl_Shortcut_Button
+ code0 {\#include <FL/Fl_Shortcut_Button.H>}
+ class Fl_Shortcut_Button
+ }
}
- }
- Fl_Group wp_gui_xclass {
- label {X Class:}
- callback propagate_load
- xywh {95 235 300 20} labelfont 1 labelsize 11 align 4
- } {
- Fl_Input {} {
- label {:}
- callback {if (v == LOAD) {
+ Fl_Group wp_gui_xclass {
+ label {X Class:}
+ callback propagate_load
+ xywh {95 235 300 20} labelfont 1 labelsize 11 align 4
+ } {
+ Fl_Input {} {
+ label {:}
+ callback {if (v == LOAD) {
if (current_widget->is_a(Type::Window)) {
o->show();
o->parent()->show();
@@ -1531,11 +1547,11 @@ Use 'Backspace' key to clear.} xywh {95 210 310 20} box DOWN_BOX color 7 selecti
}
if (mod) Fluid.proj.set_modflag(1);
}}
- tooltip {The X resource class.} xywh {95 235 95 20} labelfont 1 labelsize 11 textsize 11 resizable
- }
- Fl_Light_Button {} {
- label Border
- callback {if (v == LOAD) {
+ tooltip {The X resource class.} xywh {95 235 95 20} labelfont 1 labelsize 11 textsize 11 resizable
+ }
+ Fl_Light_Button {} {
+ label Border
+ callback {if (v == LOAD) {
if (!current_widget->is_a(Type::Window)) {o->hide(); return;}
o->show();
o->value(((Fl_Window*)(current_widget->o))->border());
@@ -1544,11 +1560,11 @@ Use 'Backspace' key to clear.} xywh {95 210 310 20} box DOWN_BOX color 7 selecti
((Fl_Window*)(current_widget->o))->border(o->value());
Fluid.proj.set_modflag(1);
}}
- tooltip {Add a border around the window.} xywh {195 235 60 20} selection_color 1 labelsize 11
- }
- Fl_Light_Button {} {
- label Modal
- callback {if (v == LOAD) {
+ tooltip {Add a border around the window.} xywh {195 235 60 20} selection_color 1 labelsize 11
+ }
+ Fl_Light_Button {} {
+ label Modal
+ callback {if (v == LOAD) {
if (!current_widget->is_a(Type::Window)) {o->hide(); return;}
o->show();
o->value(((Window_Node *)current_widget)->modal);
@@ -1557,11 +1573,11 @@ Use 'Backspace' key to clear.} xywh {95 210 310 20} box DOWN_BOX color 7 selecti
((Window_Node *)current_widget)->modal = o->value();
Fluid.proj.set_modflag(1);
}}
- tooltip {Make the window modal.} xywh {260 235 55 20} selection_color 1 labelsize 11
- }
- Fl_Light_Button {} {
- label Nonmodal
- callback {if (v == LOAD) {
+ tooltip {Make the window modal.} xywh {260 235 55 20} selection_color 1 labelsize 11
+ }
+ Fl_Light_Button {} {
+ label Nonmodal
+ callback {if (v == LOAD) {
if (!current_widget->is_a(Type::Window)) {o->hide(); return;}
o->show();
o->value(((Window_Node *)current_widget)->non_modal);
@@ -1570,17 +1586,17 @@ Use 'Backspace' key to clear.} xywh {95 210 310 20} box DOWN_BOX color 7 selecti
((Window_Node *)current_widget)->non_modal = o->value();
Fluid.proj.set_modflag(1);
}}
- tooltip {Make the window non-modal.} xywh {320 235 75 20} selection_color 1 labelsize 11 align 148
+ tooltip {Make the window non-modal.} xywh {320 235 75 20} selection_color 1 labelsize 11 align 148
+ }
}
- }
- Fl_Group wp_gui_attributes {
- label {Attributes:}
- callback propagate_load open
- xywh {95 260 305 20} labelfont 1 labelsize 11 align 4
- } {
- Fl_Light_Button {} {
- label Visible
- callback {if (v == LOAD) {
+ Fl_Group wp_gui_attributes {
+ label {Attributes:}
+ callback propagate_load
+ xywh {95 260 305 20} labelfont 1 labelsize 11 align 4
+ } {
+ Fl_Light_Button {} {
+ label Visible
+ callback {if (v == LOAD) {
o->value(current_widget->o->visible());
if (current_widget->is_a(Type::Window)) o->deactivate();
else o->activate();
@@ -1607,11 +1623,11 @@ Use 'Backspace' key to clear.} xywh {95 210 310 20} box DOWN_BOX color 7 selecti
redraw_browser();
}
}}
- tooltip {Show the widget.} xywh {95 260 60 20} selection_color 1 labelsize 11
- }
- Fl_Light_Button {} {
- label Active
- callback {if (v == LOAD) {
+ tooltip {Show the widget.} xywh {95 260 60 20} selection_color 1 labelsize 11
+ }
+ Fl_Light_Button {} {
+ label Active
+ callback {if (v == LOAD) {
o->value(current_widget->o->active());
if (current_widget->is_a(Type::Window)) o->deactivate();
else o->activate();
@@ -1628,30 +1644,34 @@ Use 'Backspace' key to clear.} xywh {95 210 310 20} box DOWN_BOX color 7 selecti
}
if (mod) Fluid.proj.set_modflag(1);
}}
- tooltip {Activate the widget.} xywh {160 260 60 20} selection_color 1 labelsize 11
- }
- Fl_Light_Button {} {
- label Resizable
- callback {if (v == LOAD) {
+ tooltip {Activate the widget.} xywh {160 260 60 20} selection_color 1 labelsize 11
+ }
+ Fl_Light_Button {} {
+ label Resizable
+ callback {if (v == LOAD) {
if (current_widget->is_a(Type::Menu_Item)) {
- o->hide();
+ o->hide();
return;
}
- if (numselected > 1) {o->deactivate(); return;}
o->show();
o->value(current_widget->resizable());
+ if (numselected > 1) {
+ o->deactivate();
+ return;
+ }
+ o->activate();
} else {
Fluid.proj.undo.checkpoint();
current_widget->resizable(o->value());
Fluid.proj.set_modflag(1);
}}
- tooltip {Make the widget resizable.} xywh {225 260 75 20} selection_color 1 labelsize 11 when 1
- }
- Fl_Light_Button {} {
- label Headline
- callback {if (v == LOAD) {
+ tooltip {Make the widget resizable.} xywh {225 260 75 20} selection_color 1 labelsize 11 when 1
+ }
+ Fl_Light_Button {} {
+ label Headline
+ callback {if (v == LOAD) {
if (!current_widget->is_a(Type::Menu_Item)) {
- o->hide();
+ o->hide();
return;
}
o->show();
@@ -1671,12 +1691,12 @@ Use 'Backspace' key to clear.} xywh {95 210 310 20} box DOWN_BOX color 7 selecti
}
if (mod) Fluid.proj.set_modflag(1);
}}
- tooltip {Make a menu item the headline of a menu
+ tooltip {Make a menu item the headline of a menu
unselectable, but not grayed out} xywh {225 260 75 20} selection_color 1 labelsize 11 when 1 hide
- }
- Fl_Light_Button {} {
- label Hotspot
- callback {if (v == LOAD) {
+ }
+ Fl_Light_Button {} {
+ label Hotspot
+ callback {if (v == LOAD) {
if (numselected > 1) {o->deactivate(); return;}
if (current_widget->is_a(Type::Menu_Item)) o->label("divider");
else o->label("hotspot");
@@ -1700,15 +1720,15 @@ unselectable, but not grayed out} xywh {225 260 75 20} selection_color 1 labelsi
}
Fluid.proj.set_modflag(1);
}}
- tooltip {Center the window under this widget.} xywh {305 260 70 20} selection_color 1 labelsize 11 when 1
- }
- Fl_Box {} {
- xywh {395 260 0 20} labelsize 11
+ tooltip {Center the window under this widget.} xywh {305 260 70 20} selection_color 1 labelsize 11 when 1
+ }
+ Fl_Box {} {
+ xywh {395 260 0 20} labelsize 11 resizable
+ }
}
- }
- Fl_Input wp_gui_tooltip {
- label {Tooltip:}
- callback {if (v == LOAD) {
+ Fl_Input wp_gui_tooltip {
+ label {Tooltip:}
+ callback {if (v == LOAD) {
if (current_widget->is_widget()) {
o->activate();
o->value(((Widget_Node*)current_widget)->tooltip());
@@ -1723,25 +1743,25 @@ unselectable, but not grayed out} xywh {225 260 75 20} selection_color 1 labelsi
}
if (mod) Fluid.proj.set_modflag(1);
}}
- tooltip {The tooltip text for the widget.
+ tooltip {The tooltip text for the widget.
Use Ctrl-J for newlines.} xywh {95 285 310 20} labelfont 1 labelsize 11 textsize 11
+ }
+ Fl_Box {} {
+ xywh {95 305 300 5} hide resizable
+ }
}
- Fl_Box {} {
- xywh {95 305 300 5} hide resizable
- }
- }
- Fl_Group wp_style_tab {
- label Style
- callback propagate_load open
- xywh {10 30 400 330} labelsize 11 when 0 hide
- } {
- Fl_Group wp_style_label {
- label {Label Font:}
+ Fl_Group wp_style_tab {
+ label Style
callback propagate_load open
- xywh {99 40 305 20} labelfont 1 labelsize 11 align 4
+ xywh {10 30 400 330} labelsize 11 when 0 hide
} {
- Fl_Choice {} {
- callback {if (v == LOAD) {
+ Fl_Group wp_style_label {
+ label {Label Font:}
+ callback propagate_load open
+ xywh {99 40 305 20} labelfont 1 labelsize 11 align 4
+ } {
+ Fl_Choice {} {
+ callback {if (v == LOAD) {
int n = current_widget->o->labelfont();
if (n > 15) n = 0;
o->value(n);
@@ -1757,12 +1777,12 @@ Use Ctrl-J for newlines.} xywh {95 285 310 20} labelfont 1 labelsize 11 textsize
}
if (mod) Fluid.proj.set_modflag(1);
}} open
- tooltip {The style of the label text.} xywh {99 40 148 20} box THIN_UP_BOX down_box BORDER_BOX labelfont 1 labelsize 11 textsize 11 resizable
- code0 {extern Fl_Menu_Item fontmenu[];}
- code1 {o->menu(fontmenu);}
- } {}
- Fl_Value_Input {} {
- callback {int n;
+ tooltip {The style of the label text.} xywh {99 40 148 20} box THIN_UP_BOX down_box BORDER_BOX labelfont 1 labelsize 11 textsize 11 resizable
+ code0 {extern Fl_Menu_Item fontmenu[];}
+ code1 {o->menu(fontmenu);}
+ } {}
+ Fl_Value_Input {} {
+ callback {int n;
if (v == LOAD) {
n = current_widget->o->labelsize();
} else {
@@ -1777,11 +1797,11 @@ if (v == LOAD) {
if (mod) Fluid.proj.set_modflag(1);
}
o->value(n);}
- tooltip {The size of the label text.} xywh {247 40 49 20} labelsize 11 maximum 100 step 1 value 14 textsize 11
- }
- Fl_Button w_labelcolor {
- label {Label Color}
- callback {Fl_Color c = current_widget->o->labelcolor();
+ tooltip {The size of the label text.} xywh {247 40 49 20} labelsize 11 maximum 100 step 1 value 14 textsize 11
+ }
+ Fl_Button w_labelcolor {
+ label {Label Color}
+ callback {Fl_Color c = current_widget->o->labelcolor();
if (v != LOAD) {
Fl_Color d = fl_show_colormap(c);
if (d == c) return;
@@ -1791,10 +1811,10 @@ if (v != LOAD) {
o->color(c);
o->labelcolor(fl_contrast(FL_BLACK,c));
o->redraw();}
- tooltip {The color of the label text.} xywh {296 40 90 20} labelsize 11
- }
- Fl_Menu_Button {} {
- callback {Fl_Color c = current_widget->o->labelcolor();
+ tooltip {The color of the label text.} xywh {296 40 90 20} labelsize 11
+ }
+ Fl_Menu_Button {} {
+ callback {Fl_Color c = current_widget->o->labelcolor();
if (v != LOAD) {
Fl_Color d = (Fl_Color)(o->mvalue()->argument());
if (d == c) return;
@@ -1804,18 +1824,18 @@ if (v != LOAD) {
w_labelcolor->labelcolor(fl_contrast(FL_BLACK,c));
w_labelcolor->redraw();
}} open
- xywh {386 40 18 20}
- code0 {extern Fl_Menu_Item colormenu[];}
- code1 {o->menu(colormenu);}
- } {}
- }
- Fl_Group wp_style_box {
- label {Box:}
- callback propagate_load open
- xywh {99 65 305 20} labelfont 1 labelsize 11 align 4
- } {
- Fl_Choice {} {
- callback {if (v == LOAD) {
+ xywh {386 40 18 20}
+ code0 {extern Fl_Menu_Item colormenu[];}
+ code1 {o->menu(colormenu);}
+ } {}
+ }
+ Fl_Group wp_style_box {
+ label {Box:}
+ callback propagate_load open
+ xywh {99 65 305 20} labelfont 1 labelsize 11 align 4
+ } {
+ Fl_Choice {} {
+ callback {if (v == LOAD) {
if (current_widget->is_a(Type::Menu_Item)) {o->deactivate(); return;} else o->activate();
int n = current_widget->o->box();
if (!n) n = ZERO_ENTRY;
@@ -1834,13 +1854,13 @@ if (v != LOAD) {
}
if (mod) Fluid.proj.set_modflag(1);
}} open
- tooltip {The "up" box of the widget.} xywh {100 65 196 20} box THIN_UP_BOX down_box BORDER_BOX labelfont 1 labelsize 11 textsize 11 resizable
- code0 {extern Fl_Menu_Item boxmenu[];}
- code1 {o->menu(boxmenu);}
- } {}
- Fl_Button w_color {
- label Color
- callback {Fl_Color c = current_widget->o->color();
+ tooltip {The "up" box of the widget.} xywh {100 65 196 20} box THIN_UP_BOX down_box BORDER_BOX labelfont 1 labelsize 11 textsize 11 resizable
+ code0 {extern Fl_Menu_Item boxmenu[];}
+ code1 {o->menu(boxmenu);}
+ } {}
+ Fl_Button w_color {
+ label Color
+ callback {Fl_Color c = current_widget->o->color();
if (v == LOAD) {
if (current_widget->is_a(Type::Menu_Item)) {
o->deactivate();
@@ -1856,10 +1876,10 @@ if (v == LOAD) {
o->color(c);
o->labelcolor(fl_contrast(FL_BLACK,c));
o->redraw();}
- tooltip {The background color of the widget.} xywh {296 65 90 20} labelsize 11
- }
- Fl_Menu_Button {} {
- callback {Fl_Color c = current_widget->o->color();
+ tooltip {The background color of the widget.} xywh {296 65 90 20} labelsize 11
+ }
+ Fl_Menu_Button {} {
+ callback {Fl_Color c = current_widget->o->color();
if (v == LOAD) {
if (current_widget->is_a(Type::Menu_Item)) {o->deactivate(); return;} else o->activate();
} else {
@@ -1871,18 +1891,18 @@ if (v == LOAD) {
w_color->labelcolor(fl_contrast(FL_BLACK,c));
w_color->redraw();
}} open
- xywh {386 65 18 20}
- code0 {extern Fl_Menu_Item colormenu[];}
- code1 {o->menu(colormenu);}
- } {}
- }
- Fl_Group wp_style_downbox {
- label {Down Box:}
- callback propagate_load open
- xywh {99 90 305 20} labelfont 1 labelsize 11 align 4
- } {
- Fl_Choice {} {
- callback {if (v == LOAD) {
+ xywh {386 65 18 20}
+ code0 {extern Fl_Menu_Item colormenu[];}
+ code1 {o->menu(colormenu);}
+ } {}
+ }
+ Fl_Group wp_style_downbox {
+ label {Down Box:}
+ callback propagate_load open
+ xywh {99 90 305 20} labelfont 1 labelsize 11 align 4
+ } {
+ Fl_Choice {} {
+ callback {if (v == LOAD) {
int n;
if (current_widget->is_a(Type::Button))
n = ((Fl_Button*)(current_widget->o))->down_box();
@@ -1916,13 +1936,13 @@ if (v == LOAD) {
}
if (mod) Fluid.proj.set_modflag(1);
}} open
- tooltip {The "down" box of the widget.} xywh {99 90 197 20} box THIN_UP_BOX down_box BORDER_BOX labelfont 1 labelsize 11 textsize 11 resizable
- code0 {extern Fl_Menu_Item boxmenu[];}
- code1 {o->menu(boxmenu);}
- } {}
- Fl_Button w_selectcolor {
- label {Select Color}
- callback {Fl_Color c = current_widget->o->selection_color();
+ tooltip {The "down" box of the widget.} xywh {99 90 197 20} box THIN_UP_BOX down_box BORDER_BOX labelfont 1 labelsize 11 textsize 11 resizable
+ code0 {extern Fl_Menu_Item boxmenu[];}
+ code1 {o->menu(boxmenu);}
+ } {}
+ Fl_Button w_selectcolor {
+ label {Select Color}
+ callback {Fl_Color c = current_widget->o->selection_color();
if (v == LOAD) {
if (current_widget->is_a(Type::Menu_Item)) {
o->deactivate();
@@ -1939,10 +1959,10 @@ if (v == LOAD) {
o->color(c);
o->labelcolor(fl_contrast(FL_BLACK,c));
o->redraw();}
- tooltip {The selection color of the widget.} xywh {296 90 90 20} labelsize 11
- }
- Fl_Menu_Button {} {
- callback {Fl_Color c = current_widget->o->selection_color();
+ tooltip {The selection color of the widget.} xywh {296 90 90 20} labelsize 11
+ }
+ Fl_Menu_Button {} {
+ callback {Fl_Color c = current_widget->o->selection_color();
if (v == LOAD) {
if (current_widget->is_a(Type::Menu_Item)) {
o->deactivate();
@@ -1959,18 +1979,18 @@ if (v == LOAD) {
w_selectcolor->labelcolor(fl_contrast(FL_BLACK,c));
w_selectcolor->redraw();
}} open
- xywh {386 90 18 20}
- code0 {extern Fl_Menu_Item colormenu[];}
- code1 {o->menu(colormenu);}
- } {}
- }
- Fl_Group wp_style_text {
- label {Text Font:}
- callback propagate_load open
- xywh {99 115 305 20} labelfont 1 labelsize 11 align 4
- } {
- Fl_Choice {} {
- callback {Fl_Font n; int s; Fl_Color c;
+ xywh {386 90 18 20}
+ code0 {extern Fl_Menu_Item colormenu[];}
+ code1 {o->menu(colormenu);}
+ } {}
+ }
+ Fl_Group wp_style_text {
+ label {Text Font:}
+ callback propagate_load open
+ xywh {99 115 305 20} labelfont 1 labelsize 11 align 4
+ } {
+ Fl_Choice {} {
+ callback {Fl_Font n; int s; Fl_Color c;
if (v == LOAD) {
if (!current_widget->textstuff(0,n,s,c)) {o->deactivate(); return;}
o->activate();
@@ -1987,12 +2007,12 @@ if (v == LOAD) {
}
if (mod) Fluid.proj.set_modflag(1);
}} open
- tooltip {The value text style.} xywh {99 115 148 20} box DOWN_BOX down_box BORDER_BOX labelfont 1 labelsize 11 textsize 11 resizable
- code0 {extern Fl_Menu_Item fontmenu[];}
- code1 {o->menu(fontmenu);}
- } {}
- Fl_Value_Input {} {
- callback {Fl_Font n; int s; Fl_Color c;
+ tooltip {The value text style.} xywh {99 115 148 20} box DOWN_BOX down_box BORDER_BOX labelfont 1 labelsize 11 textsize 11 resizable
+ code0 {extern Fl_Menu_Item fontmenu[];}
+ code1 {o->menu(fontmenu);}
+ } {}
+ Fl_Value_Input {} {
+ callback {Fl_Font n; int s; Fl_Color c;
if (v == LOAD) {
if (!current_widget->textstuff(0,n,s,c)) {o->deactivate(); return;}
o->activate();
@@ -2009,11 +2029,11 @@ if (v == LOAD) {
if (mod) Fluid.proj.set_modflag(1);
}
o->value(s);}
- tooltip {The value text size.} xywh {247 115 49 20} labelsize 11 maximum 100 step 1 value 14 textsize 11
- }
- Fl_Button w_textcolor {
- label {Text Color}
- callback {Fl_Font n; int s; Fl_Color c;
+ tooltip {The value text size.} xywh {247 115 49 20} labelsize 11 maximum 100 step 1 value 14 textsize 11
+ }
+ Fl_Button w_textcolor {
+ label {Text Color}
+ callback {Fl_Font n; int s; Fl_Color c;
if (v == LOAD) {
if (!current_widget->textstuff(0,n,s,c)) {
o->deactivate();
@@ -2030,10 +2050,10 @@ if (v == LOAD) {
o->color(c);
o->labelcolor(fl_contrast(FL_BLACK,c));
o->redraw();}
- tooltip {The value text color.} xywh {296 115 90 20} labelsize 11
- }
- Fl_Menu_Button {} {
- callback {Fl_Font n; int s; Fl_Color c;
+ tooltip {The value text color.} xywh {296 115 90 20} labelsize 11
+ }
+ Fl_Menu_Button {} {
+ callback {Fl_Font n; int s; Fl_Color c;
if (v == LOAD) {
if (!current_widget->textstuff(0,n,s,c)) {
o->deactivate();
@@ -2050,19 +2070,19 @@ if (v == LOAD) {
w_textcolor->labelcolor(fl_contrast(FL_BLACK,c));
w_textcolor->redraw();
}} open
- xywh {386 115 18 20}
- code0 {extern Fl_Menu_Item colormenu[];}
- code1 {o->menu(colormenu);}
- } {}
- }
- Fl_Group {} {
- label {Label Margin:}
- callback propagate_load open
- xywh {99 150 242 20} labelfont 1 labelsize 11 align 4
- } {
- Fl_Value_Input {} {
- label {Horizontal:}
- callback {int s;
+ xywh {386 115 18 20}
+ code0 {extern Fl_Menu_Item colormenu[];}
+ code1 {o->menu(colormenu);}
+ } {}
+ }
+ Fl_Group {} {
+ label {Label Margin:}
+ callback propagate_load open
+ xywh {99 150 242 20} labelfont 1 labelsize 11 align 4
+ } {
+ Fl_Value_Input {} {
+ label {Horizontal:}
+ callback {int s;
if (v == LOAD) {
if (!current_widget->is_true_widget()) {
o->deactivate();
@@ -2087,11 +2107,11 @@ if (v == LOAD) {
}
if (mod) Fluid.proj.set_modflag(1);
}}
- tooltip {Spacing between label and the horizontally aligned side of the widget.} xywh {99 150 55 20} labelsize 11 align 5 minimum -127 maximum 128 step 1 textsize 11
- }
- Fl_Value_Input {} {
- label {Vertical:}
- callback {int s;
+ tooltip {Spacing between label and the horizontally aligned side of the widget.} xywh {99 150 55 20} labelsize 11 align 5 minimum -127 maximum 128 step 1 textsize 11
+ }
+ Fl_Value_Input {} {
+ label {Vertical:}
+ callback {int s;
if (v == LOAD) {
if (!current_widget->is_true_widget()) {
o->deactivate();
@@ -2116,11 +2136,11 @@ if (v == LOAD) {
}
if (mod) Fluid.proj.set_modflag(1);
}}
- tooltip {Spacing between label and the vertically aligned side of the widget.} xywh {159 150 55 20} labelsize 11 align 5 minimum -127 maximum 127 step 1 textsize 11
- }
- Fl_Value_Input {} {
- label {Image Gap:}
- callback {int s;
+ tooltip {Spacing between label and the vertically aligned side of the widget.} xywh {159 150 55 20} labelsize 11 align 5 minimum -127 maximum 127 step 1 textsize 11
+ }
+ Fl_Value_Input {} {
+ label {Image Gap:}
+ callback {int s;
if (v == LOAD) {
if (!current_widget->is_true_widget()) {
o->deactivate();
@@ -2145,15 +2165,15 @@ if (v == LOAD) {
}
if (mod) Fluid.proj.set_modflag(1);
}}
- tooltip {Gap between label image and text in pixels} xywh {219 150 55 20} labelsize 11 align 5 maximum 255 step 1 textsize 11
- }
- Fl_Box {} {
- xywh {281 150 60 20} labelsize 11 hide resizable
+ tooltip {Gap between label image and text in pixels} xywh {219 150 55 20} labelsize 11 align 5 maximum 255 step 1 textsize 11
+ }
+ Fl_Box {} {
+ xywh {281 150 60 20} labelsize 11 hide resizable
+ }
}
- }
- Fl_Light_Button {} {
- label Compact
- callback {if (v == LOAD) {
+ Fl_Light_Button {} {
+ label Compact
+ callback {if (v == LOAD) {
uchar n;
if (current_widget->is_a(Type::Button) && !current_widget->is_a(Type::Menu_Item)) {
n = ((Fl_Button*)(current_widget->o))->compact();
@@ -2180,25 +2200,25 @@ if (v == LOAD) {
}
if (mod) Fluid.proj.set_modflag(1);
}}
- tooltip {use compact box types for closely set buttons} xywh {99 175 90 20} selection_color 1 labelsize 11
- }
- Fl_Box {} {
- xywh {195 205 40 40} labelsize 11 resizable
+ tooltip {use compact box types for closely set buttons} xywh {99 175 90 20} selection_color 1 labelsize 11
+ }
+ Fl_Box {} {
+ xywh {195 205 40 40} labelsize 11 resizable
+ }
}
- }
- Fl_Group wp_cpp_tab {
- label {C++}
- callback propagate_load
- xywh {10 30 400 330} labelsize 11 when 0 hide
- } {
- Fl_Group wp_cpp_class {
- label {Class:}
+ Fl_Group wp_cpp_tab {
+ label {C++}
callback propagate_load open
- xywh {95 40 310 20} labelfont 1 labelsize 11 align 4
+ xywh {10 30 400 330} labelsize 11 when 0 hide
} {
- Fl_Input {} {
- user_data 4
- callback {if (v == LOAD) {
+ Fl_Group wp_cpp_class {
+ label {Class:}
+ callback propagate_load open
+ xywh {95 40 310 20} labelfont 1 labelsize 11 align 4
+ } {
+ Fl_Input {} {
+ user_data 4
+ callback {if (v == LOAD) {
if (current_widget->is_a(Type::Menu_Item)) {
o->deactivate();
} else {
@@ -2214,10 +2234,10 @@ if (v == LOAD) {
}
if (mod) Fluid.proj.set_modflag(1);
}}
- tooltip {The widget subclass.} xywh {95 40 172 20} labelfont 1 labelsize 11 textfont 4 textsize 11 resizable
- }
- Fl_Choice {} {
- callback {static Fl_Menu_Item empty_type_menu[] = {
+ tooltip {The widget subclass.} xywh {95 40 172 20} labelfont 1 labelsize 11 textfont 4 textsize 11 resizable
+ }
+ Fl_Choice {} {
+ callback {static Fl_Menu_Item empty_type_menu[] = {
{"Normal",0,nullptr,(void*)nullptr},
{nullptr}};
@@ -2260,16 +2280,16 @@ if (v == LOAD) {
}
if (mod) Fluid.proj.set_modflag(1);
}} open
- tooltip {The widget subtype.} xywh {267 40 138 20} box THIN_UP_BOX down_box BORDER_BOX labelsize 11 textsize 11
- } {}
- }
- Fl_Group wp_cpp_name {
- label {Name:}
- callback propagate_load open
- xywh {95 65 310 20} labelfont 1 labelsize 11 align 4
- } {
- Fl_Input {} {
- callback {if (v == LOAD) {
+ tooltip {The widget subtype.} xywh {267 40 138 20} box THIN_UP_BOX down_box BORDER_BOX labelsize 11 textsize 11
+ } {}
+ }
+ Fl_Group wp_cpp_name {
+ label {Name:}
+ callback propagate_load open
+ xywh {95 65 310 20} labelfont 1 labelsize 11 align 4
+ } {
+ Fl_Input {} {
+ callback {if (v == LOAD) {
static char buf[1024];
if (numselected != 1) {
snprintf(buf, sizeof(buf), "Widget Properties (%d widgets)", numselected);
@@ -2290,10 +2310,10 @@ if (v == LOAD) {
// ((Fl_Window*)(o->parent()->parent()->parent()))->label(current_widget->title());
}
}}
- tooltip {The name of the widget.} xywh {95 65 235 20} labelfont 1 labelsize 11 textsize 11 resizable
- }
- Fl_Choice {} {
- callback {if (v == LOAD) {
+ tooltip {The name of the widget.} xywh {95 65 235 20} labelfont 1 labelsize 11 textsize 11 resizable
+ }
+ Fl_Choice {} {
+ callback {if (v == LOAD) {
o->value(current_widget->public_);
if (current_widget->is_in_class()) o->show(); else o->hide();
} else {
@@ -2312,44 +2332,44 @@ if (v == LOAD) {
redraw_browser();
}
}} open
- tooltip {Change member access attribute.} xywh {330 65 75 20} down_box BORDER_BOX labelsize 11 when 1 textsize 11
- } {
- MenuItem {} {
- label private
- user_data 0 user_data_type long
- xywh {0 0 100 20} labelsize 11
- }
- MenuItem {} {
- label public
- user_data 1 user_data_type long
- xywh {0 0 100 20} labelsize 11
+ tooltip {Change member access attribute.} xywh {330 65 75 20} down_box BORDER_BOX labelsize 11 when 1 textsize 11
+ } {
+ MenuItem {} {
+ label private
+ user_data 0 user_data_type long
+ xywh {0 0 100 20} labelsize 11
+ }
+ MenuItem {} {
+ label public
+ user_data 1 user_data_type long
+ xywh {0 0 100 20} labelsize 11
+ }
+ MenuItem {} {
+ label protected
+ user_data 2 user_data_type long
+ xywh {0 0 100 20} labelsize 11
+ }
}
- MenuItem {} {
- label protected
- user_data 2 user_data_type long
- xywh {0 0 100 20} labelsize 11
+ Fl_Choice {} {
+ callback name_public_cb open
+ tooltip {Change widget accessibility.} xywh {330 65 75 20} down_box BORDER_BOX labelsize 11 when 1 textsize 11 hide
+ } {
+ MenuItem {} {
+ label local
+ user_data 0 user_data_type long
+ xywh {10 10 100 20} labelsize 11
+ }
+ MenuItem {} {
+ label global
+ user_data 1 user_data_type long
+ xywh {10 10 100 20} labelsize 11
+ }
}
}
- Fl_Choice {} {
- callback name_public_cb open
- tooltip {Change widget accessibility.} xywh {330 65 75 20} down_box BORDER_BOX labelsize 11 when 1 textsize 11 hide
- } {
- MenuItem {} {
- label local
- user_data 0 user_data_type long
- xywh {10 10 100 20} labelsize 11
- }
- MenuItem {} {
- label global
- user_data 1 user_data_type long
- xywh {10 10 100 20} labelsize 11
- }
- }
- }
- Fl_Input {v_input[0]} {
- label {Extra Code:}
- user_data 0
- callback {int n = fl_int(o->user_data());
+ Fl_Input {v_input[0]} {
+ label {Extra Code:}
+ user_data 0
+ callback {int n = fl_int(o->user_data());
if (v == LOAD) {
o->value(current_widget->extra_code(n));
} else {
@@ -2363,34 +2383,34 @@ if (v == LOAD) {
}
if (mod) Fluid.proj.set_modflag(1);
}}
- tooltip {Extra initialization code for the widget.} xywh {95 90 310 20} labelfont 1 labelsize 11 textfont 4 textsize 11
- }
- Fl_Input {v_input[1]} {
- user_data 1
- callback {cb_v_input(o, v);}
- tooltip {Extra initialization code for the widget.} xywh {95 110 310 20} labelsize 11 textfont 4 textsize 11
- }
- Fl_Input {v_input[2]} {
- user_data 2
- callback {cb_v_input(o, v);}
- tooltip {Extra initialization code for the widget.} xywh {95 130 310 20} labelsize 11 textfont 4 textsize 11
- }
- Fl_Input {v_input[3]} {
- user_data 3
- callback {cb_v_input(o, v);}
- tooltip {Extra initialization code for the widget.} xywh {95 150 310 20} labelsize 11 textfont 4 textsize 11
- }
- Fl_Tile {} {
- callback {wComment->do_callback(wComment, v);
+ tooltip {Extra initialization code for the widget.} xywh {95 90 310 20} labelfont 1 labelsize 11 textfont 4 textsize 11
+ }
+ Fl_Input {v_input[1]} {
+ user_data 1
+ callback {cb_v_input(o, v);}
+ tooltip {Extra initialization code for the widget.} xywh {95 110 310 20} labelsize 11 textfont 4 textsize 11
+ }
+ Fl_Input {v_input[2]} {
+ user_data 2
+ callback {cb_v_input(o, v);}
+ tooltip {Extra initialization code for the widget.} xywh {95 130 310 20} labelsize 11 textfont 4 textsize 11
+ }
+ Fl_Input {v_input[3]} {
+ user_data 3
+ callback {cb_v_input(o, v);}
+ tooltip {Extra initialization code for the widget.} xywh {95 150 310 20} labelsize 11 textfont 4 textsize 11
+ }
+ Fl_Tile {} {
+ callback {wComment->do_callback(wComment, v);
wCallback->do_callback(wCallback, v);} open
- xywh {95 175 310 130} resizable
- } {
- Fl_Group {} {open
- xywh {95 175 310 48} box FLAT_BOX
+ xywh {95 175 310 130} resizable
} {
- Fl_Text_Editor wComment {
- label {Comment:}
- callback {if (v == LOAD) {
+ Fl_Group {} {open
+ xywh {95 175 310 48} box FLAT_BOX
+ } {
+ Fl_Text_Editor wComment {
+ label {Comment:}
+ callback {if (v == LOAD) {
const char *cmttext = current_widget->comment();
o->buffer()->text( cmttext ? cmttext : "" );
} else {
@@ -2403,16 +2423,16 @@ wCallback->do_callback(wCallback, v);} open
if (mod) Fluid.proj.set_modflag(1);
free(c);
}}
- tooltip {Write a comment that will appear in the source code and in the widget tree overview.} xywh {95 175 310 45} box DOWN_BOX labelfont 1 labelsize 11 align 4 when 1 textfont 6 textsize 11 textcolor 59 resizable
- code0 {wComment->buffer(new Fl_Text_Buffer());}
+ tooltip {Write a comment that will appear in the source code and in the widget tree overview.} xywh {95 175 310 45} box DOWN_BOX labelfont 1 labelsize 11 align 4 when 1 textfont 6 textsize 11 textcolor 59 resizable
+ code0 {wComment->buffer(new Fl_Text_Buffer());}
+ }
}
- }
- Fl_Group {} {open
- xywh {95 223 310 82} box FLAT_BOX
- } {
- Fl_Text_Editor wCallback {
- label {Callback:}
- callback {if (v == LOAD) {
+ Fl_Group {} {open
+ xywh {95 223 310 82} box FLAT_BOX
+ } {
+ Fl_Text_Editor wCallback {
+ label {Callback:}
+ callback {if (v == LOAD) {
const char *cbtext = current_widget->callback();
o->buffer()->text( cbtext ? cbtext : "" );
} else {
@@ -2431,19 +2451,19 @@ wCallback->do_callback(wCallback, v);} open
if (mod) Fluid.proj.set_modflag(1);
free(c);
}}
- 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/Code_Editor.h"}
- class {fld::widget::Code_Editor}
+ 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/Code_Editor.h"}
+ class {fld::widget::Code_Editor}
+ }
}
}
- }
- Fl_Group wp_cpp_callback {
- label {User Data:}
- callback propagate_load open
- xywh {95 310 310 20} labelfont 1 labelsize 11 align 4
- } {
- Fl_Input {} {
- callback {if (v == LOAD) {
+ Fl_Group wp_cpp_callback {
+ label {User Data:}
+ callback propagate_load open
+ xywh {95 310 310 20} labelfont 1 labelsize 11 align 4
+ } {
+ Fl_Input {} {
+ callback {if (v == LOAD) {
o->value(current_widget->user_data());
} else {
int mod = 0;
@@ -2456,11 +2476,11 @@ wCallback->do_callback(wCallback, v);} open
}
if (mod) Fluid.proj.set_modflag(1);
}}
- tooltip {The user data to pass into the callback code.} xywh {95 310 158 20} labelfont 1 labelsize 11 textfont 4 textsize 11 resizable
- }
- Fl_Menu_Button {} {
- label When
- callback {if (v == LOAD) {
+ tooltip {The user data to pass into the callback code.} xywh {95 310 158 20} labelfont 1 labelsize 11 textfont 4 textsize 11 resizable
+ }
+ Fl_Menu_Button {} {
+ label When
+ callback {if (v == LOAD) {
if (current_widget->is_a(Type::Menu_Item)) {o->deactivate(); return;} else o->activate();
int n = current_widget->o->when();
set_whenmenu(n);
@@ -2485,18 +2505,18 @@ wCallback->do_callback(wCallback, v);} open
}
if (mod) Fluid.proj.set_modflag(1);
}} open
- tooltip {When to call the callback function.} xywh {260 310 145 20} box THIN_UP_BOX down_box BORDER_BOX labelfont 1 labelsize 11 when 1 textsize 11
- code0 {extern Fl_Menu_Item whenmenu[];}
- code1 {o->menu(whenmenu);}
- } {}
- }
- Fl_Group {} {
- label {Type:}
- callback propagate_load open
- xywh {95 332 310 26} labelfont 1 labelsize 11 align 4
- } {
- Fl_Input_Choice {} {
- callback {static const char *dflt = "void*";
+ tooltip {When to call the callback function.} xywh {260 310 145 20} box THIN_UP_BOX down_box BORDER_BOX labelfont 1 labelsize 11 when 1 textsize 11
+ code0 {extern Fl_Menu_Item whenmenu[];}
+ code1 {o->menu(whenmenu);}
+ } {}
+ }
+ Fl_Group {} {
+ label {Type:}
+ callback propagate_load open
+ xywh {95 332 310 26} labelfont 1 labelsize 11 align 4
+ } {
+ Fl_Input_Choice {} {
+ callback {static const char *dflt = "void*";
if (v == LOAD) {
const char *c = current_widget->user_data_type();
if (!c) c = dflt;
@@ -2518,41 +2538,1245 @@ if (v == LOAD) {
}
if (mod) Fluid.proj.set_modflag(1);
}} open
- tooltip {The type of the user data.} xywh {95 335 158 20} labelfont 1 labelsize 11 textfont 4 textsize 11 resizable
+ tooltip {The type of the user data.} xywh {95 335 158 20} labelfont 1 labelsize 11 textfont 4 textsize 11 resizable
+ } {
+ MenuItem {} {
+ label {void*}
+ xywh {0 0 31 20} labelfont 4 labelsize 11
+ }
+ MenuItem {} {
+ label long
+ xywh {0 0 31 20} labelfont 4 labelsize 11
+ }
+ }
+ Fl_Box w_when_box {
+ label FL_WHEN_NEVER
+ xywh {260 332 145 26} box FLAT_BOX selection_color 1 labelsize 8 align 209
+ }
+ }
+ }
+ Fl_Group widget_tab_grid {
+ label Grid
+ callback {o->callback((Fl_Callback*)propagate_load);} open
+ xywh {10 30 400 330} labelsize 11 hide
+ class Grid_Tab
+ } {}
+ Fl_Group widget_tab_grid_child {
+ label {Grid Child}
+ callback {o->callback((Fl_Callback*)propagate_load);} open
+ xywh {10 30 400 330} labelsize 11 hide
+ class Grid_Child_Tab
+ } {}
+ }
+ Fl_Tabs data_tabs {
+ callback {if (current_node && current_node->is_a(Type::Data))
+ propagate_load((Fl_Group *)o,v);}
+ xywh {10 10 400 350} selection_color 12 labelsize 11 labelcolor 255 hide
+ } {
+ Fl_Group data_tabs_data {
+ label {Inline Data}
+ callback propagate_load open
+ xywh {10 30 400 330} labelsize 11 resizable
+ } {
+ Fl_Group {} {
+ label {Visibility:}
+ callback propagate_load open
+ xywh {95 49 310 21} labelfont 1 labelsize 11 align 4
+ } {
+ Fl_Choice {} {
+ callback {if (!current_node || !current_node->is_a(Type::Data)) return;
+Data_Node* nd = (Data_Node*)current_node;
+
+if (v == LOAD) {
+ if (!nd->is_in_class()) {
+ o->value(nd->output_file());
+ o->show();
+ } else {
+ o->hide();
+ }
+} else {
+ if (!nd->is_in_class()) {
+ if (nd->output_file() != o->value()) {
+ nd->output_file(o->value());
+ Fluid.proj.set_modflag(1);
+ redraw_browser();
+ }
+ }
+}} open
+ xywh {95 50 210 20} down_box BORDER_BOX labelsize 11 textsize 11
+ } {
+ MenuItem {} {
+ label {in source file only}
+ xywh {10 10 100 20} labelsize 11
+ }
+ MenuItem {} {
+ label {in header file only}
+ xywh {10 10 100 20} labelsize 11 hide
+ }
+ MenuItem {} {
+ label {"static" in source file}
+ xywh {10 10 100 20} labelsize 11
+ }
+ MenuItem {} {
+ label {in source and "extern" in header}
+ xywh {10 10 100 20} labelsize 11
+ }
+ }
+ Fl_Choice {} {
+ callback {if (!current_node || !current_node->is_a(Type::Data)) return;
+Data_Node* nd = (Data_Node*)current_node;
+
+if (v == LOAD) {
+ if (nd->is_in_class()) {
+ o->value(nd->visibility());
+ o->show();
+ } else {
+ o->hide();
+ }
+} else {
+ if (nd->is_in_class()) {
+ if (nd->visibility() != o->value()) {
+ nd->visibility(o->value());
+ Fluid.proj.set_modflag(1);
+ redraw_browser();
+ }
+ }
+}} open
+ xywh {95 50 75 20} down_box BORDER_BOX labelsize 11 textsize 11
+ } {
+ MenuItem {} {
+ label private
+ xywh {20 20 100 20} labelsize 11
+ }
+ MenuItem {} {
+ label public
+ xywh {20 20 100 20} labelsize 11
+ }
+ MenuItem {} {
+ label protected
+ xywh {20 20 100 20} labelsize 11
+ }
+ }
+ Fl_Box {} {
+ xywh {363 49 42 20} resizable
+ }
+ }
+ Fl_Group {} {
+ label {Output: }
+ callback propagate_load open
+ xywh {95 75 310 20} labelfont 1 labelsize 11 align 4
} {
- MenuItem {} {
- label {void*}
- xywh {0 0 31 20} labelfont 4 labelsize 11
+ Fl_Choice {} {
+ callback {if (!current_node || !current_node->is_a(Type::Data)) return;
+Data_Node* nd = (Data_Node*)current_node;
+
+if (v == LOAD) {
+ o->value(nd->output_format());
+} else {
+ if (nd->output_format() != o->value()) {
+ nd->output_format( o->value() );
+ Fluid.proj.set_modflag(1);
+ }
+}} open
+ tooltip {text mode generates a "const char*" and a trailing NUL, compressed mode uses zlib to generate a binary block} xywh {95 75 210 20} down_box BORDER_BOX labelsize 11 textsize 11
+ } {
+ MenuItem {} {
+ label {binary: unsigned char[]}
+ user_data 0 user_data_type long
+ xywh {10 10 100 20} labelsize 11
+ }
+ MenuItem {} {
+ label {text: const char*}
+ user_data 1 user_data_type long
+ xywh {10 10 100 20} labelsize 11
+ }
+ MenuItem {} {
+ label {compressed: unsigned char[]}
+ user_data 2 user_data_type long
+ xywh {10 10 100 20} labelsize 11
+ }
+ MenuItem {} {
+ label {binary: std::vector<uint8_t>}
+ user_data 3 user_data_type long
+ xywh {10 10 100 20} labelsize 11
+ }
+ MenuItem {} {
+ label {text: std::string}
+ user_data 4 user_data_type long
+ xywh {10 10 100 20} labelsize 11
+ }
+ MenuItem {} {
+ label {compressed: std::vector<uint8_t>}
+ user_data 5 user_data_type long
+ xywh {10 10 100 20} labelsize 11
+ }
}
- MenuItem {} {
- label long
- xywh {0 0 31 20} labelfont 4 labelsize 11
+ Fl_Box {} {
+ xywh {363 75 42 20} resizable
}
}
- Fl_Box w_when_box {
- label FL_WHEN_NEVER
- xywh {260 332 145 26} box FLAT_BOX selection_color 1 labelsize 8 align 209
+ Fl_Input {} {
+ label {Name:}
+ callback {if (!current_node || !current_node->is_a(Type::Data)) return;
+Data_Node* nd = (Data_Node*)current_node;
+
+if (v == LOAD) {
+ o->value( nd->name() );
+ the_panel->label("Inline Data Properties");
+} else {
+ const char *nn = nd->name();
+ if ( ( nn && (strcmp(nn, o->value()) != 0))
+ || (!nn && (strcmp("", o->value()) != 0)) )
+ {
+ nd->name( o->value() );
+ Fluid.proj.set_modflag(1);
+ redraw_browser();
+ }
+}}
+ tooltip {Inline Data variables are declared "const unsigned char []" in binary mode and "const char*" in text mode.} xywh {95 100 310 20} labelfont 1 labelsize 11 align 132 textfont 4 textsize 11
+ }
+ Fl_Input wp_data_filename {
+ label {Filename:}
+ callback {if (!current_node || !current_node->is_a(Type::Data)) return;
+Data_Node* nd = (Data_Node*)current_node;
+
+if (v == LOAD) {
+ const char *fn = nd->filename();
+ o->value( fn ? fn : "" );
+} else {
+ const char *c = o->value();
+ const char *fn = nd->filename();
+ if ( ( fn && (strcmp(fn, c) != 0))
+ || (!fn && (strcmp("", c) != 0)) )
+ {
+ nd->filename(c);
+ Fluid.proj.set_modflag(1);
+ }
+}}
+ tooltip {name and path of file that will be inlined} xywh {95 125 270 20} labelfont 1 labelsize 11 align 132 textfont 4 textsize 11
+ }
+ Fl_Button {} {
+ label {@fileopen}
+ callback {if (v != LOAD) {
+ Fluid.proj.enter_project_dir();
+ const char *fn = fl_file_chooser("Load Inline Data",
+ nullptr, wp_data_filename->value(), 1);
+ Fluid.proj.leave_project_dir();
+ if (fn) {
+ if (strcmp(fn, wp_data_filename->value())) {
+ Fluid.proj.set_modflag(1);
+ wp_data_filename->value(fn);
+ wp_data_filename->do_callback();
+ }
+ }
+}}
+ xywh {365 125 40 20} labelcolor 134
+ }
+ Fl_Text_Editor {} {
+ label {Comment:}
+ callback {if (!current_node || !current_node->is_a(Type::Data)) return;
+Data_Node* nd = (Data_Node*)current_node;
+
+if (v == LOAD) {
+ const char *cmttext = nd->comment();
+ o->buffer()->text( cmttext ? cmttext : "" );
+} else {
+ char *c = o->buffer()->text();
+ const char *nn = nd->comment();
+ if ( ( nn && (strcmp(nn, c) != 0))
+ || (!nn && (strcmp("", c) != 0)) )
+ {
+ nd->comment(c);
+ Fluid.proj.set_modflag(1);
+ redraw_browser();
+ }
+ free(c);
+}}
+ xywh {95 150 310 105} box DOWN_BOX labelfont 1 labelsize 11 align 4 textfont 4 textsize 11 resizable
+ code0 {o->buffer(new Fl_Text_Buffer());}
+ code1 {o->add_key_binding(FL_Tab, 0, use_tab_navigation);}
}
}
}
- Fl_Group widget_tab_grid {
- label Grid
- callback {o->callback((Fl_Callback*)propagate_load);} open
- xywh {10 30 400 330} labelsize 11 hide
- class Grid_Tab
- } {}
- Fl_Group widget_tab_grid_child {
- label {Grid Child}
- callback {o->callback((Fl_Callback*)propagate_load);} open
- xywh {10 30 400 330} labelsize 11 hide
- class Grid_Child_Tab
- } {}
+ Fl_Tabs comment_tabs {
+ callback {if (current_node && current_node->is_a(Type::Comment))
+ propagate_load((Fl_Group *)o,v);}
+ xywh {10 10 400 350} selection_color 12 labelsize 11 labelcolor 255 hide
+ } {
+ Fl_Group comment_tabs_comment {
+ label Comment
+ callback propagate_load open
+ xywh {10 30 400 330} labelsize 11 resizable
+ } {
+ Fl_Text_Editor comment_tabs_name {
+ label {Comment:}
+ callback {if (!current_node || !current_node->is_a(Type::Comment)) return;
+Comment_Node* nd = (Comment_Node*)current_node;
+
+if (v == LOAD) {
+ the_panel->label("Comment Properties");
+ const char *cmttext = nd->name();
+ o->buffer()->text( cmttext ? cmttext : "" );
+} else {
+ char *c = o->buffer()->text();
+ const char *nn = nd->name();
+ if ( ( nn && (strcmp(nn, c) != 0))
+ || (!nn && (strcmp("", c) != 0)) )
+ {
+ nd->name(c);
+ Fluid.proj.set_modflag(1);
+ redraw_browser();
+ }
+ free(c);
+}}
+ xywh {95 45 310 235} box DOWN_BOX labelfont 1 labelsize 11 align 4 textfont 4 textsize 11 textcolor 58 resizable
+ code0 {o->when(FL_WHEN_ENTER_KEY_CHANGED|FL_WHEN_RELEASE);}
+ code1 {o->buffer(new Fl_Text_Buffer());}
+ }
+ Fl_Group {} {
+ callback propagate_load open
+ xywh {95 285 310 65}
+ } {
+ Fl_Menu_Button comment_predefined_2 {
+ label Predefined
+ callback {if (!current_node || !current_node->is_a(Type::Comment)) return;
+
+static char itempath[256];
+static int last_selected_item { 0 };
+
+if (v == LOAD) {
+ int i=0, n=0, version = 0;
+ Fl_Preferences menu(Fl_Preferences::USER_L, "fltk.org", "fluid_comments_menu");
+ o->clear();
+ o->add("_Edit/Add current comment...");
+ o->add("_Edit/Remove last selection...");
+ menu.get("version", version, -1);
+ if (version < 10400) load_comments_preset(menu);
+ menu.get("n", n, 0);
+ for (i=0;i<n;i++) {
+ char *text;
+ menu.get(Fl_Preferences::Name(i), text, "");
+ o->add(text);
+ free(text);
+ }
+} else {
+ if (o->value()==1) {
+ // add the current comment to the database
+ const char *xname = fl_input(
+ "Please enter a name to reference the current\\ncomment in your database.\\n\\n"
+ "Use forward slashes '/' to create submenus.",
+ "My Comment");
+ if (xname) {
+ char *name = fl_strdup(xname);
+ for (char*s=name;*s;s++) if (*s==':') *s = ';';
+ int n;
+ Fl_Preferences db(Fl_Preferences::USER_L, "fltk.org", "fluid_comments");
+ db.set(name, comment_tabs_name->buffer()->text());
+ Fl_Preferences menu(Fl_Preferences::USER_L, "fltk.org", "fluid_comments_menu");
+ menu.get("n", n, 0);
+ menu.set(Fl_Preferences::Name(n), name);
+ menu.set("n", ++n);
+ o->add(name);
+ free(name);
+ }
+ } else if (o->value()==2) {
+ // remove the last selected comment from the database
+ if (itempath[0]==0 || last_selected_item==0) {
+ fl_message("Please select an entry from this menu first.");
+ } else if (fl_choice("Are you sure that you want to delete the entry\\n"
+ "\\"%s\\"\\nfrom the database?", "Cancel", "Delete",
+ nullptr, itempath)) {
+ Fl_Preferences db(Fl_Preferences::USER_L, "fltk.org", "fluid_comments");
+ db.deleteEntry(itempath);
+ o->remove(last_selected_item);
+ Fl_Preferences menu(Fl_Preferences::USER_L, "fltk.org", "fluid_comments_menu");
+ int i, n;
+ for (i=4, n=0; i<o->size(); i++) {
+ const Fl_Menu_Item *mi = o->menu()+i;
+ if (o->item_pathname(itempath, 255, mi)==0) {
+ if (itempath[0]=='/') memmove(itempath, itempath+1, 255);
+ if (itempath[0]) menu.set(Fl_Preferences::Name(n++), itempath);
+ }
+ }
+ menu.set("n", n);
+ }
+ } else {
+ // load the selected comment from the database
+ if (o->item_pathname(itempath, 255)==0) {
+ if (itempath[0]=='/') memmove(itempath, itempath+1, 255);
+ Fl_Preferences db(Fl_Preferences::USER_L, "fltk.org", "fluid_comments");
+ char *text;
+ db.get(itempath, text, "(no text found in data base)");
+ comment_tabs_name->buffer()->text(text);
+ comment_tabs_name->do_callback();
+ free(text);
+ last_selected_item = o->value();
+ }
+ }
+}} open
+ xywh {95 285 90 20} labelsize 11 textsize 11
+ code0 {extern void load_comments_preset(Fl_Preferences &menu);}
+ code1 {\#include <FL/fl_string_functions.h>}
+ } {}
+ Fl_Button comment_load_2 {
+ label {Import...}
+ callback {// load a comment from disk
+if (v != LOAD) {
+ fl_file_chooser_ok_label("Load");
+ const char *fname = fl_file_chooser("Pick a comment", nullptr, nullptr);
+ fl_file_chooser_ok_label(nullptr);
+ if (fname) {
+ if (comment_tabs_name->buffer()->loadfile(fname)) {
+ fl_alert("Error loading file\\n%s", fname);
+ }
+ comment_tabs_name->do_callback();
+ }
+}}
+ xywh {190 285 90 20} labelsize 11
+ }
+ Fl_Check_Button {} {
+ label {output to header file}
+ callback {if (!current_node || !current_node->is_a(Type::Comment)) return;
+Comment_Node* nd = (Comment_Node*)current_node;
+
+if (v == LOAD) {
+ o->value(nd->in_h());
+} else {
+ if (((int)nd->in_h()) != o->value()) {
+ nd->in_h( o->value() );
+ Fluid.proj.set_modflag(1);
+ }
+}}
+ tooltip {write the comment into the header (.h) file} xywh {95 310 120 20} down_box DOWN_BOX labelsize 11 when 1
+ }
+ Fl_Check_Button {} {
+ label {output to source file}
+ callback {if (!current_node || !current_node->is_a(Type::Comment)) return;
+Comment_Node* nd = (Comment_Node*)current_node;
+
+if (v == LOAD) {
+ o->value(nd->in_c());
+} else {
+ if (((int)nd->in_c()) != o->value()) {
+ nd->in_c( o->value() );
+ Fluid.proj.set_modflag(1);
+ }
+}}
+ tooltip {write the comment into the source (.cxx) file} xywh {95 330 120 20} down_box DOWN_BOX labelsize 11 when 1
+ }
+ Fl_Box {} {
+ xywh {404 285 1 65} labelsize 11 resizable
+ }
+ }
+ }
+ }
+ Fl_Tabs class_tabs {
+ callback {if (current_node && current_node->is_a(Type::Class))
+ propagate_load((Fl_Group *)o,v);}
+ xywh {10 10 400 350} selection_color 12 labelsize 11 labelcolor 255 hide
+ } {
+ Fl_Group class_tabs_main {
+ label Class
+ callback propagate_load open
+ xywh {10 30 400 330} labelsize 11 resizable
+ } {
+ Fl_Group {} {
+ label {Visibility:}
+ callback propagate_load
+ comment {This elemnt is hidden because we don't
+support a class inside a class at this point} open
+ xywh {95 50 310 21} labelfont 1 labelsize 11 align 4 hide
+ } {
+ Fl_Choice {} {
+ callback {if (!current_node || !current_node->is_a(Type::Class)) return;
+Class_Node* nd = (Class_Node*)current_node;
+
+if (v == LOAD) {
+ if (nd->is_in_class()) {
+ o->value(nd->visibility());
+ o->activate();
+ } else {
+ o->deactivate();
+ }
+} else {
+ if (nd->is_in_class()) {
+ if (nd->visibility() != o->value()) {
+ nd->visibility(o->value());
+ Fluid.proj.set_modflag(1);
+ redraw_browser();
+ }
+ }
+}} open
+ tooltip {visibility for a class inside a class} xywh {95 50 75 20} down_box BORDER_BOX labelsize 11 textsize 11
+ } {
+ MenuItem {} {
+ label private
+ xywh {30 30 100 20} labelsize 11
+ }
+ MenuItem {} {
+ label public
+ xywh {30 30 100 20} labelsize 11
+ }
+ MenuItem {} {
+ label protected
+ xywh {30 30 100 20} labelsize 11
+ }
+ }
+ Fl_Box {} {
+ xywh {363 50 42 20} resizable
+ }
+ }
+ Fl_Input {} {
+ label {Attribute:}
+ callback {if (!current_node || !current_node->is_a(Type::Class)) return;
+Class_Node* nd = (Class_Node*)current_node;
+
+if (v == LOAD) {
+ o->value( nd->prefix() );
+} else {
+ const char *nn = nd->prefix();
+ if ( ( nn && (strcmp(nn, o->value()) != 0))
+ || (!nn && (strcmp("", o->value()) != 0)) )
+ {
+ nd->prefix( o->value() );
+ Fluid.proj.set_modflag(1);
+ }
+}}
+ tooltip {class attribute or `alignas()`} xywh {95 50 305 20} labelfont 1 labelsize 11 textfont 4 textsize 11
+ }
+ Fl_Input {} {
+ label {Class Name:}
+ callback {if (!current_node || !current_node->is_a(Type::Class)) return;
+Class_Node* nd = (Class_Node*)current_node;
+
+if (v == LOAD) {
+ the_panel->label("Class Properties");
+ o->value( nd->name() );
+} else {
+ const char *nn = nd->name();
+ if ( ( nn && (strcmp(nn, o->value()) != 0))
+ || (!nn && (strcmp("", o->value()) != 0)) )
+ {
+ nd->name( o->value() );
+ Fluid.proj.set_modflag(1);
+ redraw_browser();
+ }
+}}
+ tooltip {class name, must be a single C++ keyword} xywh {95 75 305 20} labelfont 1 labelsize 11 textfont 4 textsize 11
+ }
+ Fl_Input {} {
+ label {Base Class:}
+ callback {if (!current_node || !current_node->is_a(Type::Class)) return;
+Class_Node* nd = (Class_Node*)current_node;
+
+if (v == LOAD) {
+ o->value( nd->base_class_name() );
+} else {
+ const char *nn = nd->base_class_name();
+ if ( ( nn && (strcmp(nn, o->value()) != 0))
+ || (!nn && (strcmp("", o->value()) != 0)) )
+ {
+ nd->base_class_name( o->value() );
+ Fluid.proj.set_modflag(1);
+ }
+}}
+ tooltip {visibility and name of base class or classes
+e.g. `public Fl_Widget`} xywh {95 100 305 20} labelfont 1 labelsize 11 textfont 4 textsize 11
+ }
+ Fl_Text_Editor {} {
+ label {Comment:}
+ callback {if (!current_node || !current_node->is_a(Type::Class)) return;
+Class_Node* nd = (Class_Node*)current_node;
+
+if (v == LOAD) {
+ const char *cmttext = nd->comment();
+ o->buffer()->text( cmttext ? cmttext : "" );
+} else {
+ char *c = o->buffer()->text();
+ const char *nn = nd->comment();
+ if ( ( nn && (strcmp(nn, c) != 0))
+ || (!nn && (strcmp("", c) != 0)) )
+ {
+ nd->comment(c);
+ Fluid.proj.set_modflag(1);
+ redraw_browser();
+ }
+ free(c);
+}}
+ xywh {95 125 305 110} box DOWN_BOX labelfont 1 labelsize 11 align 4 textfont 4 textsize 11 resizable
+ code0 {o->buffer(new Fl_Text_Buffer());}
+ code1 {o->add_key_binding(FL_Tab, 0, use_tab_navigation);}
+ }
+ }
+ }
+ Fl_Tabs declblock_tabs {
+ callback {if (current_node && current_node->is_a(Type::DeclBlock))
+ propagate_load((Fl_Group *)o,v);}
+ xywh {10 10 400 350} selection_color 12 labelsize 11 labelcolor 255 hide
+ } {
+ Fl_Group declblock_tabs_main {
+ label {Declaration Block}
+ callback propagate_load open
+ xywh {10 30 400 330} labelsize 11 resizable
+ } {
+ Fl_Input {} {
+ label {Start Code:}
+ callback {if (!current_node || !current_node->is_a(Type::DeclBlock)) return;
+DeclBlock_Node* nd = (DeclBlock_Node*)current_node;
+
+if (v == LOAD) {
+ the_panel->label("Declaration Block Properties");
+ o->value( nd->name() );
+} else {
+ const char *nn = nd->name();
+ if ( ( nn && (strcmp(nn, o->value()) != 0))
+ || (!nn && (strcmp("", o->value()) != 0)) )
+ {
+ nd->name( o->value() );
+ Fluid.proj.set_modflag(1);
+ redraw_browser();
+ }
+}}
+ tooltip {`\#ifdef` or similar conditional declaration block} xywh {95 50 305 20} labelfont 1 labelsize 11 textfont 4 textsize 11
+ }
+ Fl_Input {} {
+ label {End Code:}
+ callback {if (!current_node || !current_node->is_a(Type::DeclBlock)) return;
+DeclBlock_Node* nd = (DeclBlock_Node*)current_node;
+
+if (v == LOAD) {
+ o->value( nd->end_code() );
+} else {
+ const char *nn = nd->end_code();
+ if ( ( nn && (strcmp(nn, o->value()) != 0))
+ || (!nn && (strcmp("", o->value()) != 0)) )
+ {
+ nd->end_code( o->value() );
+ Fluid.proj.set_modflag(1);
+ }
+}}
+ tooltip {`\#endif` or similar declaration code block} xywh {95 75 305 20} labelfont 1 labelsize 11 textfont 4 textsize 11
+ }
+ Fl_Group {} {
+ callback propagate_load open
+ xywh {95 100 305 120}
+ } {
+ Fl_Box {} {
+ label {Enclose code generated by children in source file:}
+ xywh {95 100 270 20} labelsize 11 align 20
+ }
+ Fl_Check_Button {} {
+ label implementations
+ callback {if (!current_node || !current_node->is_a(Type::DeclBlock)) return;
+DeclBlock_Node* nd = (DeclBlock_Node*)current_node;
+
+if (v == LOAD) {
+ int f = ((nd->write_map() & DeclBlock_Node::CODE_IN_SOURCE) != 0);
+ o->value(f);
+} else {
+ int f = ((nd->write_map() & DeclBlock_Node::CODE_IN_SOURCE) != 0);
+ if (f != o->value()) {
+ if (o->value())
+ nd->write_map( nd->write_map() | DeclBlock_Node::CODE_IN_SOURCE );
+ else
+ nd->write_map( nd->write_map() & ~DeclBlock_Node::CODE_IN_SOURCE );
+ Fluid.proj.set_modflag(1);
+ }
+}}
+ xywh {105 120 260 20} down_box DOWN_BOX labelsize 11
+ }
+ Fl_Check_Button {} {
+ label {static initializations and callbacks}
+ callback {if (!current_node || !current_node->is_a(Type::DeclBlock)) return;
+DeclBlock_Node* nd = (DeclBlock_Node*)current_node;
+
+if (v == LOAD) {
+ int f = ((nd->write_map() & DeclBlock_Node::STATIC_IN_SOURCE) != 0);
+ o->value(f);
+} else {
+ int f = ((nd->write_map() & DeclBlock_Node::STATIC_IN_SOURCE) != 0);
+ if (f != o->value()) {
+ if (o->value())
+ nd->write_map( nd->write_map() | DeclBlock_Node::STATIC_IN_SOURCE );
+ else
+ nd->write_map( nd->write_map() & ~DeclBlock_Node::STATIC_IN_SOURCE );
+ Fluid.proj.set_modflag(1);
+ }
+}}
+ xywh {105 140 260 20} down_box DOWN_BOX labelsize 11
+ }
+ Fl_Box {} {
+ label {Enclose code in header file:}
+ xywh {95 160 270 20} labelsize 11 align 20
+ }
+ Fl_Check_Button {} {
+ label {forward declarations}
+ callback {if (!current_node || !current_node->is_a(Type::DeclBlock)) return;
+DeclBlock_Node* nd = (DeclBlock_Node*)current_node;
+
+if (v == LOAD) {
+ int f = ((nd->write_map() & DeclBlock_Node::CODE_IN_HEADER) != 0);
+ o->value(f);
+} else {
+ int f = ((nd->write_map() & DeclBlock_Node::CODE_IN_HEADER) != 0);
+ if (f != o->value()) {
+ if (o->value())
+ nd->write_map( nd->write_map() | DeclBlock_Node::CODE_IN_HEADER );
+ else
+ nd->write_map( nd->write_map() & ~DeclBlock_Node::CODE_IN_HEADER );
+ Fluid.proj.set_modflag(1);
+ }
+}}
+ xywh {105 180 260 20} down_box DOWN_BOX labelsize 11
+ }
+ Fl_Check_Button {} {
+ label {preprecessor and callback declarations}
+ callback {if (!current_node || !current_node->is_a(Type::DeclBlock)) return;
+DeclBlock_Node* nd = (DeclBlock_Node*)current_node;
+
+if (v == LOAD) {
+ int f = ((nd->write_map() & DeclBlock_Node::STATIC_IN_HEADER) != 0);
+ o->value(f);
+} else {
+ int f = ((nd->write_map() & DeclBlock_Node::STATIC_IN_HEADER) != 0);
+ if (f != o->value()) {
+ if (o->value())
+ nd->write_map( nd->write_map() | DeclBlock_Node::STATIC_IN_HEADER );
+ else
+ nd->write_map( nd->write_map() & ~DeclBlock_Node::STATIC_IN_HEADER );
+ Fluid.proj.set_modflag(1);
+ }
+}}
+ xywh {105 200 260 20} down_box DOWN_BOX labelsize 11
+ }
+ Fl_Box {} {
+ xywh {365 100 35 120} labelsize 11 hide resizable
+ }
+ }
+ Fl_Text_Editor {} {
+ label {Comment:}
+ callback {if (!current_node || !current_node->is_a(Type::DeclBlock)) return;
+DeclBlock_Node* nd = (DeclBlock_Node*)current_node;
+
+if (v == LOAD) {
+ const char *cmttext = nd->comment();
+ o->buffer()->text( cmttext ? cmttext : "" );
+} else {
+ char *c = o->buffer()->text();
+ const char *nn = nd->comment();
+ if ( ( nn && (strcmp(nn, c) != 0))
+ || (!nn && (strcmp("", c) != 0)) )
+ {
+ nd->comment(c);
+ Fluid.proj.set_modflag(1);
+ redraw_browser();
+ }
+ free(c);
+}}
+ xywh {95 225 305 117} box DOWN_BOX labelfont 1 labelsize 11 align 4 textfont 4 textsize 11 resizable
+ code0 {o->buffer(new Fl_Text_Buffer());}
+ code1 {o->add_key_binding(FL_Tab, 0, use_tab_navigation);}
+ }
+ }
+ }
+ Fl_Tabs decl_tabs {
+ callback {if (current_node && current_node->is_a(Type::Decl))
+ propagate_load((Fl_Group *)o,v);}
+ xywh {10 10 400 350} selection_color 12 labelsize 11 labelcolor 255 hide
+ } {
+ Fl_Group decl_tabs_main {
+ label Declaration
+ callback propagate_load open
+ xywh {10 30 400 330} labelsize 11 resizable
+ } {
+ Fl_Group {} {
+ callback propagate_load open
+ xywh {15 50 390 20} labelfont 1 labelsize 11 align 4
+ } {
+ Fl_Box {} {
+ xywh {404 50 1 20} hide resizable
+ }
+ Fl_Box {} {
+ label {Visibility:}
+ xywh {95 50 1 20} labelfont 1 labelsize 11 align 4
+ }
+ Fl_Choice {} {
+ callback {if (!current_node || !current_node->is_a(Type::Decl)) return;
+Decl_Node* nd = (Decl_Node*)current_node;
+
+if (v == LOAD) {
+ if (!nd->is_in_class()) {
+ o->value(nd->output_file());
+ o->show();
+ } else {
+ o->hide();
+ }
+} else {
+ if (!nd->is_in_class()) {
+ if (nd->output_file() != o->value()) {
+ nd->output_file(o->value());
+ Fluid.proj.set_modflag(1);
+ redraw_browser();
+ }
+ }
+}}
+ xywh {95 50 185 20} down_box BORDER_BOX labelsize 11 textsize 11
+ } {
+ MenuItem {} {
+ label {in source file only}
+ xywh {10 10 100 20} labelsize 11
+ }
+ MenuItem {} {
+ label {in header file only}
+ xywh {10 10 100 20} labelsize 11
+ }
+ MenuItem {} {
+ label {"static" in source file}
+ xywh {10 10 100 20} labelsize 11
+ }
+ MenuItem {} {
+ label {in source and "extern" in header}
+ xywh {10 10 100 20} labelsize 11
+ }
+ }
+ Fl_Choice {} {
+ callback {if (!current_node || !current_node->is_a(Type::Decl)) return;
+Decl_Node* nd = (Decl_Node*)current_node;
+
+if (v == LOAD) {
+ if (nd->is_in_class()) {
+ o->value(nd->visibility());
+ o->show();
+ } else {
+ o->hide();
+ }
+} else {
+ if (nd->is_in_class()) {
+ if (nd->visibility() != o->value()) {
+ nd->visibility(o->value());
+ Fluid.proj.set_modflag(1);
+ redraw_browser();
+ }
+ }
+}}
+ xywh {95 50 75 20} down_box BORDER_BOX labelsize 11 textsize 11
+ } {
+ MenuItem {} {
+ label private
+ xywh {20 20 100 20} labelsize 11
+ }
+ MenuItem {} {
+ label public
+ xywh {20 20 100 20} labelsize 11
+ }
+ MenuItem {} {
+ label protected
+ xywh {20 20 100 20} labelsize 11
+ }
+ }
+ }
+ Fl_Tile {} {
+ callback {propagate_load(o, v);} open
+ xywh {15 75 390 210} resizable
+ code0 {o->size_range(0, 25, 55);}
+ code1 {o->size_range(1, 25, 55);}
+ } {
+ Fl_Group {} {
+ callback propagate_load open
+ xywh {15 75 390 105} box FLAT_BOX labelfont 1 labelsize 11 align 4
+ } {
+ Fl_Text_Editor {} {
+ label {Declaration:}
+ callback {if (!current_node || !current_node->is_a(Type::Decl)) return;
+Decl_Node* nd = (Decl_Node*)current_node;
+
+if (v == LOAD) {
+ the_panel->label("Declaration Properties");
+ const char *cmttext = nd->name();
+ o->buffer()->text( cmttext ? cmttext : "" );
+} else {
+ char *c = o->buffer()->text();
+ const char *nn = nd->name();
+ if ( ( nn && (strcmp(nn, c) != 0))
+ || (!nn && (strcmp("", c) != 0)) )
+ {
+ nd->name(c);
+ Fluid.proj.set_modflag(1);
+ redraw_browser();
+ }
+ free(c);
+}}
+ tooltip {a declaration: `int x;`, an external symbol: `extern int foo();`,
+a `\#` directive: `\#include <foo.h>`, a typedef `typedef char byte;`,
+ or a `using` statement, etc.} xywh {95 75 310 100} labelfont 1 labelsize 11 align 132 textsize 11 resizable
+ code0 {\#include "widgets/Code_Editor.h"}
+ code1 {o->add_key_binding(FL_Tab, 0, use_tab_navigation);}
+ class {fld::widget::Code_Editor}
+ }
+ }
+ Fl_Group {} {
+ callback propagate_load open
+ xywh {15 180 390 105} box FLAT_BOX
+ } {
+ Fl_Text_Editor {} {
+ label {Comment:}
+ callback {if (!current_node || !current_node->is_a(Type::Decl)) return;
+Decl_Node* nd = (Decl_Node*)current_node;
+
+if (v == LOAD) {
+ const char *cmttext = nd->comment();
+ o->buffer()->text( cmttext ? cmttext : "" );
+} else {
+ char *c = o->buffer()->text();
+ const char *nn = nd->comment();
+ if ( ( nn && (strcmp(nn, c) != 0))
+ || (!nn && (strcmp("", c) != 0)) )
+ {
+ nd->comment(c);
+ Fluid.proj.set_modflag(1);
+ redraw_browser();
+ }
+ free(c);
+}}
+ xywh {95 185 310 100} box DOWN_BOX labelfont 1 labelsize 11 align 4 textfont 4 textsize 11 resizable
+ code0 {o->buffer(new Fl_Text_Buffer());}
+ code1 {o->add_key_binding(FL_Tab, 0, use_tab_navigation);}
+ }
+ }
+ }
+ }
+ }
+ Fl_Tabs codeblock_tabs {
+ callback {if (current_node && current_node->is_a(Type::CodeBlock))
+ propagate_load((Fl_Group *)o,v);}
+ xywh {10 10 400 350} selection_color 12 labelsize 11 labelcolor 255 hide
+ } {
+ Fl_Group codeblock_tabs_main {
+ label {Code Block}
+ callback propagate_load open
+ xywh {10 30 400 330} labelsize 11 resizable
+ } {
+ Fl_Input {} {
+ label {Start Code:}
+ callback {if (!current_node || !current_node->is_a(Type::CodeBlock)) return;
+CodeBlock_Node* nd = (CodeBlock_Node*)current_node;
+
+if (v == LOAD) {
+ o->value( nd->name() );
+ the_panel->label("Code Block Properties");
+} else {
+ const char *nn = nd->name();
+ if ( ( nn && (strcmp(nn, o->value()) != 0))
+ || (!nn && (strcmp("", o->value()) != 0)) )
+ {
+ nd->name( o->value() );
+ Fluid.proj.set_modflag(1);
+ redraw_browser();
+ }
+}}
+ tooltip {condition statement: `if (x==1)`, or empty} xywh {95 50 305 20} labelfont 1 labelsize 11 textfont 4 textsize 11
+ }
+ Fl_Input {} {
+ label {End Code:}
+ callback {if (!current_node || !current_node->is_a(Type::CodeBlock)) return;
+CodeBlock_Node* nd = (CodeBlock_Node*)current_node;
+
+if (v == LOAD) {
+ o->value( nd->end_code() );
+} else {
+ const char *nn = nd->end_code();
+ if ( ( nn && (strcmp(nn, o->value()) != 0))
+ || (!nn && (strcmp("", o->value()) != 0)) )
+ {
+ nd->end_code( o->value() );
+ Fluid.proj.set_modflag(1);
+ }
+}}
+ tooltip {condition end: `while (x==1);`, or empty} xywh {95 75 305 20} labelfont 1 labelsize 11 textfont 4 textsize 11
+ }
+ Fl_Text_Editor {} {
+ label {Comment:}
+ callback {if (!current_node || !current_node->is_a(Type::CodeBlock)) return;
+CodeBlock_Node* nd = (CodeBlock_Node*)current_node;
+
+if (v == LOAD) {
+ const char *cmttext = nd->comment();
+ o->buffer()->text( cmttext ? cmttext : "" );
+} else {
+ char *c = o->buffer()->text();
+ const char *nn = nd->comment();
+ if ( ( nn && (strcmp(nn, c) != 0))
+ || (!nn && (strcmp("", c) != 0)) )
+ {
+ nd->comment(c);
+ Fluid.proj.set_modflag(1);
+ redraw_browser();
+ }
+ free(c);
+}}
+ tooltip {code block comment} xywh {95 100 305 117} box DOWN_BOX labelfont 1 labelsize 11 align 4 textfont 4 textsize 11 resizable
+ code0 {o->buffer(new Fl_Text_Buffer());}
+ code1 {o->add_key_binding(FL_Tab, 0, use_tab_navigation);}
+ }
+ }
+ }
+ Fl_Tabs code_tabs {
+ callback {if (current_node && current_node->is_a(Type::Code))
+ propagate_load((Fl_Group *)o,v);}
+ xywh {10 10 400 350} selection_color 12 labelsize 11 labelcolor 255 hide
+ } {
+ Fl_Group code_tabs_main {
+ label Code
+ callback propagate_load open
+ xywh {10 30 400 330} labelsize 11 resizable
+ } {
+ Fl_Text_Editor {} {
+ callback {if (!current_node || !current_node->is_a(Type::Code)) return;
+Code_Node* nd = (Code_Node*)current_node;
+
+if (v == LOAD) {
+ the_panel->label("Code Editor");
+ const char *cmttext = nd->name();
+ o->buffer()->text( cmttext ? cmttext : "" );
+ o->insert_position(nd->cursor_position_);
+ o->scroll(nd->code_input_scroll_row, nd->code_input_scroll_col);
+} else {
+ char *c = o->buffer()->text();
+ const char *nn = nd->name();
+ if ( ( nn && (strcmp(nn, c) != 0))
+ || (!nn && (strcmp("", c) != 0)) )
+ {
+ nd->name(c);
+ Fluid.proj.set_modflag(1);
+ redraw_browser();
+ }
+ nd->cursor_position_ = o->insert_position();
+ nd->code_input_scroll_row = o->scroll_row();
+ nd->code_input_scroll_col = o->scroll_col();
+ free(c);
+}}
+ xywh {15 40 390 315} box DOWN_BOX labelsize 11 when 15 textfont 4 textsize 11 resizable
+ code1 {\#include "widgets/Code_Editor.h"}
+ code2 {o->linenumber_width(60);
+o->linenumber_size(o->Fl_Text_Display::textsize());}
+ class {fld::widget::Code_Editor}
+ }
+ }
+ }
+ Fl_Tabs func_tabs {
+ callback {if (current_node && current_node->is_a(Type::Function))
+ propagate_load((Fl_Group *)o,v);}
+ xywh {10 10 400 350} selection_color 12 labelsize 11 labelcolor 255 hide resizable
+ } {
+ Fl_Group func_tabs_main {
+ label Function
+ callback propagate_load open
+ xywh {10 30 400 330} labelsize 11 resizable
+ } {
+ Fl_Group {} {
+ callback propagate_load open
+ xywh {15 50 390 45} labelfont 1 labelsize 11 align 4
+ } {
+ Fl_Box {} {
+ xywh {404 50 1 20} hide resizable
+ }
+ Fl_Box {} {
+ label {Visibility:}
+ xywh {95 50 1 20} labelfont 1 labelsize 11 align 4
+ }
+ Fl_Choice {} {
+ callback {if (!current_node || !current_node->is_a(Type::Function)) return;
+Function_Node* nd = (Function_Node*)current_node;
+
+if (v == LOAD) {
+ if (!nd->is_in_class()) {
+ o->value(nd->visibility());
+ o->show();
+ } else {
+ o->hide();
+ }
+} else {
+ if (!nd->is_in_class()) {
+ if (nd->visibility() != o->value()) {
+ nd->visibility(o->value());
+ Fluid.proj.set_modflag(1);
+ redraw_browser();
}
- Fl_Tabs widget_tabs_repo {
+ }
+}} open
+ xywh {95 50 80 20} down_box BORDER_BOX labelsize 11 textsize 11
+ } {
+ MenuItem {} {
+ label static
+ xywh {10 10 100 20} labelsize 11
+ }
+ MenuItem {} {
+ label global
+ xywh {10 10 100 20} labelsize 11
+ }
+ MenuItem {} {
+ label local
+ xywh {10 10 100 20} labelsize 11
+ }
+ }
+ Fl_Choice {} {
+ callback {if (!current_node || !current_node->is_a(Type::Function)) return;
+Function_Node* nd = (Function_Node*)current_node;
+
+if (v == LOAD) {
+ if (nd->is_in_class()) {
+ o->value(nd->visibility());
+ o->show();
+ } else {
+ o->hide();
+ }
+} else {
+ if (nd->is_in_class()) {
+ if (nd->visibility() != o->value()) {
+ nd->visibility(o->value());
+ Fluid.proj.set_modflag(1);
+ redraw_browser();
+ }
+ }
+}} open
+ xywh {95 50 75 20} down_box BORDER_BOX labelsize 11 textsize 11
+ } {
+ MenuItem {} {
+ label private
+ xywh {20 20 100 20} labelsize 11
+ }
+ MenuItem {} {
+ label public
+ xywh {20 20 100 20} labelsize 11
+ }
+ MenuItem {} {
+ label protected
+ xywh {20 20 100 20} labelsize 11
+ }
+ }
+ Fl_Check_Button {} {
+ label {declare "C"}
+ callback {if (!current_node || !current_node->is_a(Type::Function)) return;
+Function_Node* nd = (Function_Node*)current_node;
+
+if (v == LOAD) {
+ o->value(nd->declare_c());
+} else {
+ if (nd->declare_c() != o->value()) {
+ nd->declare_c( o->value() );
+ Fluid.proj.set_modflag(1);
+ }
+}}
+ xywh {95 75 90 20} down_box DOWN_BOX labelsize 11
+ }
+ }
+ Fl_Tile {} {
+ callback {propagate_load(o, v);} open
+ xywh {15 100 390 220} resizable
+ code0 {o->size_range(0, 25, 50);}
+ code1 {o->size_range(1, 25, 50);}
+ code2 {o->size_range(2, 25, 50);}
+ } {
+ Fl_Group {} {
+ callback propagate_load open
+ xywh {15 100 390 55} box FLAT_BOX labelfont 1 labelsize 11 align 4
+ } {
+ Fl_Text_Editor {} {
+ label {Function
+Name and
+Args:}
+ callback {if (!current_node || !current_node->is_a(Type::Function)) return;
+Function_Node* nd = (Function_Node*)current_node;
+
+if (v == LOAD) {
+ the_panel->label("Function Properties");
+ const char *cmttext = nd->name();
+ o->buffer()->text( cmttext ? cmttext : "" );
+} else {
+ char *c = o->buffer()->text();
+ const char *nn = nd->name();
+ if ( ( nn && (strcmp(nn, c) != 0))
+ || (!nn && (strcmp("", c) != 0)) )
+ {
+ nd->name(c);
+ Fluid.proj.set_modflag(1);
+ redraw_browser();
+ }
+ free(c);
+}}
+ tooltip {function name and args, or blank for `main(..)`} xywh {95 100 310 50} labelfont 1 labelsize 11 align 132 textsize 11 resizable
+ code0 {\#include "widgets/Code_Editor.h"}
+ code1 {o->add_key_binding(FL_Tab, 0, use_tab_navigation);}
+ class {fld::widget::Code_Editor}
+ }
+ }
+ Fl_Group {} {
+ callback propagate_load open
+ xywh {15 155 390 60} box FLAT_BOX labelfont 1 labelsize 11 align 4
+ } {
+ Fl_Text_Editor {} {
+ label {Return Type:}
+ callback {if (!current_node || !current_node->is_a(Type::Function)) return;
+Function_Node* nd = (Function_Node*)current_node;
+
+if (v == LOAD) {
+ const char *cmttext = nd->return_type();
+ o->buffer()->text( cmttext ? cmttext : "" );
+} else {
+ char *c = o->buffer()->text();
+ const char *nn = nd->return_type();
+ if ( ( nn && (strcmp(nn, c) != 0))
+ || (!nn && (strcmp("", c) != 0)) )
+ {
+ nd->return_type(c);
+ Fluid.proj.set_modflag(1);
+ }
+ free(c);
+}}
+ tooltip {return type, or blank to return outermost widget} xywh {95 160 310 50} labelfont 1 labelsize 11 align 132 textsize 11 resizable
+ code0 {\#include "widgets/Code_Editor.h"}
+ code1 {o->add_key_binding(FL_Tab, 0, use_tab_navigation);}
+ class {fld::widget::Code_Editor}
+ }
+ }
+ Fl_Group {} {
+ callback propagate_load open
+ xywh {15 215 390 105} box FLAT_BOX
+ } {
+ Fl_Text_Editor {} {
+ label {Comment:}
+ callback {if (!current_node || !current_node->is_a(Type::Function)) return;
+Function_Node* nd = (Function_Node*)current_node;
+
+if (v == LOAD) {
+ const char *cmttext = nd->comment();
+ o->buffer()->text( cmttext ? cmttext : "" );
+} else {
+ char *c = o->buffer()->text();
+ const char *nn = nd->comment();
+ if ( ( nn && (strcmp(nn, c) != 0))
+ || (!nn && (strcmp("", c) != 0)) )
+ {
+ nd->comment(c);
+ Fluid.proj.set_modflag(1);
+ redraw_browser();
+ }
+ free(c);
+}}
+ xywh {95 220 310 100} box DOWN_BOX labelfont 1 labelsize 11 align 4 textfont 4 textsize 11 resizable
+ code0 {o->buffer(new Fl_Text_Buffer());}
+ code1 {o->add_key_binding(FL_Tab, 0, use_tab_navigation);}
+ }
+ }
+ }
+ }
+ }
+ }
+ Fl_Tabs widget_tabs_repo {open
xywh {10 10 400 350} hide
code0 {o->hide();}
} {
- Fl_Group {} {open
+ Fl_Group {} {
xywh {10 30 400 330} resizable
} {}
}