diff options
| -rw-r--r-- | FL/Fl_File_Chooser.H | 4 | ||||
| -rw-r--r-- | fluid/Fl_Function_Type.cxx | 5 | ||||
| -rw-r--r-- | fluid/function_panel.cxx | 77 | ||||
| -rw-r--r-- | fluid/function_panel.fl | 53 | ||||
| -rw-r--r-- | fluid/function_panel.h | 3 | ||||
| -rw-r--r-- | src/Fl_File_Chooser.fl | 17 |
6 files changed, 106 insertions, 53 deletions
diff --git a/FL/Fl_File_Chooser.H b/FL/Fl_File_Chooser.H index 9ff92d89d..57af5b438 100644 --- a/FL/Fl_File_Chooser.H +++ b/FL/Fl_File_Chooser.H @@ -43,8 +43,8 @@ class FL_EXPORT Fl_File_Chooser { public: /** - \enum Type - Determines the type of file chooser presented to the user. + \enum Type + Determines the type of file chooser presented to the user. */ enum Type { SINGLE = 0, ///< Select a single, existing file. diff --git a/fluid/Fl_Function_Type.cxx b/fluid/Fl_Function_Type.cxx index ccb195224..ce6493911 100644 --- a/fluid/Fl_Function_Type.cxx +++ b/fluid/Fl_Function_Type.cxx @@ -940,7 +940,7 @@ void Fl_Decl_Type::read_property(Fd_Project_Reader &f, const char *c) { */ void Fl_Decl_Type::open() { if (!decl_panel) make_decl_panel(); - decl_input->value(name()); + decl_input->buffer()->text(name()); if (is_in_class()) { decl_class_choice->value(public_); decl_class_choice->show(); @@ -963,7 +963,7 @@ void Fl_Decl_Type::open() { else if (!w) Fl::wait(); } // check values - const char*c = decl_input->value(); + const char*c = decl_input->buffer()->text(); while (isspace(*c)) c++; message = c_check(c&&c[0]=='#' ? c+1 : c); // alert user @@ -1018,6 +1018,7 @@ void Fl_Decl_Type::write_code1(Fd_Code_Writer& f) { || (!strncmp(c,"typedef",7) && isspace(c[7])) || (!strncmp(c,"FL_EXPORT",9) && isspace(c[9])) || (!strncmp(c,"struct",6) && isspace(c[6])) + || (!strncmp(c,"enum",4) && isspace(c[4])) ) ) { f.write_public(public_); write_comment_h(f, f.indent(1)); diff --git a/fluid/function_panel.cxx b/fluid/function_panel.cxx index b287f0b65..3a36f4d6f 100644 --- a/fluid/function_panel.cxx +++ b/fluid/function_panel.cxx @@ -354,7 +354,7 @@ Fl_Menu_Item menu_decl_class_choice[] = { {0,0,0,0,0,0,0,0,0} }; -Fl_Input *decl_input=(Fl_Input *)0; +CodeEditor *decl_input=(CodeEditor *)0; Fl_Text_Editor *decl_comment_input=(Fl_Text_Editor *)0; @@ -363,7 +363,7 @@ Fl_Return_Button *decl_panel_ok=(Fl_Return_Button *)0; Fl_Button *decl_panel_cancel=(Fl_Button *)0; Fl_Double_Window* make_decl_panel() { - { decl_panel = new Fl_Double_Window(343, 237, "Declaration Properties"); + { decl_panel = new Fl_Double_Window(343, 262, "Declaration Properties"); decl_panel->align(Fl_Align(FL_ALIGN_CLIP|FL_ALIGN_INSIDE)); { Fl_Group* o = new Fl_Group(10, 10, 270, 20); { Fl_Box* o = new Fl_Box(200, 10, 80, 20); @@ -383,44 +383,67 @@ Fl_Double_Window* make_decl_panel() { } // Fl_Choice* decl_class_choice o->end(); } // Fl_Group* o - { decl_input = new Fl_Input(10, 40, 320, 20, "This can be any declaration, like \"int x;\", an external symbol like \"exter\ + { Fl_Tile* o = new Fl_Tile(10, 40, 320, 180); + { Fl_Group* o = new Fl_Group(10, 40, 320, 100); + o->box(FL_FLAT_BOX); + { decl_input = new CodeEditor(10, 40, 320, 45, "This can be any declaration, like \"int x;\", an external symbol like \"exter\ n int foo();\", a #directive like \"#include <foo.h>\", a comment like \"//foo\ \" or \"/*foo*/\", or typedef like \"typedef char byte;\" or \"using std::list\ ;\"."); - decl_input->tooltip("Declaration text."); - decl_input->labelsize(11); - decl_input->textfont(4); - decl_input->textsize(11); - decl_input->align(Fl_Align(134)); - decl_input->when(FL_WHEN_NEVER); - } // Fl_Input* decl_input - { decl_comment_input = new Fl_Text_Editor(10, 130, 320, 65, "Comment:"); - decl_comment_input->tooltip("Declaration comment in Doxygen format"); - decl_comment_input->box(FL_DOWN_BOX); - decl_comment_input->labelfont(1); - decl_comment_input->labelsize(11); - decl_comment_input->textfont(4); - decl_comment_input->textsize(11); - decl_comment_input->align(Fl_Align(FL_ALIGN_TOP_LEFT)); - Fl_Group::current()->resizable(decl_comment_input); - decl_comment_input->buffer(new Fl_Text_Buffer()); - decl_comment_input->add_key_binding(FL_Tab, 0, use_tab_navigation); - } // Fl_Text_Editor* decl_comment_input - { Fl_Group* o = new Fl_Group(10, 205, 320, 20); - { decl_panel_ok = new Fl_Return_Button(200, 205, 60, 20, "OK"); + decl_input->box(FL_DOWN_FRAME); + decl_input->color(FL_BACKGROUND2_COLOR); + decl_input->selection_color(FL_SELECTION_COLOR); + decl_input->labeltype(FL_NORMAL_LABEL); + decl_input->labelfont(0); + decl_input->labelsize(11); + decl_input->labelcolor(FL_FOREGROUND_COLOR); + decl_input->align(Fl_Align(134)); + decl_input->when(FL_WHEN_RELEASE); + Fl_Group::current()->resizable(decl_input); + } // CodeEditor* decl_input + { Fl_Box* o = new Fl_Box(20, 139, 300, 1); + o->box(FL_BORDER_FRAME); + o->color((Fl_Color)43); + } // Fl_Box* o + o->end(); + Fl_Group::current()->resizable(o); + } // Fl_Group* o + { Fl_Group* o = new Fl_Group(10, 140, 320, 80); + o->box(FL_FLAT_BOX); + { decl_comment_input = new Fl_Text_Editor(10, 155, 320, 64, "Comment:"); + decl_comment_input->tooltip("Declaration comment in Doxygen format"); + decl_comment_input->box(FL_DOWN_BOX); + decl_comment_input->labelfont(1); + decl_comment_input->labelsize(11); + decl_comment_input->textfont(4); + decl_comment_input->textsize(11); + decl_comment_input->align(Fl_Align(FL_ALIGN_TOP_LEFT)); + Fl_Group::current()->resizable(decl_comment_input); + decl_comment_input->buffer(new Fl_Text_Buffer()); + decl_comment_input->add_key_binding(FL_Tab, 0, use_tab_navigation); + } // Fl_Text_Editor* decl_comment_input + o->end(); + } // Fl_Group* o + o->size_range(0, 320, 100); + o->size_range(1, 320, 60); + o->end(); + Fl_Group::current()->resizable(o); + } // Fl_Tile* o + { Fl_Group* o = new Fl_Group(10, 230, 320, 20); + { decl_panel_ok = new Fl_Return_Button(200, 230, 60, 20, "OK"); decl_panel_ok->labelsize(11); decl_panel_ok->window()->hotspot(decl_panel_ok); } // Fl_Return_Button* decl_panel_ok - { decl_panel_cancel = new Fl_Button(270, 205, 60, 20, "Cancel"); + { decl_panel_cancel = new Fl_Button(270, 230, 60, 20, "Cancel"); decl_panel_cancel->shortcut(0xff1b); decl_panel_cancel->labelsize(11); } // Fl_Button* decl_panel_cancel - { Fl_Box* o = new Fl_Box(10, 205, 185, 20); + { Fl_Box* o = new Fl_Box(10, 230, 185, 20); Fl_Group::current()->resizable(o); } // Fl_Box* o o->end(); } // Fl_Group* o - decl_panel->size_range(343, 237); + decl_panel->size_range(343, 262); decl_panel->end(); } // Fl_Double_Window* decl_panel return decl_panel; diff --git a/fluid/function_panel.fl b/fluid/function_panel.fl index 3e4c8e85f..a83018d27 100644 --- a/fluid/function_panel.fl +++ b/fluid/function_panel.fl @@ -51,7 +51,7 @@ Function {make_function_panel()} {open } { Fl_Window function_panel { label {Function/Method Properties} - xywh {540 418 343 232} type Double hide resizable modal + xywh {540 418 343 232} type Double resizable modal visible } { Fl_Group {} {open xywh {10 10 270 20} @@ -264,8 +264,8 @@ Function {make_declblock_panel()} {open Function {make_decl_panel()} {open } { Fl_Window decl_panel { - label {Declaration Properties} - xywh {497 618 343 237} type Double align 80 hide resizable size_range {343 237 0 0} + label {Declaration Properties} open selected + xywh {497 618 343 262} type Double align 80 resizable size_range {343 262 0 0} visible } { Fl_Group {} { xywh {10 10 270 20} @@ -310,29 +310,48 @@ Function {make_decl_panel()} {open } } } - Fl_Input decl_input { - label {This can be any declaration, like "int x;", an external symbol like "extern int foo();", a \#directive like "\#include <foo.h>", a comment like "//foo" or "/*foo*/", or typedef like "typedef char byte;" or "using std::list;".} - tooltip {Declaration text.} xywh {10 40 320 20} labelsize 11 align 134 when 0 textfont 4 textsize 11 - } - Fl_Text_Editor decl_comment_input { - label {Comment:} - tooltip {Declaration comment in Doxygen format} xywh {10 130 320 65} box DOWN_BOX labelfont 1 labelsize 11 align 5 textfont 4 textsize 11 resizable - code0 {decl_comment_input->buffer(new Fl_Text_Buffer());} - code1 {decl_comment_input->add_key_binding(FL_Tab, 0, use_tab_navigation);} + Fl_Tile {} {open + xywh {10 40 320 180} resizable + code2 {o->size_range(0, 320, 100);} + code3 {o->size_range(1, 320, 60);} + } { + Fl_Group {} {open + xywh {10 40 320 100} box FLAT_BOX resizable + } { + Fl_Text_Editor decl_input { + label {This can be any declaration, like "int x;", an external symbol like "extern int foo();", a \#directive like "\#include <foo.h>", a comment like "//foo" or "/*foo*/", or typedef like "typedef char byte;" or "using std::list;".} + xywh {10 40 320 45} labelsize 11 align 134 resizable + code0 {\#include "CodeEditor.h"} + class CodeEditor + } + Fl_Box {} { + xywh {20 139 300 1} box BORDER_FRAME color 43 + } + } + Fl_Group {} {open + xywh {10 140 320 80} box FLAT_BOX + } { + Fl_Text_Editor decl_comment_input { + label {Comment:} + tooltip {Declaration comment in Doxygen format} xywh {10 155 320 64} box DOWN_BOX labelfont 1 labelsize 11 align 5 textfont 4 textsize 11 resizable + code0 {decl_comment_input->buffer(new Fl_Text_Buffer());} + code1 {decl_comment_input->add_key_binding(FL_Tab, 0, use_tab_navigation);} + } + } } Fl_Group {} {open - xywh {10 205 320 20} + xywh {10 230 320 20} } { Fl_Return_Button decl_panel_ok { label OK - xywh {200 205 60 20} labelsize 11 hotspot + xywh {200 230 60 20} labelsize 11 hotspot } Fl_Button decl_panel_cancel { label Cancel - xywh {270 205 60 20} shortcut 0xff1b labelsize 11 + xywh {270 230 60 20} shortcut 0xff1b labelsize 11 } Fl_Box {} { - xywh {10 205 185 20} resizable + xywh {10 230 185 20} resizable } } } @@ -341,7 +360,7 @@ Function {make_decl_panel()} {open Function {make_data_panel()} {open } { Fl_Window data_panel { - label {Inline Data Properties} open + label {Inline Data Properties} xywh {567 382 343 264} type Double align 80 resizable size_range {343 237 0 0} visible } { Fl_Group {} {open diff --git a/fluid/function_panel.h b/fluid/function_panel.h index ce9e1a03b..71a5d51d3 100644 --- a/fluid/function_panel.h +++ b/fluid/function_panel.h @@ -64,7 +64,8 @@ extern Fl_Menu_Item menu_declblock_public_choice[]; extern Fl_Double_Window *decl_panel; extern Fl_Choice *decl_choice; extern Fl_Choice *decl_class_choice; -extern Fl_Input *decl_input; +#include <FL/Fl_Tile.H> +extern CodeEditor *decl_input; extern Fl_Text_Editor *decl_comment_input; extern Fl_Return_Button *decl_panel_ok; extern Fl_Button *decl_panel_cancel; diff --git a/src/Fl_File_Chooser.fl b/src/Fl_File_Chooser.fl index e70ad8427..c7488ec84 100644 --- a/src/Fl_File_Chooser.fl +++ b/src/Fl_File_Chooser.fl @@ -32,7 +32,17 @@ decl {\#include <FL/fl_draw.H>} {private local class FL_EXPORT Fl_File_Chooser {open } { - decl {enum { SINGLE = 0, MULTI = 1, CREATE = 2, DIRECTORY = 4 };} {public local + decl {enum Type { + SINGLE = 0, ///< Select a single, existing file. + MULTI = 1, ///< Select one or more existing files. + CREATE = 2, ///< When used alone, select a single, existing file or specify a new filename. + ///< Can be combined with DIRECTORY (e.g. CREATE|DIRECTORY) to have the same + ///< effect for directories. + DIRECTORY = 4 ///< Select a single, existing directory. Can be combined with CREATE. + };} { + comment {\\enum Type +Determines the type of file chooser presented to the user. +} selected public local } decl {static Fl_Preferences *prefs_;} {private local } @@ -54,7 +64,7 @@ class FL_EXPORT Fl_File_Chooser {open } decl {void fileListCB();} {private local } - decl {void fileNameCB();} {selected private local + decl {void fileNameCB();} {private local } decl {void newdir();} {private local } @@ -389,8 +399,7 @@ else } Function {user_data(void *d)} {return_type void } { - code {data_ = d;} {selected - } + code {data_ = d;} {} } decl {const char *value(int f = 1);} {public local } |
