]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/msw/combo.h
Don't define __STRICT_ANSI__, we should build both with and without it.
[wxWidgets.git] / include / wx / msw / combo.h
index 1147db76e93f06478331d14f7f6170ef24a5c4fc..50dc6eba4f87dbbfb1362779b52625684860824d 100644 (file)
@@ -4,7 +4,6 @@
 // Author:      Jaakko Salli
 // Modified by:
 // Created:     Apr-30-2006
-// RCS-ID:      $Id$
 // Copyright:   (c) Jaakko Salli
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #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 +32,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
@@ -64,20 +71,41 @@ public:
 
     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)