]> git.saurik.com Git - wxWidgets.git/commitdiff
Use correct style for the dialog shown by generic file/dir pickers.
authorVadim Zeitlin <vadim@wxwidgets.org>
Mon, 8 Mar 2010 19:37:08 +0000 (19:37 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Mon, 8 Mar 2010 19:37:08 +0000 (19:37 +0000)
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

include/wx/generic/filepickerg.h
src/generic/filepickerg.cpp

index 59cae31c09d06bf4d20e96fe05824621b5a5c3da..5ab51d7b329065b524345ad248b24da11f0737f6 100644 (file)
@@ -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;
index f8d7a827c3e26fdf5dc66ab159cf7f8cdb55a25a..1aaf01a42044c46c5d45211e7bbdd9bb538cb5de 100644 (file)
@@ -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) )
     {