2005-03-25 18:20:26 +03:00
|
|
|
//
|
|
|
|
// "$Id$"
|
|
|
|
//
|
|
|
|
// Fl_File_Chooser dialog for the Fast Light Tool Kit (FLTK).
|
|
|
|
//
|
2009-01-01 19:11:32 +03:00
|
|
|
// Copyright 1998-2009 by Bill Spitzak and others.
|
2005-03-25 18:20:26 +03:00
|
|
|
//
|
|
|
|
// 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
|
|
|
|
//
|
|
|
|
|
2008-05-01 22:56:12 +04:00
|
|
|
// generated by Fast Light User Interface Designer (fluid) version 1.0300
|
2001-08-02 01:24:49 +04:00
|
|
|
|
2001-09-29 18:38:59 +04:00
|
|
|
#ifndef Fl_File_Chooser_H
|
|
|
|
#define Fl_File_Chooser_H
|
2001-08-02 01:24:49 +04:00
|
|
|
#include <FL/Fl.H>
|
2003-09-08 21:11:45 +04:00
|
|
|
#include <FL/Fl_Double_Window.H>
|
2001-08-02 01:24:49 +04:00
|
|
|
#include <stdio.h>
|
|
|
|
#include <stdlib.h>
|
|
|
|
#include <string.h>
|
2002-06-07 19:06:32 +04:00
|
|
|
#include <FL/Fl_Group.H>
|
2002-04-19 00:37:29 +04:00
|
|
|
#include <FL/Fl_Choice.H>
|
2002-06-07 19:06:32 +04:00
|
|
|
#include <FL/Fl_Menu_Button.H>
|
2001-08-02 20:17:04 +04:00
|
|
|
#include <FL/Fl_Button.H>
|
2002-06-07 19:06:32 +04:00
|
|
|
#include <FL/Fl_Preferences.H>
|
|
|
|
#include <FL/Fl_Tile.H>
|
2002-04-19 00:37:29 +04:00
|
|
|
#include <FL/Fl_File_Browser.H>
|
2002-06-07 19:06:32 +04:00
|
|
|
#include <FL/Fl_Box.H>
|
|
|
|
#include <FL/Fl_Check_Button.H>
|
2002-05-01 01:50:16 +04:00
|
|
|
#include <FL/Fl_File_Input.H>
|
2002-04-19 00:37:29 +04:00
|
|
|
#include <FL/Fl_Return_Button.H>
|
2002-06-07 19:06:32 +04:00
|
|
|
#include <FL/fl_ask.H>
|
2001-08-02 01:24:49 +04:00
|
|
|
|
2002-07-15 01:25:39 +04:00
|
|
|
class FL_EXPORT Fl_File_Chooser {
|
2001-08-02 01:24:49 +04:00
|
|
|
public:
|
2007-01-28 22:41:56 +03:00
|
|
|
enum { SINGLE = 0, MULTI = 1, CREATE = 2, DIRECTORY = 4 };
|
2002-06-07 19:06:32 +04:00
|
|
|
private:
|
2007-01-28 22:41:56 +03:00
|
|
|
static Fl_Preferences prefs_;
|
|
|
|
void (*callback_)(Fl_File_Chooser*, void *);
|
|
|
|
void *data_;
|
|
|
|
char directory_[1024];
|
|
|
|
char pattern_[1024];
|
|
|
|
char preview_text_[2048];
|
|
|
|
int type_;
|
|
|
|
void favoritesButtonCB();
|
|
|
|
void favoritesCB(Fl_Widget *w);
|
|
|
|
void fileListCB();
|
|
|
|
void fileNameCB();
|
|
|
|
void newdir();
|
|
|
|
static void previewCB(Fl_File_Chooser *fc);
|
|
|
|
void showChoiceCB();
|
|
|
|
void update_favorites();
|
|
|
|
void update_preview();
|
2002-06-07 19:06:32 +04:00
|
|
|
public:
|
2001-09-29 18:38:59 +04:00
|
|
|
Fl_File_Chooser(const char *d, const char *p, int t, const char *title);
|
2001-08-02 01:24:49 +04:00
|
|
|
private:
|
2003-09-08 21:11:45 +04:00
|
|
|
Fl_Double_Window *window;
|
2005-04-15 22:00:33 +04:00
|
|
|
void cb_window_i(Fl_Double_Window*, void*);
|
2003-09-08 21:11:45 +04:00
|
|
|
static void cb_window(Fl_Double_Window*, void*);
|
2002-06-07 19:06:32 +04:00
|
|
|
Fl_Choice *showChoice;
|
2005-04-15 22:00:33 +04:00
|
|
|
void cb_showChoice_i(Fl_Choice*, void*);
|
2002-06-07 19:06:32 +04:00
|
|
|
static void cb_showChoice(Fl_Choice*, void*);
|
|
|
|
Fl_Menu_Button *favoritesButton;
|
2005-04-15 22:00:33 +04:00
|
|
|
void cb_favoritesButton_i(Fl_Menu_Button*, void*);
|
2002-06-07 19:06:32 +04:00
|
|
|
static void cb_favoritesButton(Fl_Menu_Button*, void*);
|
2002-07-23 19:14:17 +04:00
|
|
|
public:
|
2001-08-02 20:17:04 +04:00
|
|
|
Fl_Button *newButton;
|
2002-07-23 19:14:17 +04:00
|
|
|
private:
|
2005-04-15 22:00:33 +04:00
|
|
|
void cb_newButton_i(Fl_Button*, void*);
|
2001-08-02 20:17:04 +04:00
|
|
|
static void cb_newButton(Fl_Button*, void*);
|
2005-04-15 22:00:33 +04:00
|
|
|
void cb__i(Fl_Tile*, void*);
|
2002-06-07 19:06:32 +04:00
|
|
|
static void cb_(Fl_Tile*, void*);
|
2002-04-19 00:37:29 +04:00
|
|
|
Fl_File_Browser *fileList;
|
2005-04-15 22:00:33 +04:00
|
|
|
void cb_fileList_i(Fl_File_Browser*, void*);
|
2002-04-19 00:37:29 +04:00
|
|
|
static void cb_fileList(Fl_File_Browser*, void*);
|
2002-06-07 19:06:32 +04:00
|
|
|
Fl_Box *previewBox;
|
2002-07-23 19:14:17 +04:00
|
|
|
public:
|
2002-06-07 19:06:32 +04:00
|
|
|
Fl_Check_Button *previewButton;
|
2002-07-23 19:14:17 +04:00
|
|
|
private:
|
2005-04-15 22:00:33 +04:00
|
|
|
void cb_previewButton_i(Fl_Check_Button*, void*);
|
2002-06-07 19:06:32 +04:00
|
|
|
static void cb_previewButton(Fl_Check_Button*, void*);
|
2002-05-01 01:50:16 +04:00
|
|
|
Fl_File_Input *fileName;
|
2005-04-15 22:00:33 +04:00
|
|
|
void cb_fileName_i(Fl_File_Input*, void*);
|
2002-05-01 01:50:16 +04:00
|
|
|
static void cb_fileName(Fl_File_Input*, void*);
|
2002-04-19 00:37:29 +04:00
|
|
|
Fl_Return_Button *okButton;
|
2005-04-15 22:00:33 +04:00
|
|
|
void cb_okButton_i(Fl_Return_Button*, void*);
|
2002-04-19 00:37:29 +04:00
|
|
|
static void cb_okButton(Fl_Return_Button*, void*);
|
2005-03-25 18:20:26 +03:00
|
|
|
Fl_Button *cancelButton;
|
2005-04-15 22:00:33 +04:00
|
|
|
void cb_cancelButton_i(Fl_Button*, void*);
|
2005-03-25 18:20:26 +03:00
|
|
|
static void cb_cancelButton(Fl_Button*, void*);
|
2003-09-08 21:11:45 +04:00
|
|
|
Fl_Double_Window *favWindow;
|
2002-06-07 19:06:32 +04:00
|
|
|
Fl_File_Browser *favList;
|
2005-04-15 22:00:33 +04:00
|
|
|
void cb_favList_i(Fl_File_Browser*, void*);
|
2002-06-07 19:06:32 +04:00
|
|
|
static void cb_favList(Fl_File_Browser*, void*);
|
|
|
|
Fl_Button *favUpButton;
|
2005-04-15 22:00:33 +04:00
|
|
|
void cb_favUpButton_i(Fl_Button*, void*);
|
2002-06-07 19:06:32 +04:00
|
|
|
static void cb_favUpButton(Fl_Button*, void*);
|
|
|
|
Fl_Button *favDeleteButton;
|
2005-04-15 22:00:33 +04:00
|
|
|
void cb_favDeleteButton_i(Fl_Button*, void*);
|
2002-06-07 19:06:32 +04:00
|
|
|
static void cb_favDeleteButton(Fl_Button*, void*);
|
|
|
|
Fl_Button *favDownButton;
|
2005-04-15 22:00:33 +04:00
|
|
|
void cb_favDownButton_i(Fl_Button*, void*);
|
2002-06-07 19:06:32 +04:00
|
|
|
static void cb_favDownButton(Fl_Button*, void*);
|
|
|
|
Fl_Button *favCancelButton;
|
2005-04-15 22:00:33 +04:00
|
|
|
void cb_favCancelButton_i(Fl_Button*, void*);
|
2002-06-07 19:06:32 +04:00
|
|
|
static void cb_favCancelButton(Fl_Button*, void*);
|
|
|
|
Fl_Return_Button *favOkButton;
|
2005-04-15 22:00:33 +04:00
|
|
|
void cb_favOkButton_i(Fl_Return_Button*, void*);
|
2002-06-07 19:06:32 +04:00
|
|
|
static void cb_favOkButton(Fl_Return_Button*, void*);
|
2001-08-02 01:24:49 +04:00
|
|
|
public:
|
2002-06-07 19:06:32 +04:00
|
|
|
~Fl_File_Chooser();
|
|
|
|
void callback(void (*cb)(Fl_File_Chooser *, void *), void *d = 0);
|
2001-08-02 01:24:49 +04:00
|
|
|
void color(Fl_Color c);
|
|
|
|
Fl_Color color();
|
2007-01-28 22:41:56 +03:00
|
|
|
int count();
|
|
|
|
void directory(const char *d);
|
2001-08-02 01:24:49 +04:00
|
|
|
char * directory();
|
2007-01-28 22:41:56 +03:00
|
|
|
void filter(const char *p);
|
2001-08-02 01:24:49 +04:00
|
|
|
const char * filter();
|
2002-07-02 01:14:20 +04:00
|
|
|
int filter_value();
|
|
|
|
void filter_value(int f);
|
2001-08-02 01:24:49 +04:00
|
|
|
void hide();
|
|
|
|
void iconsize(uchar s);
|
|
|
|
uchar iconsize();
|
|
|
|
void label(const char *l);
|
|
|
|
const char * label();
|
2005-03-25 18:20:26 +03:00
|
|
|
void ok_label(const char *l);
|
|
|
|
const char * ok_label();
|
2007-01-28 22:41:56 +03:00
|
|
|
void preview(int e);
|
|
|
|
int preview() const { return previewButton->value(); };
|
|
|
|
void rescan();
|
|
|
|
void rescan_keep_filename();
|
2001-08-02 20:17:04 +04:00
|
|
|
void show();
|
2001-12-15 18:20:54 +03:00
|
|
|
int shown();
|
2001-08-02 01:24:49 +04:00
|
|
|
void textcolor(Fl_Color c);
|
|
|
|
Fl_Color textcolor();
|
2008-04-23 23:09:28 +04:00
|
|
|
void textfont(Fl_Font f);
|
|
|
|
Fl_Font textfont();
|
2008-08-16 01:11:21 +04:00
|
|
|
void textsize(Fl_Fontsize s);
|
|
|
|
Fl_Fontsize textsize();
|
2001-08-02 01:24:49 +04:00
|
|
|
void type(int t);
|
|
|
|
int type();
|
2005-08-08 04:50:02 +04:00
|
|
|
void * user_data() const;
|
|
|
|
void user_data(void *d);
|
2007-01-28 22:41:56 +03:00
|
|
|
const char *value(int f = 1);
|
|
|
|
void value(const char *filename);
|
2001-08-02 01:24:49 +04:00
|
|
|
int visible();
|
2008-10-01 02:22:49 +04:00
|
|
|
/**
|
|
|
|
[standard text may be customized at run-time]
|
|
|
|
*/
|
2007-01-28 22:41:56 +03:00
|
|
|
static const char *add_favorites_label;
|
2008-10-01 02:22:49 +04:00
|
|
|
/**
|
|
|
|
[standard text may be customized at run-time]
|
|
|
|
*/
|
2007-01-28 22:41:56 +03:00
|
|
|
static const char *all_files_label;
|
2008-10-01 02:22:49 +04:00
|
|
|
/**
|
|
|
|
[standard text may be customized at run-time]
|
|
|
|
*/
|
2007-01-28 22:41:56 +03:00
|
|
|
static const char *custom_filter_label;
|
2008-10-01 02:22:49 +04:00
|
|
|
/**
|
|
|
|
[standard text may be customized at run-time]
|
|
|
|
*/
|
2007-01-28 22:41:56 +03:00
|
|
|
static const char *existing_file_label;
|
2008-10-01 02:22:49 +04:00
|
|
|
/**
|
|
|
|
[standard text may be customized at run-time]
|
|
|
|
*/
|
2007-01-28 22:41:56 +03:00
|
|
|
static const char *favorites_label;
|
2008-10-01 02:22:49 +04:00
|
|
|
/**
|
|
|
|
[standard text may be customized at run-time]
|
|
|
|
*/
|
2007-01-28 22:41:56 +03:00
|
|
|
static const char *filename_label;
|
2008-10-01 02:22:49 +04:00
|
|
|
/**
|
|
|
|
[standard text may be customized at run-time]
|
|
|
|
*/
|
2007-01-28 22:41:56 +03:00
|
|
|
static const char *filesystems_label;
|
2008-10-01 02:22:49 +04:00
|
|
|
/**
|
|
|
|
[standard text may be customized at run-time]
|
|
|
|
*/
|
2007-01-28 22:41:56 +03:00
|
|
|
static const char *manage_favorites_label;
|
2008-10-01 02:22:49 +04:00
|
|
|
/**
|
|
|
|
[standard text may be customized at run-time]
|
|
|
|
*/
|
2007-01-28 22:41:56 +03:00
|
|
|
static const char *new_directory_label;
|
2008-10-01 02:22:49 +04:00
|
|
|
/**
|
|
|
|
[standard text may be customized at run-time]
|
|
|
|
*/
|
2007-01-28 22:41:56 +03:00
|
|
|
static const char *new_directory_tooltip;
|
2008-10-01 02:22:49 +04:00
|
|
|
/**
|
|
|
|
[standard text may be customized at run-time]
|
|
|
|
*/
|
2007-01-28 22:41:56 +03:00
|
|
|
static const char *preview_label;
|
2008-10-01 02:22:49 +04:00
|
|
|
/**
|
|
|
|
[standard text may be customized at run-time]
|
|
|
|
*/
|
2007-01-28 22:41:56 +03:00
|
|
|
static const char *save_label;
|
2008-10-01 02:22:49 +04:00
|
|
|
/**
|
|
|
|
[standard text may be customized at run-time]
|
|
|
|
*/
|
2007-01-28 22:41:56 +03:00
|
|
|
static const char *show_label;
|
2008-10-01 02:22:49 +04:00
|
|
|
/**
|
|
|
|
the sort function that is used when loading
|
|
|
|
the contents of a directory.
|
|
|
|
*/
|
2007-01-28 22:41:56 +03:00
|
|
|
static Fl_File_Sort_F *sort;
|
2008-05-01 22:56:12 +04:00
|
|
|
private:
|
|
|
|
Fl_Widget* ext_group;
|
|
|
|
public:
|
|
|
|
Fl_Widget* add_extra(Fl_Widget* gr);
|
2001-08-02 01:24:49 +04:00
|
|
|
};
|
2002-05-24 18:02:56 +04:00
|
|
|
FL_EXPORT char *fl_dir_chooser(const char *message,const char *fname,int relative=0);
|
|
|
|
FL_EXPORT char *fl_file_chooser(const char *message,const char *pat,const char *fname,int relative=0);
|
|
|
|
FL_EXPORT void fl_file_chooser_callback(void (*cb)(const char*));
|
2005-03-25 19:11:07 +03:00
|
|
|
FL_EXPORT void fl_file_chooser_ok_label(const char*l);
|
2001-08-02 01:24:49 +04:00
|
|
|
#endif
|
2005-03-25 18:20:26 +03:00
|
|
|
|
|
|
|
//
|
|
|
|
// End of "$Id$".
|
|
|
|
//
|