From: Vadim Zeitlin Date: Mon, 8 Mar 2010 19:37:08 +0000 (+0000) Subject: Use correct style for the dialog shown by generic file/dir pickers. X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/8eca1205e2ddc9b24289c655b609ebdbd7bb853e?ds=inline Use correct style for the dialog shown by generic file/dir pickers. The picker styles don't make sense for the button so we don't use them when creating the button but we do need to somehow use the style the picker was created with to create an appropriate dialog when it's clicked. Fix the problem by simply storing the style in a member variable and using it instead of wxWindow::m_windowStyle. Closes #11635. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63654 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/include/wx/generic/filepickerg.h b/include/wx/generic/filepickerg.h index 59cae31c09..5ab51d7b32 100644 --- a/include/wx/generic/filepickerg.h +++ b/include/wx/generic/filepickerg.h @@ -77,6 +77,11 @@ public: protected: wxString m_message, m_wildcard; + + // we just store the style passed to the ctor here instead of passing it to + // wxButton as some of our bits can conflict with wxButton styles and it + // just doesn't make sense to use picker styles for wxButton anyhow + long m_pickerStyle; }; @@ -112,15 +117,15 @@ public: // overrideable { long filedlgstyle = 0; - if (this->HasFlag(wxFLP_OPEN)) + if ( m_pickerStyle & wxFLP_OPEN ) filedlgstyle |= wxFD_OPEN; - if (this->HasFlag(wxFLP_SAVE)) + if ( m_pickerStyle & wxFLP_SAVE ) filedlgstyle |= wxFD_SAVE; - if (this->HasFlag(wxFLP_OVERWRITE_PROMPT)) + if ( m_pickerStyle & wxFLP_OVERWRITE_PROMPT ) filedlgstyle |= wxFD_OVERWRITE_PROMPT; - if (this->HasFlag(wxFLP_FILE_MUST_EXIST)) + if ( m_pickerStyle & wxFLP_FILE_MUST_EXIST ) filedlgstyle |= wxFD_FILE_MUST_EXIST; - if (this->HasFlag(wxFLP_CHANGE_DIR)) + if ( m_pickerStyle & wxFLP_CHANGE_DIR ) filedlgstyle |= wxFD_CHANGE_DIR; return filedlgstyle; @@ -182,9 +187,9 @@ public: // overrideable { long dirdlgstyle = wxDD_DEFAULT_STYLE; - if (this->HasFlag(wxDIRP_DIR_MUST_EXIST)) + if ( m_pickerStyle & wxDIRP_DIR_MUST_EXIST ) dirdlgstyle |= wxDD_DIR_MUST_EXIST; - if (this->HasFlag(wxDIRP_CHANGE_DIR)) + if ( m_pickerStyle & wxDIRP_CHANGE_DIR ) dirdlgstyle |= wxDD_CHANGE_DIR; return dirdlgstyle; diff --git a/src/generic/filepickerg.cpp b/src/generic/filepickerg.cpp index f8d7a827c3..1aaf01a420 100644 --- a/src/generic/filepickerg.cpp +++ b/src/generic/filepickerg.cpp @@ -48,10 +48,12 @@ bool wxGenericFileDirButton::Create(wxWindow *parent, const wxString& wildcard, const wxPoint& pos, const wxSize& size, - long WXUNUSED(style), + long style, const wxValidator& validator, const wxString& name) { + m_pickerStyle = style; + // create this button if ( !wxButton::Create(parent, id, label, pos, size, 0, validator, name) ) {