]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/headercol.h
synchronize GTK2 minimum version in docs
[wxWidgets.git] / include / wx / headercol.h
index 183e46d097bff611aa5f0dba2fb840ee664bab71..58736edb0262b3b00a5b6ba9fb9994ea3968879e 100644 (file)
@@ -13,6 +13,8 @@
 
 #include "wx/bitmap.h"
 
+#if wxUSE_HEADERCTRL
+
 // ----------------------------------------------------------------------------
 // constants
 // ----------------------------------------------------------------------------
 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
@@ -92,7 +97,7 @@ public:
     // 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;
 
@@ -153,7 +158,7 @@ protected:
 // wxSettableHeaderColumn: column which allows to change its fields too
 // ----------------------------------------------------------------------------
 
-class wxSettableHeaderColumn : public wxHeaderColumn
+class WXDLLIMPEXP_CORE wxSettableHeaderColumn : public wxHeaderColumn
 {
 public:
     virtual void SetTitle(const wxString& title) = 0;
@@ -172,8 +177,8 @@ public:
     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)
@@ -181,8 +186,12 @@ public:
     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()); }
@@ -244,10 +253,15 @@ public:
     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 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:
@@ -268,5 +282,8 @@ private:
     bool m_sort,
          m_sortAscending;
 };
+
+#endif // wxUSE_HEADERCTRL
+
 #endif // _WX_HEADERCOL_H_