14 #ifndef T3_WIDGET_FILEDIALOG_H
15 #define T3_WIDGET_FILEDIALOG_H
17 #include <t3widget/interfaces.h>
18 #include <t3widget/dialogs/dialog.h>
19 #include <t3widget/widgets/filepane.h>
20 #include <t3widget/widgets/button.h>
21 #include <t3widget/widgets/checkbox.h>
22 #include <t3widget/widgets/frame.h>
28 struct T3_WIDGET_LOCAL implementation_t {
31 std::string current_dir, lang_codeset_filter;
41 bool option_widget_set;
42 sigc::connection cancel_button_up_connection, ok_button_up_connection;
44 implementation_t(
void) : view(&names), option_widget_set(
false) {}
46 pimpl_ptr<implementation_t>::t impl;
52 void insert_extras(
widget_t *widget);
53 void ok_callback(
void);
54 void ok_callback(
const std::string *file);
55 virtual const std::string *get_filter(
void) = 0;
59 void change_dir(
const std::string *dir);
60 virtual int set_file(
const char *file);
61 void refresh_view(
void);
62 void set_options_widget(
widget_t *options);
63 virtual void reset(
void);
65 T3_WIDGET_SIGNAL(file_selected,
void,
const std::string *);
70 class T3_WIDGET_API filter_text_field_t :
public text_field_t {
72 virtual void set_focus(focus_t _focus);
73 T3_WIDGET_SIGNAL(lose_focus,
void);
76 struct implementation_t {
79 filter_text_field_t *filter_line;
82 pimpl_ptr<implementation_t>::t impl;
84 virtual const std::string *get_filter(
void);
89 virtual void reset(
void);
95 static std::string empty_filter;
97 struct implementation_t {
100 pimpl_ptr<implementation_t>::t impl;
103 virtual const std::string *get_filter(
void) {
return &empty_filter; }
106 void create_folder(
void);