+ virtual const wxHeaderColumn& GetColumn(unsigned int idx) const = 0;
+
+ /**
+ Method called when the column visibility is changed by the user.
+
+ This method is called from ShowColumnsMenu() or ShowCustomizeDialog()
+ when the user interactively hides or shows a column. A typical
+ implementation will simply update the internally stored column state.
+ Notice that there is no need to call UpdateColumn() from this method as
+ it is already done by wxHeaderCtrl itself.
+
+ The base class version doesn't do anything and must be overridden if
+ this method is called.
+
+ @param idx
+ The index of the column whose visibility was toggled.
+ @param show
+ The new visibility value, @true if the column is now shown or
+ @false if it is not hidden.
+ */
+ virtual void UpdateColumnVisibility(unsigned int idx, bool show);
+
+ /**
+ Method called when the columns order is changed in the customization
+ dialog.
+
+ This method is only called from ShowCustomizeDialog() when the user
+ changes the order of columns. In particular it is @em not called if a
+ single column changes place because the user dragged it to the new
+ location, the EVT_HEADER_END_REORDER event handler should be used to
+ react to this.
+
+ A typical implementation in a derived class will update the display
+ order of the columns in the associated control, if any. Notice that
+ there is no need to call SetColumnsOrder() from it as wxHeaderCtrl does
+ it itself.
+
+ The base class version doesn't do anything and must be overridden if
+ this method is called.
+
+ @param order
+ The new column order. This array uses the same convention as
+ SetColumnsOrder().
+ */
+ virtual void UpdateColumnsOrder(const wxArrayInt& order);