Author: matt
Date: 2011-01-01 13:06:56 -0800 (Sat, 01 Jan 2011)
New Revision: 8166
Log:
Change colbrowser to btter conform to FLTK coding standards. For OS X bundle 
format, move the RGB file into the bundel.

Modified:
   branches/branch-1.3/ide/Xcode3/FLTK.xcodeproj/project.pbxproj
   branches/branch-1.3/test/colbrowser.cxx

Modified: branches/branch-1.3/ide/Xcode3/FLTK.xcodeproj/project.pbxproj
===================================================================
--- branches/branch-1.3/ide/Xcode3/FLTK.xcodeproj/project.pbxproj       
2011-01-01 20:27:07 UTC (rev 8165)
+++ branches/branch-1.3/ide/Xcode3/FLTK.xcodeproj/project.pbxproj       
2011-01-01 21:06:56 UTC (rev 8166)
@@ -655,6 +655,7 @@
                C9EDD4ED1274BBCD00ADB21C /* forms.H in CopyFiles */ = {isa = 
PBXBuildFile; fileRef = E0132688B22159A85307F264 /* forms.H */; };
                C9EDD5531274C04500ADB21C /* OpenGL.framework in Frameworks */ = 
{isa = PBXBuildFile; fileRef = 05376DC900B2C885B847EA36 /* OpenGL.framework */; 
};
                C9EDD5B31274C51600ADB21C /* Fl_PostScript.H in CopyFiles */ = 
{isa = PBXBuildFile; fileRef = C9EDD5B11274C4FA00ADB21C /* Fl_PostScript.H */; 
};
+               C9F9C0DE12CFCDAC0067ADCC /* rgb.txt in Resources */ = {isa = 
PBXBuildFile; fileRef = C9F9C0DD12CFCDAC0067ADCC /* rgb.txt */; };
                CA035B0265710EFABD6E632D /* Fl_Dial.cxx in Sources */ = {isa = 
PBXBuildFile; fileRef = 3AFC31503AB99F6D00BAC647 /* Fl_Dial.cxx */; };
                CAA4C60E679571629681FAC8 /* fltk.framework in CopyFiles */ = 
{isa = PBXBuildFile; fileRef = FEB0F8FE6383384180570D94 /* fltk.framework */; };
                CAF6CE97B3EBEFFA65AAEEAD /* Fl_Widget.cxx in Sources */ = {isa 
= PBXBuildFile; fileRef = 0B9D4355B2E878715DD43AD3 /* Fl_Widget.cxx */; };
@@ -4484,6 +4485,7 @@
                C9EDD4E61274BBB600ADB21C /* jpeglib.h */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = 
jpeglib.h; path = ../../jpeg/jpeglib.h; sourceTree = SOURCE_ROOT; };
                C9EDD5B11274C4FA00ADB21C /* Fl_PostScript.H */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name 
= Fl_PostScript.H; path = ../../FL/Fl_PostScript.H; sourceTree = SOURCE_ROOT; };
                C9F1464F0E6A4DCD77AF72B8 /* Fl_Function_Type.cxx */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; 
name = Fl_Function_Type.cxx; path = ../../fluid/Fl_Function_Type.cxx; 
sourceTree = SOURCE_ROOT; };
+               C9F9C0DD12CFCDAC0067ADCC /* rgb.txt */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = rgb.txt; 
path = ../../test/rgb.txt; sourceTree = SOURCE_ROOT; };
                CAEC632CEFC2CA7592EF9D74 /* image.app */ = {isa = 
PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; 
path = image.app; sourceTree = BUILT_PRODUCTS_DIR; };
                CB23A4CE90D5A89FA2640A78 /* label.app */ = {isa = 
PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; 
path = label.app; sourceTree = BUILT_PRODUCTS_DIR; };
                CC0C80DA4DD31B6B2DB91096 /* CodeEditor.cxx */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; 
