]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/generic/dataview.h
Applied rowspan patch #15276 (dghart)
[wxWidgets.git] / include / wx / generic / dataview.h
index 89b0461623cb0f19193e2c74be00baa995b95c01..fa8ad417c2f61e335b11ce5ae67eb61363ec507d 100644 (file)
@@ -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<int>             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<CachedColWidthInfo> 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;