]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/filedlg.cpp
fixed VC++ warning
[wxWidgets.git] / src / msw / filedlg.cpp
index b64a9f842c9db3e38b5ef0ee402fe65e8cc0e9b3..28dbb46507b26efa0d60144f4ad04195ffd96d77 100644 (file)
@@ -28,6 +28,8 @@
     #pragma hdrstop
 #endif
 
+#if wxUSE_FILEDLG
+
 #ifndef WX_PRECOMP
     #include "wx/utils.h"
     #include "wx/msgdlg.h"
 
 #include "wx/tokenzr.h"
 
+#ifndef OFN_EXPLORER
+    #define OFN_EXPLORER 0x00080000
+#endif
+
 // ----------------------------------------------------------------------------
 // constants
 // ----------------------------------------------------------------------------
@@ -193,7 +199,7 @@ wxString wxFileSelectorEx(const wxChar *title,
 
 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;
@@ -240,12 +246,18 @@ int wxFileDialog::ShowModal()
         msw_flags |= OFN_HIDEREADONLY;
     if ( m_dialogStyle & wxFILE_MUST_EXIST )
         msw_flags |= OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;
+
     if (m_dialogStyle & wxMULTIPLE )
-        msw_flags |=
-#if defined(OFN_EXPLORER)
-        OFN_EXPLORER |
-#endif // OFN_EXPLORER
-        OFN_ALLOWMULTISELECT;
+    {
+        // OFN_EXPLORER must always be specified with OFN_ALLOWMULTISELECT
+        msw_flags |= OFN_EXPLORER | OFN_ALLOWMULTISELECT;
+    }
+
+    // if wxCHANGE_DIR flag is not given we shouldn't change the CWD
+    if ( !(m_dialogStyle & wxCHANGE_DIR) )
+    {
+        msw_flags |= OFN_NOCHANGEDIR;
+    }
 
     OPENFILENAME of;
     wxZeroMemory(of);
@@ -329,8 +341,8 @@ int wxFileDialog::ShowModal()
 
     //== 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();
 
@@ -478,20 +490,23 @@ wxString wxDefaultFileSelector(bool load,
                                const wxChar *default_name,
                                wxWindow *parent)
 {
-  wxString prompt;
-  wxString str;
-  if (load) str = _("Load %s file");
-  else str = _("Save %s file");
-  prompt.Printf(str, what);
+    wxString prompt;
+    wxString str;
+    if (load)
+        str = _("Load %s file");
+    else
+        str = _("Save %s file");
+    prompt.Printf(str, what);
 
-  const wxChar *ext = extension;
-  if (*ext == wxT('.'))
-      ext++;
+    const wxChar *ext = extension;
+    if (*ext == wxT('.'))
+        ext++;
 
-  wxString wild;
-  wild.Printf(wxT("*.%s"), ext);
+    wxString wild;
+    wild.Printf(wxT("*.%s"), ext);
 
-  return wxFileSelector (prompt, NULL, default_name, ext, wild, 0, parent);
+    return wxFileSelector(prompt, NULL, default_name, ext, wild,
+                          load ? wxOPEN : wxSAVE, parent);
 }
 
 // Generic file load dialog
@@ -512,4 +527,5 @@ WXDLLEXPORT wxString wxSaveFileSelector(const wxChar *what,
     return wxDefaultFileSelector(FALSE, what, extension, default_name, parent);
 }
 
+#endif // wxUSE_FILEDLG