X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/5769347356c1114f2350d8f23b00406b6ea94fdb..55ccdb93e4ae4b606a4068cb37492c1ec3ed77a6:/include/wx/odcombo.h diff --git a/include/wx/odcombo.h b/include/wx/odcombo.h index c775096e31..d5baadcc36 100644 --- a/include/wx/odcombo.h +++ b/include/wx/odcombo.h @@ -19,6 +19,7 @@ #include "wx/combo.h" #include "wx/ctrlsub.h" #include "wx/vlbox.h" +#include "wx/timer.h" // @@ -43,7 +44,14 @@ enum { // when set, we are painting the selected item in control, // not in the popup - wxODCB_PAINTING_CONTROL = 0x0001 + wxODCB_PAINTING_CONTROL = 0x0001, + + + // when set, we are painting an item which should have + // focus rectangle painted in the background. Text colour + // and clipping region are then appropriately set in + // the default OnDrawBackground implementation. + wxODCB_PAINTING_SELECTED = 0x0002 }; @@ -110,7 +118,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 +165,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 +206,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 +321,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: