| 
							- //
 - // "$Id: native-filechooser.cxx 8165 2011-01-01 20:27:07Z matt $"
 - //
 - // Simple test of the Fl_Native_File_Chooser.
 - //
 - // Copyright 1998-2010 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_Box.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, call Fl_File_Icon::load_system_icons();
 -   //// (If you do this, you'll need to link with fltk_images)
 -   //// NOTE: If you do not load the system icons, the file chooser will still work, but
 -   ////       no icons will be shown. However, this means you do not need to link in the
 -   ////       fltk_images library, potentially reducing the size of your executable.
 -   //// Loading the system icons is not required by the OSX or Windows native file choosers.
 - #if !defined(WIN32) && !defined(__APPLE__)
 -   Fl_File_Icon::load_system_icons();
 - #endif
 - 
 -   int argn = 1;
 - #ifdef __APPLE__
 -   // OS X may add the process number as the first argument - ignore
 -   if (argc>argn && strncmp(argv[1], "-psn_", 5)==0)
 -     argn++;
 - #endif
 -   
 -   Fl_Window *win = new Fl_Window(600, 100, "Native File Chooser Test");
 -   win->size_range(300, 100, 0, 100);
 -   win->begin();
 -   {
 -     int y = 10;
 -     G_filename = new Fl_Input(80, y, win->w()-80-10, 25, "Filename");
 -     G_filename->value(argc <= argn ? "." : argv[argn]);
 -     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);
 -     Fl_Box *dummy = new Fl_Box(80, 0, 430, 100);
 -     dummy->hide();
 -     win->resizable(dummy);
 -   }
 -   win->end();
 -   win->show(argc, argv);
 -   return(Fl::run());
 - }
 - 
 - //
 - // End of "$Id: native-filechooser.cxx 8165 2011-01-01 20:27:07Z matt $".
 - //
 
 
  |