X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d9e0958c7efdaa3866aa1e699258507884849592..bf7bd4b18521e52b4c6651a974e5f43a0101f71b:/include/wx/odcombo.h?ds=inline diff --git a/include/wx/odcombo.h b/include/wx/odcombo.h index 451ab90e73..7efe58f9e4 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 }; @@ -105,12 +113,12 @@ public: // helpers int GetItemAtPosition( const wxPoint& pos ) { return HitTest(pos); } wxCoord GetTotalHeight() const { return EstimateTotalHeight(); } - wxCoord GetLineHeight(int line) const { return OnGetLineHeight(line); } + wxCoord GetLineHeight(int line) const { return OnGetRowHeight(line); } 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 ); @@ -163,6 +171,9 @@ protected: // 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; @@ -198,6 +209,14 @@ private: // 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() }; @@ -285,8 +304,8 @@ public: } // wxControlWithItems methods - virtual void Clear(); - virtual void Delete(unsigned int n); + virtual void DoClear(); + virtual void DoDeleteOneItem(unsigned int n); virtual unsigned int GetCount() const; virtual wxString GetString(unsigned int n) const; virtual void SetString(unsigned int n, const wxString& s); @@ -308,6 +327,8 @@ public: // Return the index of the widest item (recalculating it if necessary) virtual int GetWidestItem() { EnsurePopupControl(); return GetVListBoxComboPopup()->GetWidestItem(); } + virtual bool IsSorted() const { return HasFlag(wxCB_SORT); } + wxCONTROL_ITEMCONTAINER_CLIENTDATAOBJECT_RECAST protected: @@ -340,12 +361,11 @@ protected: return (wxVListBoxComboPopup*) m_popupInterface; } - virtual int DoAppend(const wxString& item); - virtual int DoInsert(const wxString& item, unsigned int pos); + virtual int DoInsertItems(const wxArrayStringsAdapter& items, + unsigned int pos, + void **clientData, wxClientDataType type); virtual void DoSetItemClientData(unsigned int n, void* clientData); virtual void* DoGetItemClientData(unsigned int n) const; - virtual void DoSetItemClientObject(unsigned int n, wxClientData* clientData); - virtual wxClientData* DoGetItemClientObject(unsigned int n) const; // temporary storage for the initial choices //const wxString* m_baseChoices;