]> git.saurik.com Git - wxWidgets.git/blob - include/wx/generic/filedlgg.h
don't use wxTheXXXList in wxXXX ctor/dtor, only objects explicitly created
[wxWidgets.git] / include / wx / generic / filedlgg.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: filedlgg.h
3 // Purpose: wxFileDialog
4 // Author: Robert Roebling
5 // Modified by:
6 // Created: 8/17/99
7 // Copyright: (c) Robert Roebling
8 // RCS-ID: $Id$
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
11
12 #ifndef _WX_FILEDLGG_H_
13 #define _WX_FILEDLGG_H_
14
15 #ifdef __GNUG__
16 #pragma interface "filedlgg.h"
17 #endif
18
19 #include "wx/dialog.h"
20
21 //-----------------------------------------------------------------------------
22 // data
23 //-----------------------------------------------------------------------------
24
25 WXDLLEXPORT_DATA(extern const wxChar *)wxFileSelectorPromptStr;
26 WXDLLEXPORT_DATA(extern const wxChar *)wxFileSelectorDefaultWildcardStr;
27
28 //-----------------------------------------------------------------------------
29 // classes
30 //-----------------------------------------------------------------------------
31
32 class wxCheckBox;
33 class wxChoice;
34 class wxFileData;
35 class wxFileCtrl;
36 class wxFileDialog;
37 class wxListEvent;
38 class wxStaticText;
39 class wxTextCtrl;
40
41 //-------------------------------------------------------------------------
42 // File selector
43 //-------------------------------------------------------------------------
44
45 class wxFileDialog: public wxDialog
46 {
47 public:
48 wxFileDialog() { }
49
50 wxFileDialog(wxWindow *parent,
51 const wxString& message = wxFileSelectorPromptStr,
52 const wxString& defaultDir = "",
53 const wxString& defaultFile = "",
54 const wxString& wildCard = wxFileSelectorDefaultWildcardStr,
55 long style = 0,
56 const wxPoint& pos = wxDefaultPosition);
57 virtual ~wxFileDialog();
58
59 void SetMessage(const wxString& message) { m_message = message; }
60 void SetPath(const wxString& path);
61 void SetDirectory(const wxString& dir) { m_dir = dir; }
62 void SetFilename(const wxString& name) { m_fileName = name; }
63 void SetWildcard(const wxString& wildCard) { m_wildCard = wildCard; }
64 void SetStyle(long style) { m_dialogStyle = style; }
65 void SetFilterIndex(int filterIndex) { m_filterIndex = filterIndex; }
66
67 wxString GetMessage() const { return m_message; }
68 wxString GetPath() const { return m_path; }
69 wxString GetDirectory() const { return m_dir; }
70 wxString GetFilename() const { return m_fileName; }
71 wxString GetWildcard() const { return m_wildCard; }
72 long GetStyle() const { return m_dialogStyle; }
73 int GetFilterIndex() const { return m_filterIndex; }
74
75 // for multiple file selection
76 void GetPaths(wxArrayString& paths) const;
77 void GetFilenames(wxArrayString& files) const;
78
79 void OnSelected( wxListEvent &event );
80 void OnActivated( wxListEvent &event );
81 void OnList( wxCommandEvent &event );
82 void OnReport( wxCommandEvent &event );
83 void OnUp( wxCommandEvent &event );
84 void OnHome( wxCommandEvent &event );
85 void OnListOk( wxCommandEvent &event );
86 void OnNew( wxCommandEvent &event );
87 void OnChoice( wxCommandEvent &event );
88 void OnTextEnter( wxCommandEvent &event );
89 void OnCheck( wxCommandEvent &event );
90
91 void HandleAction( const wxString &fn );
92
93 protected:
94 wxString m_message;
95 long m_dialogStyle;
96 wxString m_dir;
97 wxString m_path; // Full path
98 wxString m_fileName;
99 wxString m_wildCard;
100 int m_filterIndex;
101 wxString m_filterExtension;
102 wxChoice *m_choice;
103 wxTextCtrl *m_text;
104 wxFileCtrl *m_list;
105 wxCheckBox *m_check;
106 wxStaticText *m_static;
107
108 private:
109 DECLARE_DYNAMIC_CLASS(wxFileDialog)
110 DECLARE_EVENT_TABLE()
111
112 static long s_lastViewStyle; // list or report?
113 static bool s_lastShowHidden;
114 };
115
116 // File selector - backward compatibility
117 WXDLLEXPORT wxString
118 wxFileSelector(const wxChar *message = wxFileSelectorPromptStr,
119 const wxChar *default_path = NULL,
120 const wxChar *default_filename = NULL,
121 const wxChar *default_extension = NULL,
122 const wxChar *wildcard = wxFileSelectorDefaultWildcardStr,
123 int flags = 0,
124 wxWindow *parent = NULL,
125 int x = -1, int y = -1);
126
127 // An extended version of wxFileSelector
128 WXDLLEXPORT wxString
129 wxFileSelectorEx(const wxChar *message = wxFileSelectorPromptStr,
130 const wxChar *default_path = NULL,
131 const wxChar *default_filename = NULL,
132 int *indexDefaultExtension = NULL,
133 const wxChar *wildcard = wxFileSelectorDefaultWildcardStr,
134 int flags = 0,
135 wxWindow *parent = NULL,
136 int x = -1, int y = -1);
137
138 // Ask for filename to load
139 WXDLLEXPORT wxString
140 wxLoadFileSelector(const wxChar *what,
141 const wxChar *extension,
142 const wxChar *default_name = (const wxChar *)NULL,
143 wxWindow *parent = (wxWindow *) NULL);
144
145 // Ask for filename to save
146 WXDLLEXPORT wxString
147 wxSaveFileSelector(const wxChar *what,
148 const wxChar *extension,
149 const wxChar *default_name = (const wxChar *) NULL,
150 wxWindow *parent = (wxWindow *) NULL);
151
152
153
154 #endif
155 // _WX_DIRDLGG_H_
156