]> git.saurik.com Git - wxWidgets.git/blame - include/wx/generic/filedlgg.h
supporting clang memory management annotations
[wxWidgets.git] / include / wx / generic / filedlgg.h
CommitLineData
8b17ba72 1/////////////////////////////////////////////////////////////////////////////
d022d364 2// Name: wx/generic/filedlgg.h
23254b13 3// Purpose: wxGenericFileDialog
8b17ba72
RR
4// Author: Robert Roebling
5// Modified by:
6// Created: 8/17/99
7// Copyright: (c) Robert Roebling
8// RCS-ID: $Id$
65571936 9// Licence: wxWindows licence
8b17ba72
RR
10/////////////////////////////////////////////////////////////////////////////
11
12#ifndef _WX_FILEDLGG_H_
13#define _WX_FILEDLGG_H_
14
23254b13 15#include "wx/listctrl.h"
06cc1fb9 16#include "wx/datetime.h"
8226a054 17#include "wx/filefn.h"
dbf2bd15 18#include "wx/artprov.h"
d022d364 19#include "wx/filedlg.h"
0cf3e587 20#include "wx/generic/filectrlg.h"
8b17ba72
RR
21
22//-----------------------------------------------------------------------------
23// classes
24//-----------------------------------------------------------------------------
25
b5dbe15d 26class WXDLLIMPEXP_FWD_CORE wxBitmapButton;
0cf3e587 27class WXDLLIMPEXP_FWD_CORE wxGenericFileCtrl;
b5dbe15d 28class WXDLLIMPEXP_FWD_CORE wxGenericFileDialog;
0cf3e587 29class WXDLLIMPEXP_FWD_CORE wxFileCtrlEvent;
8b17ba72
RR
30
31//-------------------------------------------------------------------------
b600ed13 32// wxGenericFileDialog
8b17ba72
RR
33//-------------------------------------------------------------------------
34
53a2db12 35class WXDLLIMPEXP_CORE wxGenericFileDialog: public wxFileDialogBase
8b17ba72
RR
36{
37public:
fe6cf128 38 wxGenericFileDialog() : wxFileDialogBase() { Init(); }
8b17ba72 39
23254b13 40 wxGenericFileDialog(wxWindow *parent,
fe6cf128 41 const wxString& message = wxFileSelectorPromptStr,
f74172ab
VZ
42 const wxString& defaultDir = wxEmptyString,
43 const wxString& defaultFile = wxEmptyString,
fe6cf128 44 const wxString& wildCard = wxFileSelectorDefaultWildcardStr,
ff3e84ff 45 long style = wxFD_DEFAULT_STYLE,
fe6cf128 46 const wxPoint& pos = wxDefaultPosition,
ff3e84ff
VZ
47 const wxSize& sz = wxDefaultSize,
48 const wxString& name = wxFileDialogNameStr,
fe6cf128
VZ
49 bool bypassGenericImpl = false );
50
4e1901b7
RR
51 bool Create( wxWindow *parent,
52 const wxString& message = wxFileSelectorPromptStr,
fe6cf128
VZ
53 const wxString& defaultDir = wxEmptyString,
54 const wxString& defaultFile = wxEmptyString,
4e1901b7 55 const wxString& wildCard = wxFileSelectorDefaultWildcardStr,
ff3e84ff 56 long style = wxFD_DEFAULT_STYLE,
fe6cf128 57 const wxPoint& pos = wxDefaultPosition,
ff3e84ff
VZ
58 const wxSize& sz = wxDefaultSize,
59 const wxString& name = wxFileDialogNameStr,
fe6cf128
VZ
60 bool bypassGenericImpl = false );
61
23254b13 62 virtual ~wxGenericFileDialog();
8b17ba72 63
7430a4bb
VZ
64 virtual void SetDirectory(const wxString& dir)
65 { m_filectrl->SetDirectory(dir); }
66 virtual void SetFilename(const wxString& name)
67 { m_filectrl->SetFilename(name); }
f74172ab 68 virtual void SetMessage(const wxString& message) { SetTitle(message); }
398eebb1
VZ
69 virtual void SetPath(const wxString& path)
70 { m_filectrl->SetPath(path); }
71 virtual void SetFilterIndex(int filterIndex)
72 { m_filectrl->SetFilterIndex(filterIndex); }
73 virtual void SetWildcard(const wxString& wildCard)
74 { m_filectrl->SetWildcard(wildCard); }
75
76 virtual wxString GetPath() const
77 { return m_filectrl->GetPath(); }
78 virtual void GetPaths(wxArrayString& paths) const
41a031cf 79 { m_filectrl->GetPaths(paths); }
398eebb1
VZ
80 virtual wxString GetDirectory() const
81 { return m_filectrl->GetDirectory(); }
82 virtual wxString GetFilename() const
83 { return m_filectrl->GetFilename(); }
84 virtual void GetFilenames(wxArrayString& files) const
41a031cf 85 { m_filectrl->GetFilenames(files); }
398eebb1
VZ
86 virtual wxString GetWildcard() const
87 { return m_filectrl->GetWildcard(); }
88 virtual int GetFilterIndex() const
89 { return m_filectrl->GetFilterIndex(); }
8ce68f7f 90 virtual bool SupportsExtraControl() const { return true; }
c8c0e54c 91
9cedab37
VZ
92 // implementation only from now on
93 // -------------------------------
94
95 virtual int ShowModal();
16dce3b3 96 virtual bool Show( bool show = true );
9cedab37 97
8b17ba72
RR
98 void OnList( wxCommandEvent &event );
99 void OnReport( wxCommandEvent &event );
8b17ba72
RR
100 void OnUp( wxCommandEvent &event );
101 void OnHome( wxCommandEvent &event );
0cf3e587 102 void OnOk( wxCommandEvent &event );
0b855868 103 void OnNew( wxCommandEvent &event );
0cf3e587 104 void OnFileActivated( wxFileCtrlEvent &event);
06cc1fb9 105
4e1901b7 106private:
e5dd66e9 107 // if true, don't use this implementation at all
4e1901b7 108 bool m_bypassGenericImpl;
c8c0e54c
VZ
109
110protected:
e5dd66e9
VZ
111 // update the state of m_upDirButton and m_newDirButton depending on the
112 // currently selected directory
113 void OnUpdateButtonsUI(wxUpdateUIEvent& event);
2b5f62a0 114
0cf3e587
VZ
115 wxString m_filterExtension;
116 wxGenericFileCtrl *m_filectrl;
117 wxBitmapButton *m_upDirButton;
118 wxBitmapButton *m_newDirButton;
c8c0e54c 119
8b17ba72 120private:
fe6cf128 121 void Init();
8ce68f7f
VZ
122 wxBitmapButton* AddBitmapButton( wxWindowID winId, const wxArtID& artId,
123 const wxString& tip, wxSizer *sizer );
e5dd66e9 124
23254b13 125 DECLARE_DYNAMIC_CLASS(wxGenericFileDialog)
8b17ba72 126 DECLARE_EVENT_TABLE()
cefc49fd 127
23254b13 128 // these variables are preserved between wxGenericFileDialog calls
9cedab37
VZ
129 static long ms_lastViewStyle; // list or report?
130 static bool ms_lastShowHidden; // did we show hidden files?
8b17ba72
RR
131};
132
b2f0b934 133#ifdef wxHAS_GENERIC_FILEDIALOG
23254b13 134
53a2db12 135class WXDLLIMPEXP_CORE wxFileDialog: public wxGenericFileDialog
23254b13 136{
23254b13 137public:
bd44dee6 138 wxFileDialog() {}
23254b13
JS
139
140 wxFileDialog(wxWindow *parent,
141 const wxString& message = wxFileSelectorPromptStr,
ca65c044
WS
142 const wxString& defaultDir = wxEmptyString,
143 const wxString& defaultFile = wxEmptyString,
23254b13
JS
144 const wxString& wildCard = wxFileSelectorDefaultWildcardStr,
145 long style = 0,
bd44dee6
VZ
146 const wxPoint& pos = wxDefaultPosition,
147 const wxSize& size = wxDefaultSize)
148 :wxGenericFileDialog(parent, message,
149 defaultDir, defaultFile, wildCard,
150 style,
151 pos, size)
6463b9f5
JS
152 {
153 }
6b99f53e 154
4e1901b7
RR
155private:
156 DECLARE_DYNAMIC_CLASS(wxFileDialog)
23254b13
JS
157};
158
b2f0b934 159#endif // wxHAS_GENERIC_FILEDIALOG
8b17ba72 160
b600ed13 161#endif // _WX_FILEDLGG_H_