]> git.saurik.com Git - wxWidgets.git/commitdiff
[ 1506733 ] wxOwnerDrawnComboBox::SetPopupControl argument type check.
authorWłodzimierz Skiba <abx@abx.art.pl>
Thu, 15 Jun 2006 21:10:58 +0000 (21:10 +0000)
committerWłodzimierz Skiba <abx@abx.art.pl>
Thu, 15 Jun 2006 21:10:58 +0000 (21:10 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@39751 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/combo.h
include/wx/odcombo.h
src/common/combocmn.cpp
src/generic/odcombo.cpp

index 20ef7cb5b9d2a582c9a9b7d30dd4db4868c01603..fdece4b675f4c09f88cd9d5962ce08bbedead3fc 100644 (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();
 
index bb67677acf2497f90a13ab6f8f4fcecc94a2927e..0b578c6580646915ba3e08a7d1aef7af5b75e27a 100644 (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();
 
index a1630119fb054210d0f230ab707abd49a06e97aa..503005d9f65377ae0f7c84c658999358b1347e5e 100644 (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") );
 
index 75fcd5f271a6231e6a2aa0380517b98613efb82f..037fb88b43f60e787ad65e729d50e26b1b9896bb 100644 (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;