X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/40b26d752de12e3e9f03172049c441de1a5e0276..438959cca892a7651634cc3a7aad4819ac49b23c:/include/wx/msw/combo.h?ds=sidebyside diff --git a/include/wx/msw/combo.h b/include/wx/msw/combo.h index 7204e649d8..f30bc1a309 100644 --- a/include/wx/msw/combo.h +++ b/include/wx/msw/combo.h @@ -18,6 +18,14 @@ #if wxUSE_COMBOCTRL +#if !defined(__WXWINCE__) && wxUSE_TIMER + #include "wx/timer.h" + #define wxUSE_COMBOCTRL_POPUP_ANIMATION 1 +#else + #define wxUSE_COMBOCTRL_POPUP_ANIMATION 0 +#endif + + // ---------------------------------------------------------------------------- // Native wxComboCtrl // ---------------------------------------------------------------------------- @@ -25,9 +33,9 @@ // Define this only if native implementation includes all features #define wxCOMBOCONTROL_FULLY_FEATURED -extern WXDLLIMPEXP_DATA_CORE(const wxChar) wxComboBoxNameStr[]; +extern WXDLLIMPEXP_DATA_CORE(const char) wxComboBoxNameStr[]; -class WXDLLEXPORT wxComboCtrl : public wxComboCtrlBase +class WXDLLIMPEXP_CORE wxComboCtrl : public wxComboCtrlBase { public: // ctors and such @@ -59,24 +67,46 @@ public: virtual ~wxComboCtrl(); - virtual void DrawFocusBackground( wxDC& dc, const wxRect& rect, int flags ) const; + virtual void PrepareBackground( wxDC& dc, const wxRect& rect, int flags ) const; + virtual bool IsKeyPopupToggle(const wxKeyEvent& event) const; static int GetFeatures() { return wxComboCtrlFeatures::All; } +#if wxUSE_COMBOCTRL_POPUP_ANIMATION + void OnTimerEvent(wxTimerEvent& WXUNUSED(event)) { DoTimerEvent(); } + protected: + void DoTimerEvent(); + + virtual bool AnimateShow( const wxRect& rect, int flags ); +#endif // wxUSE_COMBOCTRL_POPUP_ANIMATION + +protected: + + // Dummy method - we override all functions that call this + virtual WXHWND GetEditHWND() const { return NULL; } // customization virtual void OnResize(); virtual wxCoord GetNativeTextIndent() const; - virtual void OnThemeChange(); // event handlers void OnPaintEvent( wxPaintEvent& event ); void OnMouseEvent( wxMouseEvent& event ); + virtual bool HasTransparentBackground() { return IsDoubleBuffered(); } + private: void Init(); +#if wxUSE_COMBOCTRL_POPUP_ANIMATION + // Popup animation related + wxLongLong m_animStart; + wxTimer m_animTimer; + wxRect m_animRect; + int m_animFlags; +#endif + DECLARE_EVENT_TABLE() DECLARE_DYNAMIC_CLASS(wxComboCtrl)