X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1e966cc4c8c7f33ad331f0b9044ba167163f54eb..4f6eaf5ee2335e43d6f03c99b0b3cfd53c9b6edb:/src/common/fldlgcmn.cpp?ds=sidebyside diff --git a/src/common/fldlgcmn.cpp b/src/common/fldlgcmn.cpp index 89de49cea4..e87d5776c8 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: @@ -16,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 //---------------------------------------------------------------------------- @@ -35,7 +36,7 @@ IMPLEMENT_DYNAMIC_CLASS(wxFileDialogBase, wxDialog) void wxFileDialogBase::Init() { m_filterIndex = - m_dialogStyle = 0; + m_windowStyle = 0; } bool wxFileDialogBase::Create(wxWindow *parent, @@ -44,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; @@ -52,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"), @@ -97,6 +114,19 @@ int wxFileDialogBase::ParseWildcard(const wxString& filterStr, } #endif // WXWIN_COMPATIBILITY_2_4 +#if WXWIN_COMPATIBILITY_2_6 +long wxFileDialogBase::GetStyle() const +{ + return GetWindowStyle(); +} + +void wxFileDialogBase::SetStyle(long style) +{ + SetWindowStyle(style); +} +#endif // WXWIN_COMPATIBILITY_2_6 + + wxString wxFileDialogBase::AppendExtension(const wxString &filePath, const wxString &extensionList) { @@ -105,7 +135,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 @@ -113,7 +143,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('.')); @@ -270,7 +300,7 @@ static wxString wxDefaultFileSelector(bool load, } return wxFileSelector(prompt, NULL, default_name, ext, wild, - load ? wxOPEN : wxSAVE, parent); + load ? wxFD_OPEN : wxFD_SAVE, parent); } //---------------------------------------------------------------------------- @@ -297,5 +327,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