From ff3e84ffdc91ee8a52b3ab646e48d44d62de80e1 Mon Sep 17 00:00:00 2001
From: Vadim Zeitlin <vadim@wxwidgets.org>
Date: Sun, 28 May 2006 23:32:12 +0000
Subject: [PATCH] File/dir dialog styles and other changes (patch 1488371):

- check invalid combinations of styles in wxFileDialogBase::Create()
- use wxFD_XXX naming convention for wxFileDialog styles
- replaces wxDD_NEW_DIR_BUTTON with wxDD_DIR_MUST_EXIST
- removes #ifdef __WXGTK24__ / #endif blocks from wxGTK code
- removes wxFileDialogBase::Get/SetStyle and wxFileDialogBase::m_fileName
- renames wxDirDialogGTK to wxDirDialog


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@39402 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
---
 contrib/samples/animate/anitest.cpp     |  2 +-
 contrib/samples/stc/edit.cpp            |  4 +-
 contrib/samples/stc/stctest.cpp         |  4 +-
 contrib/samples/svg/svgtest.cpp         |  2 +-
 contrib/utils/convertrc/convert.cpp     |  8 ++--
 docs/latex/wx/dirdlg.tex                |  9 ++--
 docs/latex/wx/filedlg.tex               | 62 +++++++++++--------------
 include/wx/cocoa/filedlg.h              |  6 ++-
 include/wx/defs.h                       |  7 ---
 include/wx/dirdlg.h                     | 47 +++++--------------
 include/wx/filedlg.h                    | 36 ++++++++++----
 include/wx/generic/dirdlgg.h            |  6 +--
 include/wx/generic/filedlgg.h           |  8 +++-
 include/wx/gtk/dirdlg.h                 | 14 +++---
 include/wx/gtk/filedlg.h                |  6 ++-
 include/wx/gtk1/filedlg.h               |  6 ++-
 include/wx/motif/filedlg.h              |  6 ++-
 include/wx/msw/filedlg.h                |  6 ++-
 include/wx/os2/filedlg.h                |  6 ++-
 include/wx/palmos/filedlg.h             |  6 ++-
 samples/combo/combo.cpp                 |  2 +-
 samples/db/dbtest.cpp                   |  2 +-
 samples/dialogs/dialogs.cpp             | 10 ++--
 samples/image/image.cpp                 |  2 +-
 samples/mobile/wxedit/wxedit.cpp        |  4 +-
 samples/opengl/penguin/penguin.cpp      |  2 +-
 samples/richtext/richtext.cpp           |  4 +-
 samples/sound/sound.cpp                 |  2 +-
 samples/stc/edit.cpp                    |  4 +-
 samples/stc/stctest.cpp                 |  4 +-
 samples/svg/svgtest.cpp                 |  2 +-
 src/common/datacmn.cpp                  |  1 +
 src/common/docview.cpp                  |  2 +-
 src/common/dseldlg.cpp                  |  2 -
 src/common/fldlgcmn.cpp                 | 21 +++++++--
 src/generic/dirdlgg.cpp                 |  6 +--
 src/generic/filedlgg.cpp                | 33 ++++++-------
 src/generic/prntdlgg.cpp                |  2 +-
 src/gtk/dirdlg.cpp                      | 54 ++++++++-------------
 src/gtk/filedlg.cpp                     | 61 ++++++------------------
 src/gtk1/filedlg.cpp                    |  8 ++--
 src/html/helpwnd.cpp                    |  2 +-
 src/mac/carbon/filedlg.cpp              | 10 ++--
 src/mac/classic/dirdlg.cpp              |  2 +-
 src/mac/classic/filedlg.cpp             | 12 ++---
 src/motif/filedlg.cpp                   |  4 +-
 src/msw/dirdlg.cpp                      |  2 +-
 src/msw/filedlg.cpp                     | 28 +++++------
 src/msw/wince/filedlgwce.cpp            |  6 +--
 src/os2/dirdlg.cpp                      |  2 +-
 src/os2/filedlg.cpp                     | 26 ++++++-----
 src/palmos/filedlg.cpp                  |  6 ++-
 utils/configtool/src/configtoolview.cpp |  4 +-
 53 files changed, 273 insertions(+), 310 deletions(-)

diff --git a/contrib/samples/animate/anitest.cpp b/contrib/samples/animate/anitest.cpp
index efe5d2b473..d402201c76 100644
--- a/contrib/samples/animate/anitest.cpp
+++ b/contrib/samples/animate/anitest.cpp
@@ -154,7 +154,7 @@ void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event) )
 void MyFrame::OnOpen(wxCommandEvent& WXUNUSED(event))
 {
     wxFileDialog dialog(this, _T("Please choose an animated GIF"),
-        wxEmptyString, wxEmptyString, wxT("*.gif"), wxOPEN);
+        wxEmptyString, wxEmptyString, wxT("*.gif"), wxFD_OPEN);
     if (dialog.ShowModal() == wxID_OK)
     {
         wxString filename(dialog.GetPath());
diff --git a/contrib/samples/stc/edit.cpp b/contrib/samples/stc/edit.cpp
index a921882b5d..24be6831a8 100644
--- a/contrib/samples/stc/edit.cpp
+++ b/contrib/samples/stc/edit.cpp
@@ -508,7 +508,7 @@ bool Edit::LoadFile ()
     // get filname
     if (!m_filename) {
         wxFileDialog dlg (this, _T("Open file"), wxEmptyString, wxEmptyString,
-                          _T("Any file (*)|*"), wxOPEN | wxFILE_MUST_EXIST | wxCHANGE_DIR);
+                          _T("Any file (*)|*"), wxFD_OPEN | wxFD_FILE_MUST_EXIST | wxFD_CHANGE_DIR);
         if (dlg.ShowModal() != wxID_OK) return false;
         m_filename = dlg.GetPath();
     }
@@ -557,7 +557,7 @@ bool Edit::SaveFile ()
     // get filname
     if (!m_filename) {
         wxFileDialog dlg (this, _T("Save file"), wxEmptyString, wxEmptyString, _T("Any file (*)|*"),
-                          wxSAVE | wxOVERWRITE_PROMPT);
+                          wxFD_SAVE | wxFD_OVERWRITE_PROMPT);
         if (dlg.ShowModal() != wxID_OK) return false;
         m_filename = dlg.GetPath();
     }
diff --git a/contrib/samples/stc/stctest.cpp b/contrib/samples/stc/stctest.cpp
index 7eb8491fbe..fb3d1e02c8 100644
--- a/contrib/samples/stc/stctest.cpp
+++ b/contrib/samples/stc/stctest.cpp
@@ -352,7 +352,7 @@ void AppFrame::OnFileOpen (wxCommandEvent &WXUNUSED(event)) {
 #if wxUSE_FILEDLG
     wxString fname;
     wxFileDialog dlg (this, _T("Open file"), wxEmptyString, wxEmptyString, _T("Any file (*)|*"),
-                      wxOPEN | wxFILE_MUST_EXIST | wxCHANGE_DIR);
+                      wxFD_OPEN | wxFD_FILE_MUST_EXIST | wxFD_CHANGE_DIR);
     if (dlg.ShowModal() != wxID_OK) return;
     fname = dlg.GetPath ();
     FileOpen (fname);
