]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/odcombo.h
use (new) wxAcceleratorEntry::Create() instead of recently deprecated wxGetAccelFromS...
[wxWidgets.git] / include / wx / odcombo.h
index c775096e31f1703725b9dc870025139ebb6d58ab..c187957c3146b90ef74cafd57a9b2be249b4baeb 100644 (file)
@@ -19,6 +19,7 @@
 #include "wx/combo.h"
 #include "wx/ctrlsub.h"
 #include "wx/vlbox.h"
+#include "wx/timer.h"
 
 
 //
@@ -110,7 +111,7 @@ public:
 protected:
 
     // Called by OnComboDoubleClick and OnComboKeyEvent
-    bool HandleKey( int keycode, bool saturate );
+    bool HandleKey( int keycode, bool saturate, wxChar unicode = 0 );
 
     // sends combobox select event from the parent combo control
     void SendComboBoxEvent( int selection );
@@ -157,6 +158,15 @@ protected:
     void OnKey(wxKeyEvent& event);
     void OnLeftClick(wxMouseEvent& event);
 
+    // Return the widest item width (recalculating it if necessary)
+    int GetWidestItemWidth() { CalcWidths(); return m_widestWidth; }
+
+    // Return the index of the widest item (recalculating it if necessary)
+    int GetWidestItem() { CalcWidths(); return m_widestItem; }
+
+    // Stop partial completion (when some other event occurs)
+    void StopPartialCompletion();
+
     wxArrayString           m_strings;
     wxArrayPtrVoid          m_clientDatas;
 
@@ -189,6 +199,17 @@ private:
     // has the mouse been released on this control?
     bool                    m_clicked;
 
+    // Recalculate widths if they are dirty
+    void CalcWidths();
+
+    // Partial completion string
+    wxString                m_partialCompletionString;
+
+#if wxUSE_TIMER
+    // Partial completion timer
+    wxTimer                 m_partialCompletionTimer;
+#endif // wxUSE_TIMER
+
     DECLARE_EVENT_TABLE()
 };
 
@@ -293,6 +314,12 @@ public:
         wxComboCtrl::SetSelection(from,to);
     }
 
+    // Return the widest item width (recalculating it if necessary)
+    virtual int GetWidestItemWidth() { EnsurePopupControl(); return GetVListBoxComboPopup()->GetWidestItemWidth(); }
+
+    // Return the index of the widest item (recalculating it if necessary)
+    virtual int GetWidestItem() { EnsurePopupControl(); return GetVListBoxComboPopup()->GetWidestItem(); }
+
     wxCONTROL_ITEMCONTAINER_CLIENTDATAOBJECT_RECAST
 
 protected: