X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b0272c6014fac8d44a266cc3ef016bc6f36d2745..a4301b8f14d21b7d28fc4f6a247b740d945ca6dc:/include/wx/generic/dataview.h diff --git a/include/wx/generic/dataview.h b/include/wx/generic/dataview.h index 89b0461623..fa8ad417c2 100644 --- a/include/wx/generic/dataview.h +++ b/include/wx/generic/dataview.h @@ -70,7 +70,7 @@ public: virtual bool IsSortKey() const { return m_sort; } - virtual void UnsetAsSortKey() { m_sort = false; UpdateDisplay(); } + virtual void UnsetAsSortKey(); virtual void SetSortOrder(bool ascending); @@ -182,6 +182,8 @@ public: virtual void SetFocus(); + virtual bool SetFont(const wxFont & font); + #if wxUSE_DRAG_AND_DROP virtual bool EnableDragSource( const wxDataFormat &format ); virtual bool EnableDropTarget( const wxDataFormat &format ); @@ -242,10 +244,18 @@ private: void UpdateColWidths(); wxDataViewColumnList m_cols; - // cached column best widths or 0 if not computed, values are for + // cached column best widths information, values are for // respective columns from m_cols and the arrays have same size - wxVector m_colsBestWidths; - // m_colsBestWidths partially invalid, needs recomputing + struct CachedColWidthInfo + { + CachedColWidthInfo() : width(0), dirty(true) {} + int width; // cached width or 0 if not computed + bool dirty; // column was invalidated, header needs updating + }; + wxVector m_colsBestWidths; + // This indicates that at least one entry in m_colsBestWidths has 'dirty' + // flag set. It's cheaper to check one flag in OnInternalIdle() than to + // iterate over m_colsBestWidths to check if anything needs to be done. bool m_colsDirty; wxDataViewModelNotifier *m_notifier;