#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
// 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;
// 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;
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)
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()); }
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:
bool m_sort,
m_sortAscending;
};
+
+#endif // wxUSE_HEADERCTRL
+
#endif // _WX_HEADERCOL_H_