X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7448de8d8d697f8f208515a1fc96c88ed009dd56..9092371c0ad8090dc479d5015a1e69b3b9777e2f:/src/common/fldlgcmn.cpp diff --git a/src/common/fldlgcmn.cpp b/src/common/fldlgcmn.cpp index 45091bda8f..7607a2a3ed 100644 --- a/src/common/fldlgcmn.cpp +++ b/src/common/fldlgcmn.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: common/fldlgcmn.cpp +// Name: src/common/fldlgcmn.cpp // Purpose: wxFileDialog common functions // Author: John Labenski // Modified by: @@ -9,10 +9,6 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) -#pragma implementation "filedlg.h" -#endif - #ifdef __BORLANDC__ #pragma hdrstop #endif @@ -20,16 +16,17 @@ // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" +#if wxUSE_FILEDLG + +#include "wx/filedlg.h" +#include "wx/dirdlg.h" + #ifndef WX_PRECOMP #include "wx/string.h" #include "wx/intl.h" #include "wx/window.h" #endif // WX_PRECOMP -#include "wx/filedlg.h" - -#if wxUSE_FILEDLG - //---------------------------------------------------------------------------- // wxFileDialogBase //---------------------------------------------------------------------------- @@ -38,8 +35,8 @@ IMPLEMENT_DYNAMIC_CLASS(wxFileDialogBase, wxDialog) void wxFileDialogBase::Init() { - m_filterIndex = m_dialogStyle = 0; - m_parent = NULL; + m_filterIndex = + m_windowStyle = 0; } bool wxFileDialogBase::Create(wxWindow *parent, @@ -48,7 +45,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; @@ -56,9 +55,23 @@ bool wxFileDialogBase::Create(wxWindow *parent, m_wildCard = wildCard; m_parent = parent; - m_dialogStyle = style; + m_windowStyle = style; m_filterIndex = 0; + if (!HasFdFlag(wxFD_OPEN) && !HasFdFlag(wxFD_SAVE)) + m_windowStyle |= wxFD_OPEN; // wxFD_OPEN is the default + + // check that the styles are not contradictory + wxASSERT_MSG( !(HasFdFlag(wxFD_SAVE) && HasFdFlag(wxFD_OPEN)), + _T("can't specify both wxFD_SAVE and wxFD_OPEN at once") ); + + wxASSERT_MSG( !HasFdFlag(wxFD_SAVE) || + (!HasFdFlag(wxFD_MULTIPLE) && !HasFdFlag(wxFD_FILE_MUST_EXIST)), + _T("wxFD_MULTIPLE or wxFD_FILE_MUST_EXIST can't be used with wxFD_SAVE" ) ); + + wxASSERT_MSG( !HasFdFlag(wxFD_OPEN) || !HasFdFlag(wxFD_OVERWRITE_PROMPT), + _T("wxFD_OVERWRITE_PROMPT can't be used with wxFD_OPEN") ); + if ( wildCard.empty() || wildCard == wxFileSelectorDefaultWildcardStr ) { m_wildCard = wxString::Format(_("All files (%s)|%s"), @@ -89,17 +102,18 @@ bool wxFileDialogBase::Create(wxWindow *parent, return true; } -#if WXWIN_COMPATIBILITY_2_4 -// Parses the filterStr, returning the number of filters. -// Returns 0 if none or if there's a problem. -// filterStr is in the form: "All files (*.*)|*.*|JPEG Files (*.jpeg)|*.jpg" -int wxFileDialogBase::ParseWildcard(const wxString& filterStr, - wxArrayString& descriptions, - wxArrayString& filters) +#if WXWIN_COMPATIBILITY_2_6 +long wxFileDialogBase::GetStyle() const +{ + return GetWindowStyle(); +} + +void wxFileDialogBase::SetStyle(long style) { - return ::wxParseCommonDialogsFilter(filterStr, descriptions, filters); + SetWindowStyle(style); } -#endif // WXWIN_COMPATIBILITY_2_4 +#endif // WXWIN_COMPATIBILITY_2_6 + wxString wxFileDialogBase::AppendExtension(const wxString &filePath, const wxString &extensionList) @@ -109,7 +123,7 @@ wxString wxFileDialogBase::AppendExtension(const wxString &filePath, // if fileName is of form "foo.bar" it's ok, return it int idx_dot = fileName.Find(wxT('.'), true); - if ((idx_dot != wxNOT_FOUND) && (idx_dot < (int)fileName.Len() - 1)) + if ((idx_dot != wxNOT_FOUND) && (idx_dot < (int)fileName.length() - 1)) return filePath; // get the first extension from extensionList, or all of it @@ -117,7 +131,7 @@ wxString wxFileDialogBase::AppendExtension(const wxString &filePath, // if ext == "foo" or "foo." there's no extension int idx_ext_dot = ext.Find(wxT('.'), true); - if ((idx_ext_dot == wxNOT_FOUND) || (idx_ext_dot == (int)ext.Len() - 1)) + if ((idx_ext_dot == wxNOT_FOUND) || (idx_ext_dot == (int)ext.length() - 1)) return filePath; else ext = ext.AfterLast(wxT('.')); @@ -274,7 +288,7 @@ static wxString wxDefaultFileSelector(bool load, } return wxFileSelector(prompt, NULL, default_name, ext, wild, - load ? wxOPEN : wxSAVE, parent); + load ? wxFD_OPEN : wxFD_SAVE, parent); } //---------------------------------------------------------------------------- @@ -301,5 +315,22 @@ WXDLLEXPORT wxString wxSaveFileSelector(const wxChar *what, return wxDefaultFileSelector(false, what, extension, default_name, parent); } -#endif // wxUSE_FILEDLG +//---------------------------------------------------------------------------- +// wxDirDialogBase +//---------------------------------------------------------------------------- + +#if WXWIN_COMPATIBILITY_2_6 +long wxDirDialogBase::GetStyle() const +{ + return GetWindowStyle(); +} + +void wxDirDialogBase::SetStyle(long style) +{ + SetWindowStyle(style); +} +#endif // WXWIN_COMPATIBILITY_2_6 + + +#endif // wxUSE_FILEDLG