FLTK logo

[master] d91160a - Remove platform specific code from test apps

FLTK matrix user chat room
(using Element browser app)   FLTK gitter user chat room   GitHub FLTK Project   FLTK News RSS Feed  
  FLTK Apps      FLTK Library      Forums      Links     Login 
 All Forums  |  Back to fltk.commit  ]
 
Previous Message ]Next Message ]

[master] d91160a - Remove platform specific code from test apps "Albrecht Schlosser" Aug 21, 2020  
 
commit d91160a9e06bd4ee341ca93509dbce9393d9168a
Author:     Albrecht Schlosser <albrechts.fltk@online.de>
AuthorDate: Fri Aug 21 18:54:40 2020 +0200
Commit:     Albrecht Schlosser <albrechts.fltk@online.de>
CommitDate: Fri Aug 21 18:54:40 2020 +0200

    Remove platform specific code from test apps
    
    Test programs that open files don't use platform specific code.
    They don't open files from macOS bundles.
    Support files must either be in the current working directory or
    given on the command line.
    On macOS this requires a full path when using bundles.

 test/browser.cxx     | 39 ++++++---------------------------------
 test/colbrowser.cxx  | 23 +++++++----------------
 test/demo.menu       |  2 +-
 test/help_dialog.cxx | 24 ++++--------------------
 4 files changed, 18 insertions(+), 70 deletions(-)

diff --git test/browser.cxx test/browser.cxx
index 23d84e7..05c83ac 100644
--- test/browser.cxx
+++ test/browser.cxx
@@ -160,42 +160,15 @@ void wtype_cb(Fl_Widget *, void *) {
 
 int main(int argc, char **argv) {
   int i;
-  if (!Fl::args(argc,argv,i)) Fl::fatal(Fl::help);
-  const char* fname = (i < argc) ? argv[i] : "browser.cxx";
-  Fl_Double_Window window(720,520,fname);
-  browser = new Fl_Select_Browser(0,0,window.w(),350,0);
+  if (!Fl::args(argc, argv, i)) Fl::fatal(Fl::help);
+  const char *fname = (i < argc) ? argv[i] : "browser.cxx";
+  Fl_Double_Window window(720, 520, fname);
+  browser = new Fl_Select_Browser(0, 0, window.w(), 350, 0);
   browser->type(FL_MULTI_BROWSER);
-  //browser->type(FL_HOLD_BROWSER);
-  //browser->color(42);
   browser->callback(b_cb);
-  // browser->scrollbar_right();
-  //browser->has_scrollbar(Fl_Browser::BOTH_ALWAYS);
-  //browser->format_char('#');
   if (!browser->load(fname)) {
-    int done = 0;
-#ifdef _MSC_VER
-    // if 'browser' was started from the VisualC environment in Win32,
-    // the current directory is set to the environment itself,
-    // so we need to correct the browser file path
-    if ( i == argc )
-    {
-      fname = "../test/browser.cxx";
-      done = browser->load(fname);
-    }
-#elif defined(__APPLE__)
-    char buf[2048];
-    strcpy(buf, argv[0]);
-    char *slash = strrchr(buf, '/');
-    if (slash) {
-      strcpy(slash, "/../../../browser.cxx");
-    }
-    done = browser->load(buf);
-#endif
-    if ( !done )
-    {
-      fl_message("Can't load %s, %s\n", fname, strerror(errno));
-      exit(1);
-    }
+    fl_message("Can't load '%s'\n%s\n", fname, strerror(errno));
+    exit(1);
   }
   browser->position(0);
 
diff --git test/colbrowser.cxx test/colbrowser.cxx
index bcd1506..eedb549 100644
--- test/colbrowser.cxx
+++ test/colbrowser.cxx
@@ -47,29 +47,20 @@ static Fl_Value_Slider *rs, *gs, *bs;
 static char dbname[FL_PATH_MAX];
 
 static void create_form_cl(void);
-static int load_browser(char *);
+static int load_browser(const char *);
 
 typedef struct { int r, g, b; } RGBdb;
 
 static RGBdb rgbdb[MAX_RGB];
 
 
-int main(int argc, char *argv[])
-{
-  Fl::args(argc, argv);
+int main(int argc, char *argv[]) {
+  int i;
+  if (!Fl::args(argc, argv, i)) Fl::fatal(Fl::help);
+  const char *dbname = (i < argc) ? argv[i] : "rgb.txt";
 
   create_form_cl();
 
-#ifdef __APPLE__
-  // Bundled 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
@@ -139,7 +130,7 @@ static int read_entry(FILE * fp, int *r, int *g, int *b, char *name)
 }
 
 
-static int load_browser(char *fname)
+static int load_browser(const char *fname)
 {
   FILE *fp;
   RGBdb *db = rgbdb, *dbs = db + MAX_RGB;
@@ -147,7 +138,7 @@ static int load_browser(char *fname)
   char name[256], buf[300];
 
   if (!(fp = fl_fopen(fname, "r"))) {
-    fl_alert("%s\n%s\n%s","Load", fname, "Can't open");
+    fl_alert("Load:\nCan't open '%s'", fname);
     return 0;
   }
 
diff --git test/demo.menu test/demo.menu
index 8b325cc..f53b0ed 100644
--- test/demo.menu
+++ test/demo.menu
@@ -61,7 +61,7 @@
 @main:Fluid\n(UI design tool):fluid valuators.fl
 
 @main:Cool\nDemos...:@e
-	@e:X Color\nBrowser:colbrowser
+	@e:X Color\nBrowser:colbrowser rgb.txt
 	@e:Mandelbrot:mandelbrot
 	@e:Fractals:fractals
 	@e:Puzzle:glpuzzle
diff --git test/help_dialog.cxx test/help_dialog.cxx
index 2ee19c4..5970792 100644
--- test/help_dialog.cxx
+++ test/help_dialog.cxx
@@ -36,27 +36,11 @@ main(int  argc,                 // I - Number of command-line arguments
      char *argv[])              // I - Command-line arguments
 {
   Fl_Help_Dialog *help = new Fl_Help_Dialog;
-  char htmlname[FL_PATH_MAX];
-#ifdef __APPLE__
-  int i = 1;
-  while (i < argc && Fl::arg(argc, argv, i)) i++;
-  if (i < argc) {
-    strcpy(htmlname, argv[i]);
-  } else {
-    // bundled apps do not set the current directory
-    strcpy(htmlname, argv[0]);
-    char *slash = strrchr(htmlname, '/');
-    if (slash) strcpy(slash, "/../Resources/help_dialog.html");
-  }
-#else
-  if (argc > 1) {
-    strcpy(htmlname, argv[1]);
-  } else {
-    strcpy(htmlname, "help_dialog.html");
-  }
-#endif
+  int i;
+  if (!Fl::args(argc, argv, i)) Fl::fatal(Fl::help);
+  const char *fname = (i < argc) ? argv[i] : "help_dialog.html";
 
-  help->load(htmlname); // TODO: add error check (when load() returns int instead of void)
+  help->load(fname); // TODO: add error check (when load() returns int instead of void)
 
   help->show(1, argv);
 
Direct Link to Message ]
 
     
Previous Message ]Next Message ]
 
 

Comments are owned by the poster. All other content is copyright 1998-2024 by Bill Spitzak and others. This project is hosted by The FLTK Team. Please report site problems to 'erco@seriss.com'.