Author: matt
Date: 2011-07-31 15:28:07 -0700 (Sun, 31 Jul 2011)
New Revision: 8893
Log:
Fluid3:
 - added a member FileType to Fl_File_Type to give more detail
 - added explicit vs. default file type (based on filename extension)
 - added pulldown menu to explicitly set types or return to the defualt type
 - added code for reading and writing


Modified:
   branches/branch-3.0/fltk.flw
   branches/branch-3.0/fluid/Fl_Type.cxx
   branches/branch-3.0/fluid/Fl_Type.h
   branches/branch-3.0/fluid/file_xcode.cxx
   branches/branch-3.0/fluid/workspace_panel.cxx
   branches/branch-3.0/fluid/workspace_panel.fl
   branches/branch-3.0/fluid/workspace_panel.h

Modified: branches/branch-3.0/fltk.flw
===================================================================
--- branches/branch-3.0/fltk.flw        2011-07-31 19:48:07 UTC (rev 8892)
+++ branches/branch-3.0/fltk.flw        2011-07-31 22:28:07 UTC (rev 8893)
@@ -225,7 +225,7 @@
         list_env 64
         filename_and_path {fltk3/ask.h}
       }
-      file_ref {Bitmap.h} {
+      file_ref {Bitmap.h} {selected
         uuid_Xcode4_PBXBuildFile {D83BCD17-0F87-4FB5-8986-C0F3F65C02EB}
         uuid_Xcode4_PBXFileRef {249A3332-2091-44E1-8C33-059FC2702523}
         build_env 64
@@ -1107,7 +1107,7 @@
         list_env 64
         filename_and_path {fltk3/TreeItemArray.h}
       }
-      file_ref {TreePrefs.h} {selected
+      file_ref {TreePrefs.h} {
         uuid_Xcode4_PBXBuildFile {C2B74F46-3E7C-4CD7-8267-4FC28F34895D}
         uuid_Xcode4_PBXFileRef {EC737FCE-1C5A-4F70-9A27-F94BA25D1072}
         build_env 64
@@ -2594,27 +2594,22 @@
 } {
   app_target Demo {open
   } {
-    file_ref {demo.cxx} {
-      }
+    file_ref {demo.cxx} {}
   }
   app_target adjuster {open
   } {
-    file_ref {adjuster.cxx} {
-      }
+    file_ref {adjuster.cxx} {}
   }
   app_target arc {open
   } {
-    file_ref {arc.cxx} {
-      }
+    file_ref {arc.cxx} {}
   }
   app_target ask {open
   } {
-    file_ref {ask.cxx} {
-      }
+    file_ref {ask.cxx} {}
   }
   app_target bitmap {open
   } {
-    file_ref {bitmap.cxx} {
-      }
+    file_ref {bitmap.cxx} {}
   }
 } 

Modified: branches/branch-3.0/fluid/Fl_Type.cxx
===================================================================
--- branches/branch-3.0/fluid/Fl_Type.cxx       2011-07-31 19:48:07 UTC (rev 
8892)
+++ branches/branch-3.0/fluid/Fl_Type.cxx       2011-07-31 22:28:07 UTC (rev 
8893)
@@ -1360,6 +1360,27 @@
   return o;
 }
 
+void Fl_File_Type::set_default_type() {
+  const char *fn = filename();
+  if (fn) {
+    const char *ext = fltk3::filename_ext(fn);
+    filetype(FILE_TEXT);
+    if (ext) {
+      if (strcmp(ext, ".cxx")==0 || strcmp(ext, ".cpp")==0) {
+        filetype(FILE_CPP_SOURCE);
+      } else if (strcmp(ext, ".c")==0) {
+        filetype(FILE_C_SOURCE);
+      } else if (strcmp(ext, ".H")==0) {
+        filetype(FILE_CPP_HEADER);
+      } else if (strcmp(ext, ".h")==0) {
+        filetype(FILE_C_HEADER);
+      } else if (strcmp(ext, ".mm")==0) {
+        filetype(FILE_OBJC_SOURCE);
+      }
+    }
+  }
+}
+
 void Fl_File_Type::filename(const char *fn) {
   if (pFilename) {
     free(pFilename);
@@ -1369,12 +1390,15 @@
   if (fn) {
     pFilename = strdup(fn);
     name(fltk3::filename_name(fn));
+    set_default_type();
   }
 }
 
 char Fl_File_Type::read_property(const char *c) {
   if (!strcmp(c,"filename_and_path")) {
     filename(read_word());
+  } else if (!strcmp(c,"filetype")) {
+    filetype(atoi(read_word()));
   } else {
     return Fl_Workspace_Type::read_property(c);
   }
@@ -1383,11 +1407,15 @@
 
 void Fl_File_Type::write_properties() {
   Fl_Workspace_Type::write_properties();
-  write_indent(level+1);
   if (filename() && *filename()) {
+    write_indent(level+1);
     write_string("filename_and_path");
     write_word(filename());
   }
+  if (filetype()&FILE_EXPLICIT) {
+    write_indent(level+1);
+    write_string("filetype %d", filetype());
+  }
 }
 
 Fl_File_Type *Fl_File_Type::first_file(Fl_Type *base) {
@@ -1411,27 +1439,37 @@
 }
 
 char Fl_File_Type::is_cplusplus_code() {
-  const char *fn = filename();
-  if (fn) {
-    const char *ext = fltk3::filename_ext(fn);
-    if (ext && (strcmp(ext, ".cxx")==0 || strcmp(ext, ".cpp")==0)) {
-      return 1;
-    }
-  }
-  return 0;
+  return (pFileType==FILE_CPP_SOURCE);
 }
 
 char Fl_File_Type::is_cplusplus_header() {
-  const char *fn = filename();
-  if (fn) {
-    const char *ext = fltk3::filename_ext(fn);
-    if (ext && (strcmp(ext, ".h")==0 || strcmp(ext, ".H")==0)) {
-      return 1;
-    }
-  }
-  return 0;
+  return (pFileType==FILE_CPP_HEADER);
 }
 
+char Fl_File_Type::is_c_code() {
+  return (pFileType==FILE_C_SOURCE);
+}
+
+char Fl_File_Type::is_c_header() {
+  return (pFileType==FILE_C_HEADER);
+}
+
+char Fl_File_Type::is_objc_code() {
+  return (pFileType==FILE_OBJC_SOURCE);
+}
+
+char Fl_File_Type::is_objc_header() {
+  return (pFileType==FILE_OBJC_HEADER);
+}
+
+char Fl_File_Type::is_code() {
+  return 
(pFileType==FILE_CPP_SOURCE)||(pFileType==FILE_C_SOURCE)||(pFileType==FILE_OBJC_SOURCE);
+}
+
+char Fl_File_Type::is_header() {
+  return 
(pFileType==FILE_CPP_HEADER)||(pFileType==FILE_C_HEADER)||(pFileType==FILE_OBJC_HEADER);
+}
+
 const char *Fl_File_Type::filename_name() {
   const char *fn = filename();
   if (fn) {

Modified: branches/branch-3.0/fluid/Fl_Type.h
===================================================================
--- branches/branch-3.0/fluid/Fl_Type.h 2011-07-31 19:48:07 UTC (rev 8892)
+++ branches/branch-3.0/fluid/Fl_Type.h 2011-07-31 22:28:07 UTC (rev 8893)
@@ -50,8 +50,26 @@
 extern unsigned int wks_env;
 extern char *wks_name;
 
-enum { ENV_NONE=0, ENV_ALL=0x007f, ENV_ALL_SHELL=0x0003, ENV_MAKE=0x0001, 
ENV_CMAKE=0x0002, ENV_ALL_VC=0x001c, ENV_VC6=0x0004, ENV_VC2008=0x0008, 
ENV_VC2010=0x0010, ENV_ALL_XC=0x0060, ENV_XC3=0x0020, ENV_XC4=0x0040 }; 
+enum { 
+  ENV_NONE=0, 
+  ENV_ALL=0x007f, 
+    ENV_ALL_SHELL=0x0003, 
+      ENV_MAKE=0x0001, ENV_CMAKE=0x0002, 
+    ENV_ALL_VC=0x001c, 
+      ENV_VC6=0x0004, ENV_VC2008=0x0008, ENV_VC2010=0x0010,
+    ENV_ALL_XC=0x0060, 
+      ENV_XC3=0x0020, ENV_XC4=0x0040 
+}; 
 
+typedef enum {
+  FILE_EXPLICIT = 0x8000,
+  FILE_UNKNOWN = 0,
+  FILE_C_SOURCE, FILE_C_HEADER,
+  FILE_CPP_SOURCE, FILE_CPP_HEADER,
+  FILE_OBJC_SOURCE, FILE_OBJC_HEADER,
+  FILE_TEXT, FILE_TEXT_SCRIPT
+} FileType;
+
 class Fl_Type {
 
   friend class Widget_Browser;
@@ -258,10 +276,12 @@
 
 class Fl_File_Type : public Fl_Workspace_Type {
   char *pFilename;
+  FileType pFileType;
 public:
   Fl_File_Type() :
-  Fl_Workspace_Type(),
-  pFilename(0) {
+    Fl_Workspace_Type(),
+    pFilename(0),
+    pFileType(FILE_UNKNOWN) {
   }
   ~Fl_File_Type() {
     if (pFilename) free(pFilename);
@@ -278,12 +298,17 @@
   virtual char read_property(const char *);
   static Fl_File_Type *first_file(Fl_Type *base);
   Fl_File_Type *next_file(Fl_Type *base);
-  char is_code();
-  char is_obj_c_code();
+  void set_default_type();
+  FileType filetype() { return pFileType; }
+  void filetype(unsigned int ft) { pFileType = (FileType)ft; }
+  char is_objc_code();
+  char is_objc_header();
   char is_c_code();
+  char is_c_header();
   char is_cplusplus_code();
+  char is_cplusplus_header();
+  char is_code();
   char is_header();
-  char is_cplusplus_header();
 };
 extern Fl_File_Type Fl_File_type;
 

Modified: branches/branch-3.0/fluid/file_xcode.cxx
===================================================================
--- branches/branch-3.0/fluid/file_xcode.cxx    2011-07-31 19:48:07 UTC (rev 
8892)
+++ branches/branch-3.0/fluid/file_xcode.cxx    2011-07-31 22:28:07 UTC (rev 
8893)
@@ -36,12 +36,59 @@
 #include "Fl_Type.h"
 #include "../fltk3/filename.h"
 
+/*
+ 
+ typedef enum {
+ FILE_DEFAULT = 0x8000,
+ FILE_UNKNOWN = 0,
+ FILE_C_SOURCE, FILE_C_HEADER,
+ FILE_CPP_SOURCE, FILE_CPP_HEADER,
+ FILE_OBJC_SOURCE, FILE_OBJC_HEADER,
+ FILE_TEXT, FILE_TEXT_SCRIPT
+ } FileType;
 
+lastKnownFileType  or  explicitFileType
+ sourcecode.c.c
+ sourcecode.c.h
+ sourcecode.cpp.cpp
+ sourcecode.cpp.objcpp
+ sourcecode.cpp.h
+ sourcecode.fluid (=text)
+ text
+ text.script.sh
+ 
+ wrapper.framework
+ wrapper.application
+ "compiled.mach-o.dylib"
+ 
+ */
+
 // ------------ file conversion 
------------------------------------------------
 
 extern char *filename;
 
 
+static const char *xcode4_type(unsigned int ft) {
+  static char buf[64];
+  if (ft & FILE_EXPLICIT) {
+    strcpy(buf, "explicitFileType = ");
+  } else {
+    strcpy(buf, "lastKnownFileType = ");
+  }
+  switch (ft & 0x7fff) {
+    case FILE_C_SOURCE:     strcat(buf, "sourcecode.c.c"); break;
+    case FILE_C_HEADER:     strcat(buf, "sourcecode.c.h"); break;
+    case FILE_CPP_SOURCE:   strcat(buf, "sourcecode.cpp.cpp"); break;
+    case FILE_CPP_HEADER:   strcat(buf, "sourcecode.cpp.h"); break;
+    case FILE_OBJC_SOURCE:  strcat(buf, "sourcecode.cpp.objcpp"); break;
+    case FILE_OBJC_HEADER:  strcat(buf, "sourcecode.cpp.h"); break;
+    case FILE_TEXT:         strcat(buf, "text"); break;
+    case FILE_TEXT_SCRIPT:  strcat(buf, "text.script.sh"); break;
+    default:                strcat(buf, "text"); break;
+  }
+  return buf;
+}
+
 int write_fltk_ide_xcode4() {
   // for now, we use a template project file. Eventually, the entire file will 
be generated
   //    template is ide/Xcode4/FLTK.xcodeproj/project.pbxproj.tmpl
@@ -97,20 +144,14 @@
           Fl_File_Type *f;
           for (f = Fl_File_Type::first_file(tgt); f; f = f->next_file(tgt)) {
             // FIXME: write a file type converter!
-            if (f->lists_in(ENV_XC4) && f->is_cplusplus_code()) {
+            if (f->lists_in(ENV_XC4)) {
               char PBXFileRef[32]; strcpy(PBXFileRef, 
f->get_UUID_Xcode("Xcode4_PBXFileRef"));
-              fprintf(out, "\t\t%s /* %s */ = {isa = PBXFileReference; 
fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = %s; path = 
../../%s; sourceTree = SOURCE_ROOT; };\n", 
+              fprintf(out, "\t\t%s /* %s */ = {isa = PBXFileReference; 
fileEncoding = 4; %s; name = %s; path = ../../%s; sourceTree = SOURCE_ROOT; 
};\n", 
                       PBXFileRef,
                       f->filename_name(), 
+                      xcode4_type(f->filetype()),
                       f->filename_name(), 
                       f->filename());
-            } else if (f->lists_in(ENV_XC4) && f->is_cplusplus_header()) {
-              char PBXFileRef[32]; strcpy(PBXFileRef, 
f->get_UUID_Xcode("Xcode4_PBXFileRef"));
-              fprintf(out, "\t\t%s /* %s */ = {isa = PBXFileReference; 
fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = %s; path = 
../../%s; sourceTree = SOURCE_ROOT; };\n", 
-                      PBXFileRef,
-                      f->filename_name(), 
-                      f->filename_name(), 
-                      f->filename());
             }
           }
           hash = strchr(hash, ';')+1;
@@ -122,7 +163,7 @@
           }
           Fl_File_Type *f;
           for (f = Fl_File_Type::first_file(tgt); f; f = f->next_file(tgt)) {
-            if (f->lists_in(ENV_XC4) && f->is_cplusplus_header()) {
+            if (f->lists_in(ENV_XC4) && f->is_header()) {
               char PBXFileRef[32]; strcpy(PBXFileRef, 
f->get_UUID_Xcode("Xcode4_PBXFileRef"));
               fprintf(out, "\t\t\t\t%s /* %s */,\n", 
                       PBXFileRef, 
@@ -138,7 +179,7 @@
           }
           Fl_File_Type *f;
           for (f = Fl_File_Type::first_file(tgt); f; f = f->next_file(tgt)) {
-            if (f->lists_in(ENV_XC4) && f->is_cplusplus_code()) {
+            if (f->lists_in(ENV_XC4) && f->is_code()) {
               char PBXFileRef[32]; strcpy(PBXFileRef, 
f->get_UUID_Xcode("Xcode4_PBXFileRef"));
               fprintf(out, "\t\t\t\t%s /* %s */,\n", 
                       PBXFileRef, 
@@ -154,7 +195,7 @@
           }
           Fl_File_Type *f;
           for (f = Fl_File_Type::first_file(tgt); f; f = f->next_file(tgt)) {
-            if (f->builds_in(ENV_XC4) && f->is_cplusplus_header()) {
+            if (f->builds_in(ENV_XC4) && f->is_header()) {
               char PBXBuildFile[32]; strcpy(PBXBuildFile, 
f->get_UUID_Xcode("Xcode4_PBXBuildFile"));
               fprintf(out, "\t\t\t\t%s /* %s in %s */,\n", 
                       PBXBuildFile, 
@@ -171,7 +212,7 @@
           }
           Fl_File_Type *f;
           for (f = Fl_File_Type::first_file(tgt); f; f = f->next_file(tgt)) {
-            if (f->builds_in(ENV_XC4) && f->is_cplusplus_code()) {
+            if (f->builds_in(ENV_XC4) && f->is_code()) {
               char PBXBuildFile[32]; strcpy(PBXBuildFile, 
f->get_UUID_Xcode("Xcode4_PBXBuildFile"));
               fprintf(out, "\t\t\t\t%s /* %s in %s */,\n", 
                       PBXBuildFile, 

Modified: branches/branch-3.0/fluid/workspace_panel.cxx
===================================================================
--- branches/branch-3.0/fluid/workspace_panel.cxx       2011-07-31 19:48:07 UTC 
(rev 8892)
+++ branches/branch-3.0/fluid/workspace_panel.cxx       2011-07-31 22:28:07 UTC 
(rev 8893)
@@ -299,6 +299,60 @@
   };
 }
 
+static void cb_Unknown(fltk3::MenuButton* o, void* v) {
+  if (v == Fl_Panel::LOAD) {
+  } else {
+    int mod = 0;
+    const fltk3::MenuItem *mi = o->mvalue();
+    int e = mi->argument();
+    for (Fl_Type *t = Fl_Type::first; t; t = t->next) {
+      if (t->selected && t->is_file()) {
+        if (((Fl_File_Type*)t)->filetype() != e) {
+          if (e==FILE_EXPLICIT)
+            ((Fl_File_Type*)t)->set_default_type();
+          else
+            ((Fl_File_Type*)t)->filetype(e|FILE_EXPLICIT);
+          mod = 1;
+        }
+      }
+    }
+    if (mod) set_modflag(1);
+  }
+      char buf[64];
+      unsigned int ft = Fl_Panel::current_file()->filetype();
+      if (ft&FILE_EXPLICIT) {
+        strcpy(buf, "explicit - ");
+      } else {
+        strcpy(buf, "default - ");
+      }
+      ft = ft & 0x7fff;
+      for (const fltk3::MenuItem *mi = o->menu(); ; mi++) {
+        if (!mi->label()) {
+          strcat(buf, "<unknown>");
+          break;
+        }
+        if (mi->argument()==ft) {
+          strcat(buf, mi->label());
+          break;
+        }
+      }
+      o->copy_label(buf);
+}
+
+fltk3::MenuItem menu_Unknown[] = {
+ {"Default", 0,  0, (void*)(FILE_EXPLICIT), 128, fltk3::NORMAL_LABEL, 0, 12, 
0},
+ {"C Source Code", 0,  0, (void*)(FILE_C_SOURCE), 0, fltk3::NORMAL_LABEL, 0, 
12, 0},
+ {"C Header", 0,  0, (void*)(FILE_C_HEADER), 0, fltk3::NORMAL_LABEL, 0, 12, 0},
+ {"C++ Source Code", 0,  0, (void*)(FILE_CPP_SOURCE), 0, fltk3::NORMAL_LABEL, 
0, 12, 0},
+ {"C++ Header", 0,  0, (void*)(FILE_CPP_HEADER), 0, fltk3::NORMAL_LABEL, 0, 
12, 0},
+ {"ObjectiveC Source", 0,  0, (void*)(FILE_OBJC_SOURCE), 0, 
fltk3::NORMAL_LABEL, 0, 12, 0},
+ {"ObjectiveC Header", 0,  0, (void*)(FILE_OBJC_HEADER), 0, 
fltk3::NORMAL_LABEL, 0, 12, 0},
+ {"Text", 0,  0, (void*)(FILE_TEXT), 0, fltk3::NORMAL_LABEL, 0, 12, 0},
+ {"Shell Script", 0,  0, (void*)(FILE_TEXT_SCRIPT), 0, fltk3::NORMAL_LABEL, 0, 
12, 0},
+ {"Unknown", 0,  0, (void*)(FILE_UNKNOWN), 0, fltk3::NORMAL_LABEL, 0, 12, 0},
+ {0,0,0,0,0,0,0,0,0}
+};
+
 static void cb_Close(fltk3::ReturnButton*, void* v) {
   if (v == Fl_Panel::LOAD) {
   } else {
@@ -309,7 +363,7 @@
 
 Fl_Panel* make_file_panel() {
   Fl_Panel* w;
-  { Fl_Panel* o = new Fl_Panel(0, 0, 405, 136, "File Properties");
+  { Fl_Panel* o = new Fl_Panel(0, 0, 291, 245, "File Properties");
     w = o;
     o->box(fltk3::FLAT_BOX);
     o->color(fltk3::BACKGROUND_COLOR);
@@ -359,14 +413,25 @@
       o->align(fltk3::Align(fltk3::ALIGN_LEFT));
       o->when(fltk3::WHEN_RELEASE_ALWAYS);
     } // Fl_Environment_Choice* o
-    { fltk3::Group* o = new fltk3::Group(9, 100, 400, 20);
+    { fltk3::Group* o = new fltk3::Group(75, 105, 170, 20, "File Type:");
+      o->labelsize(12);
+      o->callback((fltk3::Callback*)Fl_Panel::propagate_load);
+      o->align(fltk3::Align(fltk3::ALIGN_LEFT));
+      { fltk3::MenuButton* o = new fltk3::MenuButton(75, 105, 170, 20, 
"Unknown");
+        o->labelsize(12);
+        o->callback((fltk3::Callback*)cb_Unknown);
+        o->menu(menu_Unknown);
+      } // fltk3::MenuButton* o
+      o->end();
+    } // fltk3::Group* o
+    { fltk3::Group* o = new fltk3::Group(9, 195, 261, 25);
       o->labelsize(11);
       o->callback((fltk3::Callback*)Fl_Panel::propagate_load);
-      { fltk3::Box* o = new fltk3::Box(9, 100, 321, 20);
+      { fltk3::Box* o = new fltk3::Box(9, 195, 166, 25);
         o->labelsize(11);
         fltk3::Group::current()->resizable(o);
       } // fltk3::Box* o
-      { fltk3::ReturnButton* o = new fltk3::ReturnButton(330, 100, 64, 20, 
"Close");
+      { fltk3::ReturnButton* o = new fltk3::ReturnButton(175, 195, 94, 25, 
"Close");
         o->labelsize(12);
         o->callback((fltk3::Callback*)cb_Close);
       } // fltk3::ReturnButton* o

Modified: branches/branch-3.0/fluid/workspace_panel.fl
===================================================================
--- branches/branch-3.0/fluid/workspace_panel.fl        2011-07-31 19:48:07 UTC 
(rev 8892)
+++ branches/branch-3.0/fluid/workspace_panel.fl        2011-07-31 22:28:07 UTC 
(rev 8893)
@@ -49,7 +49,7 @@
 } 
 
 widget_class Fl_Environment_Choice {open
-  xywh {494 182 170 25} type Double
+  xywh {820 144 170 25} type Double
   class {fltk3::Group} visible position_relative
 } {
   decl {unsigned int pEnv;} {protected local
@@ -296,7 +296,7 @@
 } {
   {fltk3::Window} {} {
     label {File Properties} open
-    xywh {510 319 405 136} type Double labelsize 11 align 80 resizable hotspot
+    xywh {718 318 291 245} type Double labelsize 11 align 80 resizable hotspot
     code0 {o->size_range(o->w(), o->h());}
     class Fl_Panel non_modal visible
   } {
@@ -323,7 +323,7 @@
       Fl_Panel::current_file()->filename(o->value());
       if (o->changed()) set_modflag(1);
     }
-  }} selected
+  }}
         tooltip {The label text for the widget.
 Use Ctrl-J for newlines.} xywh {75 15 170 20} labelsize 12 when 1 textsize 12 
resizable
       }
@@ -369,11 +369,109 @@
       class Fl_Environment_Choice
     } {}
     {fltk3::Group} {} {
+      label {File Type:}
       callback {Fl_Panel::propagate_load} open
-      xywh {9 100 400 20} labelsize 11
+      xywh {75 105 170 20} labelsize 12 align 4
     } {
+      {fltk3::MenuButton} {} {
+        label Unknown
+        callback {if (v == Fl_Panel::LOAD) {
+  } else {
+    int mod = 0;
+    const fltk3::MenuItem *mi = o->mvalue();
+    int e = mi->argument();
+    for (Fl_Type *t = Fl_Type::first; t; t = t->next) {
+      if (t->selected && t->is_file()) {
+        if (((Fl_File_Type*)t)->filetype() != e) {
+          if (e==FILE_EXPLICIT)
+            ((Fl_File_Type*)t)->set_default_type();
+          else
+            ((Fl_File_Type*)t)->filetype(e|FILE_EXPLICIT);
+          mod = 1;
+        }
+      }
+    }
+    if (mod) set_modflag(1);
+  }
+      char buf[64];
+      unsigned int ft = Fl_Panel::current_file()->filetype();
+      if (ft&FILE_EXPLICIT) {
+        strcpy(buf, "explicit - ");
+      } else {
+        strcpy(buf, "default - ");
+      }
+      ft = ft & 0x7fff;
+      for (const fltk3::MenuItem *mi = o->menu(); ; mi++) {
+        if (!mi->label()) {
+          strcat(buf, "<unknown>");
+          break;
+        }
+        if (mi->argument()==ft) {
+          strcat(buf, mi->label());
+          break;
+        }
+      }
+      o->copy_label(buf);} open selected
+        xywh {75 105 170 20} labelsize 12
+      } {
+        MenuItem {} {
+          label Default
+          user_data FILE_EXPLICIT user_data_type long
+          xywh {10 10 31 20} labelsize 12 divider
+        }
+        MenuItem {} {
+          label {C Source Code}
+          user_data FILE_C_SOURCE user_data_type long
+          xywh {0 0 31 20} labelsize 12
+        }
+        MenuItem {} {
+          label {C Header}
+          user_data FILE_C_HEADER user_data_type long
+          xywh {10 10 31 20} labelsize 12
+        }
+        MenuItem {} {
+          label {C++ Source Code}
+          user_data FILE_CPP_SOURCE user_data_type long
+          xywh {20 20 31 20} labelsize 12
+        }
+        MenuItem {} {
+          label {C++ Header}
+          user_data FILE_CPP_HEADER user_data_type long
+          xywh {30 30 31 20} labelsize 12
+        }
+        MenuItem {} {
+          label {ObjectiveC Source}
+          user_data FILE_OBJC_SOURCE user_data_type long
+          xywh {40 40 31 20} labelsize 12
+        }
+        MenuItem {} {
+          label {ObjectiveC Header}
+          user_data FILE_OBJC_HEADER user_data_type long
+          xywh {50 50 31 20} labelsize 12
+        }
+        MenuItem {} {
+          label Text
+          user_data FILE_TEXT user_data_type long
+          xywh {60 60 31 20} labelsize 12
+        }
+        MenuItem {} {
+          label {Shell Script}
+          user_data FILE_TEXT_SCRIPT user_data_type long
+          xywh {70 70 31 20} labelsize 12
+        }
+        MenuItem {} {
+          label Unknown
+          user_data FILE_UNKNOWN user_data_type long
+          xywh {80 80 31 20} labelsize 12
+        }
+      }
+    }
+    {fltk3::Group} {} {
+      callback {Fl_Panel::propagate_load} open
+      xywh {9 195 261 25} labelsize 11
+    } {
       {fltk3::Box} {} {
-        xywh {9 100 321 20} labelsize 11 resizable
+        xywh {9 195 166 25} labelsize 11 resizable
       }
       {fltk3::ReturnButton} {} {
         label Close
@@ -382,7 +480,7 @@
     file_panel_set_cb(0, 0);
     the_file_panel->hide();
   }}
-        xywh {330 100 64 20} labelsize 12
+        xywh {175 195 94 25} labelsize 12
       }
     }
   }

Modified: branches/branch-3.0/fluid/workspace_panel.h
===================================================================
--- branches/branch-3.0/fluid/workspace_panel.h 2011-07-31 19:48:07 UTC (rev 
8892)
+++ branches/branch-3.0/fluid/workspace_panel.h 2011-07-31 22:28:07 UTC (rev 
8893)
@@ -67,6 +67,7 @@
 void file_panel_set_cb(fltk3::Widget*, void *v);
 #include <fltk3/ReturnButton.h>
 Fl_Panel* make_file_panel();
+extern fltk3::MenuItem menu_Unknown[];
 #endif
 
 //

_______________________________________________
fltk-commit mailing list
[email protected]
http://lists.easysw.com/mailman/listinfo/fltk-commit

Reply via email to