// 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()
// 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();
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();
// 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();
m_popup = (wxWindow*) NULL;
}
-void wxComboCtrlBase::SetPopupControl( wxComboPopup* iface )
+void wxComboCtrlBase::DoSetPopupControl(wxComboPopup* iface)
{
wxCHECK_RET( iface, wxT("no popup interface set for wxComboCtrl") );
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;