]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/osx/filedlg.h
Add support for custom scheme handling and virtual file systems to the OSX WebKit...
[wxWidgets.git] / include / wx / osx / filedlg.h
index 1cf1b5ce2eb67b9ec145bc2320f1447d7dc7808a..2d7e1648f406b2c09bce436f4faa5a54579916c3 100644 (file)
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        filedlg.h
+// Name:        wx/osx/filedlg.h
 // Purpose:     wxFileDialog class
 // Author:      Stefan Csomor
 // Modified by:
 #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)
@@ -34,11 +41,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 +57,36 @@ 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
 };
 
 #endif // _WX_FILEDLG_H_