X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f0fa8b47ab4ee055564f5729353edc6da1984cbc..613de0e89efab1cbf8463ea06e0cf0b2914fbce9:/include/wx/odcombo.h diff --git a/include/wx/odcombo.h b/include/wx/odcombo.h index c187957c31..1c803aa5a2 100644 --- a/include/wx/odcombo.h +++ b/include/wx/odcombo.h @@ -40,11 +40,18 @@ enum // // Callback flags (see wxOwnerDrawnComboBox::OnDrawItem) // -enum +enum wxOwnerDrawnComboBoxPaintingFlags { // 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 }; @@ -106,7 +113,7 @@ 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: @@ -133,9 +140,10 @@ protected: // item: item index to be drawn, may be wxNOT_FOUND when painting combo control itself // and there is no valid selection // flags: wxODCB_PAINTING_CONTROL is set if painting to combo control instead of list - // NOTE: If wxVListBoxComboPopup is used with wxComboCtrl class not derived from + // + // NOTE: If wxVListBoxComboPopup is used with a wxComboCtrl class not derived from // wxOwnerDrawnComboBox, this method must be overridden. - virtual void OnDrawItem( wxDC& dc, const wxRect& rect, int item, int flags ) const; + virtual void OnDrawItem( wxDC& dc, const wxRect& rect, int item, int flags) const; // This is same as in wxVListBox virtual wxCoord OnMeasureItem( size_t item ) const; @@ -205,6 +213,8 @@ private: // Partial completion string wxString m_partialCompletionString; + wxString m_stringValue; + #if wxUSE_TIMER // Partial completion timer wxTimer m_partialCompletionTimer; @@ -297,8 +307,6 @@ public: } // wxControlWithItems methods - virtual void Clear(); - virtual void Delete(unsigned int n); virtual unsigned int GetCount() const; virtual wxString GetString(unsigned int n) const; virtual void SetString(unsigned int n, const wxString& s); @@ -320,9 +328,13 @@ 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: + virtual void DoClear(); + virtual void DoDeleteOneItem(unsigned int n); // Callback for drawing. Font, background and text colour have been // prepared according to selection, focus and such. @@ -352,12 +364,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;