From ff3e84ffdc91ee8a52b3ab646e48d44d62de80e1 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin 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 efe5d2b..d402201 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 a921882..24be683 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 7eb8491..fb3d1e0 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 41aab03..a353b44 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 43aebfc..55cb0a8 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 ec61a15..ad92224 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 859b7a0..6fc8357 100644 --- a/docs/latex/wx/filedlg.tex +++ b/docs/latex/wx/filedlg.tex @@ -13,6 +13,26 @@ This class represents the file chooser dialog. +\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 f91125b..1783472 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 926821d..fb71c72 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 e8c7e44..aec60e8 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 cf82cba..5353803 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 1c48740..6346f47 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 ac2de5b..e684cfb 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 d62bcea..35d6085 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 bd6527f..ac1909f 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 e4859f6..5a2537e 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 283bce0..a2d2ad2 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 3760152..169cfb1 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 c19e3a1..b971141 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 276c0ba..3baac18 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 0b734e1..43e95ff 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 f54a13b..211f6ca 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 13a84b1..82ffc35 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 edb79dd..8535894 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 738df05..73a259c 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 f753b51..c16c4a4 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 6d52c02..12af815 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 22be975..a517d1a 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 a921882..24be683 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 7eb8491..fb3d1e0 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 41aab03..a353b44 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 44e529b..4b02aa8 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 96b4415..e97ea52 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 4f4144b..40b10ce 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 89de49c..76e8b88 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 aaa3712..5fb5435 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 13cf558..e92a4ca 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 85303fe..9d5bb35 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 a4e8100..cd9beb4 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 #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 75e879e..39308de 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 #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 f64b084..06b502e 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 ca22611..509dd8a 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 14222c2..faca927 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 ad19935..4fc1a2b 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 27ec563..110650d 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 0411d9d..9e481db 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 018f4e1..8c8591f 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 36e5f9c..b1972a6 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 6d0cfe9..f3b084e 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 9dacdc8..f833230 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 eb13f40..96c26f1 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 7051ff5..1770673 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 937eda5..0005f52 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.7.4