@@ -373,7 +373,7 @@ void AppFrame::OnFileSaveAs (wxCommandEvent &WXUNUSED(event)) {
     if (!m_edit) return;
 #if wxUSE_FILEDLG
     wxString filename = wxEmptyString;
-    wxFileDialog dlg (this, _T("Save file"), wxEmptyString, wxEmptyString, _T("Any file (*)|*"), wxSAVE|wxOVERWRITE_PROMPT);
+    wxFileDialog dlg (this, _T("Save file"), wxEmptyString, wxEmptyString, _T("Any file (*)|*"), wxFD_SAVE|wxFD_OVERWRITE_PROMPT);
     if (dlg.ShowModal() != wxID_OK) return;
     filename = dlg.GetPath();
     m_edit->SaveFile (filename);
diff --git a/contrib/samples/svg/svgtest.cpp b/contrib/samples/svg/svgtest.cpp
index 41aab0358b..a353b440ce 100644
--- a/contrib/samples/svg/svgtest.cpp
+++ b/contrib/samples/svg/svgtest.cpp
@@ -350,7 +350,7 @@ void MyFrame::FileSavePicture (wxCommandEvent & WXUNUSED(event) )
 
     wxFileDialog dialog(this, wxT("Save Picture as"), wxEmptyString, pChild->GetTitle(),
         wxT("SVG vector picture files (*.svg)|*.svg"),
-        wxSAVE|wxOVERWRITE_PROMPT);
+        wxFD_SAVE|wxFD_OVERWRITE_PROMPT);
 
     if (dialog.ShowModal() == wxID_OK)
     {
diff --git a/contrib/utils/convertrc/convert.cpp b/contrib/utils/convertrc/convert.cpp
index 43aebfce05..55cb0a878c 100644
--- a/contrib/utils/convertrc/convert.cpp
+++ b/contrib/utils/convertrc/convert.cpp
@@ -126,14 +126,14 @@ void wxMainFrame::OnRc2Wxr(wxCommandEvent& WXUNUSED(event))
 #if wxUSE_FILEDLG
     wxFileDialog filed(this);
     filed.SetWildcard(_T("*.rc"));
-    filed.SetStyle(wxOPEN);
+    filed.SetStyle(wxFD_OPEN);
 
     if (filed.ShowModal()!=wxID_OK)
         return;
 
     wxFileDialog wxrfile(this,_T("Enter Desired WXR file name"));
     wxrfile.SetWildcard(_T("*.wxr"));
-    wxrfile.SetStyle(wxOPEN);
+    wxrfile.SetStyle(wxFD_OPEN);
     wxrfile.SetFilename(_T("resource.wxr"));
 
     if (wxrfile.ShowModal()!=wxID_OK)
@@ -155,7 +155,7 @@ void wxMainFrame::OnWXR2XML(wxCommandEvent& WXUNUSED(event))
 
     wxFileDialog xmlfile(this,_T("Enter Desired XML file name"));
     xmlfile.SetWildcard(_T("*.xml"));
-    xmlfile.SetStyle(wxOPEN);
+    xmlfile.SetStyle(wxFD_OPEN);
     xmlfile.SetFilename(_T("resource.xml"));
 
     if (xmlfile.ShowModal()!=wxID_OK)
@@ -176,7 +176,7 @@ void wxMainFrame::OnRC2XML(wxCommandEvent& WXUNUSED(event))
 
     wxFileDialog xmlfile(this,_T("Enter Desired XML file name"));
     xmlfile.SetWildcard(_T("*.xml"));
-    xmlfile.SetStyle(wxOPEN);
+    xmlfile.SetStyle(wxFD_OPEN);
     xmlfile.SetFilename(_T("resource.xml"));
 
     if (xmlfile.ShowModal()!=wxID_OK)
diff --git a/docs/latex/wx/dirdlg.tex b/docs/latex/wx/dirdlg.tex
index ec61a15c83..ad92224286 100644
--- a/docs/latex/wx/dirdlg.tex
+++ b/docs/latex/wx/dirdlg.tex
@@ -16,14 +16,13 @@ This class represents the directory chooser dialog.
 \wxheading{Window styles}
 
 \begin{twocollist}\itemsep=0pt
-\twocolitem{\windowstyle{wxDD\_DEFAULT\_STYLE}}{Equivalent to a combination of wxDEFAULT\_DIALOG\_STYLE, wxDD\_NEW\_DIR\_BUTTON and wxRESIZE\_BORDER (the last one is not used under wxWinCE).}
-\twocolitem{\windowstyle{wxDD\_NEW\_DIR\_BUTTON}}{Add "Create new
-directory" button and allow directory names to be editable.  On
-Windows the new directory button is only available with recent
-versions of the common dialogs.}
+\twocolitem{\windowstyle{wxDD\_DEFAULT\_STYLE}}{Equivalent to a combination of wxDEFAULT\_DIALOG\_STYLE and wxRESIZE\_BORDER (the last one is not used under wxWinCE).}
+\twocolitem{\windowstyle{wxDD\_DIR_MUST_EXIST}}{The dialog will allow the user to choose only an existing folder. When this style is not given, a "Create new directory" button is added to the dialog (on Windows) or some other way is provided to the user to type the name of a new folder.}
 \twocolitem{\windowstyle{wxDD\_CHANGE\_DIR}}{Change the current working directory to the directory chosen by the user.}
 \end{twocollist}
 
+{\bf NB:} on Windows the new directory button is only available with recent versions of the common dialogs.
+
 See also \helpref{Generic window styles}{windowstyles}.
 
 \wxheading{See also}
diff --git a/docs/latex/wx/filedlg.tex b/docs/latex/wx/filedlg.tex
index 859b7a030c..6fc8357637 100644
--- a/docs/latex/wx/filedlg.tex
+++ b/docs/latex/wx/filedlg.tex
@@ -13,6 +13,26 @@ This class represents the file chooser dialog.
 
 <wx/filedlg.h>
 
+\wxheading{Window styles}
+
+\begin{twocollist}\itemsep=0pt
+\twocolitem{\windowstyle{wxFD\_DEFAULT\_STYLE}}{Equivalent to wxFD_OPEN.}
+\twocolitem{\windowstyle{wxFD\_OPEN}}{This is an open dialog; usually this means that the default button's label of the dialog is "Open". Cannot be combined with wxFD\_SAVE.}
+\twocolitem{\windowstyle{wxFD\_SAVE}}{This is a save dialog; usually this means that the default button's label of the dialog is "Save". Cannot be combined with wxFD\_OPEN.}
+\twocolitem{{\windowstyle wxFD\_OVERWRITE\_PROMPT}}{For save dialog only: prompt for a confirmation if a file will be overwritten.}
+\twocolitem{{\windowstyle wxFD\_FILE\_MUST\_EXIST}}{For open dialog only: the user may only select files that actually exist.}
+\twocolitem{{\windowstyle wxFD_MULTIPLE}}{For open dialog only: allows selecting multiple files.}
+\twocolitem{{\windowstyle wxFD_CHANGE\_DIR}}{Change the current working directory to the directory where the file(s) chosen by the user are.}
+\end{twocollist}
+
+{\bf NB:} Previous versions of wxWidgets used {\tt wxFD_CHANGE\_DIR} by default
+under MS Windows which allowed the program to simply remember the last
+directory where user selected the files to open/save. This (desired)
+functionality must be implemented in the program itself now (manually remember
+the last path used and pass it to the dialog the next time it is called) or
+by using this flag.
+
+
 \wxheading{See also}
 
 \helpref{wxFileDialog overview}{wxfiledialogoverview}, \helpref{wxFileSelector}{wxfileselector}
@@ -25,9 +45,7 @@ functionality. The path and filename are distinct elements of a full file pathna
 If path is ``", the current directory will be used. If filename is ``",
 no default filename will be supplied. The wildcard determines what files
 are displayed in the file selector, and file extension supplies a type
-extension for the required filename. Flags may be a combination of wxOPEN,
-wxSAVE, wxOVERWRITE\_PROMPT, wxHIDE\_READONLY, wxFILE\_MUST\_EXIST,
-wxMULTIPLE, wxCHANGE\_DIR or 0.
+extension for the required filename.
 
 Both the X and Windows versions implement a wildcard filter. Typing a
 filename containing wildcards (*, ?) in the filename text item, and
@@ -52,7 +70,7 @@ is displayed as ``*.bmp'', and both
 
 \func{}{wxFileDialog}{\param{wxWindow* }{parent}, \param{const wxString\& }{message = "Choose a file"},\rtfsp
 \param{const wxString\& }{defaultDir = ""}, \param{const wxString\& }{defaultFile = ``"},\rtfsp
-\param{const wxString\& }{wildcard = ``*.*"}, \param{long }{style = 0}, \param{const wxPoint\& }{pos = wxDefaultPosition}}
+\param{const wxString\& }{wildcard = ``*.*"}, \param{long }{style = wxFD\_DEFAULT\_STYLE}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{sz = wxDefaultSize}, \param{const wxString\& }{name = "filedlg"}}
 
 Constructor. Use \helpref{wxFileDialog::ShowModal}{wxfiledialogshowmodal} to show the dialog.
 
@@ -71,28 +89,14 @@ Constructor. Use \helpref{wxFileDialog::ShowModal}{wxfiledialogshowmodal} to sho
 Note that the native Motif dialog has some limitations with respect to
 wildcards; see the Remarks section above.}
 
-\docparam{style}{A dialog style. A bitlist of:
-
-\twocolwidtha{5cm}
-\begin{twocollist}
-\twocolitem{{\bf wxOPEN}}{This is an open dialog.}
-\twocolitem{{\bf wxSAVE}}{This is a save dialog.}
-\twocolitem{{\bf wxOVERWRITE\_PROMPT}}{For save dialog only: prompt for a confirmation if a file will be overwritten.}
-\twocolitem{{\bf wxHIDE\_READONLY}}{Do not display the checkbox to toggle display of read-only files. Deprecated in 2.6; the checkbox is never shown.}
-\twocolitem{{\bf wxFILE\_MUST\_EXIST}}{The user may only select files that actually exist.}
-\twocolitem{{\bf wxMULTIPLE}}{For open dialog only: allows selecting multiple files.}
-\twocolitem{{\bf wxCHANGE\_DIR}}{Change the current working directory to the directory where the file(s) chosen by the user are.}
-\end{twocollist}%
-}
+\docparam{style}{A dialog style. See wxFD_* styles for more info.}
 
 \docparam{pos}{Dialog position. Not implemented.}
 
-{\bf NB:} Previous versions of wxWidgets used {\tt wxCHANGE\_DIR} by default
-under MS Windows which allowed the program to simply remember the last
-directory where user selected the files to open/save. This (desired)
-functionality must be implemented in the program itself now (manually remember
-the last path used and pass it to the dialog the next time it is called) or
-by using this flag.
+\docparam{size}{Dialog size. Not implemented.}
+
+\docparam{name}{Dialog name. Not implemented.}
+
 
 \membersection{wxFileDialog::\destruct{wxFileDialog}}\label{wxfiledialogdtor}
 
@@ -153,12 +157,6 @@ Fills the array {\it paths} with the full paths of the files chosen. This
 function should only be used with the dialogs which have {\tt wxMULTIPLE} style,
 use \helpref{GetPath}{wxfiledialoggetpath} for the others.
 
-\membersection{wxFileDialog::GetStyle}\label{wxfiledialoggetstyle}
-
-\constfunc{long}{GetStyle}{\void}
-
-Returns the dialog style.
-
 \membersection{wxFileDialog::GetWildcard}\label{wxfiledialoggetwildcard}
 
 \constfunc{wxString}{GetWildcard}{\void}
@@ -195,12 +193,6 @@ Sets the message that will be displayed on the dialog.
 
 Sets the path (the combined directory and filename that will be returned when the dialog is dismissed).
 
-\membersection{wxFileDialog::SetStyle}\label{wxfiledialogsetstyle}
-
-\func{void}{SetStyle}{\param{long }{style}}
-
-Sets the dialog style. See \helpref{wxFileDialog::wxFileDialog}{wxfiledialogctor} for details.
-
 \membersection{wxFileDialog::SetWildcard}\label{wxfiledialogsetwildcard}
 
 \func{void}{SetWildcard}{\param{const wxString\& }{wildCard}}
diff --git a/include/wx/cocoa/filedlg.h b/include/wx/cocoa/filedlg.h
index f91125b38a..17834726c1 100644
--- a/include/wx/cocoa/filedlg.h
+++ b/include/wx/cocoa/filedlg.h
@@ -29,8 +29,10 @@ public:
                  const wxString& defaultDir = wxEmptyString,
                  const wxString& defaultFile = wxEmptyString,
                  const wxString& wildCard = wxFileSelectorDefaultWildcardStr,
-                 long style = 0,
-                 const wxPoint& pos = wxDefaultPosition);
+                 long style = wxFD_DEFAULT_STYLE,
+                 const wxPoint& pos = wxDefaultPosition,
+                 const wxSize& sz = wxDefaultSize,
+                 const wxString& name = wxFileDialogNameStr);
     ~wxFileDialog();
 
     virtual void SetPath(const wxString& path);
diff --git a/include/wx/defs.h b/include/wx/defs.h
index 926821d203..fb71c72c9f 100644
--- a/include/wx/defs.h
+++ b/include/wx/defs.h
@@ -1706,13 +1706,6 @@ enum wxBorder
 #define wxPD_REMAINING_TIME     0x0040
 #define wxPD_CAN_SKIP           0x0080
 
-/*
- * wxDirDialog styles
- */
-
-#define wxDD_NEW_DIR_BUTTON     0x0080
-#define wxDD_CHANGE_DIR         0x0100
-
 
 /*
  * extended dialog specifiers. these values are stored in a different
diff --git a/include/wx/dirdlg.h b/include/wx/dirdlg.h
index e8c7e44100..aec60e8749 100644
--- a/include/wx/dirdlg.h
+++ b/include/wx/dirdlg.h
@@ -24,13 +24,13 @@ extern WXDLLEXPORT_DATA(const wxChar) wxDirDialogNameStr[];
 extern WXDLLEXPORT_DATA(const wxChar) wxDirDialogDefaultFolderStr[];
 extern WXDLLEXPORT_DATA(const wxChar) wxDirSelectorPromptStr[];
 
+#define wxDD_DIR_MUST_EXIST     0x0080
+#define wxDD_CHANGE_DIR         0x0100
 
 #ifdef __WXWINCE__
-    #define wxDD_DEFAULT_STYLE \
-        (wxDEFAULT_DIALOG_STYLE | wxDD_NEW_DIR_BUTTON)
+    #define wxDD_DEFAULT_STYLE      wxDEFAULT_DIALOG_STYLE
 #else
-    #define wxDD_DEFAULT_STYLE \
-        (wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER | wxDD_NEW_DIR_BUTTON)
+    #define wxDD_DEFAULT_STYLE      (wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER)
 #endif
 
 //-------------------------------------------------------------------------
@@ -85,59 +85,34 @@ protected:
 
 // Universal and non-port related switches with need for generic implementation
 #if defined(__WXUNIVERSAL__)
-
     #include "wx/generic/dirdlgg.h"
     #define wxDirDialog wxGenericDirDialog
-
 #elif defined(__WXMSW__) && (defined(__SALFORDC__)    || \
                              !wxUSE_OLE               || \
                              (defined (__GNUWIN32__) && !wxUSE_NORLANDER_HEADERS))
-
     #include "wx/generic/dirdlgg.h"
     #define wxDirDialog wxGenericDirDialog
-
-// MS PocketPC or MS Smartphone
 #elif defined(__WXMSW__) && defined(__WXWINCE__) && !defined(__HANDHELDPC__)
-
-    #include "wx/generic/dirdlgg.h"
+    #include "wx/generic/dirdlgg.h"     // MS PocketPC or MS Smartphone
     #define wxDirDialog wxGenericDirDialog
-
-// Native MSW
 #elif defined(__WXMSW__)
-
-    #include "wx/msw/dirdlg.h"
-
-// Native GTK for gtk2.x and generic for gtk1.x
+    #include "wx/msw/dirdlg.h"  // Native MSW
+#elif defined(__WXGTK24__)
+    #include "wx/gtk/dirdlg.h"  // Native GTK for gtk2.4
 #elif defined(__WXGTK__)
-
-#if defined( __WXGTK20__ )
-    #include "wx/gtk/dirdlg.h"
-    #define wxDirDialog wxDirDialogGTK
-#else
     #include "wx/generic/dirdlgg.h"
     #define wxDirDialog wxGenericDirDialog
-#endif
-
-// Native Mac
 #elif defined(__WXMAC__)
-
-    #include "wx/mac/dirdlg.h"
-
-// Native Cocoa
+    #include "wx/mac/dirdlg.h"      // Native Mac
 #elif defined(__WXCOCOA__)
-
-    #include "wx/cocoa/dirdlg.h"
-
-// Other ports use generic implementation
+    #include "wx/cocoa/dirdlg.h"    // Native Cocoa
 #elif defined(__WXMOTIF__) || \
       defined(__WXX11__)   || \
       defined(__WXMGL__)   || \
       defined(__WXCOCOA__) || \
       defined(__WXPM__)
-
-    #include "wx/generic/dirdlgg.h"
+    #include "wx/generic/dirdlgg.h"     // Other ports use generic implementation
     #define wxDirDialog wxGenericDirDialog
-
 #endif
 
 // ----------------------------------------------------------------------------
diff --git a/include/wx/filedlg.h b/include/wx/filedlg.h
index cf82cba2cc..5353803974 100644
--- a/include/wx/filedlg.h
+++ b/include/wx/filedlg.h
@@ -23,6 +23,7 @@
 // wxFileDialog data
 //----------------------------------------------------------------------------
 
+#if WXWIN_COMPATIBILITY_2_6
 enum
 {
     wxOPEN              = 0x0001,
@@ -35,7 +36,21 @@ enum
     wxMULTIPLE          = 0x0020,
     wxCHANGE_DIR        = 0x0040
 };
+#endif
 
+enum
+{
+    wxFD_OPEN              = 0x0001,
+    wxFD_SAVE              = 0x0002,
+    wxFD_OVERWRITE_PROMPT  = 0x0004,
+    wxFD_FILE_MUST_EXIST   = 0x0010,
+    wxFD_MULTIPLE          = 0x0020,
+    wxFD_CHANGE_DIR        = 0x0040
+};
+
+#define wxFD_DEFAULT_STYLE      wxFD_OPEN
+
+extern WXDLLEXPORT_DATA(const wxChar) wxFileDialogNameStr[];
 extern WXDLLEXPORT_DATA(const wxChar) wxFileSelectorPromptStr[];
 extern WXDLLEXPORT_DATA(const wxChar) wxFileSelectorDefaultWildcardStr[];
 
@@ -53,11 +68,13 @@ public:
                      const wxString& defaultDir = wxEmptyString,
                      const wxString& defaultFile = wxEmptyString,
                      const wxString& wildCard = wxFileSelectorDefaultWildcardStr,
-                     long style = 0,
-                     const wxPoint& pos = wxDefaultPosition) : wxDialog()
+                     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);
+        Create(parent, message, defaultDir, defaultFile, wildCard, style, pos, sz, name);
     }
 
     bool Create(wxWindow *parent,
@@ -65,15 +82,16 @@ public:
                 const wxString& defaultDir = wxEmptyString,
                 const wxString& defaultFile = wxEmptyString,
                 const wxString& wildCard = wxFileSelectorDefaultWildcardStr,
-                long style = 0,
-                const wxPoint& pos = wxDefaultPosition);
+                long style = wxFD_DEFAULT_STYLE,
+                const wxPoint& pos = wxDefaultPosition,
+                const wxSize& sz = wxDefaultSize,
+                const wxString& name = wxFileDialogNameStr);
 
     virtual void SetMessage(const wxString& message) { m_message = message; }
     virtual void SetPath(const wxString& path) { m_path = path; }
     virtual void SetDirectory(const wxString& dir) { m_dir = dir; }
     virtual void SetFilename(const wxString& name) { m_fileName = name; }
     virtual void SetWildcard(const wxString& wildCard) { m_wildCard = wildCard; }
-    virtual void SetStyle(long style) { m_dialogStyle = style; }
     virtual void SetFilterIndex(int filterIndex) { m_filterIndex = filterIndex; }
 
     virtual wxString GetMessage() const { return m_message; }
@@ -83,7 +101,6 @@ public:
     virtual wxString GetFilename() const { return m_fileName; }
     virtual void GetFilenames(wxArrayString& files) const { files.Empty(); files.Add(m_fileName); }
     virtual wxString GetWildcard() const { return m_wildCard; }
-    virtual long GetStyle() const { return m_dialogStyle; }
     virtual int GetFilterIndex() const { return m_filterIndex; }
 
     // Utility functions
@@ -108,7 +125,6 @@ public:
 
 protected:
     wxString      m_message;
-    long          m_dialogStyle;
     wxString      m_dir;
     wxString      m_path;       // Full path
     wxString      m_fileName;
@@ -168,8 +184,10 @@ wxSaveFileSelector(const wxChar *what,
 #include "wx/msw/filedlg.h"
 #elif defined(__WXMOTIF__)
 #include "wx/motif/filedlg.h"
+#elif defined(__WXGTK24__)
+#include "wx/gtk/filedlg.h"     // GTK+ > 2.4 has native version
 #elif defined(__WXGTK20__)
-#include "wx/gtk/filedlg.h"
+#include "wx/generic/filedlgg.h"
 #elif defined(__WXGTK__)
 #include "wx/gtk1/filedlg.h"
 #elif defined(__WXX11__)
diff --git a/include/wx/generic/dirdlgg.h b/include/wx/generic/dirdlgg.h
index 1c48740479..6346f476ec 100644
--- a/include/wx/generic/dirdlgg.h
+++ b/include/wx/generic/dirdlgg.h
@@ -25,11 +25,9 @@ extern WXDLLEXPORT_DATA(const wxChar) wxDirSelectorPromptStr[];
 
 #ifndef wxDD_DEFAULT_STYLE
 #ifdef __WXWINCE__
-    #define wxDD_DEFAULT_STYLE \
-        (wxDEFAULT_DIALOG_STYLE | wxDD_NEW_DIR_BUTTON)
+    #define wxDD_DEFAULT_STYLE      wxDEFAULT_DIALOG_STYLE
 #else
-    #define wxDD_DEFAULT_STYLE \
-        (wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER | wxDD_NEW_DIR_BUTTON)
+    #define wxDD_DEFAULT_STYLE      (wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER)
 #endif
 #endif
 
diff --git a/include/wx/generic/filedlgg.h b/include/wx/generic/filedlgg.h
index ac2de5b9f5..e684cfb6d4 100644
--- a/include/wx/generic/filedlgg.h
+++ b/include/wx/generic/filedlgg.h
@@ -50,8 +50,10 @@ public:
                         const wxString& defaultDir = wxEmptyString,
                         const wxString& defaultFile = wxEmptyString,
                         const wxString& wildCard = wxFileSelectorDefaultWildcardStr,
-                        long style = 0,
+                        long style = wxFD_DEFAULT_STYLE,
                         const wxPoint& pos = wxDefaultPosition,
+                        const wxSize& sz = wxDefaultSize,
+                        const wxString& name = wxFileDialogNameStr,
                         bool bypassGenericImpl = false );
 
     bool Create( wxWindow *parent,
@@ -59,8 +61,10 @@ public:
                  const wxString& defaultDir = wxEmptyString,
                  const wxString& defaultFile = wxEmptyString,
                  const wxString& wildCard = wxFileSelectorDefaultWildcardStr,
-                 long style = 0,
+                 long style = wxFD_DEFAULT_STYLE,
                  const wxPoint& pos = wxDefaultPosition,
+                 const wxSize& sz = wxDefaultSize,
+                 const wxString& name = wxFileDialogNameStr,
                  bool bypassGenericImpl = false );
 
     virtual ~wxGenericFileDialog();
diff --git a/include/wx/gtk/dirdlg.h b/include/wx/gtk/dirdlg.h
index d62bcead0a..35d6085c21 100644
--- a/include/wx/gtk/dirdlg.h
+++ b/include/wx/gtk/dirdlg.h
@@ -1,6 +1,6 @@
 /////////////////////////////////////////////////////////////////////////////
 // Name:        dirdlg.h
-// Purpose:     wxDirDialogGTK
+// Purpose:     wxDirDialog
 // Author:      Francesco Montorsi
 // Id:          $Id$
 // Copyright:   (c) 2006 Francesco Montorsi
@@ -13,15 +13,15 @@
 #include "wx/generic/dirdlgg.h"
 
 //-------------------------------------------------------------------------
-// wxDirDialogGTK
+// wxDirDialog
 //-------------------------------------------------------------------------
 
-class WXDLLIMPEXP_CORE wxDirDialogGTK : public wxGenericDirDialog
+class WXDLLIMPEXP_CORE wxDirDialog : public wxGenericDirDialog
 {
 public:
-    wxDirDialogGTK() { }
+    wxDirDialog() { }
 
-    wxDirDialogGTK(wxWindow *parent,
+    wxDirDialog(wxWindow *parent,
                 const wxString& message = wxDirSelectorPromptStr,
                 const wxString& defaultPath = wxEmptyString,
                 long style = wxDD_DEFAULT_STYLE,
@@ -29,7 +29,7 @@ public:
                 const wxSize& size = wxDefaultSize,
                 const wxString& name = wxDirDialogNameStr);
 
-    virtual ~wxDirDialogGTK() {}
+    virtual ~wxDirDialog() { }
 
 
 public:     // overrides from wxGenericDirDialog
@@ -50,7 +50,7 @@ protected:
 
 
 private:
-    DECLARE_DYNAMIC_CLASS(wxDirDialogGTK)
+    DECLARE_DYNAMIC_CLASS(wxDirDialog)
     DECLARE_EVENT_TABLE()
     void OnFakeOk( wxCommandEvent &event );
 };
diff --git a/include/wx/gtk/filedlg.h b/include/wx/gtk/filedlg.h
index bd6527f0b2..ac1909fc8d 100644
--- a/include/wx/gtk/filedlg.h
+++ b/include/wx/gtk/filedlg.h
@@ -26,8 +26,10 @@ public:
                  const wxString& defaultDir = wxEmptyString,
                  const wxString& defaultFile = wxEmptyString,
                  const wxString& wildCard = wxFileSelectorDefaultWildcardStr,
-                 long style = 0,
-                 const wxPoint& pos = wxDefaultPosition);
+                 long style = wxFD_DEFAULT_STYLE,
+                 const wxPoint& pos = wxDefaultPosition,
+                 const wxSize& sz = wxDefaultSize,
+                 const wxString& name = wxFileDialogNameStr);
 
     virtual ~wxFileDialog() {}
 
diff --git a/include/wx/gtk1/filedlg.h b/include/wx/gtk1/filedlg.h
index e4859f6e08..5a2537e873 100644
--- a/include/wx/gtk1/filedlg.h
+++ b/include/wx/gtk1/filedlg.h
@@ -26,8 +26,10 @@ public:
                  const wxString& defaultDir = wxEmptyString,
                  const wxString& defaultFile = wxEmptyString,
                  const wxString& wildCard = wxFileSelectorDefaultWildcardStr,
-                 long style = 0,
-                 const wxPoint& pos = wxDefaultPosition);
+                 long style = wxFD_DEFAULT_STYLE,
+                 const wxPoint& pos = wxDefaultPosition,
+                 const wxSize& sz = wxDefaultSize,
+                 const wxString& name = wxFileDialogNameStr);
 
     virtual ~wxFileDialog();
 
diff --git a/include/wx/motif/filedlg.h b/include/wx/motif/filedlg.h
index 283bce05ec..a2d2ad228d 100644
--- a/include/wx/motif/filedlg.h
+++ b/include/wx/motif/filedlg.h
@@ -31,8 +31,10 @@ public:
                  const wxString& defaultDir = wxEmptyString,
                  const wxString& defaultFile = wxEmptyString,
                  const wxString& wildCard = wxFileSelectorDefaultWildcardStr,
-                 long style = 0,
-                 const wxPoint& pos = wxDefaultPosition);
+                 long style = wxFD_DEFAULT_STYLE,
+                 const wxPoint& pos = wxDefaultPosition,
+                 const wxSize& sz = wxDefaultSize,
+                 const wxString& name = wxFileDialogNameStr);
     
     virtual int ShowModal();
 };
diff --git a/include/wx/msw/filedlg.h b/include/wx/msw/filedlg.h
index 37601524ba..169cfb12a5 100644
--- a/include/wx/msw/filedlg.h
+++ b/include/wx/msw/filedlg.h
@@ -24,8 +24,10 @@ public:
                  const wxString& defaultDir = wxEmptyString,
                  const wxString& defaultFile = wxEmptyString,
                  const wxString& wildCard = wxFileSelectorDefaultWildcardStr,
-                 long style = 0,
-                 const wxPoint& pos = wxDefaultPosition);
+                 long style = wxFD_DEFAULT_STYLE,
+                 const wxPoint& pos = wxDefaultPosition,
+                 const wxSize& sz = wxDefaultSize,
+                 const wxString& name = wxFileDialogNameStr);
 
     virtual void SetPath(const wxString& path);
     virtual void GetPaths(wxArrayString& paths) const;
diff --git a/include/wx/os2/filedlg.h b/include/wx/os2/filedlg.h
index c19e3a1dfd..b971141d73 100644
--- a/include/wx/os2/filedlg.h
+++ b/include/wx/os2/filedlg.h
@@ -25,8 +25,10 @@ public:
                  ,const wxString& rsDefaultDir = wxEmptyString
                  ,const wxString& rsDefaultFile = wxEmptyString
                  ,const wxString& rsWildCard = wxFileSelectorDefaultWildcardStr
-                 ,long            lStyle = 0
-                 ,const wxPoint&  rPos = wxDefaultPosition
+                 ,long            lStyle = wxFD_DEFAULT_STYLE
+                 ,const wxPoint&  rPos = wxDefaultPosition,
+                  const wxSize& sz = wxDefaultSize,
+                  const wxString& name = wxFileDialogNameStr
                 );
 
     virtual void GetPaths(wxArrayString& rasPath) const;
diff --git a/include/wx/palmos/filedlg.h b/include/wx/palmos/filedlg.h
index 276c0ba77f..3baac18463 100644
--- a/include/wx/palmos/filedlg.h
+++ b/include/wx/palmos/filedlg.h
@@ -24,8 +24,10 @@ public:
                  const wxString& defaultDir = wxEmptyString,
                  const wxString& defaultFile = wxEmptyString,
                  const wxString& wildCard = wxFileSelectorDefaultWildcardStr,
-                 long style = 0,
-                 const wxPoint& pos = wxDefaultPosition);
+                 long style = wxFD_DEFAULT_STYLE,
+                 const wxPoint& pos = wxDefaultPosition,
+                 const wxSize& sz = wxDefaultSize,
+                 const wxString& name = wxFileDialogNameStr);
 
     virtual void SetPath(const wxString& path);
     virtual void GetPaths(wxArrayString& paths) const;
diff --git a/samples/combo/combo.cpp b/samples/combo/combo.cpp
index 0b734e139e..43e95ff633 100644
--- a/samples/combo/combo.cpp
+++ b/samples/combo/combo.cpp
@@ -597,7 +597,7 @@ public:
                          wxEmptyString,
                          GetValue(),
                          wxT("All files (*.*)|*.*"),
-                         wxOPEN);
+                         wxFD_OPEN);
 
         if ( dlg.ShowModal() == wxID_OK )
         {
diff --git a/samples/db/dbtest.cpp b/samples/db/dbtest.cpp
index f54a13bcf6..211f6ca7c3 100644
--- a/samples/db/dbtest.cpp
+++ b/samples/db/dbtest.cpp
@@ -1712,7 +1712,7 @@ bool CeditorDlg::Initialize()
 
 void CeditorDlg::OnSelectPict()
 {
-    wxFileDialog dlg(this, wxT("Choose an image file less than 60K"), wxEmptyString, wxEmptyString, wxT("JPEG files (*.jpg)|*.jpg|GIF files (*.gif)|*.gif|BMP files (*.bmp)|*.bmp|All Files (*.*)|*.*"), wxOPEN);
+    wxFileDialog dlg(this, wxT("Choose an image file less than 60K"), wxEmptyString, wxEmptyString, wxT("JPEG files (*.jpg)|*.jpg|GIF files (*.gif)|*.gif|BMP files (*.bmp)|*.bmp|All Files (*.*)|*.*"), wxFD_OPEN);
 
     if (dlg.ShowModal() == wxID_OK)
     {
diff --git a/samples/dialogs/dialogs.cpp b/samples/dialogs/dialogs.cpp
index 13a84b1546..82ffc35d8b 100644
--- a/samples/dialogs/dialogs.cpp
+++ b/samples/dialogs/dialogs.cpp
@@ -729,7 +729,7 @@ void MyFrame::FileOpen2(wxCommandEvent& WXUNUSED(event) )
                                         wxFileSelectorDefaultWildcardStr,
                                         wxFileSelectorDefaultWildcardStr
                                     ),
-                                    wxCHANGE_DIR,
+                                    wxFD_OPEN|wxFD_CHANGE_DIR,
                                     this
                                    );
 
@@ -758,7 +758,7 @@ void MyFrame::FilesOpen(wxCommandEvent& WXUNUSED(event) )
 #endif
     wxFileDialog dialog(this, _T("Testing open multiple file dialog"),
                         wxEmptyString, wxEmptyString, wildcards,
-                        wxMULTIPLE);
+                        wxFD_OPEN|wxFD_MULTIPLE);
 
     if (dialog.ShowModal() == wxID_OK)
     {
@@ -791,7 +791,7 @@ void MyFrame::FileSave(wxCommandEvent& WXUNUSED(event) )
                         wxEmptyString,
                         _T("myletter.doc"),
                         _T("Text files (*.txt)|*.txt|Document files (*.doc)|*.doc"),
-                        wxSAVE|wxOVERWRITE_PROMPT);
+                        wxFD_SAVE|wxFD_OVERWRITE_PROMPT);
 
     dialog.SetFilterIndex(1);
 
@@ -905,12 +905,12 @@ void MyFrame::DoDirChoose(int style)
 
 void MyFrame::DirChoose(wxCommandEvent& WXUNUSED(event) )
 {
-    DoDirChoose(wxDD_DEFAULT_STYLE & ~wxDD_NEW_DIR_BUTTON);
+    DoDirChoose(wxDD_DEFAULT_STYLE | wxDD_DIR_MUST_EXIST);
 }
 
 void MyFrame::DirChooseNew(wxCommandEvent& WXUNUSED(event) )
 {
-    DoDirChoose(wxDD_DEFAULT_STYLE | wxDD_NEW_DIR_BUTTON);
+    DoDirChoose(wxDD_DEFAULT_STYLE & ~wxDD_DIR_MUST_EXIST);
 }
 #endif // wxUSE_DIRDLG
 
diff --git a/samples/image/image.cpp b/samples/image/image.cpp
index edb79dd9da..85358943f9 100644
--- a/samples/image/image.cpp
+++ b/samples/image/image.cpp
@@ -170,7 +170,7 @@ public:
                                                 wxT("PCX files (*.pcx)|*.pcx|")
                                                 wxT("ICO files (*.ico)|*.ico|")
                                                 wxT("CUR files (*.cur)|*.cur"),
-                                                wxSAVE,
+                                                wxFD_SAVE,
                                                 this);
 
         if ( savefilename.empty() )
diff --git a/samples/mobile/wxedit/wxedit.cpp b/samples/mobile/wxedit/wxedit.cpp
index 738df05ac4..73a259c9ed 100644
--- a/samples/mobile/wxedit/wxedit.cpp
+++ b/samples/mobile/wxedit/wxedit.cpp
@@ -220,7 +220,7 @@ void MyFrame::OnOpen( wxCommandEvent& WXUNUSED(event) )
 
     wxFileDialog dialog( this, _T("Open text"), wxEmptyString, wxEmptyString,
         _T("Text file (*.txt)|*.txt|Any file (*)|*"),
-        wxOPEN|wxFILE_MUST_EXIST );
+        wxFD_OPEN|wxFD_FILE_MUST_EXIST );
     if (dialog.ShowModal() == wxID_OK)
     {
         m_text->Clear();
@@ -275,7 +275,7 @@ void MyFrame::OnSaveAs( wxCommandEvent& WXUNUSED(event) )
 #if wxUSE_FILEDLG
     wxFileDialog dialog( this, _T("Open text"), wxEmptyString, wxEmptyString,
         _T("Text file (*.txt)|*.txt|Any file (*)|*"),
-        wxSAVE|wxOVERWRITE_PROMPT );
+        wxFD_SAVE|wxFD_OVERWRITE_PROMPT );
     if (dialog.ShowModal() == wxID_OK)
     {
         m_filename = dialog.GetPath();
diff --git a/samples/opengl/penguin/penguin.cpp b/samples/opengl/penguin/penguin.cpp
index f753b518bc..c16c4a4e3b 100644
--- a/samples/opengl/penguin/penguin.cpp
+++ b/samples/opengl/penguin/penguin.cpp
@@ -108,7 +108,7 @@ void MyFrame::OnMenuFileOpen( wxCommandEvent& WXUNUSED(event) )
 #else
         wxT("DXF Drawing (*.dxf)|*.dxf)|All files (*.*)|*.*"),
 #endif
-        wxOPEN);
+        wxFD_OPEN);
     if (!filename.IsEmpty())
     {
         m_canvas->LoadDXF(filename);
diff --git a/samples/richtext/richtext.cpp b/samples/richtext/richtext.cpp
index 6d52c0216c..12af81541b 100644
--- a/samples/richtext/richtext.cpp
+++ b/samples/richtext/richtext.cpp
@@ -721,7 +721,7 @@ void MyFrame::OnOpen(wxCommandEvent& WXUNUSED(event))
         path,
         filename,
         filter,
-        wxOPEN);
+        wxFD_OPEN);
 
     if (dialog.ShowModal() == wxID_OK)
     {
@@ -759,7 +759,7 @@ void MyFrame::OnSaveAs(wxCommandEvent& WXUNUSED(event))
         path,
         filename,
         filter,
-        wxSAVE);
+        wxFD_SAVE);
 
     if (dialog.ShowModal() == wxID_OK)
     {
diff --git a/samples/sound/sound.cpp b/samples/sound/sound.cpp
index 22be97508f..a517d1a405 100644
--- a/samples/sound/sound.cpp
+++ b/samples/sound/sound.cpp
@@ -984,7 +984,7 @@ void MyFrame::OnSelectFile(wxCommandEvent& WXUNUSED(event))
 #if wxUSE_FILEDLG
     wxFileDialog dlg(this, _T("Choose a sound file"),
                      wxEmptyString, wxEmptyString,
-                     _T("WAV files (*.wav)|*.wav"), wxOPEN|wxCHANGE_DIR);
+                     _T("WAV files (*.wav)|*.wav"), wxFD_OPEN|wxFD_CHANGE_DIR);
     if ( dlg.ShowModal() == wxID_OK )
     {
         m_soundFile = dlg.GetPath();
diff --git a/samples/stc/edit.cpp b/samples/stc/edit.cpp
index a921882b5d..24be6831a8 100644
--- a/samples/stc/edit.cpp
+++ b/samples/stc/edit.cpp
@@ -508,7 +508,7 @@ bool Edit::LoadFile ()
     // get filname
     if (!m_filename) {
         wxFileDialog dlg (this, _T("Open file"), wxEmptyString, wxEmptyString,
-                          _T("Any file (*)|*"), wxOPEN | wxFILE_MUST_EXIST | wxCHANGE_DIR);
+                          _T("Any file (*)|*"), wxFD_OPEN | wxFD_FILE_MUST_EXIST | wxFD_CHANGE_DIR);
         if (dlg.ShowModal() != wxID_OK) return false;
         m_filename = dlg.GetPath();
     }
@@ -557,7 +557,7 @@ bool Edit::SaveFile ()
     // get filname
     if (!m_filename) {
         wxFileDialog dlg (this, _T("Save file"), wxEmptyString, wxEmptyString, _T("Any file (*)|*"),
-                          wxSAVE | wxOVERWRITE_PROMPT);
+                          wxFD_SAVE | wxFD_OVERWRITE_PROMPT);
         if (dlg.ShowModal() != wxID_OK) return false;
         m_filename = dlg.GetPath();
     }
diff --git a/samples/stc/stctest.cpp b/samples/stc/stctest.cpp
index 7eb8491fbe..fb3d1e02c8 100644
--- a/samples/stc/stctest.cpp
+++ b/samples/stc/stctest.cpp
@@ -352,7 +352,7 @@ void AppFrame::OnFileOpen (wxCommandEvent &WXUNUSED(event)) {
 #if wxUSE_FILEDLG
     wxString fname;
     wxFileDialog dlg (this, _T("Open file"), wxEmptyString, wxEmptyString, _T("Any file (*)|*"),
-                      wxOPEN | wxFILE_MUST_EXIST | wxCHANGE_DIR);
+                      wxFD_OPEN | wxFD_FILE_MUST_EXIST | wxFD_CHANGE_DIR);
     if (dlg.ShowModal() != wxID_OK) return;
     fname = dlg.GetPath ();
     FileOpen (fname);
@@ -373,7 +373,7 @@ void AppFrame::OnFileSaveAs (wxCommandEvent &WXUNUSED(event)) {
     if (!m_edit) return;
 #if wxUSE_FILEDLG
     wxString filename = wxEmptyString;
-    wxFileDialog dlg (this, _T("Save file"), wxEmptyString, wxEmptyString, _T("Any file (*)|*"), wxSAVE|wxOVERWRITE_PROMPT);
+    wxFileDialog dlg (this, _T("Save file"), wxEmptyString, wxEmptyString, _T("Any file (*)|*"), wxFD_SAVE|wxFD_OVERWRITE_PROMPT);
     if (dlg.ShowModal() != wxID_OK) return;
     filename = dlg.GetPath();
     m_edit->SaveFile (filename);
diff --git a/samples/svg/svgtest.cpp b/samples/svg/svgtest.cpp
index 41aab0358b..a353b440ce 100644
--- a/samples/svg/svgtest.cpp
+++ b/samples/svg/svgtest.cpp
@@ -350,7 +350,7 @@ void MyFrame::FileSavePicture (wxCommandEvent & WXUNUSED(event) )
 
     wxFileDialog dialog(this, wxT("Save Picture as"), wxEmptyString, pChild->GetTitle(),
         wxT("SVG vector picture files (*.svg)|*.svg"),
-        wxSAVE|wxOVERWRITE_PROMPT);
+        wxFD_SAVE|wxFD_OVERWRITE_PROMPT);
 
     if (dialog.ShowModal() == wxID_OK)
     {
diff --git a/src/common/datacmn.cpp b/src/common/datacmn.cpp
index 44e529bc76..4b02aa834e 100644
--- a/src/common/datacmn.cpp
+++ b/src/common/datacmn.cpp
@@ -76,6 +76,7 @@ extern WXDLLEXPORT_DATA(const wxChar) wxFileSelectorDefaultWildcardStr[] =
 extern WXDLLEXPORT_DATA(const wxChar) wxDirDialogNameStr[] = wxT("wxDirCtrl");
 extern WXDLLEXPORT_DATA(const wxChar) wxDirDialogDefaultFolderStr[] = wxT("/");
 
+extern WXDLLEXPORT_DATA(const wxChar) wxFileDialogNameStr[] = wxT("filedlg");
 #if defined(__WXMSW__) || defined(__OS2__)
 WXDLLEXPORT_DATA(const wxChar *) wxUserResourceStr = wxT("TEXT");
 #endif
diff --git a/src/common/docview.cpp b/src/common/docview.cpp
index 96b44152ca..e97ea52f18 100644
--- a/src/common/docview.cpp
+++ b/src/common/docview.cpp
@@ -305,7 +305,7 @@ bool wxDocument::SaveAs()
             wxFileNameFromPath(GetFilename()),
             docTemplate->GetDefaultExtension(),
             filter,
-            wxSAVE | wxOVERWRITE_PROMPT,
+            wxFD_SAVE | wxFD_OVERWRITE_PROMPT,
             GetDocumentWindow());
 
     if (tmp.empty())
diff --git a/src/common/dseldlg.cpp b/src/common/dseldlg.cpp
index 4f4144bd0a..40b10ce73b 100644
--- a/src/common/dseldlg.cpp
+++ b/src/common/dseldlg.cpp
@@ -35,8 +35,6 @@
 // implementation
 // ============================================================================
 
-const wxChar wxDirSelectorPromptStr[] = wxT("Select a directory");
-
 wxString wxDirSelector(const wxString& message,
                        const wxString& defaultPath,
                        long style,
diff --git a/src/common/fldlgcmn.cpp b/src/common/fldlgcmn.cpp
index 89de49cea4..76e8b882dc 100644
--- a/src/common/fldlgcmn.cpp
+++ b/src/common/fldlgcmn.cpp
@@ -35,7 +35,7 @@ IMPLEMENT_DYNAMIC_CLASS(wxFileDialogBase, wxDialog)
 void wxFileDialogBase::Init()
 {
     m_filterIndex =
-    m_dialogStyle = 0;
+    m_windowStyle = 0;
 }
 
 bool wxFileDialogBase::Create(wxWindow *parent,
@@ -44,7 +44,9 @@ bool wxFileDialogBase::Create(wxWindow *parent,
                               const wxString& defaultFile,
                               const wxString& wildCard,
                               long style,
-                              const wxPoint& WXUNUSED(pos))
+                              const wxPoint& WXUNUSED(pos),
+                              const wxSize& WXUNUSED(sz),
+                              const wxString& WXUNUSED(name))
 {
     m_message = message;
     m_dir = defaultDir;
@@ -52,9 +54,20 @@ bool wxFileDialogBase::Create(wxWindow *parent,
     m_wildCard = wildCard;
 
     m_parent = parent;
-    m_dialogStyle = style;
+    m_windowStyle = style;
     m_filterIndex = 0;
 
+#ifdef __WXDEBUG__
+    // check the given styles
+    wxASSERT_MSG(HasFlag(wxFD_OPEN) || HasFlag(wxFD_SAVE), wxT("You must specify one of wxFD_OPEN and wxFD_SAVE styles"));
+    if (HasFlag(wxFD_SAVE))
+        wxASSERT_MSG( !HasFlag(wxFD_OPEN) && !HasFlag(wxFD_MULTIPLE) && !HasFlag(wxFD_FILE_MUST_EXIST),
+                      wxT("wxFileDialog - wxFD_OPEN, wxFD_MULTIPLE or wxFD_FILE_MUST_EXIST used on a save dialog" ) );
+    if (HasFlag(wxFD_OPEN))
+        wxASSERT_MSG( !HasFlag(wxFD_SAVE) && !HasFlag(wxFD_OVERWRITE_PROMPT),
+                      wxT("wxFileDialog - wxFD_SAVE or wxFD_OVERWRITE_PROMPT used on a open dialog" ) );
+#endif
+
     if ( wildCard.empty() || wildCard == wxFileSelectorDefaultWildcardStr )
     {
         m_wildCard = wxString::Format(_("All files (%s)|%s"),
@@ -270,7 +283,7 @@ static wxString wxDefaultFileSelector(bool load,
     }
 
     return wxFileSelector(prompt, NULL, default_name, ext, wild,
-                          load ? wxOPEN : wxSAVE, parent);
+                          load ? wxFD_OPEN : wxFD_SAVE, parent);
 }
 
 //----------------------------------------------------------------------------
diff --git a/src/generic/dirdlgg.cpp b/src/generic/dirdlgg.cpp
index aaa3712293..5fb5435056 100644
--- a/src/generic/dirdlgg.cpp
+++ b/src/generic/dirdlgg.cpp
@@ -109,7 +109,7 @@ bool wxGenericDirDialog::Create(wxWindow* parent,
     wxMenu *dirMenu = new wxMenu;
     dirMenu->Append(ID_GO_HOME, _("Home"));
 
-    if (style & wxDD_NEW_DIR_BUTTON)
+    if (!HasFlag(wxDD_DIR_MUST_EXIST))
     {
         dirMenu->Append(ID_NEW, _("New directory"));
     }
@@ -133,7 +133,7 @@ bool wxGenericDirDialog::Create(wxWindow* parent,
 
     // I'm not convinced we need a New button, and we tend to get annoying
     // accidental-editing with label editing enabled.
-    if (style & wxDD_NEW_DIR_BUTTON)
+    if (!HasFlag(wxDD_DIR_MUST_EXIST))
     {
         wxBitmapButton* newButton =
             new wxBitmapButton(this, ID_NEW,
@@ -158,7 +158,7 @@ bool wxGenericDirDialog::Create(wxWindow* parent,
     long dirStyle = wxDIRCTRL_DIR_ONLY | wxDEFAULT_CONTROL_BORDER;
 
 #ifdef __WXMSW__
-    if (style & wxDD_NEW_DIR_BUTTON)
+    if (!HasFlag(wxDD_DIR_MUST_EXIST))
     {
         // Only under Windows do we need the wxTR_EDIT_LABEL tree control style
         // before we can call EditLabel (required for "New directory")
diff --git a/src/generic/filedlgg.cpp b/src/generic/filedlgg.cpp
index 13cf558154..e92a4ca990 100644
--- a/src/generic/filedlgg.cpp
+++ b/src/generic/filedlgg.cpp
@@ -46,7 +46,7 @@
 #include "wx/artprov.h"
 #include "wx/filefn.h"
 #include "wx/file.h"        // for wxS_IXXX constants only
-#include "wx/filedlg.h"     // wxOPEN, wxSAVE...
+#include "wx/filedlg.h"     // wxFD_OPEN, wxFD_SAVE...
 #include "wx/generic/filedlgg.h"
 #include "wx/generic/dirctrlg.h" // for wxFileIconsTable
 
@@ -974,10 +974,12 @@ wxGenericFileDialog::wxGenericFileDialog(wxWindow *parent,
                            const wxString& wildCard,
                            long  style,
                            const wxPoint& pos,
+                           const wxSize& sz,
+                           const wxString& name,
                            bool  bypassGenericImpl ) : wxFileDialogBase()
 {
     Init();
-    Create( parent, message, defaultDir, defaultFile, wildCard, style, pos, bypassGenericImpl );
+    Create( parent, message, defaultDir, defaultFile, wildCard, style, pos, sz, name, bypassGenericImpl );
 }
 
 bool wxGenericFileDialog::Create( wxWindow *parent,
@@ -987,12 +989,14 @@ bool wxGenericFileDialog::Create( wxWindow *parent,
                                   const wxString& wildCard,
                                   long  style,
                                   const wxPoint& pos,
+                                  const wxSize& sz,
+                                  const wxString& name,
                                   bool  bypassGenericImpl )
 {
     m_bypassGenericImpl = bypassGenericImpl;
 
     if (!wxFileDialogBase::Create(parent, message, defaultDir, defaultFile,
-                                  wildCard, style, pos))
+                                  wildCard, style, pos, sz, name))
     {
         return false;
     }
@@ -1000,8 +1004,8 @@ bool wxGenericFileDialog::Create( wxWindow *parent,
     if (m_bypassGenericImpl)
         return true;
 
-    if (!wxDialog::Create( parent, wxID_ANY, message, pos, wxDefaultSize,
-                           wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER
+    if (!wxDialog::Create( parent, wxID_ANY, message, pos, sz,
+                           wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER, name
                            ))
     {
         return false;
@@ -1017,11 +1021,6 @@ bool wxGenericFileDialog::Create( wxWindow *parent,
                               &ms_lastShowHidden);
     }
 
-    if (m_dialogStyle == 0)
-        m_dialogStyle = wxOPEN;
-    if ((m_dialogStyle & wxMULTIPLE ) && !(m_dialogStyle & wxOPEN))
-        m_dialogStyle |= wxOPEN;
-
     if ((m_dir.empty()) || (m_dir == wxT(".")))
     {
         m_dir = wxGetCwd();
@@ -1102,7 +1101,7 @@ bool wxGenericFileDialog::Create( wxWindow *parent,
     mainsizer->Add( staticsizer, 0, wxEXPAND | wxLEFT|wxRIGHT|wxBOTTOM, 10 );
 
     long style2 = ms_lastViewStyle;
-    if ( !(m_dialogStyle & wxMULTIPLE) )
+    if ( !HasFlag(wxFD_MULTIPLE) )
         style2 |= wxLC_SINGLE_SEL;
 
 #ifdef __WXWINCE__
@@ -1404,7 +1403,7 @@ void wxGenericFileDialog::HandleAction( const wxString &fn )
     }
 #endif // __UNIX__
 
-    if (!(m_dialogStyle & wxSAVE))
+    if (!HasFlag(wxFD_SAVE))
     {
         if ((filename.Find(wxT('*')) != wxNOT_FOUND) ||
             (filename.Find(wxT('?')) != wxNOT_FOUND))
@@ -1449,14 +1448,13 @@ void wxGenericFileDialog::HandleAction( const wxString &fn )
     // VZ: the logic of testing for !wxFileExists() only for the open file
     //     dialog is not entirely clear to me, why don't we allow saving to a
     //     file without extension as well?
-    if ( !(m_dialogStyle & wxOPEN) || !wxFileExists(filename) )
+    if ( !HasFlag(wxFD_OPEN) || !wxFileExists(filename) )
     {
         filename = AppendExtension(filename, m_filterExtension);
     }
 
     // check that the file [doesn't] exist if necessary
-    if ( (m_dialogStyle & wxSAVE) &&
-            (m_dialogStyle & wxOVERWRITE_PROMPT) &&
+    if ( HasFlag(wxFD_SAVE) && HasFlag(wxFD_OVERWRITE_PROMPT) &&
                 wxFileExists( filename ) )
     {
         wxString msg;
@@ -1465,8 +1463,7 @@ void wxGenericFileDialog::HandleAction( const wxString &fn )
         if (wxMessageBox(msg, _("Confirm"), wxYES_NO) != wxYES)
             return;
     }
-    else if ( (m_dialogStyle & wxOPEN) &&
-                (m_dialogStyle & wxFILE_MUST_EXIST) &&
+    else if ( HasFlag(wxFD_OPEN) && HasFlag(wxFD_FILE_MUST_EXIST) &&
                     !wxFileExists(filename) )
     {
         wxMessageBox(_("Please choose an existing file."), _("Error"),
@@ -1476,7 +1473,7 @@ void wxGenericFileDialog::HandleAction( const wxString &fn )
     SetPath( filename );
 
     // change to the directory where the user went if asked
-    if ( m_dialogStyle & wxCHANGE_DIR )
+    if ( HasFlag(wxFD_CHANGE_DIR) )
     {
         wxString cwd;
         wxSplitPath(filename, &cwd, NULL, NULL);
diff --git a/src/generic/prntdlgg.cpp b/src/generic/prntdlgg.cpp
index 85303fefbd..9d5bb3541c 100644
--- a/src/generic/prntdlgg.cpp
+++ b/src/generic/prntdlgg.cpp
@@ -295,7 +295,7 @@ void wxGenericPrintDialog::OnOK(wxCommandEvent& WXUNUSED(event))
         wxFileName fname( m_printDialogData.GetPrintData().GetFilename() );
 
         wxFileDialog dialog( this, _("PostScript file"),
-            fname.GetPath(), fname.GetFullName(), wxT("*.ps"), wxSAVE | wxOVERWRITE_PROMPT );
+            fname.GetPath(), fname.GetFullName(), wxT("*.ps"), wxFD_SAVE | wxFD_OVERWRITE_PROMPT );
         if (dialog.ShowModal() != wxID_OK) return;
 
         m_printDialogData.GetPrintData().SetFilename( dialog.GetPath() );
diff --git a/src/gtk/dirdlg.cpp b/src/gtk/dirdlg.cpp
index a4e8100ac7..cd9beb423a 100644
--- a/src/gtk/dirdlg.cpp
+++ b/src/gtk/dirdlg.cpp
@@ -1,6 +1,6 @@
 /////////////////////////////////////////////////////////////////////////////
 // Name:        src/gtk/dirdlg.cpp
-// Purpose:     native implementation of wxDirDialogGTK
+// Purpose:     native implementation of wxDirDialog
 // Author:      Robert Roebling, Zbigniew Zagorski, Mart Raudsepp, Francesco Montorsi
 // Id:          $Id$
 // Copyright:   (c) 1998 Robert Roebling, 2004 Zbigniew Zagorski, 2005 Mart Raudsepp
@@ -13,14 +13,14 @@
 
 
 /*
-  NOTE: the GtkFileChooser interface can be used both for wxFileDialog and for wxDirDialogGTK.
+  NOTE: the GtkFileChooser interface can be used both for wxFileDialog and for wxDirDialog.
         Thus following code is very similar (even if not identic) to src/gtk/filedlg.cpp
         If you find a problem in this code, remember to check also that file !
 */
 
 
 
-#if wxUSE_DIRDLG
+#if wxUSE_DIRDLG && defined( __WXGTK24__ )
 
 #include "wx/dirdlg.h"
 
@@ -29,8 +29,6 @@
     #include "wx/filedlg.h"
 #endif
 
-#ifdef __WXGTK24__      // only for GTK+ > 2.4 there is GtkFileChooserDialog
-
 #include <gtk/gtk.h>
 #include "wx/gtk/private.h"
 
@@ -48,7 +46,7 @@ extern void wxapp_install_idle_handler();
 //-----------------------------------------------------------------------------
 
 extern "C" {
-static void gtk_dirdialog_ok_callback(GtkWidget *widget, wxDirDialogGTK *dialog)
+static void gtk_dirdialog_ok_callback(GtkWidget *widget, wxDirDialog *dialog)
 {
     gchar* filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(widget));
 
@@ -70,7 +68,7 @@ static void gtk_dirdialog_ok_callback(GtkWidget *widget, wxDirDialogGTK *dialog)
 
 extern "C" {
 static void gtk_dirdialog_cancel_callback(GtkWidget *WXUNUSED(w),
-                                           wxDirDialogGTK *dialog)
+                                           wxDirDialog *dialog)
 {
     wxCommandEvent event(wxEVT_COMMAND_BUTTON_CLICKED, wxID_CANCEL);
     event.SetEventObject(dialog);
@@ -81,7 +79,7 @@ static void gtk_dirdialog_cancel_callback(GtkWidget *WXUNUSED(w),
 extern "C" {
 static void gtk_dirdialog_response_callback(GtkWidget *w,
                                              gint response,
-                                             wxDirDialogGTK *dialog)
+                                             wxDirDialog *dialog)
 {
     wxapp_install_idle_handler();
 
@@ -92,24 +90,21 @@ static void gtk_dirdialog_response_callback(GtkWidget *w,
 }
 }
 
-#endif // __WXGTK24__
-
 //-----------------------------------------------------------------------------
-// wxDirDialogGTK
+// wxDirDialog
 //-----------------------------------------------------------------------------
 
-IMPLEMENT_DYNAMIC_CLASS(wxDirDialogGTK,wxGenericDirDialog)
+IMPLEMENT_DYNAMIC_CLASS(wxDirDialog,wxGenericDirDialog)
 
-BEGIN_EVENT_TABLE(wxDirDialogGTK,wxGenericDirDialog)
-    EVT_BUTTON(wxID_OK, wxDirDialogGTK::OnFakeOk)
+BEGIN_EVENT_TABLE(wxDirDialog,wxGenericDirDialog)
+    EVT_BUTTON(wxID_OK, wxDirDialog::OnFakeOk)
 END_EVENT_TABLE()
 
-wxDirDialogGTK::wxDirDialogGTK(wxWindow* parent, const wxString& title,
+wxDirDialog::wxDirDialog(wxWindow* parent, const wxString& title,
                         const wxString& defaultPath, long style,
                         const wxPoint& pos, const wxSize& sz,
                         const wxString& name)
 {
-#ifdef __WXGTK24__
     if (!gtk_check_version(2,4,0))
     {
         m_message = title;
@@ -119,7 +114,7 @@ wxDirDialogGTK::wxDirDialogGTK(wxWindow* parent, const wxString& title,
             !CreateBase(parent, wxID_ANY, pos, wxDefaultSize, style,
                     wxDefaultValidator, wxT("dirdialog")))
         {
-            wxFAIL_MSG( wxT("wxDirDialogGTK creation failed") );
+            wxFAIL_MSG( wxT("wxDirDialog creation failed") );
             return;
         }
 
@@ -128,8 +123,9 @@ wxDirDialogGTK::wxDirDialogGTK(wxWindow* parent, const wxString& title,
         if (parent)
             gtk_parent = GTK_WINDOW( gtk_widget_get_toplevel(parent->m_widget) );
 
+        if (HasFlag(wxDD_DIR_MUST_EXIST))
         gtk_action = GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER;
-        if (style & wxDD_NEW_DIR_BUTTON)
+        else
             gtk_action = GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER;
 
         m_widget = gtk_file_chooser_dialog_new(
@@ -169,37 +165,31 @@ wxDirDialogGTK::wxDirDialogGTK(wxWindow* parent, const wxString& title,
         wxGenericDirDialog::Create(parent, title, defaultPath, style, pos, sz, name);
 }
 
-void wxDirDialogGTK::OnFakeOk( wxCommandEvent &event )
+void wxDirDialog::OnFakeOk( wxCommandEvent &event )
 {
-#ifdef __WXGTK24__
     if (!gtk_check_version(2,4,0))
         wxDialog::OnOK( event );
     else
-#endif
         wxGenericDirDialog::OnOK( event );
 }
 
-int wxDirDialogGTK::ShowModal()
+int wxDirDialog::ShowModal()
 {
-#ifdef __WXGTK24__
     if (!gtk_check_version(2,4,0))
         return wxDialog::ShowModal();
     else
-#endif
         return wxGenericDirDialog::ShowModal();
 }
 
-bool wxDirDialogGTK::Show( bool show )
+bool wxDirDialog::Show( bool show )
 {
-#ifdef __WXGTK24__
     if (!gtk_check_version(2,4,0))
         return wxDialog::Show( show );
     else
-#endif
         return wxGenericDirDialog::Show( show );
 }
 
-void wxDirDialogGTK::DoSetSize(int x, int y, int width, int height, int sizeFlags )
+void wxDirDialog::DoSetSize(int x, int y, int width, int height, int sizeFlags)
 {
     if (!m_wxwindow)
         return;
@@ -207,9 +197,8 @@ void wxDirDialogGTK::DoSetSize(int x, int y, int width, int height, int sizeFlag
         wxGenericDirDialog::DoSetSize( x, y, width, height, sizeFlags );
 }
 
-void wxDirDialogGTK::SetPath(const wxString& dir)
+void wxDirDialog::SetPath(const wxString& dir)
 {
-#ifdef __WXGTK24__
     if (!gtk_check_version(2,4,0))
     {
         if (wxDirExists(dir))
@@ -218,17 +207,14 @@ void wxDirDialogGTK::SetPath(const wxString& dir)
         }
     }
     else
-#endif
         wxGenericDirDialog::SetPath( dir );
 }
 
-wxString wxDirDialogGTK::GetPath() const
+wxString wxDirDialog::GetPath() const
 {
-#ifdef __WXGTK24__
     if (!gtk_check_version(2,4,0))
         return wxConvFileName->cMB2WX( gtk_file_chooser_get_filename( GTK_FILE_CHOOSER(m_widget) ) );
     else
-#endif
         return wxGenericDirDialog::GetPath();
 }
 
diff --git a/src/gtk/filedlg.cpp b/src/gtk/filedlg.cpp
index 75e879ed1c..39308de993 100644
--- a/src/gtk/filedlg.cpp
+++ b/src/gtk/filedlg.cpp
@@ -10,7 +10,7 @@
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
-#if wxUSE_FILEDLG
+#if wxUSE_FILEDLG && defined(__WXGTK24__)
 
 #include "wx/filedlg.h"
 
@@ -19,8 +19,6 @@
     #include "wx/msgdlg.h"
 #endif
 
-#ifdef __WXGTK24__
-
 #include <gtk/gtk.h>
 #include "wx/gtk/private.h"
 
@@ -43,14 +41,14 @@ extern void wxapp_install_idle_handler();
 extern "C" {
 static void gtk_filedialog_ok_callback(GtkWidget *widget, wxFileDialog *dialog)
 {
-    int style = dialog->GetStyle();
+    int style = dialog->GetWindowStyle();
     gchar* filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(widget));
 
     // gtk version numbers must be identical with the one in ctor (that calls set_do_overwrite_confirmation)
 #if GTK_CHECK_VERSION(2,7,3)
     if(gtk_check_version(2,7,3) != NULL)
 #endif
-    if ((style & wxSAVE) && (style & wxOVERWRITE_PROMPT))
+    if ((style & wxFD_SAVE) && (style & wxFD_OVERWRITE_PROMPT))
     {
         if ( g_file_test(filename, G_FILE_TEST_EXISTS) )
         {
@@ -68,7 +66,7 @@ static void gtk_filedialog_ok_callback(GtkWidget *widget, wxFileDialog *dialog)
     }
 
     // change to the directory where the user went if asked
-    if (style & wxCHANGE_DIR)
+    if (style & wxFD_CHANGE_DIR)
     {
         // Use chdir to not care about filename encodings
         gchar* folder = g_path_get_dirname(filename);
@@ -111,7 +109,6 @@ static void gtk_filedialog_response_callback(GtkWidget *w,
 }
 }
 
-#endif // __WXGTK24__
 
 //-----------------------------------------------------------------------------
 // wxFileDialog
@@ -127,14 +124,14 @@ 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& pos,
+                           const wxSize& sz,
+                           const wxString& name)
     : wxGenericFileDialog(parent, message, defaultDir, defaultFileName,
-                       wildCard, style, pos, true )
+                          wildCard, style, pos, sz, name, true )
 {
-#ifdef __WXGTK24__
     if (!gtk_check_version(2,4,0))
     {
-        wxASSERT_MSG( !( (style & wxSAVE) && (style & wxMULTIPLE) ), wxT("wxFileDialog - wxMULTIPLE used on a save dialog" ) );
         m_needParent = false;
 
         if (!PreCreation(parent, pos, wxDefaultSize) ||
@@ -151,7 +148,7 @@ wxFileDialog::wxFileDialog(wxWindow *parent, const wxString& message,
             gtk_parent = GTK_WINDOW( gtk_widget_get_toplevel(parent->m_widget) );
 
         const gchar* ok_btn_stock;
-        if ( style & wxSAVE )
+        if ( style & wxFD_SAVE )
         {
             gtk_action = GTK_FILE_CHOOSER_ACTION_SAVE;
             ok_btn_stock = GTK_STOCK_SAVE;
@@ -172,7 +169,7 @@ wxFileDialog::wxFileDialog(wxWindow *parent, const wxString& message,
 
         gtk_dialog_set_default_response(GTK_DIALOG(m_widget), GTK_RESPONSE_ACCEPT);
 
-        if ( style & wxMULTIPLE )
+        if ( style & wxFD_MULTIPLE )
             gtk_file_chooser_set_select_multiple(GTK_FILE_CHOOSER(m_widget), true);
 
         // gtk_widget_hide_on_delete is used here to avoid that Gtk automatically destroys
@@ -195,7 +192,7 @@ wxFileDialog::wxFileDialog(wxWindow *parent, const wxString& message,
 
         SetWildcard(wildCard);
 
-        if ( style & wxSAVE )
+        if ( style & wxFD_SAVE )
         {
             if ( !defaultDir.empty() )
                 gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(m_widget),
@@ -229,37 +226,30 @@ wxFileDialog::wxFileDialog(wxWindow *parent, const wxString& message,
         }
     }
     else
-#endif
         wxGenericFileDialog::Create( parent, message, defaultDir, defaultFileName, wildCard, style, pos );
 }
 
 void wxFileDialog::OnFakeOk( wxCommandEvent &event )
 {
-#ifdef __WXGTK24__
     if (!gtk_check_version(2,4,0))
         wxDialog::OnOK( event );
     else
-#endif
         wxGenericFileDialog::OnListOk( event );
 }
 
 int wxFileDialog::ShowModal()
 {
-#ifdef __WXGTK24__
     if (!gtk_check_version(2,4,0))
         return wxDialog::ShowModal();
     else
-#endif
         return wxGenericFileDialog::ShowModal();
 }
 
 bool wxFileDialog::Show( bool show )
 {
-#ifdef __WXGTK24__
     if (!gtk_check_version(2,4,0))
         return wxDialog::Show( show );
     else
-#endif
         return wxGenericFileDialog::Show( show );
 }
 
@@ -273,17 +263,14 @@ void wxFileDialog::DoSetSize(int x, int y, int width, int height, int sizeFlags
 
 wxString wxFileDialog::GetPath() const
 {
-#ifdef __WXGTK24__
     if (!gtk_check_version(2,4,0))
         return wxConvFileName->cMB2WX(gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(m_widget)));
     else
-#endif
         return wxGenericFileDialog::GetPath();
 }
 
 void wxFileDialog::GetFilenames(wxArrayString& files) const
 {
-#ifdef __WXGTK24__
     if (!gtk_check_version(2,4,0))
     {
         GetPaths(files);
@@ -294,13 +281,11 @@ void wxFileDialog::GetFilenames(wxArrayString& files) const
         }
     }
     else
-#endif
         wxGenericFileDialog::GetFilenames( files );
 }
 
 void wxFileDialog::GetPaths(wxArrayString& paths) const
 {
-#ifdef __WXGTK24__
     if (!gtk_check_version(2,4,0))
     {
         paths.Empty();
@@ -322,26 +307,22 @@ void wxFileDialog::GetPaths(wxArrayString& paths) const
             paths.Add(GetPath());
     }
     else
-#endif
         wxGenericFileDialog::GetPaths( paths );
 }
 
 void wxFileDialog::SetMessage(const wxString& message)
 {
-#ifdef __WXGTK24__
     if (!gtk_check_version(2,4,0))
     {
         m_message = message;
         SetTitle(message);
     }
     else
-#endif
         wxGenericFileDialog::SetMessage( message );
 }
 
 void wxFileDialog::SetPath(const wxString& path)
 {
-#ifdef __WXGTK24__
     if (!gtk_check_version(2,4,0))
     {
         if (path.empty()) return;
@@ -349,13 +330,11 @@ void wxFileDialog::SetPath(const wxString& path)
         gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(m_widget), wxConvFileName->cWX2MB(path));
     }
     else
-#endif
         wxGenericFileDialog::SetPath( path );
 }
 
 void wxFileDialog::SetDirectory(const wxString& dir)
 {
-#ifdef __WXGTK24__
     if (!gtk_check_version(2,4,0))
     {
         if (wxDirExists(dir))
@@ -364,50 +343,42 @@ void wxFileDialog::SetDirectory(const wxString& dir)
         }
     }
     else
-#endif
         wxGenericFileDialog::SetDirectory( dir );
 }
 
 wxString wxFileDialog::GetDirectory() const
 {
-#ifdef __WXGTK24__
     if (!gtk_check_version(2,4,0))
         return wxConvFileName->cMB2WX(
             gtk_file_chooser_get_current_folder( GTK_FILE_CHOOSER(m_widget) ) );
     else
-#endif
         return wxGenericFileDialog::GetDirectory();
 }
 
 void wxFileDialog::SetFilename(const wxString& name)
 {
-#ifdef __WXGTK24__
     if (!gtk_check_version(2,4,0))
     {
-        if (GetStyle() & wxSAVE)
+        if (HasFlag(wxFD_SAVE))
             gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(m_widget), wxConvFileName->cWX2MB(name));
         else
             SetPath(wxFileName(GetDirectory(), name).GetFullPath());
     }
     else
-#endif
         wxGenericFileDialog::SetFilename( name );
 }
 
 wxString wxFileDialog::GetFilename() const
 {
-#ifdef __WXGTK24__
     if (!gtk_check_version(2,4,0))
         return wxFileName(
             wxConvFileName->cMB2WX(gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(m_widget))) ).GetFullName();
     else
-#endif
         return wxGenericFileDialog::GetFilename();
 }
 
 void wxFileDialog::SetWildcard(const wxString& wildCard)
 {
-#ifdef __WXGTK24__
     if (!gtk_check_version(2,4,0))
     {
         // parse filters
@@ -455,13 +426,12 @@ void wxFileDialog::SetWildcard(const wxString& wildCard)
         }
     }
     else
-#endif
         wxGenericFileDialog::SetWildcard( wildCard );
 }
 
 void wxFileDialog::SetFilterIndex(int filterIndex)
 {
-#ifdef __WXGTK24__
+
     if (!gtk_check_version(2,4,0))
     {
         gpointer filter;
@@ -482,13 +452,11 @@ void wxFileDialog::SetFilterIndex(int filterIndex)
         g_slist_free(filters);
     }
     else
-#endif
         wxGenericFileDialog::SetFilterIndex( filterIndex );
 }
 
 int wxFileDialog::GetFilterIndex() const
 {
-#ifdef __WXGTK24__
     if (!gtk_check_version(2,4,0))
     {
         GtkFileChooser *chooser = GTK_FILE_CHOOSER(m_widget);
@@ -506,8 +474,7 @@ int wxFileDialog::GetFilterIndex() const
             return index;
     }
     else
-#endif
                 return wxGenericFileDialog::GetFilterIndex();
 }
 
-#endif // wxUSE_FILEDLG
+#endif // wxUSE_FILEDLG &&  __WXGTK24__
diff --git a/src/gtk1/filedlg.cpp b/src/gtk1/filedlg.cpp
index f64b084703..06b502e07a 100644
--- a/src/gtk1/filedlg.cpp
+++ b/src/gtk1/filedlg.cpp
@@ -29,11 +29,13 @@ 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& pos,
+                           const wxSize& sz,
+                           const wxString& name)
     : wxGenericFileDialog(parent, message, defaultDir, defaultFileName,
-                       wildCard, style, pos, true )
+                       wildCard, style, pos, sz, name, true )
 {
-        wxGenericFileDialog::Create( parent, message, defaultDir, defaultFileName, wildCard, style, pos );
+        wxGenericFileDialog::Create( parent, message, defaultDir, defaultFileName, wildCard, style, pos, sz, name );
 }
 
 wxFileDialog::~wxFileDialog()
diff --git a/src/html/helpwnd.cpp b/src/html/helpwnd.cpp
index ca22611722..509dd8a2d5 100644
--- a/src/html/helpwnd.cpp
+++ b/src/html/helpwnd.cpp
@@ -1533,7 +1533,7 @@ void wxHtmlHelpWindow::OnToolbar(wxCommandEvent& event)
                                             wxEmptyString,
                                             wxEmptyString,
                                             filemask,
-                                            wxOPEN | wxFILE_MUST_EXIST,
+                                            wxFD_OPEN | wxFD_FILE_MUST_EXIST,
                                             this);
                 if (!s.empty())
                 {
diff --git a/src/mac/carbon/filedlg.cpp b/src/mac/carbon/filedlg.cpp
index 14222c20ec..faca927d1a 100644
--- a/src/mac/carbon/filedlg.cpp
+++ b/src/mac/carbon/filedlg.cpp
@@ -259,8 +259,8 @@ static pascal Boolean CrossPlatformFileFilter(CInfoPBPtr myCInfoPBPtr, void *dat
 wxFileDialog::wxFileDialog(
     wxWindow *parent, const wxString& message,
     const wxString& defaultDir, const wxString& defaultFileName, const wxString& wildCard,
-    long style, const wxPoint& pos)
-    : wxFileDialogBase(parent, message, defaultDir, defaultFileName, wildCard, style, pos)
+    long style, const wxPoint& pos, const wxSize& sz, const wxString& name)
+    : wxFileDialogBase(parent, message, defaultDir, defaultFileName, wildCard, style, pos, sz, name)
 {
     wxASSERT_MSG( NavServicesAvailable() , wxT("Navigation Services are not running") ) ;
 }
@@ -338,7 +338,7 @@ int wxFileDialog::ShowModal()
         }
     }
 
-    if (m_dialogStyle & wxSAVE)
+    if (HasFlag(wxFD_SAVE))
     {
         myData.saveMode = true;
 
@@ -352,7 +352,7 @@ int wxFileDialog::ShowModal()
             dialogCreateOptions.optionFlags |= kNavPreserveSaveFileExtension;
 
 #if TARGET_API_MAC_OSX
-        if (!(m_dialogStyle & wxOVERWRITE_PROMPT))
+        if (!(m_windowStyle & wxOVERWRITE_PROMPT))
             dialogCreateOptions.optionFlags |= kNavDontConfirmReplacement;
 #endif
 
@@ -413,7 +413,7 @@ int wxFileDialog::ShowModal()
             if (err != noErr)
                 break;
 
-            if (m_dialogStyle & wxSAVE)
+            if (HasFlag(wxFD_SAVE))
                 thePath = wxMacFSRefToPath( &theFSRef, navReply.saveFileName );
             else
                 thePath = wxMacFSRefToPath( &theFSRef );
diff --git a/src/mac/classic/dirdlg.cpp b/src/mac/classic/dirdlg.cpp
index ad199358fb..4fc1a2b21c 100644
--- a/src/mac/classic/dirdlg.cpp
+++ b/src/mac/classic/dirdlg.cpp
@@ -43,7 +43,7 @@ wxDirDialog::wxDirDialog(wxWindow *parent,
 {
     wxASSERT_MSG( NavServicesAvailable() , wxT("Navigation Services are not running") ) ;
     m_message = message;
-    m_dialogStyle = style;
+    m_windowStyle = style;
     m_parent = parent;
     m_path = defaultPath;
 }
diff --git a/src/mac/classic/filedlg.cpp b/src/mac/classic/filedlg.cpp
index 27ec563fe1..110650d4ce 100644
--- a/src/mac/classic/filedlg.cpp
+++ b/src/mac/classic/filedlg.cpp
@@ -292,8 +292,8 @@ static pascal Boolean CrossPlatformFileFilter(CInfoPBPtr myCInfoPBPtr, void *dat
 
 wxFileDialog::wxFileDialog(wxWindow *parent, const wxString& message,
         const wxString& defaultDir, const wxString& defaultFileName, const wxString& wildCard,
-        long style, const wxPoint& pos)
-             :wxFileDialogBase(parent, message, defaultDir, defaultFileName, wildCard, style, pos)
+        long style, const wxPoint& pos, const wxSize& sz, const wxString& name)
+             :wxFileDialogBase(parent, message, defaultDir, defaultFileName, wildCard, style, pos, sz, name)
 {
     wxASSERT_MSG( NavServicesAvailable() , wxT("Navigation Services are not running") ) ;
 }
@@ -372,7 +372,7 @@ int wxFileDialog::ShowModal()
     OpenUserDataRec myData;
     myData.defaultLocation = m_dir;
 
-    if (m_dialogStyle & wxSAVE)
+    if (HasFlag(wxFD_SAVE))
     {
         dialogCreateOptions.optionFlags |= kNavNoTypePopup;
         dialogCreateOptions.optionFlags |= kNavDontAutoTranslate;
@@ -445,7 +445,7 @@ int wxFileDialog::ShowModal()
                 break;
 
             CFURLRef fullURLRef;
-            if (m_dialogStyle & wxSAVE)
+            if (HasFlag(wxFD_SAVE))
             {
                 CFURLRef parentURLRef = ::CFURLCreateFromFSRef(NULL, &theFSRef);
 
@@ -562,7 +562,7 @@ int wxFileDialog::ShowModal()
             wxMacStringToPascal( myData.name[i] , (StringPtr)(*mNavOptions.popupExtension)[i].menuItemName ) ;
         }
     }
-    if ( m_dialogStyle & wxSAVE )
+    if ( HasFlag(wxFD_SAVE) )
     {
         myData.saveMode = true ;
 
@@ -584,7 +584,7 @@ int wxFileDialog::ShowModal()
         myData.saveMode = false ;
 
         mNavFilterUPP = NewNavObjectFilterUPP( CrossPlatformFilterCallback ) ;
-        if ( m_dialogStyle & wxMULTIPLE )
+        if ( m_windowStyle & wxMULTIPLE )
             mNavOptions.dialogOptionFlags |= kNavAllowMultipleFiles ;
         else
             mNavOptions.dialogOptionFlags &= ~kNavAllowMultipleFiles ;
diff --git a/src/motif/filedlg.cpp b/src/motif/filedlg.cpp
index 0411d9d54a..9e481db223 100644
--- a/src/motif/filedlg.cpp
+++ b/src/motif/filedlg.cpp
@@ -117,8 +117,8 @@ static wxString ParseWildCard( const wxString& wild )
 
 wxFileDialog::wxFileDialog(wxWindow *parent, const wxString& message,
                            const wxString& defaultDir, const wxString& defaultFileName, const wxString& wildCard,
-                           long style, const wxPoint& pos)
-             :wxFileDialogBase(parent, message, defaultDir, defaultFileName, wildCard, style, pos)
+                           long style, const wxPoint& pos, const wxSize& sz, const wxString& name)
+             :wxFileDialogBase(parent, message, defaultDir, defaultFileName, wildCard, style, pos, sz, name)
 {
     m_filterIndex = 1;
 }
diff --git a/src/msw/dirdlg.cpp b/src/msw/dirdlg.cpp
index 018f4e1323..8c8591fd67 100644
--- a/src/msw/dirdlg.cpp
+++ b/src/msw/dirdlg.cpp
@@ -148,7 +148,7 @@ int wxDirDialog::ShowModal()
     // is also the only way to have a resizable dialog
     //
     // "new" style is only available in the version 5.0+ of comctl32.dll
-    const bool needNewDir = HasFlag(wxDD_NEW_DIR_BUTTON);
+    const bool needNewDir = !HasFlag(wxDD_DIR_MUST_EXIST);
     if ( (needNewDir || HasFlag(wxRESIZE_BORDER)) && (verComCtl32 >= 500) )
     {
         if (needNewDir)
diff --git a/src/msw/filedlg.cpp b/src/msw/filedlg.cpp
index 36e5f9c58b..b1972a672c 100644
--- a/src/msw/filedlg.cpp
+++ b/src/msw/filedlg.cpp
@@ -129,13 +129,15 @@ wxFileDialog::wxFileDialog(wxWindow *parent,
                            const wxString& defaultFileName,
                            const wxString& wildCard,
                            long style,
-                           const wxPoint& pos)
+                           const wxPoint& pos,
+                           const wxSize& sz,
+                           const wxString& name)
             : wxFileDialogBase(parent, message, defaultDir, defaultFileName,
-                               wildCard, style, pos)
+                               wildCard, style, pos, sz, name)
 
 {
-    if ( ( m_dialogStyle & wxMULTIPLE ) && ( m_dialogStyle & wxSAVE ) )
-        m_dialogStyle &= ~wxMULTIPLE;
+    if ( ( m_windowStyle & wxMULTIPLE ) && ( m_windowStyle & wxSAVE ) )
+        m_windowStyle &= ~wxMULTIPLE;
 
     m_bMovedWindow = false;
 
@@ -278,13 +280,13 @@ int wxFileDialog::ShowModal()
 
 #if WXWIN_COMPATIBILITY_2_4
     long msw_flags = 0;
-    if ( (m_dialogStyle & wxHIDE_READONLY) || (m_dialogStyle & wxSAVE) )
+    if ( (m_windowStyle & wxHIDE_READONLY) || (m_windowStyle & wxSAVE) )
         msw_flags |= OFN_HIDEREADONLY;
 #else
     long msw_flags = OFN_HIDEREADONLY;
 #endif
 
-    if ( m_dialogStyle & wxFILE_MUST_EXIST )
+    if ( m_windowStyle & wxFILE_MUST_EXIST )
         msw_flags |= OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;
     /*
         If the window has been moved the programmer is probably
@@ -302,7 +304,7 @@ int wxFileDialog::ShowModal()
 #endif
     }
 
-    if (m_dialogStyle & wxMULTIPLE )
+    if (m_windowStyle & wxMULTIPLE )
     {
         // OFN_EXPLORER must always be specified with OFN_ALLOWMULTISELECT
         msw_flags |= OFN_EXPLORER | OFN_ALLOWMULTISELECT;
@@ -311,12 +313,12 @@ int wxFileDialog::ShowModal()
     // if wxCHANGE_DIR flag is not given we shouldn't change the CWD which the
     // standard dialog does by default (notice that under NT it does it anyhow,
     // OFN_NOCHANGEDIR or not, see below)
-    if ( !(m_dialogStyle & wxCHANGE_DIR) )
+    if ( !(m_windowStyle & wxCHANGE_DIR) )
     {
         msw_flags |= OFN_NOCHANGEDIR;
     }
 
-    if ( m_dialogStyle & wxOVERWRITE_PROMPT )
+    if ( m_windowStyle & wxOVERWRITE_PROMPT )
     {
         msw_flags |= OFN_OVERWRITEPROMPT;
     }
@@ -413,7 +415,7 @@ int wxFileDialog::ShowModal()
     // user types "foo" and the default extension is ".bar" we should force it
     // to check for "foo.bar" existence and not "foo")
     wxString defextBuffer; // we need it to be alive until GetSaveFileName()!
-    if (m_dialogStyle & wxSAVE)
+    if (m_windowStyle & wxSAVE)
     {
         const wxChar* extension = filterBuffer;
         int maxFilter = (int)(of.nFilterIndex*2L) - 1;
@@ -436,7 +438,7 @@ int wxFileDialog::ShowModal()
     //== Execute FileDialog >>=================================================
 
     DWORD errCode;
-    bool success = DoShowCommFileDialog(&of, m_dialogStyle, &errCode);
+    bool success = DoShowCommFileDialog(&of, m_windowStyle, &errCode);
 
 #ifdef wxTRY_SMALLER_OPENFILENAME
     // the system might be too old to support the new version file dialog
@@ -446,7 +448,7 @@ int wxFileDialog::ShowModal()
     {
         of.lStructSize = wxOPENFILENAME_V4_SIZE;
 
-        success = DoShowCommFileDialog(&of, m_dialogStyle, &errCode);
+        success = DoShowCommFileDialog(&of, m_windowStyle, &errCode);
 
         if ( success || !errCode )
         {
@@ -470,7 +472,7 @@ int wxFileDialog::ShowModal()
 
         m_fileNames.Empty();
 
-        if ( ( m_dialogStyle & wxMULTIPLE ) &&
+        if ( ( m_windowStyle & wxMULTIPLE ) &&
 #if defined(OFN_EXPLORER)
              ( fileNameBuffer[of.nFileOffset-1] == wxT('\0') )
 #else
diff --git a/src/msw/wince/filedlgwce.cpp b/src/msw/wince/filedlgwce.cpp
index 6d0cfe94cf..f3b084eb9f 100644
--- a/src/msw/wince/filedlgwce.cpp
+++ b/src/msw/wince/filedlgwce.cpp
@@ -70,9 +70,9 @@ wxFileDialog::wxFileDialog(wxWindow *parent,
                            const wxPoint& WXUNUSED(pos))
 {
     m_message = message;
-    m_dialogStyle = style;
-    if ( ( m_dialogStyle & wxMULTIPLE ) && ( m_dialogStyle & wxSAVE ) )
-        m_dialogStyle &= ~wxMULTIPLE;
+    m_windowStyle = style;
+    if ( ( m_windowStyle & wxMULTIPLE ) && ( m_windowStyle & wxSAVE ) )
+        m_windowStyle &= ~wxMULTIPLE;
     m_parent = parent;
     m_path = wxEmptyString;
     m_fileName = defaultFileName;
diff --git a/src/os2/dirdlg.cpp b/src/os2/dirdlg.cpp
index 9dacdc82d3..f833230fef 100644
--- a/src/os2/dirdlg.cpp
+++ b/src/os2/dirdlg.cpp
@@ -36,7 +36,7 @@ wxDirDialog::wxDirDialog(wxWindow *parent, const wxString& message,
         long style, const wxPoint& pos)
 {
     m_message = message;
-    m_dialogStyle = style;
+    m_windowStyle = style;
     m_parent = parent;
     m_path = defaultPath;
 }
diff --git a/src/os2/filedlg.cpp b/src/os2/filedlg.cpp
index eb13f40443..96c26f14ca 100644
--- a/src/os2/filedlg.cpp
+++ b/src/os2/filedlg.cpp
@@ -71,13 +71,15 @@ wxFileDialog::wxFileDialog (
 , const wxString&                   rsDefaultFileName
 , const wxString&                   rsWildCard
 , long                              lStyle
-, const wxPoint&                    rPos
+, const wxPoint&                    rPos,
+  const wxSize& sz,
+  const wxString& name
 )
-    :wxFileDialogBase(pParent, rsMessage, rsDefaultDir, rsDefaultFileName, rsWildCard, lStyle, rPos)
+    :wxFileDialogBase(pParent, rsMessage, rsDefaultDir, rsDefaultFileName, rsWildCard, lStyle, rPos, sz, name)
 
 {
-    if ((m_dialogStyle & wxMULTIPLE) && (m_dialogStyle & wxSAVE))
-        m_dialogStyle &= ~wxMULTIPLE;
+    if ((m_windowStyle & wxMULTIPLE) && (m_windowStyle & wxSAVE))
+        m_windowStyle &= ~wxMULTIPLE;
 
     m_filterIndex = 1;
 } // end of wxFileDialog::wxFileDialog
@@ -124,19 +126,19 @@ int wxFileDialog::ShowModal()
     *zFileNameBuffer = wxT('\0');
     *zTitleBuffer    = wxT('\0');
 
-    if (m_dialogStyle & wxSAVE)
+    if (m_windowStyle & wxSAVE)
         lFlags = FDS_SAVEAS_DIALOG;
     else
         lFlags = FDS_OPEN_DIALOG;
 
 #if WXWIN_COMPATIBILITY_2_4
-    if (m_dialogStyle & wxHIDE_READONLY)
+    if (m_windowStyle & wxHIDE_READONLY)
         lFlags |= FDS_SAVEAS_DIALOG;
 #endif
 
-    if (m_dialogStyle & wxSAVE)
+    if (m_windowStyle & wxSAVE)
         lFlags |= FDS_SAVEAS_DIALOG;
-    if (m_dialogStyle & wxMULTIPLE )
+    if (m_windowStyle & wxMULTIPLE )
         lFlags |= FDS_OPEN_DIALOG | FDS_MULTIPLESEL;
 
     vFileDlg.cbSize = sizeof(FILEDLG);
@@ -222,7 +224,7 @@ int wxFileDialog::ShowModal()
     if (hWnd && vFileDlg.lReturn == DID_OK)
     {
         m_fileNames.Empty();
-        if ((m_dialogStyle & wxMULTIPLE ) && vFileDlg.ulFQFCount > 1)
+        if ((m_windowStyle & wxMULTIPLE ) && vFileDlg.ulFQFCount > 1)
         {
             for (int i = 0; i < (int)vFileDlg.ulFQFCount; i++)
             {
@@ -236,7 +238,7 @@ int wxFileDialog::ShowModal()
             }
             ::WinFreeFileDlgList(vFileDlg.papszFQFilename);
         }
-        else if (!(m_dialogStyle & wxSAVE))
+        else if (!(m_windowStyle & wxSAVE))
         {
             m_path = (wxChar*)vFileDlg.szFullFile;
             m_fileName = wxFileNameFromPath(wxString((const wxChar*)vFileDlg.szFullFile));
@@ -301,8 +303,8 @@ int wxFileDialog::ShowModal()
             //
             // === Simulating the wxOVERWRITE_PROMPT >>============================
             //
-            if ((m_dialogStyle & wxOVERWRITE_PROMPT) &&
-                (m_dialogStyle & wxSAVE) &&
+            if ((m_windowStyle & wxOVERWRITE_PROMPT) &&
+                (m_windowStyle & wxSAVE) &&
                 (wxFileExists(m_path.c_str())))
             {
                 wxString            sMessageText;
diff --git a/src/palmos/filedlg.cpp b/src/palmos/filedlg.cpp
index 7051ff5aae..1770673d40 100644
--- a/src/palmos/filedlg.cpp
+++ b/src/palmos/filedlg.cpp
@@ -75,8 +75,10 @@ wxFileDialog::wxFileDialog(wxWindow *parent,
                            const wxString& defaultFileName,
                            const wxString& wildCard,
                            long style,
-                           const wxPoint& pos)
-             :wxFileDialogBase(parent, message, defaultDir, defaultFileName, wildCard, style, pos)
+                           const wxPoint& pos,
+                           const wxSize& sz,
+                           const wxString& name)
+             :wxFileDialogBase(parent, message, defaultDir, defaultFileName, wildCard, style, pos, sz, name)
 
 {
 }
diff --git a/utils/configtool/src/configtoolview.cpp b/utils/configtool/src/configtoolview.cpp
index 937eda5f74..0005f52690 100644
--- a/utils/configtool/src/configtoolview.cpp
+++ b/utils/configtool/src/configtoolview.cpp
@@ -913,7 +913,7 @@ void ctConfigToolView::OnSaveSetupFile(wxCommandEvent& WXUNUSED(event))
     wxFileDialog dialog(wxTheApp->GetTopWindow(),
         _("Save Setup File As"),
         path, filename ,
-        wildcard, wxSAVE|wxOVERWRITE_PROMPT);
+        wildcard, wxFD_SAVE|wxFD_OVERWRITE_PROMPT);
 
     if (dialog.ShowModal() == wxID_OK)
     {
@@ -946,7 +946,7 @@ void ctConfigToolView::OnSaveConfigureCommand(wxCommandEvent& WXUNUSED(event))
     wxFileDialog dialog(wxTheApp->GetTopWindow(),
         _("Save Configure Command File As"),
         path, filename ,
-        wildcard, wxSAVE|wxOVERWRITE_PROMPT);
+        wildcard, wxFD_SAVE|wxFD_OVERWRITE_PROMPT);
 
     if (dialog.ShowModal() == wxID_OK)
     {
-- 
2.50.0

