X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ff3e84ffdc91ee8a52b3ab646e48d44d62de80e1..4f6eaf5ee2335e43d6f03c99b0b3cfd53c9b6edb:/src/common/fldlgcmn.cpp diff --git a/src/common/fldlgcmn.cpp b/src/common/fldlgcmn.cpp index 76e8b882dc..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 //---------------------------------------------------------------------------- @@ -57,16 +58,19 @@ bool wxFileDialogBase::Create(wxWindow *parent, 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 (!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 ) { @@ -110,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) { @@ -118,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 @@ -126,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('.')); @@ -310,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