Example #1
0
void Fl_File_Dialog::filters(Filter **filters)
{
    filter_->clear();
    filter_->begin();
    Fl_Item *i;

    if(!filters) {
        static Filter tmp;
        tmp.pattern = "*"; tmp.type_str = "All Files (*)";
        _cur_filter = &tmp;

        i = new Fl_Item();
        i->copy_label("(All Files)");
        i->user_data(&tmp);

    } else {

        _cur_filter = filters[0];
        for(Filter *f=*filters++; f!=0; f=*filters++)
        {
            char tmp[128];
            sprintf(tmp, "%s",f->type_str);
            i = new Fl_Item();
            i->copy_label(tmp);
            i->user_data(f);
        }
    }

    filter_->value(filter_->child(0)->label());
    filter_->end();
    filter_->redraw();
}