[ 1506733 ] wxOwnerDrawnComboBox::SetPopupControl argument type check.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@39751 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Włodzimierz Skiba 2006-06-15 21:10:58 +00:00
parent af1a6227cc
commit db53c6ea2e
4 changed files with 18 additions and 6 deletions

View File

@ -156,7 +156,10 @@ public:
// set interface class instance derived from wxComboPopup
// NULL popup can be used to indicate default in a derived class
virtual void SetPopupControl( wxComboPopup* popup );
void SetPopupControl( wxComboPopup* popup )
{
DoSetPopupControl(popup);
}
// get interface class instance derived from wxComboPopup
wxComboPopup* GetPopupControl()
@ -381,6 +384,9 @@ protected:
// override the base class virtuals involved in geometry calculations
virtual wxSize DoGetBestSize() const;
// NULL popup can be used to indicate default in a derived class
virtual void DoSetPopupControl(wxComboPopup* popup);
// ensures there is atleast the default popup
void EnsurePopupControl();

View File

@ -254,8 +254,11 @@ public:
virtual ~wxOwnerDrawnComboBox();
// NULL popup can be used to indicate default interface
virtual void SetPopupControl( wxComboPopup* popup );
// Prevent app from using wxComboPopup
void SetPopupControl(wxVListBoxComboPopup* popup)
{
DoSetPopupControl(popup);
}
// wxControlWithItems methods
virtual void Clear();
@ -296,6 +299,9 @@ protected:
// OnDrawItem.
virtual void OnDrawBackground( wxDC& dc, const wxRect& rect, int item, int flags ) const;
// NULL popup can be used to indicate default interface
virtual void DoSetPopupControl(wxComboPopup* popup);
// clears all allocated client datas
void ClearClientDatas();

View File

@ -1559,7 +1559,7 @@ void wxComboCtrlBase::DestroyPopup()
m_popup = (wxWindow*) NULL;
}
void wxComboCtrlBase::SetPopupControl( wxComboPopup* iface )
void wxComboCtrlBase::DoSetPopupControl(wxComboPopup* iface)
{
wxCHECK_RET( iface, wxT("no popup interface set for wxComboCtrl") );

View File

@ -664,14 +664,14 @@ wxOwnerDrawnComboBox::~wxOwnerDrawnComboBox()
m_popupInterface->ClearClientDatas();
}
void wxOwnerDrawnComboBox::SetPopupControl( wxComboPopup* popup )
void wxOwnerDrawnComboBox::DoSetPopupControl(wxComboPopup* popup)
{
if ( !popup )
{
popup = new wxVListBoxComboPopup();
}
wxComboCtrl::SetPopupControl(popup);
wxComboCtrl::DoSetPopupControl(popup);
wxASSERT(popup);
m_popupInterface = (wxVListBoxComboPopup*) popup;