diff -urwN /home/barrero/t/fltk-1.1.4/fluid/Fl_Function_Type.cxx fluid/Fl_Function_Type.cxx
--- /home/barrero/t/fltk-1.1.4/fluid/Fl_Function_Type.cxx	2003-08-02 17:17:30.000000000 -0400
+++ fluid/Fl_Function_Type.cxx	2004-03-01 12:38:47.000000000 -0500
@@ -433,7 +433,16 @@
 
 ////////////////////////////////////////////////////////////////
 
-int Fl_Decl_Type::is_public() const {return public_;}
+int Fl_Decl_Type::is_public() const 
+{
+ Fl_Type *p = Fl_Type::current;
+ while (p && !p->is_decl_block()) p = p->parent;
+ if(p && p->is_public() && public_)
+   return public_;
+ else if(!p)
+   return public_;
+ return 0;
+}
 
 Fl_Type *Fl_Decl_Type::make() {
   Fl_Type *p = Fl_Type::current;
@@ -525,11 +534,14 @@
 
 ////////////////////////////////////////////////////////////////
 
+int Fl_DeclBlock_Type::is_public() const {return public_;}
+
 Fl_Type *Fl_DeclBlock_Type::make() {
   Fl_Type *p = Fl_Type::current;
   while (p && !p->is_decl_block()) p = p->parent;
   Fl_DeclBlock_Type *o = new Fl_DeclBlock_Type();
   o->name("#if 1");
+  o->public_ = 0;
   o->after = strdup("#endif");
   o->add(p);
   o->factory = this;
@@ -538,12 +550,15 @@
 
 void Fl_DeclBlock_Type::write_properties() {
   Fl_Type::write_properties();
+  if (public_) write_string("public");
   write_string("after");
   write_word(after);
 }
 
 void Fl_DeclBlock_Type::read_property(const char *c) {
-  if (!strcmp(c,"after")) {
+  if(!strcmp(c,"public")) {
+    public_ = 1;
+  } else  if (!strcmp(c,"after")) {
     storestring(read_word(),after);
   } else {
     Fl_Type::read_property(c);
@@ -553,6 +568,7 @@
 void Fl_DeclBlock_Type::open() {
   if (!declblock_panel) make_declblock_panel();
   decl_before_input->static_value(name());
+  declblock_public_button->value(public_);
   decl_after_input->static_value(after);
   declblock_panel->show();
   const char* message = 0;
@@ -574,6 +590,7 @@
     message = c_check(c&&c[0]=='#' ? c+1 : c);
     if (message) continue;
     storestring(c,after);
+    public_ = declblock_public_button->value();
     break;
   }
  BREAK2:
@@ -584,12 +601,16 @@
 
 void Fl_DeclBlock_Type::write_code1() {
   const char* c = name();
-  if (c) write_c("%s\n", c);
+  if (public_)
+     write_h("%s\n", c);
+  write_c("%s\n", c);
 }
 
 void Fl_DeclBlock_Type::write_code2() {
   const char* c = after;
-  if (c) write_c("%s\n", c);
+  if (public_)
+     write_h("%s\n", c);
+  write_c("%s\n", c);
 }
 
 ////////////////////////////////////////////////////////////////
diff -urwN /home/barrero/t/fltk-1.1.4/fluid/Fl_Type.h fluid/Fl_Type.h
--- /home/barrero/t/fltk-1.1.4/fluid/Fl_Type.h	2003-09-03 15:50:54.000000000 -0400
+++ fluid/Fl_Type.h	2004-03-01 12:31:52.000000000 -0500
@@ -197,6 +197,7 @@
 
 class Fl_DeclBlock_Type : public Fl_Type {
   const char* after;
+  char public_;
 public:
   Fl_Type *make();
   void write_code1();
@@ -207,6 +208,7 @@
   void read_property(const char *);
   int is_parent() const {return 1;}
   int is_decl_block() const {return 1;}
+  virtual int is_public() const;
   int pixmapID() { return 11; }
 };
 
diff -urwN /home/barrero/t/fltk-1.1.4/fluid/function_panel.cxx fluid/function_panel.cxx
--- /home/barrero/t/fltk-1.1.4/fluid/function_panel.cxx	2003-04-02 23:28:15.000000000 -0500
+++ fluid/function_panel.cxx	2004-03-01 12:24:20.000000000 -0500
@@ -7,7 +7,7 @@
 extern class Fl_Type *Fl_Type_make(const char*);
 extern void select_only(Fl_Type*);
 
-Fl_Window *function_panel=(Fl_Window *)0;
+Fl_Double_Window *function_panel=(Fl_Double_Window *)0;
 
 Fl_Light_Button *f_public_button=(Fl_Light_Button *)0;
 
@@ -21,9 +21,9 @@
 
 Fl_Button *f_panel_cancel=(Fl_Button *)0;
 
-Fl_Window* make_function_panel() {
-  Fl_Window* w;
-  { Fl_Window* o = function_panel = new Fl_Window(285, 170, "function/method");
+Fl_Double_Window* make_function_panel() {
+  Fl_Double_Window* w;
+  { Fl_Double_Window* o = function_panel = new Fl_Double_Window(285, 170, "function/method");
     w = o;
     { Fl_Light_Button* o = f_public_button = new Fl_Light_Button(10, 10, 65, 25, "public");
       o->tooltip("Make the function or method publicly accessible.");
@@ -63,7 +63,7 @@
   return w;
 }
 
-Fl_Window *code_panel=(Fl_Window *)0;
+Fl_Double_Window *code_panel=(Fl_Double_Window *)0;
 
 Fl_Text_Editor *code_input=(Fl_Text_Editor *)0;
 
@@ -71,9 +71,9 @@
 
 Fl_Button *code_panel_cancel=(Fl_Button *)0;
 
-Fl_Window* make_code_panel() {
-  Fl_Window* w;
-  { Fl_Window* o = code_panel = new Fl_Window(548, 175, "code");
+Fl_Double_Window* make_code_panel() {
+  Fl_Double_Window* w;
+  { Fl_Double_Window* o = code_panel = new Fl_Double_Window(548, 175, "code");
     w = o;
     { Fl_Group* o = new Fl_Group(10, 10, 525, 120);
       o->box(FL_DOWN_FRAME);
@@ -99,7 +99,7 @@
   return w;
 }
 
-Fl_Window *codeblock_panel=(Fl_Window *)0;
+Fl_Double_Window *codeblock_panel=(Fl_Double_Window *)0;
 
 Fl_Input *code_before_input=(Fl_Input *)0;
 
@@ -109,9 +109,9 @@
 
 Fl_Button *codeblock_panel_cancel=(Fl_Button *)0;
 
-Fl_Window* make_codeblock_panel() {
-  Fl_Window* w;
-  { Fl_Window* o = codeblock_panel = new Fl_Window(295, 130, "codeblock");
+Fl_Double_Window* make_codeblock_panel() {
+  Fl_Double_Window* w;
+  { Fl_Double_Window* o = codeblock_panel = new Fl_Double_Window(295, 130, "codeblock");
     w = o;
     { Fl_Input* o = code_before_input = new Fl_Input(10, 10, 275, 25);
       o->tooltip("#ifdef or similar conditional code block.");
@@ -143,7 +143,7 @@
   return w;
 }
 
-Fl_Window *declblock_panel=(Fl_Window *)0;
+Fl_Double_Window *declblock_panel=(Fl_Double_Window *)0;
 
 Fl_Input *decl_before_input=(Fl_Input *)0;
 
@@ -153,11 +153,13 @@
 
 Fl_Button *declblock_panel_cancel=(Fl_Button *)0;
 
-Fl_Window* make_declblock_panel() {
-  Fl_Window* w;
-  { Fl_Window* o = declblock_panel = new Fl_Window(295, 130, "declaration block");
+Fl_Light_Button *declblock_public_button=(Fl_Light_Button *)0;
+
+Fl_Double_Window* make_declblock_panel() {
+  Fl_Double_Window* w;
+  { Fl_Double_Window* o = declblock_panel = new Fl_Double_Window(297, 158, "declaration block");
     w = o;
-    { Fl_Input* o = decl_before_input = new Fl_Input(10, 10, 275, 25);
+    { Fl_Input* o = decl_before_input = new Fl_Input(10, 35, 275, 25);
       o->tooltip("#ifdef or similar conditional declaration block.");
       o->labelsize(12);
       o->textfont(4);
@@ -165,29 +167,34 @@
       o->when(FL_WHEN_NEVER);
       Fl_Group::current()->resizable(o);
     }
-    { Fl_Box* o = new Fl_Box(10, 35, 275, 25, "\"\\n...child code...\\n\" is inserted here");
+    { Fl_Box* o = new Fl_Box(10, 60, 275, 25, "\"\\n...child code...\\n\" is inserted here");
       o->align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
     }
-    { Fl_Input* o = decl_after_input = new Fl_Input(10, 60, 275, 25);
+    { Fl_Input* o = decl_after_input = new Fl_Input(10, 85, 275, 25);
       o->tooltip("#endif or similar declaration code block.");
       o->labelsize(12);
       o->textfont(4);
       o->align(FL_ALIGN_TOP_LEFT);
       o->when(FL_WHEN_NEVER);
     }
-    { Fl_Return_Button* o = declblock_panel_ok = new Fl_Return_Button(120, 95, 80, 25, "OK");
+    { Fl_Return_Button* o = declblock_panel_ok = new Fl_Return_Button(120, 120, 80, 25, "OK");
       w->hotspot(o);
     }
-    { Fl_Button* o = declblock_panel_cancel = new Fl_Button(205, 95, 80, 25, "Cancel");
+    { Fl_Button* o = declblock_panel_cancel = new Fl_Button(205, 120, 80, 25, "Cancel");
       o->shortcut(0xff1b);
     }
+    { Fl_Light_Button* o = declblock_public_button = new Fl_Light_Button(9, 6, 65, 25, "public");
+      o->tooltip("Make the declaration publicly accessible.");
+      o->labelsize(10);
+      o->when(FL_WHEN_NEVER);
+    }
     o->set_modal();
     o->end();
   }
   return w;
 }
 
-Fl_Window *decl_panel=(Fl_Window *)0;
+Fl_Double_Window *decl_panel=(Fl_Double_Window *)0;
 
 Fl_Light_Button *decl_public_button=(Fl_Light_Button *)0;
 
@@ -197,9 +204,9 @@
 
 Fl_Button *decl_panel_cancel=(Fl_Button *)0;
 
-Fl_Window* make_decl_panel() {
-  Fl_Window* w;
-  { Fl_Window* o = decl_panel = new Fl_Window(290, 180, "declaration");
+Fl_Double_Window* make_decl_panel() {
+  Fl_Double_Window* w;
+  { Fl_Double_Window* o = decl_panel = new Fl_Double_Window(290, 180, "declaration");
     w = o;
     { Fl_Light_Button* o = decl_public_button = new Fl_Light_Button(10, 10, 65, 25, "public");
       o->tooltip("Make the declaration publicly accessible.");
@@ -227,7 +234,7 @@
   return w;
 }
 
-Fl_Window *class_panel=(Fl_Window *)0;
+Fl_Double_Window *class_panel=(Fl_Double_Window *)0;
 
 Fl_Light_Button *c_public_button=(Fl_Light_Button *)0;
 
@@ -239,9 +246,9 @@
 
 Fl_Button *c_panel_cancel=(Fl_Button *)0;
 
-Fl_Window* make_class_panel() {
-  Fl_Window* w;
-  { Fl_Window* o = class_panel = new Fl_Window(285, 170, "class");
+Fl_Double_Window* make_class_panel() {
+  Fl_Double_Window* w;
+  { Fl_Double_Window* o = class_panel = new Fl_Double_Window(285, 170, "class");
     w = o;
     { Fl_Light_Button* o = c_public_button = new Fl_Light_Button(10, 10, 65, 25, "public");
       o->tooltip("Make the class publicly accessible.");
diff -urwN /home/barrero/t/fltk-1.1.4/fluid/function_panel.fl fluid/function_panel.fl
--- /home/barrero/t/fltk-1.1.4/fluid/function_panel.fl	2003-04-02 23:28:15.000000000 -0500
+++ fluid/function_panel.fl	2004-03-01 12:24:19.000000000 -0500
@@ -16,7 +16,7 @@
 } {
   Fl_Window function_panel {
     label {function/method} open
-    xywh {774 432 285 170} resizable modal visible
+    xywh {909 450 285 170} type Double resizable modal visible
   } {
     Fl_Light_Button f_public_button {
       label public
@@ -49,7 +49,7 @@
 } {
   Fl_Window code_panel {
     label code open
-    xywh {327 261 548 175} resizable modal visible
+    xywh {327 261 548 175} type Double resizable modal visible
   } {
     Fl_Group {} {open
       xywh {10 10 525 120} box DOWN_FRAME resizable
@@ -76,7 +76,7 @@
 } {
   Fl_Window codeblock_panel {
     label codeblock open
-    xywh {289 462 295 130} resizable modal visible
+    xywh {289 462 295 130} type Double resizable modal visible
   } {
     Fl_Input code_before_input {
       tooltip {\#ifdef or similar conditional code block.} xywh {10 10 275 25} labelsize 12 align 5 when 0 textfont 4 resizable
@@ -103,25 +103,29 @@
 } {
   Fl_Window declblock_panel {
     label {declaration block} open
-    xywh {184 572 295 130} resizable modal visible
+    xywh {184 572 297 158} type Double resizable modal visible
   } {
     Fl_Input decl_before_input {
-      tooltip {\#ifdef or similar conditional declaration block.} xywh {10 10 275 25} labelsize 12 align 5 when 0 textfont 4 resizable
+      tooltip {\#ifdef or similar conditional declaration block.} xywh {10 35 275 25} labelsize 12 align 5 when 0 textfont 4 resizable
     }
     Fl_Box {} {
       label {"\\n...child code...\\n" is inserted here}
-      xywh {10 35 275 25} align 20
+      xywh {10 60 275 25} align 20
     }
     Fl_Input decl_after_input {
-      tooltip {\#endif or similar declaration code block.} xywh {10 60 275 25} labelsize 12 align 5 when 0 textfont 4
+      tooltip {\#endif or similar declaration code block.} xywh {10 85 275 25} labelsize 12 align 5 when 0 textfont 4
     }
     Fl_Return_Button declblock_panel_ok {
       label OK
-      xywh {120 95 80 25} hotspot
+      xywh {120 120 80 25} hotspot
     }
     Fl_Button declblock_panel_cancel {
       label Cancel
-      xywh {205 95 80 25} shortcut 0xff1b
+      xywh {205 120 80 25} shortcut 0xff1b
+    }
+    Fl_Light_Button declblock_public_button {
+      label public selected
+      tooltip {Make the declaration publicly accessible.} xywh {9 6 65 25} labelsize 10 when 0
     }
   }
 } 
@@ -130,7 +134,7 @@
 } {
   Fl_Window decl_panel {
     label declaration open
-    xywh {393 601 290 180} resizable visible
+    xywh {393 601 290 180} type Double resizable visible
   } {
     Fl_Light_Button decl_public_button {
       label public
@@ -155,7 +159,7 @@
 } {
   Fl_Window class_panel {
     label class open
-    xywh {517 797 285 170} resizable modal visible
+    xywh {517 797 285 170} type Double resizable modal visible
   } {
     Fl_Light_Button c_public_button {
       label public
@@ -490,7 +494,7 @@
       }
       Fl_Button {} {
         user_data {"Fl_Progress"}
-        callback type_make_cb selected
+        callback type_make_cb
         tooltip Progress xywh {392 52 24 24} box THIN_UP_BOX
         code0 {o->image(pixmap[36]);}
       }
diff -urwN /home/barrero/t/fltk-1.1.4/fluid/function_panel.h fluid/function_panel.h
--- /home/barrero/t/fltk-1.1.4/fluid/function_panel.h	2003-04-02 23:28:15.000000000 -0500
+++ fluid/function_panel.h	2004-03-01 12:24:20.000000000 -0500
@@ -3,8 +3,8 @@
 #ifndef function_panel_h
 #define function_panel_h
 #include <FL/Fl.H>
-#include <FL/Fl_Window.H>
-extern Fl_Window *function_panel;
+#include <FL/Fl_Double_Window.H>
+extern Fl_Double_Window *function_panel;
 #include <FL/Fl_Light_Button.H>
 extern Fl_Light_Button *f_public_button;
 extern Fl_Light_Button *f_c_button;
@@ -15,42 +15,42 @@
 extern Fl_Return_Button *f_panel_ok;
 #include <FL/Fl_Button.H>
 extern Fl_Button *f_panel_cancel;
-Fl_Window* make_function_panel();
-extern Fl_Window *code_panel;
+Fl_Double_Window* make_function_panel();
+extern Fl_Double_Window *code_panel;
 #include <FL/Fl_Group.H>
 #include <FL/Fl_Text_Editor.H>
 extern Fl_Text_Editor *code_input;
 extern Fl_Return_Button *code_panel_ok;
 extern Fl_Button *code_panel_cancel;
-Fl_Window* make_code_panel();
-extern Fl_Window *codeblock_panel;
+Fl_Double_Window* make_code_panel();
+extern Fl_Double_Window *codeblock_panel;
 extern Fl_Input *code_before_input;
 #include <FL/Fl_Box.H>
 extern Fl_Input *code_after_input;
 extern Fl_Return_Button *codeblock_panel_ok;
 extern Fl_Button *codeblock_panel_cancel;
-Fl_Window* make_codeblock_panel();
-extern Fl_Window *declblock_panel;
+Fl_Double_Window* make_codeblock_panel();
+extern Fl_Double_Window *declblock_panel;
 extern Fl_Input *decl_before_input;
 extern Fl_Input *decl_after_input;
 extern Fl_Return_Button *declblock_panel_ok;
 extern Fl_Button *declblock_panel_cancel;
-Fl_Window* make_declblock_panel();
-extern Fl_Window *decl_panel;
+extern Fl_Light_Button *declblock_public_button;
+Fl_Double_Window* make_declblock_panel();
+extern Fl_Double_Window *decl_panel;
 extern Fl_Light_Button *decl_public_button;
 extern Fl_Input *decl_input;
 extern Fl_Return_Button *decl_panel_ok;
 extern Fl_Button *decl_panel_cancel;
-Fl_Window* make_decl_panel();
-extern Fl_Window *class_panel;
+Fl_Double_Window* make_decl_panel();
+extern Fl_Double_Window *class_panel;
 extern Fl_Light_Button *c_public_button;
 extern Fl_Input *c_name_input;
 extern Fl_Input *c_subclass_input;
 extern Fl_Return_Button *c_panel_ok;
 extern Fl_Button *c_panel_cancel;
-Fl_Window* make_class_panel();
+Fl_Double_Window* make_class_panel();
 void type_make_cb(Fl_Widget*w,void*d);
-#include <FL/Fl_Double_Window.H>
 extern Fl_Double_Window *widgetbin_panel;
 extern void type_make_cb(Fl_Button*, void*);
 Fl_Double_Window* make_widgetbin();
