X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2f30930a092c85f3255f8a0d79873cde438b0445..9869c26285dc51d13607cddaa04f65ce983653a5:/include/wx/osx/filedlg.h diff --git a/include/wx/osx/filedlg.h b/include/wx/osx/filedlg.h index 1cf1b5ce2e..10342fa8a8 100644 --- a/include/wx/osx/filedlg.h +++ b/include/wx/osx/filedlg.h @@ -1,10 +1,9 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: filedlg.h +// Name: wx/osx/filedlg.h // Purpose: wxFileDialog class // Author: Stefan Csomor // Modified by: // Created: 1998-01-01 -// RCS-ID: $Id$ // Copyright: (c) Stefan Csomor // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -12,10 +11,17 @@ #ifndef _WX_FILEDLG_H_ #define _WX_FILEDLG_H_ +class WXDLLIMPEXP_FWD_CORE wxChoice; + //------------------------------------------------------------------------- // wxFileDialog //------------------------------------------------------------------------- +// set this system option to 1 in order to always show the filetypes popup in +// file open dialogs if possible + +#define wxOSX_FILEDIALOG_ALWAYS_SHOW_TYPES wxT("osx.openfiledialog.always-show-types") + class WXDLLIMPEXP_CORE wxFileDialog: public wxFileDialogBase { DECLARE_DYNAMIC_CLASS(wxFileDialog) @@ -24,7 +30,23 @@ protected: wxArrayString m_paths; public: + wxFileDialog() { Init(); } wxFileDialog(wxWindow *parent, + const wxString& message = wxFileSelectorPromptStr, + const wxString& defaultDir = wxEmptyString, + const wxString& defaultFile = wxEmptyString, + const wxString& wildCard = wxFileSelectorDefaultWildcardStr, + long style = wxFD_DEFAULT_STYLE, + const wxPoint& pos = wxDefaultPosition, + const wxSize& sz = wxDefaultSize, + const wxString& name = wxFileDialogNameStr) + { + Init(); + + Create(parent,message,defaultDir,defaultFile,wildCard,style,pos,sz,name); + } + + void Create(wxWindow *parent, const wxString& message = wxFileSelectorPromptStr, const wxString& defaultDir = wxEmptyString, const wxString& defaultFile = wxEmptyString, @@ -34,11 +56,15 @@ public: const wxSize& sz = wxDefaultSize, const wxString& name = wxFileDialogNameStr); +#if wxOSX_USE_COCOA + ~wxFileDialog(); +#endif + virtual void GetPaths(wxArrayString& paths) const { paths = m_paths; } virtual void GetFilenames(wxArrayString& files) const { files = m_fileNames ; } virtual int ShowModal(); - + #if wxOSX_USE_COCOA virtual void ShowWindowModal(); virtual void ModalFinishedCallback(void* panel, int resultCode); @@ -46,13 +72,40 @@ public: virtual bool SupportsExtraControl() const; + // implementation only + +#if wxOSX_USE_COCOA + // returns true if the file can be shown as active + bool CheckFile( const wxString& filename ); +#endif + protected: // not supported for file dialog, RR virtual void DoSetSize(int WXUNUSED(x), int WXUNUSED(y), int WXUNUSED(width), int WXUNUSED(height), int WXUNUSED(sizeFlags) = wxSIZE_AUTO) {} - + void SetupExtraControls(WXWindow nativeWindow); + +#if wxOSX_USE_COCOA + virtual wxWindow* CreateFilterPanel(wxWindow *extracontrol); + void DoOnFilterSelected(int index); + virtual void OnFilterSelected(wxCommandEvent &event); + + wxArrayString m_filterExtensions; + wxArrayString m_filterNames; + wxChoice* m_filterChoice; + wxWindow* m_filterPanel; + bool m_useFileTypeFilter; + int m_firstFileTypeFilter; + wxArrayString m_currentExtensions; + WX_NSObject m_delegate; + WX_NSObject m_sheetDelegate; +#endif + +private: + // Common part of all ctors. + void Init(); }; #endif // _WX_FILEDLG_H_