]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/headercol.h
Ensure that the overall table border doesn't get overdrawn by cell borders with a...
[wxWidgets.git] / interface / wx / headercol.h
index 5c63468e3e737a0167fdc8d68bdfa379d0ef36b1..60e0a4a3cc24a5b07849dc9639be46e6b73b155a 100644 (file)
@@ -3,15 +3,26 @@
 // Purpose:     interface of wxHeaderColumn
 // Author:      Vadim Zeitlin
 // Created:     2008-12-01
-// RCS-ID:      $Id$
 // Copyright:   (c) 2008 Vadim Zeitlin <vadim@wxwidgets.org>
-// Licence:     wxWindows license
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 /**
-    Special value used for column width meaning unspecified or default.
+    Column width special values.
  */
-enum { wxCOL_WIDTH_DEFAULT = -1 };
+enum
+{
+    /// Special value used for column width meaning unspecified or default.
+    wxCOL_WIDTH_DEFAULT = -1,
+
+    /**
+        Size the column automatically to fit all values.
+
+        @note On OS X, this style is only implemented in the Cocoa build on
+              OS X >= 10.5; it behaves identically to wxCOL_WIDTH_DEFAULT otherwise.
+     */
+    wxCOL_WIDTH_AUTOSIZE = -2
+};
 
 /**
     Bit flags used as wxHeaderColumn flags.
@@ -77,7 +88,8 @@ public:
         Returns the current width of the column.
 
         @return
-            Width of the column in pixels, never wxCOL_WIDTH_DEFAULT.
+            Width of the column in pixels, never wxCOL_WIDTH_DEFAULT or
+            wxCOL_WIDTH_AUTOSIZE.
     */
     virtual int GetWidth() const = 0;
 
@@ -199,15 +211,16 @@ public:
         Set the column width.
 
         @param width
-            The column width in pixels or the special wxCOL_WIDTH_DEFAULT value
-            meaning to use default width.
+            The column width in pixels or the special wxCOL_WIDTH_DEFAULT
+            (meaning to use default width) or wxCOL_WIDTH_AUTOSIZE (size to
+            fit the content) value.
      */
     virtual void SetWidth(int width) = 0;
 
     /**
         Set the minimal column width.
 
-        This method can be used with resizeable columns (i.e. those for which
+        This method can be used with resizable columns (i.e. those for which
         wxCOL_RESIZABLE flag is set in GetFlags() or, alternatively,
         IsResizeable() returns @true) to prevent the user from making them
         narrower than the given width.
@@ -288,11 +301,11 @@ public:
         Call this to enable or disable interactive resizing of the column by
         the user.
 
-        By default, the columns are resizeable.
+        By default, the columns are resizable.
 
-        Equivalent to ChangeFlag(wxCOL_RESIZABLE, resizeable).
+        Equivalent to ChangeFlag(wxCOL_RESIZABLE, resizable).
      */
-    virtual void SetResizeable(bool resizeable);
+    virtual void SetResizeable(bool resizable);
 
     /**
         Allow clicking the column to sort the control contents by the field in
@@ -324,38 +337,26 @@ public:
     virtual void SetHidden(bool hidden);
 
 
-    /**
-        Sets this column as the sort key for the associated control.
-
-        Calling this function with @true argument means that this column is
-        currently used for sorting the control contents and so should typically
-        display an arrow indicating it (the direction of the arrow depends on
-        IsSortOrderAscending() return value).
-
-        Don't confuse this function with SetSortable() which should be used to
-        indicate that the column @em may be used for sorting while this one is
-        used to indicate that it currently @em is used for sorting. Of course,
-        SetAsSortKey() can be only called for sortable columns.
-
-        @param sort
-            Sort (default) or don't sort the control contents by this column.
-     */
-    virtual void SetAsSortKey(bool sort = true) = 0;
-
     /**
         Don't use this column for sorting.
 
-        This is equivalent to calling SetAsSortKey() with @false argument.
+        This is the reverse of SetSortOrder() and is called to indicate that
+        this column is not used for sorting any longer.
      */
     void UnsetAsSortKey();
 
     /**
-        Sets the sort order for this column.
+        Sets this column as the sort key for the associated control.
 
-        This only makes sense for sortable columns which are currently used as
-        sort key, i.e. for which IsSortKey() returns @true and is only taken
-        into account by the control in which this column is inserted, this
-        function just stores the sort order in the wxHeaderColumn object.
+        This function indicates that this column is currently used for sorting
+        the control and also sets the sorting direction. Notice that actual
+        sorting is only done in the control associated with the header, this
+        function doesn't do any sorting on its own.
+
+        Don't confuse this function with SetSortable() which should be used to
+        indicate that the column @em may be used for sorting while this one is
+        used to indicate that it currently @em is used for sorting. Of course,
+        SetSortOrder() can be only called for sortable columns.
 
         @param ascending
             If @true, sort in ascending order, otherwise in descending order.
@@ -393,7 +394,7 @@ public:
     @library{wxcore}
     @category{ctrl}
  */
-class wxHeaderColumnSimple : public wxHeaderColumn
+class wxHeaderColumnSimple : public wxSettableHeaderColumn
 {
 public:
     //@{
@@ -409,7 +410,7 @@ public:
                          int flags = wxCOL_DEFAULT_FLAGS);
 
     wxHeaderColumnSimple(const wxBitmap &bitmap,
-                         int width = wxDVC_DEFAULT_WIDTH,
+                         int width = wxCOL_WIDTH_DEFAULT,
                          wxAlignment align = wxALIGN_CENTER,
                          int flags = wxCOL_DEFAULT_FLAGS);
     //@}
@@ -430,7 +431,6 @@ public:
     virtual wxAlignment GetAlignment() const;
     virtual void SetFlags(int flags);
     virtual int GetFlags() const;
-    virtual void SetAsSortKey(bool sort = true);
     virtual bool IsSortKey() const;
     virtual void SetSortOrder(bool ascending);
     virtual bool IsSortOrderAscending() const;