]> git.saurik.com Git - wxWidgets.git/blame - include/wx/generic/filedlgg.h
image to bitmap rewrite,
[wxWidgets.git] / include / wx / generic / filedlgg.h
CommitLineData
8b17ba72
RR
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$
c8c0e54c 9// Licence: wxWindows licence
8b17ba72
RR
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/defs.h"
20
21#include "wx/dialog.h"
22#include "wx/checkbox.h"
23#include "wx/listctrl.h"
8b17ba72
RR
24#include "wx/textctrl.h"
25#include "wx/choice.h"
9c884972
RR
26#include "wx/checkbox.h"
27#include "wx/stattext.h"
8b17ba72
RR
28
29//-----------------------------------------------------------------------------
30// data
31//-----------------------------------------------------------------------------
32
33WXDLLEXPORT_DATA(extern const wxChar *)wxFileSelectorPromptStr;
34WXDLLEXPORT_DATA(extern const wxChar *)wxFileSelectorDefaultWildcardStr;
35
36//-----------------------------------------------------------------------------
37// classes
38//-----------------------------------------------------------------------------
39
40class wxFileData;
41class wxFileCtrl;
42class wxFileDialog;
43
44//-----------------------------------------------------------------------------
45// wxFileData
46//-----------------------------------------------------------------------------
47
48class wxFileData : public wxObject
49{
50private:
51 wxString m_name;
52 wxString m_fileName;
53 long m_size;
54 int m_hour;
55 int m_minute;
56 int m_year;
57 int m_month;
58 int m_day;
59 wxString m_permissions;
60 bool m_isDir;
61 bool m_isLink;
62 bool m_isExe;
63
64public:
c8c0e54c 65 wxFileData() { }
8b17ba72
RR
66 wxFileData( const wxString &name, const wxString &fname );
67 wxString GetName() const;
68 wxString GetFullName() const;
69 wxString GetHint() const;
c8c0e54c 70 wxString GetEntry( int num );
8b17ba72
RR
71 bool IsDir();
72 bool IsLink();
73 bool IsExe();
74 long GetSize();
8b17ba72 75 void MakeItem( wxListItem &item );
0b855868 76 void SetNewName( const wxString &name, const wxString &fname );
c8c0e54c 77
8b17ba72
RR
78private:
79 DECLARE_DYNAMIC_CLASS(wxFileData);
80};
81
82//-----------------------------------------------------------------------------
83// wxFileCtrl
84//-----------------------------------------------------------------------------
85
86class wxFileCtrl : public wxListCtrl
87{
88private:
89 wxString m_dirName;
90 bool m_showHidden;
0b855868 91 wxString m_wild;
8b17ba72
RR
92
93public:
94 wxFileCtrl();
c8c0e54c
VZ
95 wxFileCtrl( wxWindow *win,
96 wxWindowID id,
97 const wxString &dirName,
98 const wxString &wild,
99 const wxPoint &pos = wxDefaultPosition,
100 const wxSize &size = wxDefaultSize,
101 long style = wxLC_LIST,
102 const wxValidator &validator = wxDefaultValidator,
223d09f6 103 const wxString &name = wxT("filelist") );
8b17ba72
RR
104 void ChangeToListMode();
105 void ChangeToReportMode();
106 void ChangeToIconMode();
107 void ShowHidden( bool show = TRUE );
0b855868 108 long Add( wxFileData *fd, wxListItem &item );
8b17ba72
RR
109 void Update();
110 virtual void StatusbarText( char *WXUNUSED(text) ) {};
8b17ba72
RR
111 void MakeDir();
112 void GoToParentDir();
113 void GoToHomeDir();
114 void GoToDir( const wxString &dir );
0b855868 115 void SetWild( const wxString &wild );
8b17ba72
RR
116 void GetDir( wxString &dir );
117 void OnListDeleteItem( wxListEvent &event );
8b17ba72
RR
118 void OnListEndLabelEdit( wxListEvent &event );
119
c8c0e54c 120private:
8b17ba72
RR
121 DECLARE_DYNAMIC_CLASS(wxFileCtrl);
122 DECLARE_EVENT_TABLE()
123};
124
125//-------------------------------------------------------------------------
126// File selector
127//-------------------------------------------------------------------------
128
129class wxFileDialog: public wxDialog
130{
131public:
132 wxFileDialog() { }
133
134 wxFileDialog(wxWindow *parent,
135 const wxString& message = wxFileSelectorPromptStr,
136 const wxString& defaultDir = "",
137 const wxString& defaultFile = "",
138 const wxString& wildCard = wxFileSelectorDefaultWildcardStr,
139 long style = 0,
140 const wxPoint& pos = wxDefaultPosition);
cae5359f 141 ~wxFileDialog();
8b17ba72
RR
142
143 void SetMessage(const wxString& message) { m_message = message; }
144 void SetPath(const wxString& path);
145 void SetDirectory(const wxString& dir) { m_dir = dir; }
146 void SetFilename(const wxString& name) { m_fileName = name; }
147 void SetWildcard(const wxString& wildCard) { m_wildCard = wildCard; }
148 void SetStyle(long style) { m_dialogStyle = style; }
149 void SetFilterIndex(int filterIndex) { m_filterIndex = filterIndex; }
150
151 wxString GetMessage() const { return m_message; }
152 wxString GetPath() const { return m_path; }
153 wxString GetDirectory() const { return m_dir; }
154 wxString GetFilename() const { return m_fileName; }
155 wxString GetWildcard() const { return m_wildCard; }
156 long GetStyle() const { return m_dialogStyle; }
7941ba11 157 int GetFilterIndex() const { return m_filterIndex; }
c61f4f6d 158
7941ba11
RR
159 // for multiple file selection
160 void GetPaths(wxArrayString& paths) const;
161 void GetFilenames(wxArrayString& files) const;
c8c0e54c 162
8b17ba72
RR
163 void OnSelected( wxListEvent &event );
164 void OnActivated( wxListEvent &event );
165 void OnList( wxCommandEvent &event );
166 void OnReport( wxCommandEvent &event );
8b17ba72
RR
167 void OnUp( wxCommandEvent &event );
168 void OnHome( wxCommandEvent &event );
169 void OnListOk( wxCommandEvent &event );
0b855868 170 void OnNew( wxCommandEvent &event );
cae5359f
RR
171 void OnChoice( wxCommandEvent &event );
172 void OnTextEnter( wxCommandEvent &event );
bf9e3e73 173 void OnCheck( wxCommandEvent &event );
c61f4f6d 174
e1811a01 175 void HandleAction( const wxString &fn );
c8c0e54c
VZ
176
177protected:
9c884972
RR
178 wxString m_message;
179 long m_dialogStyle;
180 wxString m_dir;
181 wxString m_path; // Full path
182 wxString m_fileName;
183 wxString m_wildCard;
184 int m_filterIndex;
185 wxChoice *m_choice;
186 wxTextCtrl *m_text;
187 wxFileCtrl *m_list;
188 wxCheckBox *m_check;
189 wxStaticText *m_static;
c8c0e54c 190
8b17ba72
RR
191private:
192 DECLARE_DYNAMIC_CLASS(wxFileDialog)
193 DECLARE_EVENT_TABLE()
194};
195
8b17ba72
RR
196// File selector - backward compatibility
197WXDLLEXPORT wxString
198wxFileSelector(const wxChar *message = wxFileSelectorPromptStr,
199 const wxChar *default_path = NULL,
200 const wxChar *default_filename = NULL,
201 const wxChar *default_extension = NULL,
202 const wxChar *wildcard = wxFileSelectorDefaultWildcardStr,
203 int flags = 0,
204 wxWindow *parent = NULL,
205 int x = -1, int y = -1);
206
207// An extended version of wxFileSelector
208WXDLLEXPORT wxString
209wxFileSelectorEx(const wxChar *message = wxFileSelectorPromptStr,
210 const wxChar *default_path = NULL,
211 const wxChar *default_filename = NULL,
212 int *indexDefaultExtension = NULL,
213 const wxChar *wildcard = wxFileSelectorDefaultWildcardStr,
214 int flags = 0,
215 wxWindow *parent = NULL,
216 int x = -1, int y = -1);
217
218// Ask for filename to load
219WXDLLEXPORT wxString
220wxLoadFileSelector(const wxChar *what,
221 const wxChar *extension,
222 const wxChar *default_name = (const wxChar *)NULL,
223 wxWindow *parent = (wxWindow *) NULL);
224
225// Ask for filename to save
226WXDLLEXPORT wxString
227wxSaveFileSelector(const wxChar *what,
228 const wxChar *extension,
229 const wxChar *default_name = (const wxChar *) NULL,
230 wxWindow *parent = (wxWindow *) NULL);
231
232
233
234#endif
235 // _WX_DIRDLGG_H_
236