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 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
|
||||
// have (without changing the visible height)
|
||||
void MSWUpdateDropDownHeight();
|
||||
|
@@ -130,7 +130,6 @@ protected:
|
||||
#if wxUSE_TOOLTIPS
|
||||
virtual void DoSetToolTip(wxToolTip *tip);
|
||||
#endif
|
||||
void MSWDoPopupOrDismiss(bool show);
|
||||
|
||||
// this is the implementation of GetEditHWND() which can also be used when
|
||||
// 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;
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// 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
|
||||
// ----------------------------------------------------------------------------
|
||||
|
@@ -642,22 +642,6 @@ void wxComboBox::OnUpdateSelectAll(wxUpdateUIEvent& event)
|
||||
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
|
||||
|
||||
void wxComboBox::DoSetToolTip(wxToolTip *tip)
|
||||
|
Reference in New Issue
Block a user