]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/headerctrl.h
support for iPhone callbacks
[wxWidgets.git] / interface / wx / headerctrl.h
index b12548fe679d49c6e35ef8073df253a6aa22f4ea..0903bd6049b4139b9045489f84919df72635316c 100644 (file)
@@ -5,9 +5,25 @@
 // Created:     2008-12-01
 // RCS-ID:      $Id$
 // Copyright:   (c) 2008 Vadim Zeitlin <vadim@wxwidgets.org>
 // Created:     2008-12-01
 // RCS-ID:      $Id$
 // Copyright:   (c) 2008 Vadim Zeitlin <vadim@wxwidgets.org>
-// Licence:     wxWindows license
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 /////////////////////////////////////////////////////////////////////////////
 
+
+enum
+{
+    // allow column drag and drop
+    wxHD_ALLOW_REORDER = 0x0001,
+
+    // allow hiding (and showing back) the columns using the menu shown by
+    // right clicking the header
+    wxHD_ALLOW_HIDE = 0x0002,
+
+    // style used by default when creating the control
+    wxHD_DEFAULT_STYLE = wxHD_ALLOW_REORDER
+};
+
+
+
 /**
     @class wxHeaderCtrl
 
 /**
     @class wxHeaderCtrl
 
@@ -66,7 +82,7 @@
         @c wxHD_ALLOW_REORDER.
     @endStyleTable
 
         @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)}
     @event{EVT_HEADER_CLICK(id, func)}
         A column heading was clicked.
     @event{EVT_HEADER_RIGHT_CLICK(id, func)}
@@ -374,6 +390,13 @@ public:
      */
     bool ShowCustomizeDialog();
 
      */
     bool ShowCustomizeDialog();
 
+    /**
+        Returns width needed for given column's title.
+
+        @since 2.9.4
+     */
+    int GetColumnTitleWidth(const wxHeaderColumn& col);
+
 protected:
     /**
         Method to be implemented by the derived classes to return the
 protected:
     /**
         Method to be implemented by the derived classes to return the
@@ -383,7 +406,7 @@ protected:
             The column index, between 0 and the value last passed to
             SetColumnCount().
      */
             The column index, between 0 and the value last passed to
             SetColumnCount().
      */
-    virtual const wxHeaderColumnBase& GetColumn(unsigned int idx) const = 0;
+    virtual const wxHeaderColumn& GetColumn(unsigned int idx) const = 0;
 
     /**
         Method called when the column visibility is changed by the user.
 
     /**
         Method called when the column visibility is changed by the user.
@@ -439,7 +462,7 @@ protected:
         to fit its width on header double click you need to implement this
         method using logic similar to this example:
         @code
         to fit its width on header double click you need to implement this
         method using logic similar to this example:
         @code
-            class MyHeaderCtrl : public wxHeaderColumnBase
+            class MyHeaderColumn : public wxHeaderColumn
             {
             public:
                 ...
             {
             public:
                 ...
@@ -455,7 +478,7 @@ protected:
             {
             public:
             protected:
             {
             public:
             protected:
-                virtual wxHeaderColumnBase& GetColumn(unsigned int idx) const
+                virtual wxHeaderColumn& GetColumn(unsigned int idx) const
                 {
                     return m_cols[idx];
                 }
                 {
                     return m_cols[idx];
                 }
@@ -645,34 +668,56 @@ protected:
     Event class representing the events generated by wxHeaderCtrl.
 
     @library{wxcore}
     Event class representing the events generated by wxHeaderCtrl.
 
     @library{wxcore}
-    @category{ctrl}
+    @category{events}
 
     @see wxHeaderCtrl
 */
 class wxHeaderCtrlEvent : public wxNotifyEvent
 {
 public:
 
     @see wxHeaderCtrl
 */
 class wxHeaderCtrlEvent : public wxNotifyEvent
 {
 public:
+    wxHeaderCtrlEvent(wxEventType commandType = wxEVT_NULL, int winid = 0);
+    wxHeaderCtrlEvent(const wxHeaderCtrlEvent& event);
+
     /**
         Return the index of the column affected by this event.
 
         This method can be called for all header control events.
      */
     int GetColumn() const;
     /**
         Return the index of the column affected by this event.
 
         This method can be called for all header control events.
      */
     int GetColumn() const;
-
+    void SetColumn(int col);
+    
     /**
         Return the current width of the column.
 
         This method can only be called for the dragging events.
      */
     int GetWidth() const;
     /**
         Return the current width of the column.
 
         This method can only be called for the dragging events.
      */
     int GetWidth() const;
-
+    void SetWidth(int width);
+    
     /**
         Return the new order of the column.
 
     /**
         Return the new order of the column.
 
-        This method can only be called for end reorder event for which it
+        This method can only be called for a reorder event for which it
         indicates the tentative new position for the column GetColumn()
         selected by the user. If the event is not vetoed, this will become the
         new column position in wxHeaderCtrl::GetColumnsOrder().
      */
     unsigned int GetNewOrder() const;
         indicates the tentative new position for the column GetColumn()
         selected by the user. If the event is not vetoed, this will become the
         new column position in wxHeaderCtrl::GetColumnsOrder().
      */
     unsigned int GetNewOrder() const;
+    void SetNewOrder(unsigned int order);
 };
 };
+
+
+
+wxEventType wxEVT_HEADER_CLICK;
+wxEventType wxEVT_HEADER_RIGHT_CLICK;
+wxEventType wxEVT_HEADER_MIDDLE_CLICK;
+wxEventType wxEVT_HEADER_DCLICK;
+wxEventType wxEVT_HEADER_RIGHT_DCLICK;
+wxEventType wxEVT_HEADER_MIDDLE_DCLICK;
+wxEventType wxEVT_HEADER_SEPARATOR_DCLICK;
+wxEventType wxEVT_HEADER_BEGIN_RESIZE;
+wxEventType wxEVT_HEADER_RESIZING;
+wxEventType wxEVT_HEADER_END_RESIZE;
+wxEventType wxEVT_HEADER_BEGIN_REORDER;
+wxEventType wxEVT_HEADER_END_REORDER;
+wxEventType wxEVT_HEADER_DRAGGING_CANCELLED;