FLTK 1.3.x
|
00001 // 00002 // "$Id: Fl_File_Chooser.H 8063 2010-12-19 21:20:10Z matt $" 00003 // 00004 // Fl_File_Chooser dialog for the Fast Light Tool Kit (FLTK). 00005 // 00006 // Copyright 1998-2010 by Bill Spitzak and others. 00007 // 00008 // This library is free software; you can redistribute it and/or 00009 // modify it under the terms of the GNU Library General Public 00010 // License as published by the Free Software Foundation; either 00011 // version 2 of the License, or (at your option) any later version. 00012 // 00013 // This library is distributed in the hope that it will be useful, 00014 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00015 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00016 // Library General Public License for more details. 00017 // 00018 // You should have received a copy of the GNU Library General Public 00019 // License along with this library; if not, write to the Free Software 00020 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 00021 // USA. 00022 // 00023 // Please report all bugs and problems on the following page: 00024 // 00025 // http://www.fltk.org/str.php 00026 // 00027 00028 // generated by Fast Light User Interface Designer (fluid) version 1.0300 00029 00030 #ifndef Fl_File_Chooser_H 00031 #define Fl_File_Chooser_H 00032 #include <FL/Fl.H> 00033 #include <FL/Fl_Double_Window.H> 00034 #include <stdio.h> 00035 #include <stdlib.h> 00036 #include <string.h> 00037 #include <FL/Fl_Group.H> 00038 #include <FL/Fl_Choice.H> 00039 #include <FL/Fl_Menu_Button.H> 00040 #include <FL/Fl_Button.H> 00041 #include <FL/Fl_Preferences.H> 00042 #include <FL/Fl_Tile.H> 00043 #include <FL/Fl_File_Browser.H> 00044 #include <FL/Fl_Box.H> 00045 #include <FL/Fl_Check_Button.H> 00046 #include <FL/Fl_File_Input.H> 00047 #include <FL/Fl_Return_Button.H> 00048 #include <FL/fl_ask.H> 00049 00050 class FL_EXPORT Fl_File_Chooser { 00051 public: 00052 enum { SINGLE = 0, MULTI = 1, CREATE = 2, DIRECTORY = 4 }; 00053 private: 00054 static Fl_Preferences prefs_; 00055 void (*callback_)(Fl_File_Chooser*, void *); 00056 void *data_; 00057 char directory_[FL_PATH_MAX]; 00058 char pattern_[FL_PATH_MAX]; 00059 char preview_text_[2048]; 00060 int type_; 00061 void favoritesButtonCB(); 00062 void favoritesCB(Fl_Widget *w); 00063 void fileListCB(); 00064 void fileNameCB(); 00065 void newdir(); 00066 static void previewCB(Fl_File_Chooser *fc); 00067 void showChoiceCB(); 00068 void update_favorites(); 00069 void update_preview(); 00070 public: 00071 Fl_File_Chooser(const char *d, const char *p, int t, const char *title); 00072 private: 00073 Fl_Double_Window *window; 00074 void cb_window_i(Fl_Double_Window*, void*); 00075 static void cb_window(Fl_Double_Window*, void*); 00076 Fl_Choice *showChoice; 00077 void cb_showChoice_i(Fl_Choice*, void*); 00078 static void cb_showChoice(Fl_Choice*, void*); 00079 Fl_Menu_Button *favoritesButton; 00080 void cb_favoritesButton_i(Fl_Menu_Button*, void*); 00081 static void cb_favoritesButton(Fl_Menu_Button*, void*); 00082 public: 00083 Fl_Button *newButton; 00084 private: 00085 void cb_newButton_i(Fl_Button*, void*); 00086 static void cb_newButton(Fl_Button*, void*); 00087 void cb__i(Fl_Tile*, void*); 00088 static void cb_(Fl_Tile*, void*); 00089 Fl_File_Browser *fileList; 00090 void cb_fileList_i(Fl_File_Browser*, void*); 00091 static void cb_fileList(Fl_File_Browser*, void*); 00092 Fl_Box *previewBox; 00093 public: 00094 Fl_Check_Button *previewButton; 00095 private: 00096 void cb_previewButton_i(Fl_Check_Button*, void*); 00097 static void cb_previewButton(Fl_Check_Button*, void*); 00098 Fl_File_Input *fileName; 00099 void cb_fileName_i(Fl_File_Input*, void*); 00100 static void cb_fileName(Fl_File_Input*, void*); 00101 Fl_Return_Button *okButton; 00102 void cb_okButton_i(Fl_Return_Button*, void*); 00103 static void cb_okButton(Fl_Return_Button*, void*); 00104 Fl_Button *cancelButton; 00105 void cb_cancelButton_i(Fl_Button*, void*); 00106 static void cb_cancelButton(Fl_Button*, void*); 00107 Fl_Double_Window *favWindow; 00108 Fl_File_Browser *favList; 00109 void cb_favList_i(Fl_File_Browser*, void*); 00110 static void cb_favList(Fl_File_Browser*, void*); 00111 Fl_Button *favUpButton; 00112 void cb_favUpButton_i(Fl_Button*, void*); 00113 static void cb_favUpButton(Fl_Button*, void*); 00114 Fl_Button *favDeleteButton; 00115 void cb_favDeleteButton_i(Fl_Button*, void*); 00116 static void cb_favDeleteButton(Fl_Button*, void*); 00117 Fl_Button *favDownButton; 00118 void cb_favDownButton_i(Fl_Button*, void*); 00119 static void cb_favDownButton(Fl_Button*, void*); 00120 Fl_Button *favCancelButton; 00121 void cb_favCancelButton_i(Fl_Button*, void*); 00122 static void cb_favCancelButton(Fl_Button*, void*); 00123 Fl_Return_Button *favOkButton; 00124 void cb_favOkButton_i(Fl_Return_Button*, void*); 00125 static void cb_favOkButton(Fl_Return_Button*, void*); 00126 public: 00127 ~Fl_File_Chooser(); 00128 void callback(void (*cb)(Fl_File_Chooser *, void *), void *d = 0); 00129 void color(Fl_Color c); 00130 Fl_Color color(); 00131 int count(); 00132 void directory(const char *d); 00133 char * directory(); 00134 void filter(const char *p); 00135 const char * filter(); 00136 int filter_value(); 00137 void filter_value(int f); 00138 void hide(); 00139 void iconsize(uchar s); 00140 uchar iconsize(); 00141 void label(const char *l); 00142 const char * label(); 00143 void ok_label(const char *l); 00144 const char * ok_label(); 00145 void preview(int e); 00146 int preview() const { return previewButton->value(); }; 00147 void rescan(); 00148 void rescan_keep_filename(); 00149 void show(); 00150 int shown(); 00151 void textcolor(Fl_Color c); 00152 Fl_Color textcolor(); 00153 void textfont(Fl_Font f); 00154 Fl_Font textfont(); 00155 void textsize(Fl_Fontsize s); 00156 Fl_Fontsize textsize(); 00157 void type(int t); 00158 int type(); 00159 void * user_data() const; 00160 void user_data(void *d); 00161 const char *value(int f = 1); 00162 void value(const char *filename); 00163 int visible(); 00167 static const char *add_favorites_label; 00171 static const char *all_files_label; 00175 static const char *custom_filter_label; 00179 static const char *existing_file_label; 00183 static const char *favorites_label; 00187 static const char *filename_label; 00191 static const char *filesystems_label; 00195 static const char *manage_favorites_label; 00199 static const char *new_directory_label; 00203 static const char *new_directory_tooltip; 00207 static const char *preview_label; 00211 static const char *save_label; 00215 static const char *show_label; 00220 static Fl_File_Sort_F *sort; 00221 private: 00222 Fl_Widget* ext_group; 00223 public: 00224 Fl_Widget* add_extra(Fl_Widget* gr); 00225 Fl_File_Browser *browser(void) {return fileList; }; 00226 }; 00227 FL_EXPORT char *fl_dir_chooser(const char *message,const char *fname,int relative=0); 00228 FL_EXPORT char *fl_file_chooser(const char *message,const char *pat,const char *fname,int relative=0); 00229 FL_EXPORT void fl_file_chooser_callback(void (*cb)(const char*)); 00230 FL_EXPORT void fl_file_chooser_ok_label(const char*l); 00231 #endif 00232 00233 // 00234 // End of "$Id: Fl_File_Chooser.H 8063 2010-12-19 21:20:10Z matt $". 00235 //