Fl_File_Chooser.H 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235
  1. //
  2. // "$Id: Fl_File_Chooser.H 7903 2010-11-28 21:06:39Z matt $"
  3. //
  4. // Fl_File_Chooser dialog for the Fast Light Tool Kit (FLTK).
  5. //
  6. // Copyright 1998-2010 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. // generated by Fast Light User Interface Designer (fluid) version 1.0300
  28. #ifndef Fl_File_Chooser_H
  29. #define Fl_File_Chooser_H
  30. #include <FL/Fl.H>
  31. #include <FL/Fl_Double_Window.H>
  32. #include <stdio.h>
  33. #include <stdlib.h>
  34. #include <string.h>
  35. #include <FL/Fl_Group.H>
  36. #include <FL/Fl_Choice.H>
  37. #include <FL/Fl_Menu_Button.H>
  38. #include <FL/Fl_Button.H>
  39. #include <FL/Fl_Preferences.H>
  40. #include <FL/Fl_Tile.H>
  41. #include <FL/Fl_File_Browser.H>
  42. #include <FL/Fl_Box.H>
  43. #include <FL/Fl_Check_Button.H>
  44. #include <FL/Fl_File_Input.H>
  45. #include <FL/Fl_Return_Button.H>
  46. #include <FL/fl_ask.H>
  47. class FL_EXPORT Fl_File_Chooser {
  48. public:
  49. enum { SINGLE = 0, MULTI = 1, CREATE = 2, DIRECTORY = 4 };
  50. private:
  51. static Fl_Preferences prefs_;
  52. void (*callback_)(Fl_File_Chooser*, void *);
  53. void *data_;
  54. char directory_[1024];
  55. char pattern_[1024];
  56. char preview_text_[2048];
  57. int type_;
  58. void favoritesButtonCB();
  59. void favoritesCB(Fl_Widget *w);
  60. void fileListCB();
  61. void fileNameCB();
  62. void newdir();
  63. static void previewCB(Fl_File_Chooser *fc);
  64. void showChoiceCB();
  65. void update_favorites();
  66. void update_preview();
  67. public:
  68. Fl_File_Chooser(const char *d, const char *p, int t, const char *title);
  69. private:
  70. Fl_Double_Window *window;
  71. void cb_window_i(Fl_Double_Window*, void*);
  72. static void cb_window(Fl_Double_Window*, void*);
  73. Fl_Choice *showChoice;
  74. void cb_showChoice_i(Fl_Choice*, void*);
  75. static void cb_showChoice(Fl_Choice*, void*);
  76. Fl_Menu_Button *favoritesButton;
  77. void cb_favoritesButton_i(Fl_Menu_Button*, void*);
  78. static void cb_favoritesButton(Fl_Menu_Button*, void*);
  79. public:
  80. Fl_Button *newButton;
  81. private:
  82. void cb_newButton_i(Fl_Button*, void*);
  83. static void cb_newButton(Fl_Button*, void*);
  84. void cb__i(Fl_Tile*, void*);
  85. static void cb_(Fl_Tile*, void*);
  86. Fl_File_Browser *fileList;
  87. void cb_fileList_i(Fl_File_Browser*, void*);
  88. static void cb_fileList(Fl_File_Browser*, void*);
  89. Fl_Box *previewBox;
  90. public:
  91. Fl_Check_Button *previewButton;
  92. private:
  93. void cb_previewButton_i(Fl_Check_Button*, void*);
  94. static void cb_previewButton(Fl_Check_Button*, void*);
  95. Fl_File_Input *fileName;
  96. void cb_fileName_i(Fl_File_Input*, void*);
  97. static void cb_fileName(Fl_File_Input*, void*);
  98. Fl_Return_Button *okButton;
  99. void cb_okButton_i(Fl_Return_Button*, void*);
  100. static void cb_okButton(Fl_Return_Button*, void*);
  101. Fl_Button *cancelButton;
  102. void cb_cancelButton_i(Fl_Button*, void*);
  103. static void cb_cancelButton(Fl_Button*, void*);
  104. Fl_Double_Window *favWindow;
  105. Fl_File_Browser *favList;
  106. void cb_favList_i(Fl_File_Browser*, void*);
  107. static void cb_favList(Fl_File_Browser*, void*);
  108. Fl_Button *favUpButton;
  109. void cb_favUpButton_i(Fl_Button*, void*);
  110. static void cb_favUpButton(Fl_Button*, void*);
  111. Fl_Button *favDeleteButton;
  112. void cb_favDeleteButton_i(Fl_Button*, void*);
  113. static void cb_favDeleteButton(Fl_Button*, void*);
  114. Fl_Button *favDownButton;
  115. void cb_favDownButton_i(Fl_Button*, void*);
  116. static void cb_favDownButton(Fl_Button*, void*);
  117. Fl_Button *favCancelButton;
  118. void cb_favCancelButton_i(Fl_Button*, void*);
  119. static void cb_favCancelButton(Fl_Button*, void*);
  120. Fl_Return_Button *favOkButton;
  121. void cb_favOkButton_i(Fl_Return_Button*, void*);
  122. static void cb_favOkButton(Fl_Return_Button*, void*);
  123. public:
  124. ~Fl_File_Chooser();
  125. void callback(void (*cb)(Fl_File_Chooser *, void *), void *d = 0);
  126. void color(Fl_Color c);
  127. Fl_Color color();
  128. int count();
  129. void directory(const char *d);
  130. char * directory();
  131. void filter(const char *p);
  132. const char * filter();
  133. int filter_value();
  134. void filter_value(int f);
  135. void hide();
  136. void iconsize(uchar s);
  137. uchar iconsize();
  138. void label(const char *l);
  139. const char * label();
  140. void ok_label(const char *l);
  141. const char * ok_label();
  142. void preview(int e);
  143. int preview() const { return previewButton->value(); };
  144. void rescan();
  145. void rescan_keep_filename();
  146. void show();
  147. int shown();
  148. void textcolor(Fl_Color c);
  149. Fl_Color textcolor();
  150. void textfont(Fl_Font f);
  151. Fl_Font textfont();
  152. void textsize(Fl_Fontsize s);
  153. Fl_Fontsize textsize();
  154. void type(int t);
  155. int type();
  156. void * user_data() const;
  157. void user_data(void *d);
  158. const char *value(int f = 1);
  159. void value(const char *filename);
  160. int visible();
  161. /**
  162. [standard text may be customized at run-time]
  163. */
  164. static const char *add_favorites_label;
  165. /**
  166. [standard text may be customized at run-time]
  167. */
  168. static const char *all_files_label;
  169. /**
  170. [standard text may be customized at run-time]
  171. */
  172. static const char *custom_filter_label;
  173. /**
  174. [standard text may be customized at run-time]
  175. */
  176. static const char *existing_file_label;
  177. /**
  178. [standard text may be customized at run-time]
  179. */
  180. static const char *favorites_label;
  181. /**
  182. [standard text may be customized at run-time]
  183. */
  184. static const char *filename_label;
  185. /**
  186. [standard text may be customized at run-time]
  187. */
  188. static const char *filesystems_label;
  189. /**
  190. [standard text may be customized at run-time]
  191. */
  192. static const char *manage_favorites_label;
  193. /**
  194. [standard text may be customized at run-time]
  195. */
  196. static const char *new_directory_label;
  197. /**
  198. [standard text may be customized at run-time]
  199. */
  200. static const char *new_directory_tooltip;
  201. /**
  202. [standard text may be customized at run-time]
  203. */
  204. static const char *preview_label;
  205. /**
  206. [standard text may be customized at run-time]
  207. */
  208. static const char *save_label;
  209. /**
  210. [standard text may be customized at run-time]
  211. */
  212. static const char *show_label;
  213. /**
  214. the sort function that is used when loading
  215. the contents of a directory.
  216. */
  217. static Fl_File_Sort_F *sort;
  218. private:
  219. Fl_Widget* ext_group;
  220. public:
  221. Fl_Widget* add_extra(Fl_Widget* gr);
  222. Fl_File_Browser *browser(void) {return fileList; };
  223. };
  224. FL_EXPORT char *fl_dir_chooser(const char *message,const char *fname,int relative=0);
  225. FL_EXPORT char *fl_file_chooser(const char *message,const char *pat,const char *fname,int relative=0);
  226. FL_EXPORT void fl_file_chooser_callback(void (*cb)(const char*));
  227. FL_EXPORT void fl_file_chooser_ok_label(const char*l);
  228. #endif
  229. //
  230. // End of "$Id: Fl_File_Chooser.H 7903 2010-11-28 21:06:39Z matt $".
  231. //