name = CodeEditor.cxx; path = ../../fluid/CodeEditor.cxx; sourceTree = 
SOURCE_ROOT; };
@@ -5647,6 +5649,7 @@
                2000E0C1AD91ACA63811D339 = {
                        isa = PBXGroup;
                        children = (
+                               C9F9C0DD12CFCDAC0067ADCC /* rgb.txt */,
                                C9EDD143127338F600ADB21C /* README.OSX.txt */,
                                5D444464FCF5714805936107 /* Applications */,
                                188555DBC553F66588792C6B /* Frameworks */,
@@ -8525,6 +8528,7 @@
                        isa = PBXResourcesBuildPhase;
                        buildActionMask = 2147483647;
                        files = (
+                               C9F9C0DE12CFCDAC0067ADCC /* rgb.txt in 
Resources */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };

Modified: branches/branch-1.3/test/colbrowser.cxx
===================================================================
--- branches/branch-1.3/test/colbrowser.cxx     2011-01-01 20:27:07 UTC (rev 
8165)
+++ branches/branch-1.3/test/colbrowser.cxx     2011-01-01 21:06:56 UTC (rev 
8166)
@@ -25,6 +25,7 @@
 //     http://www.fltk.org/str.php
 //
 
+
 #include <FL/Fl.H>
 #include <FL/Fl_Double_Window.H>
 #include <FL/Fl_Button.H>
@@ -39,6 +40,7 @@
 #include <stdio.h>
 #include <string.h>
 
+
 // some constants
 
 #define MAX_RGB 3000
@@ -46,6 +48,7 @@
 #define FL_FREE_COL4    ((Fl_Color)(FL_FREE_COLOR+3))
 #define FL_INDIANRED   ((Fl_Color)(164))
 
+
 static Fl_Double_Window *cl;
 static Fl_Box *rescol;
 static Fl_Button *dbobj;
@@ -61,279 +64,284 @@
 
 static RGBdb rgbdb[MAX_RGB];
 
-int
-main(int argc, char *argv[])
+
+int main(int argc, char *argv[])
 {
-    create_form_cl();
-
+  Fl::args(argc, argv);
+  
+  create_form_cl();
+  
 #ifdef USING_XCODE
-  strcpy(dbname, "../../../../../../../test/rgb.txt");
+  // Xcode apps do not set the current directory
+  strcpy(dbname, argv[0]);
+  char *slash = strrchr(dbname, '/');
+  if (slash)
+    strcpy(slash, "/../Resources/rgb.txt");
 #else
   strcpy(dbname, "rgb.txt");
 #endif
+  
+  if (load_browser(dbname))
+    dbobj->label(dbname);
+  else
+    dbobj->label("None");
+  dbobj->redraw();
+  
+  cl->size_range(cl->w(),cl->h(),2*cl->w(),2*cl->h());
+  
+  cl->label("RGB Browser");
+  cl->free_position();
+  cl->show(argc,argv);
+  
+  return Fl::run();
+}
 
-    if (load_browser(dbname))
-      dbobj->label(dbname);
-    else
-      dbobj->label("None");
-    dbobj->redraw();
 
-    cl->size_range(cl->w(),cl->h(),2*cl->w(),2*cl->h());
-
-    cl->label("RGB Browser");
-    cl->free_position();
-    cl->show(argc,argv);
-    
-    return Fl::run();
+static void set_entry(int i)
+{
+  RGBdb *db = rgbdb + i;
+  Fl::set_color(FL_FREE_COL4, db->r, db->g, db->b);
+  rs->value(db->r);
+  gs->value(db->g);
+  bs->value(db->b);
+  rescol->redraw();
 }
 
-static void
-set_entry(int i)
+
+static void br_cb(Fl_Widget *ob, long)
 {
-    RGBdb *db = rgbdb + i;
-    Fl::set_color(FL_FREE_COL4, db->r, db->g, db->b);
-    rs->value(db->r);
-    gs->value(db->g);
-    bs->value(db->b);
-    rescol->redraw();
+  int r = ((Fl_Browser *)ob)->value();
+  
+  if (r <= 0)
+    return;
+  set_entry(r - 1);
 }
 
-static void
-br_cb(Fl_Widget *ob, long)
-{
-    int r = ((Fl_Browser *)ob)->value();
 
-    if (r <= 0)
-      return;
-    set_entry(r - 1);
-}
-
-static int
-read_entry(FILE * fp, int *r, int *g, int *b, char *name)
+static int read_entry(FILE * fp, int *r, int *g, int *b, char *name)
 {
-    int  n;
-    char buf[512], *p;
-
-    if (!fgets(buf, sizeof(buf) - 1, fp))
-      return 0;
-
-    if(buf[0] == '!') {
-      if (fgets(buf,sizeof(buf)-1,fp)==0) {
-        /* ignore */
-      }
+  int  n;
+  char buf[512], *p;
+  
+  if (!fgets(buf, sizeof(buf) - 1, fp))
+    return 0;
+  
+  if(buf[0] == '!') {
+    if (fgets(buf,sizeof(buf)-1,fp)==0) {
+      /* ignore */
     }
-
-    if(sscanf(buf, " %d %d %d %n", r, g, b, &n) < 3)
-       return 0;
-
-    p = buf + n;
-
-    /* squeeze out all spaces */
-    while (*p)
-    {
-       if (*p != ' ' && *p != '\n')
-           *name++ = *p;
-       p++;
-    }
-    *name = 0;
-
-    return (feof(fp) || ferror(fp)) ? 0 : 1;
+  }
+  
+  if(sscanf(buf, " %d %d %d %n", r, g, b, &n) < 3)
+    return 0;
+  
+  p = buf + n;
+  
+  /* squeeze out all spaces */
+  while (*p)
+  {
+    if (*p != ' ' && *p != '\n')
+      *name++ = *p;
+    p++;
+  }
+  *name = 0;
+  
+  return (feof(fp) || ferror(fp)) ? 0 : 1;
 }
 
 
-static int
-load_browser(char *fname)
+static int load_browser(char *fname)
 {
-    FILE *fp;
-    RGBdb *db = rgbdb, *dbs = db + MAX_RGB;
-    int r, g, b,  lr  = -1 , lg = -1, lb = -1;
-    char name[256], buf[256];
+  FILE *fp;
+  RGBdb *db = rgbdb, *dbs = db + MAX_RGB;
+  int r, g, b,  lr  = -1 , lg = -1, lb = -1;
+  char name[256], buf[256];
 #ifdef __EMX__
-    if (!(fp = fl_fopen(__XOS2RedirRoot(fname), "r")))
+  if (!(fp = fl_fopen(__XOS2RedirRoot(fname), "r")))
 #else
     if (!(fp = fl_fopen(fname, "r")))
 #endif
     {
-       fl_alert("%s\n%s\n%s","Load", fname, "Can't open");
-       return 0;
+      fl_alert("%s\n%s\n%s","Load", fname, "Can't open");
+      return 0;
     }
-
-    /* read the items */
-
-    for (; db < dbs && read_entry(fp, &r, &g, &b, name);)
+  
+  /* read the items */
+  
+  for (; db < dbs && read_entry(fp, &r, &g, &b, name);)
+  {
+    db->r = r;
+    db->g = g;
+    db->b = b;
+    
+    /* unique the entries on the fly */
+    if (lr != r || lg != g || lb != b)
     {
-       db->r = r;
-       db->g = g;
-       db->b = b;
-
-       /* unique the entries on the fly */
-       if (lr != r || lg != g || lb != b)
-       {
-           db++;
-           lr = r;
-           lg = g;
-           lb = b;
-           sprintf(buf, "(%3d %3d %3d) %s", r, g, b, name);
-           colbr->add(buf);
-       }
+      db++;
+      lr = r;
+      lg = g;
+      lb = b;
+      sprintf(buf, "(%3d %3d %3d) %s", r, g, b, name);
+      colbr->add(buf);
     }
-    fclose(fp);
+  }
+  fclose(fp);
+  
+  if (db < dbs)
+    db->r = 1000;              /* sentinel */
+  else
+  {
+    db--;
+    db->r = 1000;
+  }
+  
+  colbr->topline(1);
+  colbr->select(1,1);
+  set_entry(0);
+  
+  return 1;
+}
 
-    if (db < dbs)
-       db->r = 1000;           /* sentinel */
-    else
-    {
-       db--;
-       db->r = 1000;
-    }
 
-    colbr->topline(1);
-    colbr->select(1,1);
-    set_entry(0);
-
-    return 1;
-}
-
-static int
-search_entry(int r, int g, int b)
+static int search_entry(int r, int g, int b)
 {
-    register RGBdb *db = rgbdb;
-    int i, j, diffr, diffg, diffb;
-    unsigned int diff, mindiff;
-
-    mindiff = (unsigned int)~0;
-    for (i = j = 0; db->r < 256; db++, i++)
-    {
-       diffr = r - db->r;
-       diffg = g - db->g;
-       diffb = b - db->b;
-
+  register RGBdb *db = rgbdb;
+  int i, j, diffr, diffg, diffb;
+  unsigned int diff, mindiff;
+  
+  mindiff = (unsigned int)~0;
+  for (i = j = 0; db->r < 256; db++, i++)
+  {
+    diffr = r - db->r;
+    diffg = g - db->g;
+    diffb = b - db->b;
+    
 #ifdef FL_LINEAR
-       diff = unsigned(3.0 * (FL_abs(r - db->r)) +
-                       (5.9 * FL_abs(g - db->g)) +
-                       (1.1 * (FL_abs(b - db->b)));
+    diff = unsigned(3.0 * (FL_abs(r - db->r)) +
+                    (5.9 * FL_abs(g - db->g)) +
+                    (1.1 * (FL_abs(b - db->b))));
 #else
-        diff = unsigned(3.0 * (diffr *diffr) +
-                       5.9 * (diffg *diffg) +
-                       1.1 * (diffb *diffb));
+    diff = unsigned(3.0 * (diffr *diffr) +
+                    5.9 * (diffg *diffg) +
+                    1.1 * (diffb *diffb));
 #endif
-
-       if (mindiff > diff)
-       {
-           mindiff = diff;
-           j = i;
-       }
+    
+    if (mindiff > diff)
+    {
+      mindiff = diff;
+      j = i;
     }
-
-    return j;
+  }
+  
+  return j;
 }
 
-static void
-search_rgb(Fl_Widget *, long)
+
+static void search_rgb(Fl_Widget *, long)
 {
-    int r, g, b, i;
-    int top  = colbr->topline();
+  int r, g, b, i;
+  int top  = colbr->topline();
+  
+  r = int(rs->value());
+  g = int(gs->value());
+  b = int(bs->value());
+  
+  // fl_freeze_form(cl);
+  Fl::set_color(FL_FREE_COL4, r, g, b);
+  rescol->redraw();
+  i = search_entry(r, g, b);
+  /* change topline only if necessary */
+  if(i < top || i > (top+15))
+    colbr->topline(i-8);
+  colbr->select(i+1, 1);
+  // fl_unfreeze_form(cl);
+}
 
-    r = int(rs->value());
-    g = int(gs->value());
-    b = int(bs->value());
 
-    // fl_freeze_form(cl);
-    Fl::set_color(FL_FREE_COL4, r, g, b);
-    rescol->redraw();
-    i = search_entry(r, g, b);
-    /* change topline only if necessary */
-    if(i < top || i > (top+15))
-       colbr->topline(i-8);
-    colbr->select(i+1, 1);
-    // fl_unfreeze_form(cl);
-}
-
 /* change database */
-static void
-db_cb(Fl_Widget * ob, long)
+static void db_cb(Fl_Widget * ob, long)
 {
-    const char *p = fl_input("Enter New Database Name", dbname);
-    char buf[512];
+  const char *p = fl_input("Enter New Database Name", dbname);
+  char buf[512];
+  
+  if (!p || strcmp(p, dbname) == 0)
+    return;
+  
+  strcpy(buf, p);
+  if (load_browser(buf))
+    strcpy(dbname, buf);
+  else
+    ob->label(dbname);
+}
 
-    if (!p || strcmp(p, dbname) == 0)
-       return;
 
-    strcpy(buf, p);
-    if (load_browser(buf))
-       strcpy(dbname, buf);
-    else
-       ob->label(dbname);
-}
-
-static void
-done_cb(Fl_Widget *, long)
+static void done_cb(Fl_Widget *, long)
 {
-    exit(0);
+  exit(0);
 }
 
-static void
-create_form_cl(void)
+
+static void create_form_cl(void)
 {
-    if (cl)
-       return;
-
-    cl = new Fl_Double_Window(400,385);
-    cl->box(FL_UP_BOX);
-    cl->color(FL_INDIANRED, FL_GRAY);
-
-    Fl_Box *title = new Fl_Box(40, 10, 300, 30, "Color Browser");
-    title->box(FL_NO_BOX);
-    title->labelcolor(FL_RED);
-    title->labelsize(32);
-    title->labelfont(FL_HELVETICA_BOLD);
-    title->labeltype(FL_SHADOW_LABEL);
-
-    dbobj = new Fl_Button(40, 50, 300, 25, "");
-    dbobj->type(FL_NORMAL_BUTTON);
-    dbobj->box(FL_BORDER_BOX);
-    dbobj->color(FL_INDIANRED,FL_INDIANRED);
-    dbobj->callback(db_cb, 0);
-
-    colbr = new Fl_Hold_Browser(10, 90, 280, 240, "");
-    colbr->textfont(FL_COURIER); 
-    colbr->callback(br_cb, 0);
-    colbr->box(FL_DOWN_BOX);
-
-    rescol = new Fl_Box(300, 90, 90, 35, "");
-    rescol->color(FL_FREE_COL4, FL_FREE_COL4);
-    rescol->box(FL_BORDER_BOX);
-
-    rs = new Fl_Value_Slider(300, 130, 30, 200, "");
-    rs->type(FL_VERT_FILL_SLIDER);
-    rs->color(FL_INDIANRED, FL_RED);
-    rs->bounds(0, 255);
-    rs->precision(0);
-    rs->callback(search_rgb, 0);
-    rs->when(FL_WHEN_RELEASE);
-
-    gs = new Fl_Value_Slider(330, 130, 30, 200, "");
-    gs->type(FL_VERT_FILL_SLIDER);
-    gs->color(FL_INDIANRED, FL_GREEN);
-    gs->bounds(0, 255);
-    gs->precision(0);
-    gs->callback(search_rgb, 1);
-    gs->when(FL_WHEN_RELEASE);
-
-    bs = new Fl_Value_Slider(360, 130, 30, 200, "");
-    bs->type(FL_VERT_FILL_SLIDER);
-    bs->color(FL_INDIANRED, FL_BLUE);
-    bs->bounds(0, 255);
-    bs->precision(0);
-    bs->callback(search_rgb, 2);
-    bs->when(FL_WHEN_RELEASE);
-
-    Fl_Button *done = new Fl_Button(160, 345, 80, 30, "Done");
-    done->type(FL_NORMAL_BUTTON);
-    done->callback(done_cb, 0);
-
-    cl->end();
-    cl->resizable(cl);
+  if (cl)
+    return;
+  
+  cl = new Fl_Double_Window(400,385);
+  cl->box(FL_UP_BOX);
+  cl->color(FL_INDIANRED, FL_GRAY);
+  
+  Fl_Box *title = new Fl_Box(40, 10, 300, 30, "Color Browser");
+  title->box(FL_NO_BOX);
+  title->labelcolor(FL_RED);
+  title->labelsize(32);
+  title->labelfont(FL_HELVETICA_BOLD);
+  title->labeltype(FL_SHADOW_LABEL);
+  
+  dbobj = new Fl_Button(40, 50, 300, 25, "");
+  dbobj->type(FL_NORMAL_BUTTON);
+  dbobj->box(FL_BORDER_BOX);
+  dbobj->color(FL_INDIANRED,FL_INDIANRED);
+  dbobj->callback(db_cb, 0);
+  
+  colbr = new Fl_Hold_Browser(10, 90, 280, 240, "");
+  colbr->textfont(FL_COURIER); 
+  colbr->callback(br_cb, 0);
+  colbr->box(FL_DOWN_BOX);
+  
+  rescol = new Fl_Box(300, 90, 90, 35, "");
+  rescol->color(FL_FREE_COL4, FL_FREE_COL4);
+  rescol->box(FL_BORDER_BOX);
+  
+  rs = new Fl_Value_Slider(300, 130, 30, 200, "");
+  rs->type(FL_VERT_FILL_SLIDER);
+  rs->color(FL_INDIANRED, FL_RED);
+  rs->bounds(0, 255);
+  rs->precision(0);
+  rs->callback(search_rgb, 0);
+  rs->when(FL_WHEN_RELEASE);
+  
+  gs = new Fl_Value_Slider(330, 130, 30, 200, "");
+  gs->type(FL_VERT_FILL_SLIDER);
+  gs->color(FL_INDIANRED, FL_GREEN);
+  gs->bounds(0, 255);
+  gs->precision(0);
+  gs->callback(search_rgb, 1);
+  gs->when(FL_WHEN_RELEASE);
+  
+  bs = new Fl_Value_Slider(360, 130, 30, 200, "");
+  bs->type(FL_VERT_FILL_SLIDER);
+  bs->color(FL_INDIANRED, FL_BLUE);
+  bs->bounds(0, 255);
+  bs->precision(0);
+  bs->callback(search_rgb, 2);
+  bs->when(FL_WHEN_RELEASE);
+  
+  Fl_Button *done = new Fl_Button(160, 345, 80, 30, "Done");
+  done->type(FL_NORMAL_BUTTON);
+  done->callback(done_cb, 0);
+  
+  cl->end();
+  cl->resizable(cl);
 }
 
 //

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

Reply via email to