]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/filedlg.cpp
More small fixes
[wxWidgets.git] / src / msw / filedlg.cpp
index c81dfcdf5255f5022c4f538c9a426c30fc5e3fff..29ba5231bd378215943ce1783e62dc08e7423762 100644 (file)
@@ -28,6 +28,8 @@
     #pragma hdrstop
 #endif
 
     #pragma hdrstop
 #endif
 
+#if wxUSE_FILEDLG
+
 #ifndef WX_PRECOMP
     #include "wx/utils.h"
     #include "wx/msgdlg.h"
 #ifndef WX_PRECOMP
     #include "wx/utils.h"
     #include "wx/msgdlg.h"
@@ -118,7 +120,7 @@ wxString wxFileSelector(const wxChar *title,
                             flags, wxPoint(x, y));
     if( wxStrlen(defaultExtension) != 0 )
     {
                             flags, wxPoint(x, y));
     if( wxStrlen(defaultExtension) != 0 )
     {
-        int filterFind = 1,
+        int filterFind = 0,
             filterIndex = 0;
 
         for( unsigned int i = 0; i < filter2.Len(); i++ )
             filterIndex = 0;
 
         for( unsigned int i = 0; i < filter2.Len(); i++ )
@@ -127,7 +129,6 @@ wxString wxFileSelector(const wxChar *title,
             {
                 // save the start index of the new filter
                 unsigned int is = i++;
             {
                 // save the start index of the new filter
                 unsigned int is = i++;
-                filterIndex++;
 
                 // find the end of the filter
                 for( ; i < filter2.Len(); i++ )
 
                 // find the end of the filter
                 for( ; i < filter2.Len(); i++ )
@@ -139,25 +140,26 @@ wxString wxFileSelector(const wxChar *title,
                 if( i-is-1 > 0 && is+1 < filter2.Len() )
                 {
                     if( filter2.Mid(is+1,i-is-1).Contains(defaultExtension) )
                 if( i-is-1 > 0 && is+1 < filter2.Len() )
                 {
                     if( filter2.Mid(is+1,i-is-1).Contains(defaultExtension) )
-//                    if( filter2.Mid(is+1,i-is-1) == defaultExtension )
                     {
                         filterFind = filterIndex;
                         break;
                     }
                 }
                     {
                         filterFind = filterIndex;
                         break;
                     }
                 }
+
+                filterIndex++;
             }
         }
 
         fileDialog.SetFilterIndex(filterFind);
     }
 
             }
         }
 
         fileDialog.SetFilterIndex(filterFind);
     }
 
+    wxString filename;
     if ( fileDialog.ShowModal() == wxID_OK )
     {
     if ( fileDialog.ShowModal() == wxID_OK )
     {
-        wxStrcpy(wxBuffer, (const wxChar *)fileDialog.GetPath());
-        return wxBuffer;
+        filename = fileDialog.GetPath();
     }
     }
-    else
-        return wxGetEmptyString();
+
+    return filename;
 }
 
 
 }
 
 
@@ -172,22 +174,28 @@ wxString wxFileSelectorEx(const wxChar *title,
                        int       y)
 
 {
                        int       y)
 
 {
-    wxFileDialog fileDialog(parent, title ? title : wxT(""), defaultDir ? defaultDir : wxT(""),
-        defaultFileName ? defaultFileName : wxT(""), filter ? filter : wxT(""), flags, wxPoint(x, y));
+    wxFileDialog fileDialog(parent,
+                            title ? title : wxT(""),
+                            defaultDir ? defaultDir : wxT(""),
+                            defaultFileName ? defaultFileName : wxT(""),
+                            filter ? filter : wxT(""),
+                            flags, wxPoint(x, y));
 
 
+    wxString filename;
     if ( fileDialog.ShowModal() == wxID_OK )
     {
     if ( fileDialog.ShowModal() == wxID_OK )
     {
-        *defaultFilterIndex = fileDialog.GetFilterIndex();
-        wxStrcpy(wxBuffer, (const wxChar *)fileDialog.GetPath());
-        return wxBuffer;
+        if ( defaultFilterIndex )
+            *defaultFilterIndex = fileDialog.GetFilterIndex();
+
+        filename = fileDialog.GetPath();
     }
     }
-    else
-        return wxGetEmptyString();
+
+    return filename;
 }
 
 wxFileDialog::wxFileDialog(wxWindow *parent, const wxString& message,
         const wxString& defaultDir, const wxString& defaultFileName, const wxString& wildCard,
 }
 
 wxFileDialog::wxFileDialog(wxWindow *parent, const wxString& message,
         const wxString& defaultDir, const wxString& defaultFileName, const wxString& wildCard,
-        long style, const wxPoint& pos)
+        long style, const wxPoint& WXUNUSED(pos))
 {
     m_message = message;
     m_dialogStyle = style;
 {
     m_message = message;
     m_dialogStyle = style;
@@ -323,8 +331,8 @@ int wxFileDialog::ShowModal()
 
     //== Execute FileDialog >>=================================================
 
 
     //== Execute FileDialog >>=================================================
 
-    bool success = (m_dialogStyle & wxSAVE) ? (GetSaveFileName(&of) != 0)
-                                            : (GetOpenFileName(&of) != 0);
+    bool success = (m_dialogStyle & wxSAVE ? GetSaveFileName(&of)
+                                           : GetOpenFileName(&of)) != 0;
 
     DWORD errCode = CommDlgExtendedError();
 
 
     DWORD errCode = CommDlgExtendedError();
 
@@ -506,4 +514,5 @@ WXDLLEXPORT wxString wxSaveFileSelector(const wxChar *what,
     return wxDefaultFileSelector(FALSE, what, extension, default_name, parent);
 }
 
     return wxDefaultFileSelector(FALSE, what, extension, default_name, parent);
 }
 
+#endif // wxUSE_FILEDLG