1 /////////////////////////////////////////////////////////////////////////////
2 // Name: wx/generic/filedlgg.h
3 // Purpose: wxGenericFileDialog
4 // Author: Robert Roebling
7 // Copyright: (c) Robert Roebling
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
12 #ifndef _WX_FILEDLGG_H_
13 #define _WX_FILEDLGG_H_
15 #include "wx/listctrl.h"
16 #include "wx/datetime.h"
17 #include "wx/filefn.h"
18 #include "wx/filedlg.h"
19 #include "wx/generic/filectrlg.h"
21 //-----------------------------------------------------------------------------
23 //-----------------------------------------------------------------------------
25 class WXDLLIMPEXP_FWD_CORE wxBitmapButton
;
26 class WXDLLIMPEXP_FWD_CORE wxGenericFileCtrl
;
27 class WXDLLIMPEXP_FWD_CORE wxGenericFileDialog
;
28 class WXDLLIMPEXP_FWD_CORE wxFileCtrlEvent
;
30 //-------------------------------------------------------------------------
31 // wxGenericFileDialog
32 //-------------------------------------------------------------------------
34 class WXDLLEXPORT wxGenericFileDialog
: public wxFileDialogBase
37 wxGenericFileDialog() : wxFileDialogBase() { Init(); }
39 wxGenericFileDialog(wxWindow
*parent
,
40 const wxString
& message
= wxFileSelectorPromptStr
,
41 const wxString
& defaultDir
= wxEmptyString
,
42 const wxString
& defaultFile
= wxEmptyString
,
43 const wxString
& wildCard
= wxFileSelectorDefaultWildcardStr
,
44 long style
= wxFD_DEFAULT_STYLE
,
45 const wxPoint
& pos
= wxDefaultPosition
,
46 const wxSize
& sz
= wxDefaultSize
,
47 const wxString
& name
= wxFileDialogNameStr
,
48 bool bypassGenericImpl
= false );
50 bool Create( wxWindow
*parent
,
51 const wxString
& message
= wxFileSelectorPromptStr
,
52 const wxString
& defaultDir
= wxEmptyString
,
53 const wxString
& defaultFile
= wxEmptyString
,
54 const wxString
& wildCard
= wxFileSelectorDefaultWildcardStr
,
55 long style
= wxFD_DEFAULT_STYLE
,
56 const wxPoint
& pos
= wxDefaultPosition
,
57 const wxSize
& sz
= wxDefaultSize
,
58 const wxString
& name
= wxFileDialogNameStr
,
59 bool bypassGenericImpl
= false );
61 virtual ~wxGenericFileDialog();
63 virtual void SetMessage(const wxString
& message
) { SetTitle(message
); }
64 virtual void SetPath(const wxString
& path
);
65 virtual void SetFilterIndex(int filterIndex
);
66 virtual void SetWildcard(const wxString
& wildCard
);
68 // for multiple file selection
69 virtual void GetPaths(wxArrayString
& paths
) const;
70 virtual void GetFilenames(wxArrayString
& files
) const;
72 // implementation only from now on
73 // -------------------------------
75 virtual int ShowModal();
76 virtual bool Show( bool show
= true );
78 void OnList( wxCommandEvent
&event
);
79 void OnReport( wxCommandEvent
&event
);
80 void OnUp( wxCommandEvent
&event
);
81 void OnHome( wxCommandEvent
&event
);
82 void OnOk( wxCommandEvent
&event
);
83 void OnNew( wxCommandEvent
&event
);
84 void OnFileActivated( wxFileCtrlEvent
&event
);
87 // if true, don't use this implementation at all
88 bool m_bypassGenericImpl
;
91 // update the state of m_upDirButton and m_newDirButton depending on the
92 // currently selected directory
93 void OnUpdateButtonsUI(wxUpdateUIEvent
& event
);
95 wxString m_filterExtension
;
96 wxGenericFileCtrl
*m_filectrl
;
97 wxBitmapButton
*m_upDirButton
;
98 wxBitmapButton
*m_newDirButton
;
103 DECLARE_DYNAMIC_CLASS(wxGenericFileDialog
)
104 DECLARE_EVENT_TABLE()
106 // these variables are preserved between wxGenericFileDialog calls
107 static long ms_lastViewStyle
; // list or report?
108 static bool ms_lastShowHidden
; // did we show hidden files?
111 #ifdef wxHAS_GENERIC_FILEDIALOG
113 class WXDLLEXPORT wxFileDialog
: public wxGenericFileDialog
118 wxFileDialog(wxWindow
*parent
,
119 const wxString
& message
= wxFileSelectorPromptStr
,
120 const wxString
& defaultDir
= wxEmptyString
,
121 const wxString
& defaultFile
= wxEmptyString
,
122 const wxString
& wildCard
= wxFileSelectorDefaultWildcardStr
,
124 const wxPoint
& pos
= wxDefaultPosition
)
125 :wxGenericFileDialog(parent
, message
, defaultDir
, defaultFile
, wildCard
, style
, pos
)
130 DECLARE_DYNAMIC_CLASS(wxFileDialog
)
133 #endif // wxHAS_GENERIC_FILEDIALOG
135 #endif // _WX_FILEDLGG_H_