// generated by Fast Light User Interface Designer (fluid) version 1.0100 #include "../FL/Fl_File_Chooser.H" inline void Fl_File_Chooser::cb_window_i(Fl_Window*, void*) { fileName->value(directory_); window->hide(); } void Fl_File_Chooser::cb_window(Fl_Window* o, void* v) { ((Fl_File_Chooser*)(o->user_data()))->cb_window_i(o,v); } inline void Fl_File_Chooser::cb_dirMenu_i(Fl_Choice*, void*) { char pathname[1024]; int i; pathname[0] = '\0'; for (i = 1; i <= dirMenu->value(); i ++) strcat(pathname, dirMenu->text(i)); directory(pathname); } void Fl_File_Chooser::cb_dirMenu(Fl_Choice* o, void* v) { ((Fl_File_Chooser*)(o->parent()->user_data()))->cb_dirMenu_i(o,v); } inline void Fl_File_Chooser::cb_upButton_i(Fl_Button*, void*) { up(); } void Fl_File_Chooser::cb_upButton(Fl_Button* o, void* v) { ((Fl_File_Chooser*)(o->parent()->user_data()))->cb_upButton_i(o,v); } #include static unsigned char idata_up[] = "\0\0x\0\204\0\2\1""1\376y\200\375\200""1\200""1\200""1\200""1\200""1\200\1\ \200\1\200\377\377\0\0"; static Fl_Bitmap image_up(idata_up, 16, 16); inline void Fl_File_Chooser::cb_newButton_i(Fl_Button*, void*) { newdir(); } void Fl_File_Chooser::cb_newButton(Fl_Button* o, void* v) { ((Fl_File_Chooser*)(o->parent()->user_data()))->cb_newButton_i(o,v); } static unsigned char idata_new[] = "\0\0x\0\204\0\2\1\1\376\1\200""1\200""1\200\375\200\375\200""1\200""1\200\1\ \200\1\200\377\377\0\0"; static Fl_Bitmap image_new(idata_new, 16, 16); inline void Fl_File_Chooser::cb__i(Fl_Button*, void*) { const char *f; if ((f = fl_input(filter_label, fileList->filter())) != NULL) { fileList->filter(f); rescan(); }; } void Fl_File_Chooser::cb_(Fl_Button* o, void* v) { ((Fl_File_Chooser*)(o->parent()->user_data()))->cb__i(o,v); } static unsigned char idata_allfiles[] = "\374?\4 \4 \4 \204!\244%\304#\364/\364/\304#\244%\204!\4 \4 \4 \374?"; static Fl_Bitmap image_allfiles(idata_allfiles, 16, 16); inline void Fl_File_Chooser::cb_fileList_i(Fl_File_Browser*, void*) { fileListCB(); } void Fl_File_Chooser::cb_fileList(Fl_File_Browser* o, void* v) { ((Fl_File_Chooser*)(o->parent()->user_data()))->cb_fileList_i(o,v); } inline void Fl_File_Chooser::cb_fileName_i(Fl_File_Input*, void*) { fileNameCB(); } void Fl_File_Chooser::cb_fileName(Fl_File_Input* o, void* v) { ((Fl_File_Chooser*)(o->parent()->user_data()))->cb_fileName_i(o,v); } inline void Fl_File_Chooser::cb_okButton_i(Fl_Return_Button*, void*) { // Do any callback that is registered... if (callback_) (*callback_)(this, data_); window->hide(); } void Fl_File_Chooser::cb_okButton(Fl_Return_Button* o, void* v) { ((Fl_File_Chooser*)(o->parent()->user_data()))->cb_okButton_i(o,v); } inline void Fl_File_Chooser::cb_Cancel_i(Fl_Button*, void*) { fileName->value(directory_); window->hide(); } void Fl_File_Chooser::cb_Cancel(Fl_Button* o, void* v) { ((Fl_File_Chooser*)(o->parent()->user_data()))->cb_Cancel_i(o,v); } Fl_File_Chooser::Fl_File_Chooser(const char *d, const char *p, int t, const char *title) { Fl_Window* w; { Fl_Window* o = window = new Fl_Window(375, 325, "Pick a File"); w = o; o->callback((Fl_Callback*)cb_window, (void*)(this)); { Fl_Choice* o = dirMenu = new Fl_Choice(95, 10, 180, 25, "Directory:"); o->tooltip("Choose a parent directory."); o->down_box(FL_BORDER_BOX); o->callback((Fl_Callback*)cb_dirMenu); dirMenu->label(directory_label); } { Fl_Button* o = upButton = new Fl_Button(280, 10, 25, 25); o->tooltip("Show the parent directory."); o->image(image_up); o->labelsize(8); o->callback((Fl_Callback*)cb_upButton); } { Fl_Button* o = newButton = new Fl_Button(310, 10, 25, 25); o->tooltip("Create a new directory."); o->image(image_new); o->labelsize(8); o->callback((Fl_Callback*)cb_newButton); } { Fl_Button* o = new Fl_Button(340, 10, 25, 25); o->tooltip("Change the filename filter."); o->image(image_allfiles); o->labelsize(28); o->labelcolor(4); o->callback((Fl_Callback*)cb_); o->align(FL_ALIGN_CENTER|FL_ALIGN_INSIDE); } { Fl_File_Browser* o = fileList = new Fl_File_Browser(10, 45, 355, 180); o->type(2); o->callback((Fl_Callback*)cb_fileList); Fl_Group::current()->resizable(o); w->hotspot(o); } { Fl_File_Input* o = fileName = new Fl_File_Input(10, 245, 355, 35, "Filename:"); o->callback((Fl_Callback*)cb_fileName); o->align(FL_ALIGN_TOP_LEFT); o->when(FL_WHEN_ENTER_KEY); fileName->when(FL_WHEN_CHANGED | FL_WHEN_ENTER_KEY_ALWAYS); fileName->label(filename_label); } { Fl_Return_Button* o = okButton = new Fl_Return_Button(200, 290, 75, 25, "OK"); o->callback((Fl_Callback*)cb_okButton); okButton->label(fl_ok); } { Fl_Button* o = new Fl_Button(285, 290, 80, 25, "Cancel"); o->callback((Fl_Callback*)cb_Cancel); o->label(fl_cancel); } if (title) window->label(title); o->set_modal(); o->end(); } window->size_range(375, 315, 375); fileList->filter(p); type(t); value(d); callback_ = 0; data_ = 0; } void Fl_File_Chooser::callback(void (*cb)(Fl_File_Chooser *, void *), void *d) { callback_ = cb; data_ = d; } void Fl_File_Chooser::color(Fl_Color c) { fileList->color(c); } Fl_Color Fl_File_Chooser::color() { return (fileList->color()); } char * Fl_File_Chooser::directory() { return directory_; } void Fl_File_Chooser::filter(const char *p) { fileList->filter(p); rescan(); } const char * Fl_File_Chooser::filter() { return (fileList->filter()); } void Fl_File_Chooser::hide() { window->hide(); } void Fl_File_Chooser::iconsize(uchar s) { fileList->iconsize(s); } uchar Fl_File_Chooser::iconsize() { return (fileList->iconsize()); } void Fl_File_Chooser::label(const char *l) { window->label(l); } const char * Fl_File_Chooser::label() { return (window->label()); } void Fl_File_Chooser::show() { window->hotspot(fileList); window->show(); fileName->take_focus(); } int Fl_File_Chooser::shown() { return window->shown(); } void Fl_File_Chooser::textcolor(Fl_Color c) { fileList->textcolor(c); } Fl_Color Fl_File_Chooser::textcolor() { return (fileList->textcolor()); } void Fl_File_Chooser::textfont(uchar f) { fileList->textfont(f); } uchar Fl_File_Chooser::textfont() { return (fileList->textfont()); } void Fl_File_Chooser::textsize(uchar s) { fileList->textsize(s); } uchar Fl_File_Chooser::textsize() { return (fileList->textsize()); } void Fl_File_Chooser::type(int t) { 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); } int Fl_File_Chooser::type() { return (type_); } int Fl_File_Chooser::visible() { return window->visible(); } FL_EXPORT char *fl_dir_chooser(const char *message,const char *fname,int relative=0); FL_EXPORT char *fl_file_chooser(const char *message,const char *pat,const char *fname,int relative=0); FL_EXPORT void fl_file_chooser_callback(void (*cb)(const char*));