]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/headercol.h
activating DrawRectangle optimization
[wxWidgets.git] / include / wx / headercol.h
index a52713d2285f7d343d06287c0309c811effd95ce..58736edb0262b3b00a5b6ba9fb9994ea3968879e 100644 (file)
 enum
 {
     // special value for column width meaning unspecified/default
 enum
 {
     // special value for column width meaning unspecified/default
-    wxCOL_WIDTH_DEFAULT = -1
+    wxCOL_WIDTH_DEFAULT = -1,
+
+    // size the column automatically to fit all values
+    wxCOL_WIDTH_AUTOSIZE = -2
 };
 
 // bit masks for the various column attributes
 };
 
 // bit masks for the various column attributes
@@ -94,7 +97,7 @@ public:
     // unspecified/default
     virtual int GetWidth() const = 0;
 
     // unspecified/default
     virtual int GetWidth() const = 0;
 
-    // minimal width can be set for resizeable columns to forbid resizing them
+    // minimal width can be set for resizable columns to forbid resizing them
     // below the specified size (set to 0 to remove)
     virtual int GetMinWidth() const = 0;
 
     // below the specified size (set to 0 to remove)
     virtual int GetMinWidth() const = 0;
 
@@ -174,8 +177,8 @@ public:
     void ClearFlag(int flag);
     void ToggleFlag(int flag);
 
     void ClearFlag(int flag);
     void ToggleFlag(int flag);
 
-    virtual void SetResizeable(bool resizeable)
-        { ChangeFlag(wxCOL_RESIZABLE, resizeable); }
+    virtual void SetResizeable(bool resizable)
+        { ChangeFlag(wxCOL_RESIZABLE, resizable); }
     virtual void SetSortable(bool sortable)
         { ChangeFlag(wxCOL_SORTABLE, sortable); }
     virtual void SetReorderable(bool reorderable)
     virtual void SetSortable(bool sortable)
         { ChangeFlag(wxCOL_SORTABLE, sortable); }
     virtual void SetReorderable(bool reorderable)
@@ -183,8 +186,12 @@ public:
     virtual void SetHidden(bool hidden)
         { ChangeFlag(wxCOL_HIDDEN, hidden); }
 
     virtual void SetHidden(bool hidden)
         { ChangeFlag(wxCOL_HIDDEN, hidden); }
 
-    virtual void SetAsSortKey(bool sort = true) = 0;
-    void UnsetAsSortKey() { SetAsSortKey(false); }
+    // This function can be called to indicate that this column is not used for
+    // sorting any more. Under some platforms it's not necessary to do anything
+    // in this case as just setting another column as a sort key takes care of
+    // everything but under MSW we currently need to call this explicitly to
+    // reset the sort indicator displayed on the column.
+    virtual void UnsetAsSortKey() { }
 
     virtual void SetSortOrder(bool ascending) = 0;
     void ToggleSortOrder() { SetSortOrder(!IsSortOrderAscending()); }
 
     virtual void SetSortOrder(bool ascending) = 0;
     void ToggleSortOrder() { SetSortOrder(!IsSortOrderAscending()); }
@@ -246,10 +253,15 @@ public:
     virtual void SetFlags(int flags) { m_flags = flags; }
     virtual int GetFlags() const { return m_flags; }
 
     virtual void SetFlags(int flags) { m_flags = flags; }
     virtual int GetFlags() const { return m_flags; }
 
-    virtual void SetAsSortKey(bool sort = true) { m_sort = sort; }
     virtual bool IsSortKey() const { return m_sort; }
     virtual bool IsSortKey() const { return m_sort; }
+    virtual void UnsetAsSortKey() { m_sort = false; }
+
+    virtual void SetSortOrder(bool ascending)
+    {
+        m_sort = true;
+        m_sortAscending = ascending;
+    }
 
 
-    virtual void SetSortOrder(bool ascending) { m_sortAscending = ascending; }
     virtual bool IsSortOrderAscending() const { return m_sortAscending; }
 
 private:
     virtual bool IsSortOrderAscending() const { return m_sortAscending; }
 
 private: