1 ///////////////////////////////////////////////////////////////////////////// 2 // Name: wx/generic/filedlgg.h 3 // Purpose: wxGenericFileDialog 4 // Author: Robert Roebling 5 // Modified by: 6 // Created: 8/17/99 7 // Copyright: (c) Robert Roebling 8 // Licence: wxWindows licence 9 ///////////////////////////////////////////////////////////////////////////// 10 11 #ifndef _WX_FILEDLGG_H_ 12 #define _WX_FILEDLGG_H_ 13 14 #include "wx/listctrl.h" 15 #include "wx/datetime.h" 16 #include "wx/filefn.h" 17 #include "wx/artprov.h" 18 #include "wx/filedlg.h" 19 #include "wx/generic/filectrlg.h" 20 21 //----------------------------------------------------------------------------- 22 // classes 23 //----------------------------------------------------------------------------- 24 25 class WXDLLIMPEXP_FWD_CORE wxBitmapButton; 26 class WXDLLIMPEXP_FWD_CORE wxGenericFileCtrl; 27 class WXDLLIMPEXP_FWD_CORE wxGenericFileDialog; 28 class WXDLLIMPEXP_FWD_CORE wxFileCtrlEvent; 29 30 //------------------------------------------------------------------------- 31 // wxGenericFileDialog 32 //------------------------------------------------------------------------- 33 34 class WXDLLIMPEXP_CORE wxGenericFileDialog: public wxFileDialogBase 35 { 36 public: wxGenericFileDialog()37 wxGenericFileDialog() : wxFileDialogBase() { Init(); } 38 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 ); 49 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 ); 60 61 virtual ~wxGenericFileDialog(); 62 SetDirectory(const wxString & dir)63 virtual void SetDirectory(const wxString& dir) 64 { m_filectrl->SetDirectory(dir); } SetFilename(const wxString & name)65 virtual void SetFilename(const wxString& name) 66 { m_filectrl->SetFilename(name); } SetMessage(const wxString & message)67 virtual void SetMessage(const wxString& message) { SetTitle(message); } SetPath(const wxString & path)68 virtual void SetPath(const wxString& path) 69 { m_filectrl->SetPath(path); } SetFilterIndex(int filterIndex)70 virtual void SetFilterIndex(int filterIndex) 71 { m_filectrl->SetFilterIndex(filterIndex); } SetWildcard(const wxString & wildCard)72 virtual void SetWildcard(const wxString& wildCard) 73 { m_filectrl->SetWildcard(wildCard); } 74 GetPath()75 virtual wxString GetPath() const 76 { return m_filectrl->GetPath(); } GetPaths(wxArrayString & paths)77 virtual void GetPaths(wxArrayString& paths) const 78 { m_filectrl->GetPaths(paths); } GetDirectory()79 virtual wxString GetDirectory() const 80 { return m_filectrl->GetDirectory(); } GetFilename()81 virtual wxString GetFilename() const 82 { return m_filectrl->GetFilename(); } GetFilenames(wxArrayString & files)83 virtual void GetFilenames(wxArrayString& files) const 84 { m_filectrl->GetFilenames(files); } GetWildcard()85 virtual wxString GetWildcard() const 86 { return m_filectrl->GetWildcard(); } GetFilterIndex()87 virtual int GetFilterIndex() const 88 { return m_filectrl->GetFilterIndex(); } SupportsExtraControl()89 virtual bool SupportsExtraControl() const { return true; } 90 91 // implementation only from now on 92 // ------------------------------- 93 94 virtual int ShowModal(); 95 virtual bool Show( bool show = true ); 96 97 void OnList( wxCommandEvent &event ); 98 void OnReport( wxCommandEvent &event ); 99 void OnUp( wxCommandEvent &event ); 100 void OnHome( wxCommandEvent &event ); 101 void OnOk( wxCommandEvent &event ); 102 void OnNew( wxCommandEvent &event ); 103 void OnFileActivated( wxFileCtrlEvent &event); 104 105 private: 106 // if true, don't use this implementation at all 107 bool m_bypassGenericImpl; 108 109 protected: 110 // update the state of m_upDirButton and m_newDirButton depending on the 111 // currently selected directory 112 void OnUpdateButtonsUI(wxUpdateUIEvent& event); 113 114 wxString m_filterExtension; 115 wxGenericFileCtrl *m_filectrl; 116 wxBitmapButton *m_upDirButton; 117 wxBitmapButton *m_newDirButton; 118 119 private: 120 void Init(); 121 wxBitmapButton* AddBitmapButton( wxWindowID winId, const wxArtID& artId, 122 const wxString& tip, wxSizer *sizer ); 123 124 DECLARE_DYNAMIC_CLASS(wxGenericFileDialog) 125 DECLARE_EVENT_TABLE() 126 127 // these variables are preserved between wxGenericFileDialog calls 128 static long ms_lastViewStyle; // list or report? 129 static bool ms_lastShowHidden; // did we show hidden files? 130 }; 131 132 #ifdef wxHAS_GENERIC_FILEDIALOG 133 134 class WXDLLIMPEXP_CORE wxFileDialog: public wxGenericFileDialog 135 { 136 public: wxFileDialog()137 wxFileDialog() {} 138 139 wxFileDialog(wxWindow *parent, 140 const wxString& message = wxFileSelectorPromptStr, 141 const wxString& defaultDir = wxEmptyString, 142 const wxString& defaultFile = wxEmptyString, 143 const wxString& wildCard = wxFileSelectorDefaultWildcardStr, 144 long style = 0, 145 const wxPoint& pos = wxDefaultPosition, 146 const wxSize& size = wxDefaultSize) wxGenericFileDialog(parent,message,defaultDir,defaultFile,wildCard,style,pos,size)147 :wxGenericFileDialog(parent, message, 148 defaultDir, defaultFile, wildCard, 149 style, 150 pos, size) 151 { 152 } 153 154 private: 155 DECLARE_DYNAMIC_CLASS(wxFileDialog) 156 }; 157 158 #endif // wxHAS_GENERIC_FILEDIALOG 159 160 #endif // _WX_FILEDLGG_H_ 161