Initialize picker style in native GTK file/dir pickers.

This fixes the styles used in the native wxGTK version after changes in
r63654: we must initialize base class m_pickerStyle now and the code didn't do
this before resulting in various asserts and incorrect behaviour.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63690 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 2010-03-16 00:23:57 +00:00
parent 293a13bad7
commit 459128ac88
2 changed files with 21 additions and 5 deletions

View File

@ -29,7 +29,7 @@ class WXDLLIMPEXP_CORE wxGenericFileDirButton : public wxButton,
public wxFileDirPickerWidgetBase
{
public:
wxGenericFileDirButton() { }
wxGenericFileDirButton() { Init(); }
wxGenericFileDirButton(wxWindow *parent,
wxWindowID id,
const wxString& label = wxFilePickerWidgetLabel,
@ -42,12 +42,11 @@ public:
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxFilePickerWidgetNameStr)
{
Init();
Create(parent, id, label, path, message, wildcard,
pos, size, style, validator, name);
}
virtual ~wxGenericFileDirButton() {}
virtual wxControl *AsControl() { return this; }
public: // overrideable
@ -82,6 +81,10 @@ protected:
// 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;
private:
// common part of all ctors
void Init() { m_pickerStyle = -1; }
};
@ -115,6 +118,12 @@ public: // overrideable
virtual long GetDialogStyle() const
{
// the derived class must initialize it if it doesn't use the
// non-default wxGenericFileDirButton ctor
wxASSERT_MSG( m_pickerStyle != -1,
"forgot to initialize m_pickerStyle?" );
long filedlgstyle = 0;
if ( m_pickerStyle & wxFLP_OPEN )

View File

@ -61,7 +61,7 @@ protected: \
class WXDLLIMPEXP_CORE wxFileButton : public wxGenericFileButton
{
public:
wxFileButton() { m_dialog = NULL; }
wxFileButton() { Init(); }
wxFileButton(wxWindow *parent,
wxWindowID id,
const wxString& label = wxFilePickerWidgetLabel,
@ -74,7 +74,8 @@ public:
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxFilePickerWidgetNameStr)
{
m_dialog = NULL;
Init();
m_pickerStyle = style;
Create(parent, id, label, path, message, wildcard,
pos, size, style, validator, name);
}
@ -109,6 +110,10 @@ protected:
wxDialog *m_dialog;
private:
// common part of all ctors
void Init() { m_dialog = NULL; }
DECLARE_DYNAMIC_CLASS(wxFileButton)
};
@ -134,6 +139,8 @@ public:
{
Init();
m_pickerStyle = style;
Create(parent, id, label, path, message, wxEmptyString,
pos, size, style, validator, name);
}