# data file for the Fltk User Interface Designer (fluid)
version 1.0100 
header_name {../FL/Fl_File_Chooser.H} 
code_name {.cxx}
class Fl_File_Chooser {open
} {
  decl {enum { SINGLE = 0, MULTI = 1, CREATE = 2, DIRECTORY = 4 };} {public
  }
  decl {static Fl_Preferences prefs_;} {}
  decl {void (*callback_)(Fl_File_Chooser*, void *);} {}
  decl {void *data_;} {}
  decl {char directory_[1024];} {}
  decl {char pattern_[1024];} {}
  decl {char preview_text_[2048];} {}
  decl {int type_;} {}
  decl {void favoritesButtonCB();} {}
  decl {void favoritesCB(Fl_Widget *w);} {}
  decl {void fileListCB();} {}
  decl {void fileNameCB();} {}
  decl {void newdir();} {}
  decl {static void previewCB(Fl_File_Chooser *fc);} {}
  decl {void showChoiceCB();} {}
  decl {void update_favorites();} {}
  decl {void update_preview();} {}
  Function {Fl_File_Chooser(const char *d, const char *p, int t, const char *title)} {open
  } {
    Fl_Window window {
      label {Choose File}
      callback {fileName->value(directory_);
fileList->deselect();
Fl::remove_timeout((Fl_Timeout_Handler)previewCB, this);
window->hide();} open
      private xywh {153 80 490 380} resizable
      code0 {if (title) window->label(title);}
      code1 {\#include <stdio.h>}
      code2 {\#include <stdlib.h>}
      code3 {\#include <string.h>} modal visible
    } {
      Fl_Group {} {open
        private xywh {65 10 415 25}
      } {
        Fl_Choice showChoice {
          label {Show:}
          callback {showChoiceCB();} open
          private xywh {65 10 215 25} down_box BORDER_BOX resizable
          code0 {showChoice->label(show_label);}
        } {}
        Fl_Menu_Button favoritesButton {
          label Favorites
          callback {favoritesButtonCB();} open
          private xywh {290 10 155 25} down_box BORDER_BOX align 20
          code0 {favoritesButton->label(favorites_label);}
        } {}
        Fl_Button newButton {
          callback {newdir();} selected
          tooltip {Create a new directory.} image {new.xbm} xywh {455 10 25 25} labelsize 8
          code0 {\#include <FL/Fl_Preferences.H>}
        }
      }
      Fl_Tile {} {
        callback {update_preview();} open
        private xywh {10 45 470 225} resizable
      } {
        Fl_File_Browser fileList {
          callback {fileListCB();}
          private xywh {10 45 295 225} type Hold hotspot
          code0 {\#include <FL/Fl_File_Browser.H>}
        }
        Fl_Box previewBox {
          label {?}
          private xywh {305 45 175 225} box DOWN_BOX labelsize 100 align 80
        }
      }
      Fl_Group {} {open
        private xywh {0 275 480 95}
      } {
        Fl_Group {} {open
          private xywh {10 275 470 20}
        } {
          Fl_Check_Button previewButton {
            label Preview
            callback {preview(previewButton->value());}
            xywh {405 275 75 20} down_box DOWN_BOX shortcut 0x80070 value 1
            code0 {previewButton->label(preview_label);}
          }
          Fl_Box {} {
            private xywh {10 275 395 20} resizable
          }
        }
        Fl_File_Input fileName {
          callback {fileNameCB();}
          private xywh {85 300 395 35} when 8 resizable
          code0 {fileName->when(FL_WHEN_CHANGED | FL_WHEN_ENTER_KEY_ALWAYS);}
        }
        Fl_Box {} {
          label {Filename:}
          private xywh {0 310 85 25} align 24
          code0 {o->label(filename_label);}
        }
        Fl_Group {} {open
          private xywh {10 345 470 25}
        } {
          Fl_Return_Button okButton {
            label OK
            callback {// Do any callback that is registered...
if (callback_)
  (*callback_)(this, data_);

window->hide();}
            private xywh {320 345 75 25}
            code0 {\#include <FL/fl_ask.H>}
            code1 {okButton->label(fl_ok);}
          }
          Fl_Button {} {
            label Cancel
            callback {fileName->value(directory_);
fileList->deselect();
Fl::remove_timeout((Fl_Timeout_Handler)previewCB, this);
window->hide();}
            private xywh {405 345 75 25}
            code0 {o->label(fl_cancel);}
          }
          Fl_Box {} {
            private xywh {10 345 300 25} resizable
          }
        }
      }
    }
    Fl_Window favWindow {
      label {Manage Favorites} open
      private xywh {580 44 355 150}
      code0 {favWindow->label(manage_favorites_label);} modal visible
    } {
      Fl_File_Browser favList {
        callback {favoritesCB(favList);}
        private xywh {10 10 300 95} type Hold
      }
      Fl_Button favUpButton {
        label {@8>}
        callback {favoritesCB(favUpButton);}
        private xywh {320 10 25 25}
      }
      Fl_Button favDeleteButton {
        label X
        callback {favoritesCB(favDeleteButton);}
        private xywh {320 45 25 25} labelfont 1
      }
      Fl_Button favDownButton {
        label {@2>}
        callback {favoritesCB(favDownButton);}
        private xywh {320 80 25 25}
      }
      Fl_Button favCancelButton {
        label Cancel
        callback {favWindow->hide();}
        private xywh {270 115 75 25}
        code0 {favCancelButton->label(fl_cancel);}
      }
      Fl_Return_Button favOkButton {
        label OK
        callback {favoritesCB(favOkButton);}
        private xywh {185 115 75 25}
        code0 {\#include <FL/fl_ask.H>}
        code1 {favOkButton->label(fl_ok);}
      }
    }
    code {callback_ = 0;
data_ = 0;
directory_[0] = '\0';
window->size_range(window->w(), window->h(), Fl::w(), Fl::h());
type(t);
filter(p);
update_favorites();
value(d);
type(t);
int e;
prefs_.get("preview", e, 1);
preview(e);} {}
  }
  Function {~Fl_File_Chooser()} {open
  } {
    code {Fl::remove_timeout((Fl_Timeout_Handler)previewCB, this);
delete window;
delete favWindow;} {}
  }
  Function {callback(void (*cb)(Fl_File_Chooser *, void *), void *d = 0)} {return_type void
  } {
    code {callback_ = cb;
data_     = d;} {}
  }
  Function {color(Fl_Color c)} {} {
    code {fileList->color(c);} {}
  }
  Function {color()} {return_type Fl_Color
  } {
    code {return (fileList->color());} {}
  }
  decl {int count();} {public
  }
  decl {void directory(const char *d);} {public
  }
  Function {directory()} {return_type {char *}
  } {
    code {return directory_;} {}
  }
  decl {void filter(const char *p);} {public
  }
  Function {filter()} {return_type {const char *}
  } {
    code {return (fileList->filter());} {}
  }
  Function {filter_value()} {return_type int
  } {
    code {return showChoice->value();} {}
  }
  Function {filter_value(int f)} {return_type void
  } {
    code {showChoice->value(f);
showChoiceCB();} {}
  }
  Function {hide()} {return_type void
  } {
    code {window->hide();} {}
  }
  Function {iconsize(uchar s)} {return_type void
  } {
    code {fileList->iconsize(s);} {}
  }
  Function {iconsize()} {return_type uchar
  } {
    code {return (fileList->iconsize());} {}
  }
  Function {label(const char *l)} {return_type void
  } {
    code {window->label(l);} {}
  }
  Function {label()} {return_type {const char *}
  } {
    code {return (window->label());} {}
  }
  decl {void preview(int e);} {public
  }
  decl {int preview() const { return previewButton->value(); }} {public
  }
  decl {void rescan();} {public
  }
  Function {show()} {return_type void
  } {
    code {window->hotspot(fileList);
window->show();
fileName->take_focus();} {}
  }
  Function {shown()} {return_type int
  } {
    code {return window->shown();} {}
  }
  Function {textcolor(Fl_Color c)} {return_type void
  } {
    code {fileList->textcolor(c);} {}
  }
  Function {textcolor()} {return_type Fl_Color
  } {
    code {return (fileList->textcolor());} {}
  }
  Function {textfont(uchar f)} {return_type void
  } {
    code {fileList->textfont(f);} {}
  }
  Function {textfont()} {return_type uchar
  } {
    code {return (fileList->textfont());} {}
  }
  Function {textsize(uchar s)} {return_type void
  } {
    code {fileList->textsize(s);} {}
  }
  Function {textsize()} {return_type uchar
  } {
    code {return (fileList->textsize());} {}
  }
  Function {type(int t)} {return_type void
  } {
    code {type_ = t;
if (t & MULTI)
  fileList->type(FL_MULTI_BROWSER);
else
  fileList->type(FL_HOLD_BROWSER);
if (t & CREATE)
  newButton->deactivate();
else
  newButton->activate();
if (t & DIRECTORY)
  fileList->filetype(Fl_File_Browser::DIRECTORIES);
else
  fileList->filetype(Fl_File_Browser::FILES);} {}
  }
  Function {type()} {return_type int
  } {
    code {return (type_);} {}
  }
  decl {const char *value(int f = 1);} {public
  }
  decl {void value(const char *filename);} {public
  }
  Function {visible()} {return_type int
  } {
    code {return window->visible();} {}
  }
  decl {static const char *add_favorites_label;} {public
  }
  decl {static const char *all_files_label;} {public
  }
  decl {static const char *custom_filter_label;} {public
  }
  decl {static const char *existing_file_label;} {public
  }
  decl {static const char *favorites_label;} {public
  }
  decl {static const char *filename_label;} {public
  }
  decl {static const char *filesystems_label;} {public
  }
  decl {static const char *manage_favorites_label;} {public
  }
  decl {static const char *new_directory_label;} {public
  }
  decl {static const char *preview_label;} {public
  }
  decl {static const char *show_label;} {public
  }
  decl {static Fl_File_Sort_F *sort;} {public
  }
} 

decl {FL_EXPORT char *fl_dir_chooser(const char *message,const char *fname,int relative=0);} {public
} 

decl {FL_EXPORT char *fl_file_chooser(const char *message,const char *pat,const char *fname,int relative=0);} {public
} 

decl {FL_EXPORT void fl_file_chooser_callback(void (*cb)(const char*));} {public
} 
