+
+protected:
+
+ /**
+ This member function is not normally called in application code.
+ Instead, it can be implemented in a derived class to create a custom
+ popup animation.
+
+ The parameters are the same as those for DoShowPopup().
+
+ @return @true if animation finishes before the function returns,
+ @false otherwise. In the latter case you need to manually call
+ DoShowPopup() after the animation ends.
+ */
+ virtual bool AnimateShow(const wxRect& rect, int flags);
+
+ /**
+ This member function is not normally called in application code.
+ Instead, it can be implemented in a derived class to return default
+ wxComboPopup, in case @a popup is @NULL.
+
+ @note If you have implemented OnButtonClick() to do something else than
+ show the popup, then DoSetPopupControl() must always set @a popup
+ to @NULL.
+ */
+ virtual void DoSetPopupControl(wxComboPopup* popup);
+
+ /**
+ This member function is not normally called in application code.
+ Instead, it must be called in a derived class to make sure popup is
+ properly shown after a popup animation has finished (but only if
+ AnimateShow() did not finish the animation within its function scope).
+
+ @param rect
+ Position to show the popup window at, in screen coordinates.
+ @param flags
+ Combination of any of the following:
+ @beginTable
+ @row2col{wxComboCtrl::ShowAbove,
+ Popup is shown above the control instead of below.}
+ @row2col{wxComboCtrl::CanDeferShow,
+ Showing the popup can be deferred to happen sometime after
+ ShowPopup() has finished. In this case, AnimateShow() must
+ return false.}
+ @endTable
+ */
+ virtual void DoShowPopup(const wxRect& rect, int flags);