FLTK 1.3.0
|
00001 // 00002 // "$Id: Fl_File_Chooser.H 8786 2011-06-07 11:41:36Z manolo $" 00003 // 00004 // Fl_File_Chooser dialog for the Fast Light Tool Kit (FLTK). 00005 // 00006 // Copyright 1998-2011 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 public: 00099 Fl_Check_Button *showHiddenButton; 00100 private: 00101 void cb_showHiddenButton_i(Fl_Check_Button*, void*); 00102 static void cb_showHiddenButton(Fl_Check_Button*, void*); 00103 Fl_File_Input *fileName; 00104 void cb_fileName_i(Fl_File_Input*, void*); 00105 static void cb_fileName(Fl_File_Input*, void*); 00106 Fl_Return_Button *okButton; 00107 void cb_okButton_i(Fl_Return_Button*, void*); 00108 static void cb_okButton(Fl_Return_Button*, void*); 00109 Fl_Button *cancelButton; 00110 void cb_cancelButton_i(Fl_Button*, void*); 00111 static void cb_cancelButton(Fl_Button*, void*); 00112 Fl_Double_Window *favWindow; 00113 Fl_File_Browser *favList; 00114 void cb_favList_i(Fl_File_Browser*, void*); 00115 static void cb_favList(Fl_File_Browser*, void*); 00116 Fl_Button *favUpButton; 00117 void cb_favUpButton_i(Fl_Button*, void*); 00118 static void cb_favUpButton(Fl_Button*, void*); 00119 Fl_Button *favDeleteButton; 00120 void cb_favDeleteButton_i(Fl_Button*, void*); 00121 static void cb_favDeleteButton(Fl_Button*, void*); 00122 Fl_Button *favDownButton; 00123 void cb_favDownButton_i(Fl_Button*, void*); 00124 static void cb_favDownButton(Fl_Button*, void*); 00125 Fl_Button *favCancelButton; 00126 void cb_favCancelButton_i(Fl_Button*, void*); 00127 static void cb_favCancelButton(Fl_Button*, void*); 00128 Fl_Return_Button *favOkButton; 00129 void cb_favOkButton_i(Fl_Return_Button*, void*); 00130 static void cb_favOkButton(Fl_Return_Button*, void*); 00131 public: 00132 ~Fl_File_Chooser(); 00133 void callback(void (*cb)(Fl_File_Chooser *, void *), void *d = 0); 00134 void color(Fl_Color c); 00135 Fl_Color color(); 00136 int count(); 00137 void directory(const char *d); 00138 char * directory(); 00139 void filter(const char *p); 00140 const char * filter(); 00141 int filter_value(); 00142 void filter_value(int f); 00143 void hide(); 00144 void iconsize(uchar s); 00145 uchar iconsize(); 00146 void label(const char *l); 00147 const char * label(); 00148 void ok_label(const char *l); 00149 const char * ok_label(); 00150 void preview(int e); 00151 int preview() const { return previewButton->value(); }; 00152 private: 00153 void showHidden(int e); 00154 void remove_hidden_files(); 00155 public: 00156 void rescan(); 00157 void rescan_keep_filename(); 00158 void show(); 00159 int shown(); 00160 void textcolor(Fl_Color c); 00161 Fl_Color textcolor(); 00162 void textfont(Fl_Font f); 00163 Fl_Font textfont(); 00164 void textsize(Fl_Fontsize s); 00165 Fl_Fontsize textsize(); 00166 void type(int t); 00167 int type(); 00168 void * user_data() const; 00169 void user_data(void *d); 00170 const char *value(int f = 1); 00171 void value(const char *filename); 00172 int visible(); 00176 static const char *add_favorites_label; 00180 static const char *all_files_label; 00184 static const char *custom_filter_label; 00188 static const char *existing_file_label; 00192 static const char *favorites_label; 00196 static const char *filename_label; 00200 static const char *filesystems_label; 00204 static const char *manage_favorites_label; 00208 static const char *new_directory_label; 00212 static const char *new_directory_tooltip; 00216 static const char *preview_label; 00220 static const char *save_label; 00224 static const char *show_label; 00228 static const char *hidden_label; 00233 static Fl_File_Sort_F *sort; 00234 private: 00235 Fl_Widget* ext_group; 00236 public: 00237 Fl_Widget* add_extra(Fl_Widget* gr); 00238 }; 00239 FL_EXPORT char *fl_dir_chooser(const char *message,const char *fname,int relative=0); 00240 FL_EXPORT char *fl_file_chooser(const char *message,const char *pat,const char *fname,int relative=0); 00241 FL_EXPORT void fl_file_chooser_callback(void (*cb)(const char*)); 00242 FL_EXPORT void fl_file_chooser_ok_label(const char*l); 00243 #endif 00244 00245 // 00246 // End of "$Id: Fl_File_Chooser.H 8786 2011-06-07 11:41:36Z manolo $". 00247 //