X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/4f690a1d5e6192d0861686982e89f9f17a21e679..2e49a8074e7c9179b642852ff00ed8fdf0768bb1:/src/common/pickerbase.cpp diff --git a/src/common/pickerbase.cpp b/src/common/pickerbase.cpp index 867712afbf..1d3dbbc30d 100644 --- a/src/common/pickerbase.cpp +++ b/src/common/pickerbase.cpp @@ -66,10 +66,13 @@ bool wxPickerBase::CreateBase(wxWindow *parent, // remove any border style from our style as wxPickerBase's window must be // invisible (user styles must be set on the textctrl or the platform-dependent picker) style &= ~wxBORDER_MASK; + if (!wxControl::Create(parent, id, pos, size, style | wxNO_BORDER | wxTAB_TRAVERSAL, validator, name)) return false; + SetMinSize( size ); + m_sizer = new wxBoxSizer(wxHORIZONTAL); if (HasFlag(wxPB_USE_TEXTCTRL)) @@ -96,14 +99,14 @@ bool wxPickerBase::CreateBase(wxWindow *parent, // set the initial contents of the textctrl m_text->SetValue(text); - m_text->Connect(wxEVT_COMMAND_TEXT_UPDATED, + m_text->Connect(m_text->GetId(), wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler(wxPickerBase::OnTextCtrlUpdate), NULL, this); - m_text->Connect(wxEVT_KILL_FOCUS, + m_text->Connect(m_text->GetId(), wxEVT_KILL_FOCUS, wxFocusEventHandler(wxPickerBase::OnTextCtrlKillFocus), NULL, this); - m_text->Connect(wxEVT_DESTROY, + m_text->Connect(m_text->GetId(), wxEVT_DESTROY, wxWindowDestroyEventHandler(wxPickerBase::OnTextCtrlDelete), NULL, this); @@ -121,7 +124,8 @@ void wxPickerBase::PostCreation() m_sizer->Add(m_picker, HasTextCtrl() ? 0 : 1, GetDefaultPickerCtrlFlag(), 5); SetSizer(m_sizer); - SetMinSize( m_sizer->GetMinSize() ); + + SetInitialSize( GetMinSize() ); } #if wxUSE_TOOLTIPS @@ -144,12 +148,12 @@ void wxPickerBase::DoSetToolTip(wxToolTip *tip) // wxPickerBase - event handlers // ---------------------------------------------------------------------------- -void wxPickerBase::OnTextCtrlKillFocus(wxFocusEvent &) +void wxPickerBase::OnTextCtrlKillFocus(wxFocusEvent& event) { - wxASSERT(m_text); + event.Skip(); // don't leave the textctrl empty - if (m_text->GetValue().empty()) + if (m_text && m_text->GetValue().empty()) UpdateTextCtrlFromPicker(); }