blob: 3816621ca984d5aa869ac277e943bfe0949d5cce [file] [log] [blame]
DRC2ff39b82011-07-28 08:38:59 +00001//
2// "$Id: Fl_File_Chooser.H 8786 2011-06-07 11:41:36Z manolo $"
3//
4// Fl_File_Chooser dialog for the Fast Light Tool Kit (FLTK).
5//
6// Copyright 1998-2011 by Bill Spitzak and others.
7//
8// This library is free software; you can redistribute it and/or
9// modify it under the terms of the GNU Library General Public
10// License as published by the Free Software Foundation; either
11// version 2 of the License, or (at your option) any later version.
12//
13// This library is distributed in the hope that it will be useful,
14// but WITHOUT ANY WARRANTY; without even the implied warranty of
15// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16// Library General Public License for more details.
17//
18// You should have received a copy of the GNU Library General Public
19// License along with this library; if not, write to the Free Software
20// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
21// USA.
22//
23// Please report all bugs and problems on the following page:
24//
25// http://www.fltk.org/str.php
26//
27
28// generated by Fast Light User Interface Designer (fluid) version 1.0300
29
30#ifndef Fl_File_Chooser_H
31#define Fl_File_Chooser_H
32#include <FL/Fl.H>
33#include <FL/Fl_Double_Window.H>
34#include <stdio.h>
35#include <stdlib.h>
36#include <string.h>
37#include <FL/Fl_Group.H>
38#include <FL/Fl_Choice.H>
39#include <FL/Fl_Menu_Button.H>
40#include <FL/Fl_Button.H>
41#include <FL/Fl_Preferences.H>
42#include <FL/Fl_Tile.H>
43#include <FL/Fl_File_Browser.H>
44#include <FL/Fl_Box.H>
45#include <FL/Fl_Check_Button.H>
46#include <FL/Fl_File_Input.H>
47#include <FL/Fl_Return_Button.H>
48#include <FL/fl_ask.H>
49
50class FL_EXPORT Fl_File_Chooser {
51public:
52 enum { SINGLE = 0, MULTI = 1, CREATE = 2, DIRECTORY = 4 };
53private:
54 static Fl_Preferences prefs_;
55 void (*callback_)(Fl_File_Chooser*, void *);
56 void *data_;
57 char directory_[FL_PATH_MAX];
58 char pattern_[FL_PATH_MAX];
59 char preview_text_[2048];
60 int type_;
61 void favoritesButtonCB();
62 void favoritesCB(Fl_Widget *w);
63 void fileListCB();
64 void fileNameCB();
65 void newdir();
66 static void previewCB(Fl_File_Chooser *fc);
67 void showChoiceCB();
68 void update_favorites();
69 void update_preview();
70public:
71 Fl_File_Chooser(const char *d, const char *p, int t, const char *title);
72private:
73 Fl_Double_Window *window;
74 void cb_window_i(Fl_Double_Window*, void*);
75 static void cb_window(Fl_Double_Window*, void*);
76 Fl_Choice *showChoice;
77 void cb_showChoice_i(Fl_Choice*, void*);
78 static void cb_showChoice(Fl_Choice*, void*);
79 Fl_Menu_Button *favoritesButton;
80 void cb_favoritesButton_i(Fl_Menu_Button*, void*);
81 static void cb_favoritesButton(Fl_Menu_Button*, void*);
82public:
83 Fl_Button *newButton;
84private:
85 void cb_newButton_i(Fl_Button*, void*);
86 static void cb_newButton(Fl_Button*, void*);
87 void cb__i(Fl_Tile*, void*);
88 static void cb_(Fl_Tile*, void*);
89 Fl_File_Browser *fileList;
90 void cb_fileList_i(Fl_File_Browser*, void*);
91 static void cb_fileList(Fl_File_Browser*, void*);
92 Fl_Box *previewBox;
93public:
94 Fl_Check_Button *previewButton;
95private:
96 void cb_previewButton_i(Fl_Check_Button*, void*);
97 static void cb_previewButton(Fl_Check_Button*, void*);
98public:
99 Fl_Check_Button *showHiddenButton;
100private:
101 void cb_showHiddenButton_i(Fl_Check_Button*, void*);
102 static void cb_showHiddenButton(Fl_Check_Button*, void*);
103 Fl_File_Input *fileName;
104 void cb_fileName_i(Fl_File_Input*, void*);
105 static void cb_fileName(Fl_File_Input*, void*);
106 Fl_Return_Button *okButton;
107 void cb_okButton_i(Fl_Return_Button*, void*);
108 static void cb_okButton(Fl_Return_Button*, void*);
109 Fl_Button *cancelButton;
110 void cb_cancelButton_i(Fl_Button*, void*);
111 static void cb_cancelButton(Fl_Button*, void*);
112 Fl_Double_Window *favWindow;
113 Fl_File_Browser *favList;
114 void cb_favList_i(Fl_File_Browser*, void*);
115 static void cb_favList(Fl_File_Browser*, void*);
116 Fl_Button *favUpButton;
117 void cb_favUpButton_i(Fl_Button*, void*);
118 static void cb_favUpButton(Fl_Button*, void*);
119 Fl_Button *favDeleteButton;
120 void cb_favDeleteButton_i(Fl_Button*, void*);
121 static void cb_favDeleteButton(Fl_Button*, void*);
122 Fl_Button *favDownButton;
123 void cb_favDownButton_i(Fl_Button*, void*);
124 static void cb_favDownButton(Fl_Button*, void*);
125 Fl_Button *favCancelButton;
126 void cb_favCancelButton_i(Fl_Button*, void*);
127 static void cb_favCancelButton(Fl_Button*, void*);
128 Fl_Return_Button *favOkButton;
129 void cb_favOkButton_i(Fl_Return_Button*, void*);
130 static void cb_favOkButton(Fl_Return_Button*, void*);
131public:
132 ~Fl_File_Chooser();
133 void callback(void (*cb)(Fl_File_Chooser *, void *), void *d = 0);
134 void color(Fl_Color c);
135 Fl_Color color();
136 int count();
137 void directory(const char *d);
138 char * directory();
139 void filter(const char *p);
140 const char * filter();
141 int filter_value();
142 void filter_value(int f);
143 void hide();
144 void iconsize(uchar s);
145 uchar iconsize();
146 void label(const char *l);
147 const char * label();
148 void ok_label(const char *l);
149 const char * ok_label();
150 void preview(int e);
151 int preview() const { return previewButton->value(); };
152private:
153 void showHidden(int e);
154 void remove_hidden_files();
155public:
156 void rescan();
157 void rescan_keep_filename();
158 void show();
159 int shown();
160 void textcolor(Fl_Color c);
161 Fl_Color textcolor();
162 void textfont(Fl_Font f);
163 Fl_Font textfont();
164 void textsize(Fl_Fontsize s);
165 Fl_Fontsize textsize();
166 void type(int t);
167 int type();
168 void * user_data() const;
169 void user_data(void *d);
170 const char *value(int f = 1);
171 void value(const char *filename);
172 int visible();
173 /**
174 [standard text may be customized at run-time]
175 */
176 static const char *add_favorites_label;
177 /**
178 [standard text may be customized at run-time]
179 */
180 static const char *all_files_label;
181 /**
182 [standard text may be customized at run-time]
183 */
184 static const char *custom_filter_label;
185 /**
186 [standard text may be customized at run-time]
187 */
188 static const char *existing_file_label;
189 /**
190 [standard text may be customized at run-time]
191 */
192 static const char *favorites_label;
193 /**
194 [standard text may be customized at run-time]
195 */
196 static const char *filename_label;
197 /**
198 [standard text may be customized at run-time]
199 */
200 static const char *filesystems_label;
201 /**
202 [standard text may be customized at run-time]
203 */
204 static const char *manage_favorites_label;
205 /**
206 [standard text may be customized at run-time]
207 */
208 static const char *new_directory_label;
209 /**
210 [standard text may be customized at run-time]
211 */
212 static const char *new_directory_tooltip;
213 /**
214 [standard text may be customized at run-time]
215 */
216 static const char *preview_label;
217 /**
218 [standard text may be customized at run-time]
219 */
220 static const char *save_label;
221 /**
222 [standard text may be customized at run-time]
223 */
224 static const char *show_label;
225 /**
226 [standard text may be customized at run-time]
227 */
228 static const char *hidden_label;
229 /**
230 the sort function that is used when loading
231 the contents of a directory.
232 */
233 static Fl_File_Sort_F *sort;
234private:
235 Fl_Widget* ext_group;
236public:
237 Fl_Widget* add_extra(Fl_Widget* gr);
238};
239FL_EXPORT char *fl_dir_chooser(const char *message,const char *fname,int relative=0);
240FL_EXPORT char *fl_file_chooser(const char *message,const char *pat,const char *fname,int relative=0);
241FL_EXPORT void fl_file_chooser_callback(void (*cb)(const char*));
242FL_EXPORT void fl_file_chooser_ok_label(const char*l);
243#endif
244
245//
246// End of "$Id: Fl_File_Chooser.H 8786 2011-06-07 11:41:36Z manolo $".
247//