Refactor: move wxComboBox::MSWDoPopupOrDismiss() down to wxChoice.
No real changes, just make this method available in wxChoice for the next commit needs. See #3113. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71103 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -124,6 +124,9 @@ protected:
|
|||||||
int width, int height,
|
int width, int height,
|
||||||
int sizeFlags = wxSIZE_AUTO);
|
int sizeFlags = wxSIZE_AUTO);
|
||||||
|
|
||||||
|
// Show or hide the popup part of the control.
|
||||||
|
void MSWDoPopupOrDismiss(bool show);
|
||||||
|
|
||||||
// update the height of the drop down list to fit the number of items we
|
// update the height of the drop down list to fit the number of items we
|
||||||
// have (without changing the visible height)
|
// have (without changing the visible height)
|
||||||
void MSWUpdateDropDownHeight();
|
void MSWUpdateDropDownHeight();
|
||||||
|
@@ -130,7 +130,6 @@ protected:
|
|||||||
#if wxUSE_TOOLTIPS
|
#if wxUSE_TOOLTIPS
|
||||||
virtual void DoSetToolTip(wxToolTip *tip);
|
virtual void DoSetToolTip(wxToolTip *tip);
|
||||||
#endif
|
#endif
|
||||||
void MSWDoPopupOrDismiss(bool show);
|
|
||||||
|
|
||||||
// this is the implementation of GetEditHWND() which can also be used when
|
// this is the implementation of GetEditHWND() which can also be used when
|
||||||
// we don't have the edit control, it simply returns NULL then
|
// we don't have the edit control, it simply returns NULL then
|
||||||
|
@@ -626,6 +626,26 @@ int wxChoice::SetHeightSimpleComboBox(int nItems) const
|
|||||||
return EDIT_HEIGHT_FROM_CHAR_HEIGHT( cy ) * wxMin( wxMax( nItems, 3 ), 6 ) + hItem - 1;
|
return EDIT_HEIGHT_FROM_CHAR_HEIGHT( cy ) * wxMin( wxMax( nItems, 3 ), 6 ) + hItem - 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// Popup operations
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
void wxChoice::MSWDoPopupOrDismiss(bool show)
|
||||||
|
{
|
||||||
|
wxASSERT_MSG( !HasFlag(wxCB_SIMPLE),
|
||||||
|
wxT("can't popup/dismiss the list for simple combo box") );
|
||||||
|
|
||||||
|
// we *must* set focus to the combobox before showing or hiding the drop
|
||||||
|
// down as without this we get WM_LBUTTONDOWN messages with invalid HWND
|
||||||
|
// when hiding it (whether programmatically or manually) resulting in a
|
||||||
|
// crash when we pass them to IsDialogMessage()
|
||||||
|
//
|
||||||
|
// this can be seen in the combo page of the widgets sample under Windows 7
|
||||||
|
SetFocus();
|
||||||
|
|
||||||
|
::SendMessage(GetHwnd(), CB_SHOWDROPDOWN, show, 0);
|
||||||
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// MSW message handlers
|
// MSW message handlers
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
@@ -642,22 +642,6 @@ void wxComboBox::OnUpdateSelectAll(wxUpdateUIEvent& event)
|
|||||||
event.Enable(IsEditable() && !wxTextEntry::IsEmpty());
|
event.Enable(IsEditable() && !wxTextEntry::IsEmpty());
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxComboBox::MSWDoPopupOrDismiss(bool show)
|
|
||||||
{
|
|
||||||
wxASSERT_MSG( !HasFlag(wxCB_SIMPLE),
|
|
||||||
wxT("can't popup/dismiss the list for simple combo box") );
|
|
||||||
|
|
||||||
// we *must* set focus to the combobox before showing or hiding the drop
|
|
||||||
// down as without this we get WM_LBUTTONDOWN messages with invalid HWND
|
|
||||||
// when hiding it (whether programmatically or manually) resulting in a
|
|
||||||
// crash when we pass them to IsDialogMessage()
|
|
||||||
//
|
|
||||||
// this can be seen in the combo page of the widgets sample under Windows 7
|
|
||||||
SetFocus();
|
|
||||||
|
|
||||||
::SendMessage(GetHwnd(), CB_SHOWDROPDOWN, show, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
#if wxUSE_TOOLTIPS
|
#if wxUSE_TOOLTIPS
|
||||||
|
|
||||||
void wxComboBox::DoSetToolTip(wxToolTip *tip)
|
void wxComboBox::DoSetToolTip(wxToolTip *tip)
|
||||||
|
Reference in New Issue
Block a user