]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/headerctrl.h
don't place NULL pointers in the GDK window array in GTKGetWindow()
[wxWidgets.git] / interface / wx / headerctrl.h
index 02eed62ee4da9ea26fe7718c38bbee3a6ea246da..73142a1959d99a40973a188324ff6591e5ce089d 100644 (file)
@@ -66,7 +66,7 @@
         @c wxHD_ALLOW_REORDER.
     @endStyleTable
 
-    @beginEventTable{wxHeaderCtrlEvent}
+    @beginEventEmissionTable{wxHeaderCtrlEvent}
     @event{EVT_HEADER_CLICK(id, func)}
         A column heading was clicked.
     @event{EVT_HEADER_RIGHT_CLICK(id, func)}
 
     @see wxGrid, wxListCtrl, wxDataViewCtrl
 */
-class wxHeaderCtrl
+class wxHeaderCtrl : public wxControl
 {
 public:
     /**
@@ -325,7 +325,36 @@ public:
             @true if a column was shown or hidden or @false if nothing was
             done, e.g. because the menu was cancelled.
      */
-    int ShowColumnsMenu(const wxPoint& pt, const wxString& title = wxString());
+    bool ShowColumnsMenu(const wxPoint& pt, const wxString& title = wxString());
+
+    /**
+        Helper function appending the checkable items corresponding to all the
+        columns to the given menu.
+
+        This function is used by ShowColumnsMenu() but can also be used if you
+        show your own custom columns menu and still want all the columns shown
+        in it. It appends menu items with column labels as their text and
+        consecutive ids starting from @a idColumnsBase to the menu and checks
+        the items corresponding to the currently visible columns.
+
+        Example of use:
+        @code
+            wxMenu menu;
+            menu.Append(100, "Some custom command");
+            menu.AppendSeparator();
+            AddColumnsItems(menu, 200);
+            const int rc = GetPopupMenuSelectionFromUser(menu, pt);
+            if ( rc >= 200 )
+                ... toggle visibility of the column rc-200 ...
+        @endcode
+
+        @param menu
+            The menu to append the items to. It may be currently empty or not.
+        @param idColumnsBase
+            The id for the menu item corresponding to the first column, the
+            other ones are consecutive starting from it. It should be positive.
+     */
+    void AddColumnsItems(wxMenu& menu, int idColumnsBase = 0);
 
     /**
         Show the column customization dialog.
@@ -525,14 +554,14 @@ public:
 
         @see AppendColumn()
      */
-    void InsertColumn(const wxHeaderColumn& col, unsigned int idx);
+    void InsertColumn(const wxHeaderColumnSimple& col, unsigned int idx);
 
     /**
         Append the column to the end of the control.
 
         @see InsertColumn()
      */
-    void AppendColumn(const wxHeaderColumn& col);
+    void AppendColumn(const wxHeaderColumnSimple& col);
 
     /**
         Delete the column at the given position.
@@ -578,22 +607,20 @@ public:
 
         @param idx
             The column to set the sort indicator for.
+            If @c -1 is given, then the currently shown sort indicator
+            will be removed.
         @param sortOrder
             If @true or @false show the sort indicator corresponding to
-            ascending or descending sort order respectively, if @c -1 remove
-            the currently shown sort indicator.
+            ascending or descending sort order respectively.
      */
-    virtual void ShowSortIndicator(unsigned int idx, int sortOrder);
+    void ShowSortIndicator(unsigned int idx, bool sortOrder = true);
 
     /**
-        Remove the sort indicator from the given column.
-
-        This is the same as calling ShowSortIndicator() with @c -1 argument.
+        Remove the sort indicator from the column being used as sort key.
 
-        @param idx
-            The column to remove sort indicator for.
+        @see ShowSortIndicator
      */
-    void RemoveSortIndicator(unsigned int idx);
+    void RemoveSortIndicator();
 
 protected:
     /**
@@ -618,7 +645,7 @@ protected:
     Event class representing the events generated by wxHeaderCtrl.
 
     @library{wxcore}
-    @category{ctrl}
+    @category{events}
 
     @see wxHeaderCtrl
 */