1# data file for the Fltk User Interface Designer (fluid) 2version 1.0300 3header_name {../FL/Fl_File_Chooser.H} 4code_name {.cxx} 5comment {// 6// "$Id: Fl_File_Chooser.fl 8786 2011-06-07 11:41:36Z manolo $" 7// 8// Fl_File_Chooser dialog for the Fast Light Tool Kit (FLTK). 9// 10// Copyright 1998-2011 by Bill Spitzak and others. 11// 12// This library is free software; you can redistribute it and/or 13// modify it under the terms of the GNU Library General Public 14// License as published by the Free Software Foundation; either 15// version 2 of the License, or (at your option) any later version. 16// 17// This library is distributed in the hope that it will be useful, 18// but WITHOUT ANY WARRANTY; without even the implied warranty of 19// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 20// Library General Public License for more details. 21// 22// You should have received a copy of the GNU Library General Public 23// License along with this library; if not, write to the Free Software 24// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 25// USA. 26// 27// Please report all bugs and problems on the following page: 28// 29// http://www.fltk.org/str.php 30// 31} {in_source in_header 32} 33 34decl {\#include <FL/fl_draw.H>} {} 35 36class FL_EXPORT Fl_File_Chooser {open 37} { 38 decl {enum { SINGLE = 0, MULTI = 1, CREATE = 2, DIRECTORY = 4 };} {public 39 } 40 decl {static Fl_Preferences prefs_;} {} 41 decl {void (*callback_)(Fl_File_Chooser*, void *);} {} 42 decl {void *data_;} {} 43 decl {char directory_[FL_PATH_MAX];} {} 44 decl {char pattern_[FL_PATH_MAX];} {} 45 decl {char preview_text_[2048];} {} 46 decl {int type_;} {} 47 decl {void favoritesButtonCB();} {} 48 decl {void favoritesCB(Fl_Widget *w);} {} 49 decl {void fileListCB();} {} 50 decl {void fileNameCB();} {} 51 decl {void newdir();} {} 52 decl {static void previewCB(Fl_File_Chooser *fc);} {} 53 decl {void showChoiceCB();} {} 54 decl {void update_favorites();} {} 55 decl {void update_preview();} {} 56 Function {Fl_File_Chooser(const char *d, const char *p, int t, const char *title)} {} { 57 code {Fl_Group *prev_current = Fl_Group::current();} {} 58 Fl_Window window { 59 label {Choose File} 60 callback {fileName->value(""); 61fileList->deselect(); 62Fl::remove_timeout((Fl_Timeout_Handler)previewCB, this); 63window->hide();} open 64 private xywh {507 327 490 380} type Double resizable 65 code0 {if (title) window->label(title);} 66 code1 {\#include <stdio.h>} 67 code2 {\#include <stdlib.h>} 68 code3 {\#include <string.h>} modal visible 69 } { 70 Fl_Group {} {open 71 private xywh {10 10 470 25} 72 } { 73 Fl_Choice showChoice { 74 label {Show:} 75 callback {showChoiceCB();} open 76 private xywh {65 10 215 25} down_box BORDER_BOX labelfont 1 resizable 77 code0 {showChoice->label(show_label);} 78 } {} 79 Fl_Menu_Button favoritesButton { 80 label Favorites 81 callback {favoritesButtonCB();} open 82 private xywh {290 10 155 25} down_box BORDER_BOX align 20 83 code0 {favoritesButton->label(favorites_label);} 84 } {} 85 Fl_Button newButton { 86 callback {newdir();} 87 image {new.xbm} xywh {455 10 25 25} labelsize 8 88 code0 {\#include <FL/Fl_Preferences.H>} 89 code1 {o->tooltip(new_directory_tooltip);} 90 } 91 } 92 Fl_Tile {} { 93 callback {update_preview();} 94 private xywh {10 45 470 225} resizable 95 } { 96 Fl_File_Browser fileList { 97 callback {fileListCB();} 98 private xywh {10 45 295 225} type Hold hotspot 99 code0 {\#include <FL/Fl_File_Browser.H>} 100 } 101 Fl_Box previewBox { 102 label {?} 103 private xywh {305 45 175 225} box DOWN_BOX labelsize 100 align 80 104 } 105 } 106 Fl_Group {} {open 107 private xywh {10 275 470 95} 108 } { 109 Fl_Group {} {open 110 private xywh {10 275 470 20} 111 } { 112 Fl_Check_Button previewButton { 113 label Preview 114 callback {preview(previewButton->value());} 115 xywh {10 275 73 20} down_box DOWN_BOX shortcut 0x80070 value 1 116 code0 {previewButton->label(preview_label);} 117 } 118 Fl_Check_Button showHiddenButton { 119 label {Show hidden files} 120 callback {showHidden(showHiddenButton->value());} 121 xywh {115 275 165 20} down_box DOWN_BOX 122 code0 {showHiddenButton->label(hidden_label);} 123 } 124 Fl_Box {} { 125 private xywh {115 275 365 20} resizable 126 } 127 } 128 Fl_File_Input fileName { 129 callback {fileNameCB();} 130 private xywh {115 300 365 35} labelfont 1 when 8 resizable 131 code0 {fileName->when(FL_WHEN_CHANGED | FL_WHEN_ENTER_KEY);} 132 } 133 Fl_Box {} { 134 label {Filename:} 135 private xywh {10 310 105 25} labelfont 1 align 24 136 code0 {o->label(filename_label);} 137 } 138 Fl_Group {} {open 139 private xywh {10 345 470 25} 140 } { 141 Fl_Return_Button okButton { 142 label OK 143 callback {window->hide(); 144 145// Do any callback that is registered... 146if (callback_) 147 (*callback_)(this, data_);} 148 private xywh {313 345 85 25} 149 code0 {\#include <FL/fl_ask.H>} 150 code1 {okButton->label(fl_ok);} 151 } 152 Fl_Button cancelButton { 153 label Cancel 154 callback {fileName->value(""); 155fileList->deselect(); 156Fl::remove_timeout((Fl_Timeout_Handler)previewCB, this); 157window->hide();} 158 private xywh {408 345 72 25} 159 code0 {o->label(fl_cancel);} 160 } 161 Fl_Box {} { 162 private xywh {10 345 30 25} resizable 163 } 164 } 165 } 166 } 167 Fl_Window favWindow { 168 label {Manage Favorites} 169 private xywh {413 100 355 150} type Double resizable 170 code0 {favWindow->label(manage_favorites_label);} modal size_range {181 150 0 0} visible 171 } { 172 Fl_File_Browser favList { 173 callback {favoritesCB(favList);} 174 private xywh {10 10 300 95} type Hold resizable 175 } 176 Fl_Group {} {open 177 xywh {320 10 25 95} 178 } { 179 Fl_Button favUpButton { 180 label {@8>} 181 callback {favoritesCB(favUpButton);} 182 private xywh {320 10 25 25} 183 } 184 Fl_Button favDeleteButton { 185 label X 186 callback {favoritesCB(favDeleteButton);} 187 private xywh {320 45 25 25} labelfont 1 resizable 188 } 189 Fl_Button favDownButton { 190 label {@2>} 191 callback {favoritesCB(favDownButton);} 192 private xywh {320 80 25 25} 193 } 194 } 195 Fl_Group {} {open 196 xywh {10 113 335 29} 197 } { 198 Fl_Button favCancelButton { 199 label Cancel 200 callback {favWindow->hide();} 201 private xywh {273 115 72 25} 202 code0 {favCancelButton->label(fl_cancel);} 203 } 204 Fl_Return_Button favOkButton { 205 label Save 206 callback {favoritesCB(favOkButton);} 207 private xywh {181 115 79 25} 208 code0 {\#include <FL/fl_ask.H>} 209 code1 {favOkButton->label(save_label);} 210 } 211 Fl_Box {} { 212 xywh {10 115 161 25} resizable 213 } 214 } 215 } 216 code {callback_ = 0; 217data_ = 0; 218directory_[0] = 0; 219window->size_range(window->w(), window->h(), Fl::w(), Fl::h()); 220type(t); 221filter(p); 222update_favorites(); 223value(d); 224type(t); 225int e; 226prefs_.get("preview", e, 1); 227preview(e); 228Fl_Group::current(prev_current);} {} 229 code {ext_group=(Fl_Widget*)0;} {} 230 } 231 Function {~Fl_File_Chooser()} {open 232 } { 233 code {Fl::remove_timeout((Fl_Timeout_Handler)previewCB, this); 234if(ext_group)window->remove(ext_group); 235delete window; 236delete favWindow;} {} 237 } 238 Function {callback(void (*cb)(Fl_File_Chooser *, void *), void *d = 0)} {return_type void 239 } { 240 code {callback_ = cb; 241data_ = d;} {} 242 } 243 Function {color(Fl_Color c)} {} { 244 code {fileList->color(c);} {} 245 } 246 Function {color()} {return_type Fl_Color 247 } { 248 code {return (fileList->color());} {} 249 } 250 decl {int count();} {public 251 } 252 decl {void directory(const char *d);} {public 253 } 254 Function {directory()} {return_type {char *} 255 } { 256 code {return directory_;} {} 257 } 258 decl {void filter(const char *p);} {public 259 } 260 Function {filter()} {return_type {const char *} 261 } { 262 code {return (fileList->filter());} {} 263 } 264 Function {filter_value()} {return_type int 265 } { 266 code {return showChoice->value();} {} 267 } 268 Function {filter_value(int f)} {return_type void 269 } { 270 code {showChoice->value(f); 271showChoiceCB();} {} 272 } 273 Function {hide()} {return_type void 274 } { 275 code {window->hide();} {} 276 } 277 Function {iconsize(uchar s)} {return_type void 278 } { 279 code {fileList->iconsize(s);} {} 280 } 281 Function {iconsize()} {return_type uchar 282 } { 283 code {return (fileList->iconsize());} {} 284 } 285 Function {label(const char *l)} {return_type void 286 } { 287 code {window->label(l);} {} 288 } 289 Function {label()} {return_type {const char *} 290 } { 291 code {return (window->label());} {} 292 } 293 Function {ok_label(const char *l)} {return_type void 294 } { 295 code {okButton->label(l); 296int w=0, h=0; 297okButton->measure_label(w, h); 298okButton->resize(cancelButton->x() - 50 - w, cancelButton->y(), 299 w + 40, 25); 300okButton->parent()->init_sizes();} {} 301 } 302 Function {ok_label()} {return_type {const char *} 303 } { 304 code {return (okButton->label());} {} 305 } 306 decl {void preview(int e);} {public 307 } 308 decl {int preview() const { return previewButton->value(); }} {public 309 } 310 decl {void showHidden(int e);} {private 311 } 312 decl {void remove_hidden_files();} {private 313 } 314 decl {void rescan();} {public 315 } 316 decl {void rescan_keep_filename();} {public 317 } 318 decl {void show();} {public 319 } 320 Function {shown()} {return_type int 321 } { 322 code {return window->shown();} {} 323 } 324 Function {textcolor(Fl_Color c)} {return_type void 325 } { 326 code {fileList->textcolor(c);} {} 327 } 328 Function {textcolor()} {return_type Fl_Color 329 } { 330 code {return (fileList->textcolor());} {} 331 } 332 Function {textfont(Fl_Font f)} {return_type void 333 } { 334 code {fileList->textfont(f);} {} 335 } 336 Function {textfont()} {selected return_type Fl_Font 337 } { 338 code {return (fileList->textfont());} {} 339 } 340 Function {textsize(Fl_Fontsize s)} {return_type void 341 } { 342 code {fileList->textsize(s);} {} 343 } 344 Function {textsize()} {return_type Fl_Fontsize 345 } { 346 code {return (fileList->textsize());} {} 347 } 348 Function {type(int t)} {return_type void 349 } { 350 code {type_ = t; 351if (t & MULTI) 352 fileList->type(FL_MULTI_BROWSER); 353else 354 fileList->type(FL_HOLD_BROWSER); 355if (t & CREATE) 356 newButton->activate(); 357else 358 newButton->deactivate(); 359if (t & DIRECTORY) 360 fileList->filetype(Fl_File_Browser::DIRECTORIES); 361else 362 fileList->filetype(Fl_File_Browser::FILES);} {} 363 } 364 Function {type()} {return_type int 365 } { 366 code {return (type_);} {} 367 } 368 Function {user_data() const} {return_type {void *} 369 } { 370 code {return (data_);} {} 371 } 372 Function {user_data(void *d)} {return_type void 373 } { 374 code {data_ = d;} {} 375 } 376 decl {const char *value(int f = 1);} {public 377 } 378 decl {void value(const char *filename);} {public 379 } 380 Function {visible()} {return_type int 381 } { 382 code {return window->visible();} {} 383 } 384 decl {static const char *add_favorites_label;} { 385 comment {[standard text may be customized at run-time]} public 386 } 387 decl {static const char *all_files_label;} { 388 comment {[standard text may be customized at run-time]} public 389 } 390 decl {static const char *custom_filter_label;} { 391 comment {[standard text may be customized at run-time]} public 392 } 393 decl {static const char *existing_file_label;} { 394 comment {[standard text may be customized at run-time]} public 395 } 396 decl {static const char *favorites_label;} { 397 comment {[standard text may be customized at run-time]} public 398 } 399 decl {static const char *filename_label;} { 400 comment {[standard text may be customized at run-time]} public 401 } 402 decl {static const char *filesystems_label;} { 403 comment {[standard text may be customized at run-time]} public 404 } 405 decl {static const char *manage_favorites_label;} { 406 comment {[standard text may be customized at run-time]} public 407 } 408 decl {static const char *new_directory_label;} { 409 comment {[standard text may be customized at run-time]} public 410 } 411 decl {static const char *new_directory_tooltip;} { 412 comment {[standard text may be customized at run-time]} public 413 } 414 decl {static const char *preview_label;} { 415 comment {[standard text may be customized at run-time]} public 416 } 417 decl {static const char *save_label;} { 418 comment {[standard text may be customized at run-time]} public 419 } 420 decl {static const char *show_label;} { 421 comment {[standard text may be customized at run-time]} public 422 } 423 decl {static const char *hidden_label;} { 424 comment {[standard text may be customized at run-time]} public 425 } 426 decl {static Fl_File_Sort_F *sort;} { 427 comment {the sort function that is used when loading 428the contents of a directory.} public 429 } 430 decl {Fl_Widget* ext_group;} {} 431 Function {add_extra(Fl_Widget* gr)} {open return_type {Fl_Widget*} 432 } { 433 code {Fl_Widget* ret=ext_group;} {} 434 codeblock {if (gr==ext_group)} {open 435 } { 436 code {return ret;} {} 437 } 438 codeblock {if (ext_group)} {open 439 } { 440 code {int sh=ext_group->h()+4; 441Fl_Widget* svres=window->resizable(); 442window->resizable(NULL); 443window->size(window->w(),window->h()-sh); 444window->remove(ext_group); 445ext_group=NULL; 446window->resizable(svres);} {} 447 } 448 codeblock {if (gr)} {open 449 } { 450 code {int nh=window->h()+gr->h()+4; 451Fl_Widget* svres=window->resizable(); 452window->resizable(NULL); 453window->size(window->w(),nh); 454gr->position(2,okButton->y()+okButton->h()+2); 455window->add(gr); 456ext_group=gr; 457window->resizable(svres);} {} 458 } 459 code {return ret;} {} 460 } 461} 462 463decl {FL_EXPORT char *fl_dir_chooser(const char *message,const char *fname,int relative=0);} {public 464} 465 466decl {FL_EXPORT char *fl_file_chooser(const char *message,const char *pat,const char *fname,int relative=0);} {public 467} 468 469decl {FL_EXPORT void fl_file_chooser_callback(void (*cb)(const char*));} {public 470} 471 472decl {FL_EXPORT void fl_file_chooser_ok_label(const char*l);} {public 473} 474 475comment { 476// 477// End of "$Id: Fl_File_Chooser.fl 8786 2011-06-07 11:41:36Z manolo $". 478//} {in_source in_header 479} 480