]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/fldlgcmn.cpp
Forgot header with OSX prefix
[wxWidgets.git] / src / common / fldlgcmn.cpp
index d6528d8a990546837626c67a5471b2e4ac729882..ab3908303eb5745ee641ba58d163681b4f2d0384 100644 (file)
@@ -35,8 +35,10 @@ IMPLEMENT_DYNAMIC_CLASS(wxFileDialogBase, wxDialog)
 
 void wxFileDialogBase::Init()
 {
 
 void wxFileDialogBase::Init()
 {
-    m_filterIndex =
+    m_filterIndex = 0;
     m_windowStyle = 0;
     m_windowStyle = 0;
+    m_extraControl = NULL;
+    m_extraControlCreator = NULL;
 }
 
 bool wxFileDialogBase::Create(wxWindow *parent,
 }
 
 bool wxFileDialogBase::Create(wxWindow *parent,
@@ -149,18 +151,47 @@ wxString wxFileDialogBase::AppendExtension(const wxString &filePath,
     return filePath + ext;
 }
 
     return filePath + ext;
 }
 
+bool wxFileDialogBase::SetExtraControlCreator(ExtraControlCreatorFunction c)
+{
+    wxCHECK_MSG( !m_extraControlCreator, false,
+                 "wxFileDialog::SetExtraControl() called second time" );
+
+    m_extraControlCreator = c;
+    return SupportsExtraControl();
+}
+
+bool wxFileDialogBase::CreateExtraControl()
+{
+    if (!m_extraControlCreator || m_extraControl)
+        return false;
+    m_extraControl = (*m_extraControlCreator)(this);
+    return true;
+}
+
+wxSize wxFileDialogBase::GetExtraControlSize()
+{
+    if ( !m_extraControlCreator )
+        return wxDefaultSize;
+
+    // create the extra control in an empty dialog just to find its size: this
+    // is not terribly efficient but we do need to know the size before
+    // creating the native dialog and this seems to be the only way
+    wxDialog dlg(NULL, wxID_ANY, "");
+    return (*m_extraControlCreator)(&dlg)->GetSize();
+}
+
 //----------------------------------------------------------------------------
 // wxFileDialog convenience functions
 //----------------------------------------------------------------------------
 
 //----------------------------------------------------------------------------
 // wxFileDialog convenience functions
 //----------------------------------------------------------------------------
 
-wxString wxDoFileSelector(const wxString& title,
-                          const wxString& defaultDir,
-                          const wxString& defaultFileName,
-                          const wxString& defaultExtension,
-                          const wxString& filter,
-                          int flags,
-                          wxWindow *parent,
-                          int x, int y)
+wxString wxFileSelector(const wxString& title,
+                        const wxString& defaultDir,
+                        const wxString& defaultFileName,
+                        const wxString& defaultExtension,
+                        const wxString& filter,
+                        int flags,
+                        wxWindow *parent,
+                        int x, int y)
 {
     // The defaultExtension, if non-empty, is
     // appended to the filename if the user fails to type an extension. The new
 {
     // The defaultExtension, if non-empty, is
     // appended to the filename if the user fails to type an extension. The new
@@ -217,15 +248,15 @@ wxString wxDoFileSelector(const wxString& title,
 // wxFileSelectorEx
 //----------------------------------------------------------------------------
 
 // wxFileSelectorEx
 //----------------------------------------------------------------------------
 
-wxString wxDoFileSelectorEx(const wxString& title,
-                            const wxString& defaultDir,
-                            const wxString& defaultFileName,
-                            int*            defaultFilterIndex,
-                            const wxString& filter,
-                            int             flags,
-                            wxWindow*       parent,
-                            int             x,
-                            int             y)
+wxString wxFileSelectorEx(const wxString& title,
+                          const wxString& defaultDir,
+                          const wxString& defaultFileName,
+                          int*            defaultFilterIndex,
+                          const wxString& filter,
+                          int             flags,
+                          wxWindow*       parent,
+                          int             x,
+                          int             y)
 
 {
     wxFileDialog fileDialog(parent,
 
 {
     wxFileDialog fileDialog(parent,
@@ -289,10 +320,10 @@ static wxString wxDefaultFileSelector(bool load,
 // wxLoadFileSelector
 //----------------------------------------------------------------------------
 
 // wxLoadFileSelector
 //----------------------------------------------------------------------------
 
-WXDLLEXPORT wxString wxDoLoadFileSelector(const wxString& what,
-                                          const wxString& extension,
-                                          const wxString& default_name,
-                                          wxWindow *parent)
+WXDLLEXPORT wxString wxLoadFileSelector(const wxString& what,
+                                        const wxString& extension,
+                                        const wxString& default_name,
+                                        wxWindow *parent)
 {
     return wxDefaultFileSelector(true, what, extension, default_name, parent);
 }
 {
     return wxDefaultFileSelector(true, what, extension, default_name, parent);
 }
@@ -301,10 +332,10 @@ WXDLLEXPORT wxString wxDoLoadFileSelector(const wxString& what,
 // wxSaveFileSelector
 //----------------------------------------------------------------------------
 
 // wxSaveFileSelector
 //----------------------------------------------------------------------------
 
-WXDLLEXPORT wxString wxDoSaveFileSelector(const wxString& what,
-                                          const wxString& extension,
-                                          const wxString& default_name,
-                                          wxWindow *parent)
+WXDLLEXPORT wxString wxSaveFileSelector(const wxString& what,
+                                        const wxString& extension,
+                                        const wxString& default_name,
+                                        wxWindow *parent)
 {
     return wxDefaultFileSelector(false, what, extension, default_name, parent);
 }
 {
     return wxDefaultFileSelector(false, what, extension, default_name, parent);
 }