summaryrefslogtreecommitdiff
path: root/test/native-filechooser.cxx
diff options
context:
space:
mode:
authorGreg Ercolano <erco@seriss.com>2010-01-13 23:13:59 +0000
committerGreg Ercolano <erco@seriss.com>2010-01-13 23:13:59 +0000
commit1de0988c317c7b916daa7b4f102f0889e026c77d (patch)
treee479de5817a0d0388e1f4c1a62db018ea9f2981f /test/native-filechooser.cxx
parent139c88c618ae6a186c59bde73e05ea93caa3e297 (diff)
Added Fl_Native_File_Chooser widget (with manolo's cocoa mods) to FLTK.
* Source brought into CMP standards compliance * test program added (test/native-filechooser.cxx) * Tested with linux (Ubuntu8) and with OSX (cocoa and non-cocoa builds) TODO: * Needs doxygen docs from Greg's original HTML documentation * Needs mods to Windows build files * Needs mods to cmake, and other build files * Needs Manolo's latest mods (from STR #2298) mentioned on and after "02:05 Jan 13, 2010" git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6997 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'test/native-filechooser.cxx')
-rw-r--r--test/native-filechooser.cxx83
1 files changed, 83 insertions, 0 deletions
diff --git a/test/native-filechooser.cxx b/test/native-filechooser.cxx
new file mode 100644
index 000000000..e4655e6e6
--- /dev/null
+++ b/test/native-filechooser.cxx
@@ -0,0 +1,83 @@
+//
+// "$Id$"
+//
+// Simple test of the Fl_Native_File_Chooser.
+//
+// Copyright 1998-2009 by Bill Spitzak and others.
+// Copyright 2004 Greg Ercolano.
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Library General Public
+// License as published by the Free Software Foundation; either
+// version 2 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Library General Public License for more details.
+//
+// You should have received a copy of the GNU Library General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+// USA.
+//
+// Please report all bugs and problems on the following page:
+//
+// http://www.fltk.org/str.php
+//
+#include <stdio.h>
+#include <FL/Fl.H>
+#include <FL/fl_ask.H> // fl_beep()
+#include <FL/Fl_Window.H>
+#include <FL/Fl_Button.H>
+#include <FL/Fl_Input.H>
+#include <FL/Fl_Native_File_Chooser.H>
+
+// GLOBALS
+Fl_Input *G_filename = NULL;
+
+void Butt_CB(Fl_Widget*, void*) {
+ // Create native chooser
+ Fl_Native_File_Chooser native;
+ native.title("Pick a file");
+ native.type(Fl_Native_File_Chooser::BROWSE_FILE);
+ native.filter("Text\t*.txt\n"
+ "C Files\t*.{cxx,h,c}\n"
+ "Apps\t*.{app}\n"); // TODO: need to add kNavSupportPackages to non-cocoa <FNFC>_MAC.cxx
+ native.preset_file(G_filename->value());
+ // Show native chooser
+ switch ( native.show() ) {
+ case -1: fprintf(stderr, "ERROR: %s\n", native.errmsg()); break; // ERROR
+ case 1: fprintf(stderr, "*** CANCEL\n"); fl_beep(); break; // CANCEL
+ default: // PICKED FILE
+ if ( native.filename() ) {
+ G_filename->value(native.filename());
+ } else {
+ G_filename->value("NULL");
+ }
+ break;
+ }
+}
+
+int main(int argc, char **argv) {
+ //// For a nicer looking browser under linux, uncomment the following line.
+ //// (If you do this, you'll need to link with fltk_images)
+ ////
+ //// Fl_File_Icon::load_system_icons();
+
+ Fl_Window *win = new Fl_Window(600, 100, "FLTK Window");
+ win->begin();
+ {
+ int y = 10;
+ G_filename = new Fl_Input(80, y, win->w()-80-10, 25, "Filename");
+ G_filename->value(argc < 2 ? "." : argv[1]);
+ G_filename->tooltip("Default filename");
+ y += G_filename->h() + 5;
+ Fl_Button *but = new Fl_Button(win->w()-80-10, win->h()-25-10, 80, 25, "Pick File");
+ but->callback(Butt_CB);
+ }
+ win->end();
+ win->resizable(win);
+ win->show();
+ return(Fl::run());
+}