From dcb6cbecc890c65e15ade46ca416b4c353bb7e8f Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Thu, 11 Dec 2008 13:05:48 +0000 Subject: [PATCH] extract setters from wxHeaderColumnBase into a separate wxSettableHeaderColumn class as we don't always need to implement them in order to use this class; also renamed wxHeaderColumnBase to just wxHeaderColumn as we didn't have any wxHeaderColumn at all git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57246 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/dataview.h | 2 +- include/wx/headercol.h | 110 +++++++++------ include/wx/headerctrl.h | 4 +- interface/wx/headercol.h | 253 +++++++++++++++++++---------------- src/common/headercolcmn.cpp | 34 ++--- src/common/headerctrlcmn.cpp | 2 +- src/generic/datavgen.cpp | 6 +- src/generic/headerctrlg.cpp | 6 +- src/gtk/dataview.cpp | 2 +- src/msw/headerctrl.cpp | 2 +- 10 files changed, 233 insertions(+), 188 deletions(-) diff --git a/include/wx/dataview.h b/include/wx/dataview.h index 37b153843f..062ad743e2 100644 --- a/include/wx/dataview.h +++ b/include/wx/dataview.h @@ -508,7 +508,7 @@ enum wxDataViewColumnFlags wxDATAVIEW_COL_HIDDEN = wxCOL_HIDDEN }; -class WXDLLIMPEXP_ADV wxDataViewColumnBase : public wxHeaderColumnBase +class WXDLLIMPEXP_ADV wxDataViewColumnBase : public wxSettableHeaderColumn { public: // ctor for the text columns: takes ownership of renderer diff --git a/include/wx/headercol.h b/include/wx/headercol.h index 548298a831..183e46d097 100644 --- a/include/wx/headercol.h +++ b/include/wx/headercol.h @@ -43,11 +43,11 @@ enum }; // ---------------------------------------------------------------------------- -// wxHeaderColumnBase: interface for a column in a header of controls such as -// wxListCtrl, wxDataViewCtrl or wxGrid +// wxHeaderColumn: interface for a column in a header of controls such as +// wxListCtrl, wxDataViewCtrl or wxGrid // ---------------------------------------------------------------------------- -class WXDLLIMPEXP_CORE wxHeaderColumnBase +class WXDLLIMPEXP_CORE wxHeaderColumn { public: // ctors and dtor @@ -69,80 +69,65 @@ public: // virtual dtor for the base class to avoid gcc warnings even though we // don't normally delete the objects of this class via a pointer to - // wxHeaderColumnBase so it's not necessary, strictly speaking - virtual ~wxHeaderColumnBase() { } + // wxHeaderColumn so it's not necessary, strictly speaking + virtual ~wxHeaderColumn() { } + // getters for various attributes + // ------------------------------ - // setters and getters for various attributes - // ------------------------------------------ + // notice that wxHeaderColumn only provides getters as this is all the + // wxHeaderCtrl needs, various derived class must also provide some way to + // change these attributes but this can be done either at the column level + // (in which case they should inherit from wxSettableHeaderColumn) or via + // the methods of the main control in which case you don't need setters in + // the column class at all // title is the string shown for this column - virtual void SetTitle(const wxString& title) = 0; virtual wxString GetTitle() const = 0; // bitmap shown (instead of text) in the column header - virtual void SetBitmap(const wxBitmap& bitmap) = 0; virtual wxBitmap GetBitmap() const = 0; \ // width of the column in pixels, can be set to wxCOL_WIDTH_DEFAULT meaning // unspecified/default - virtual void SetWidth(int width) = 0; virtual int GetWidth() const = 0; // minimal width can be set for resizeable columns to forbid resizing them // below the specified size (set to 0 to remove) - virtual void SetMinWidth(int minWidth) = 0; virtual int GetMinWidth() const = 0; // alignment of the text: wxALIGN_CENTRE, wxALIGN_LEFT or wxALIGN_RIGHT - virtual void SetAlignment(wxAlignment align) = 0; virtual wxAlignment GetAlignment() const = 0; // flags manipulations: // -------------------- - // notice that while we make Set/GetFlags() pure virtual here and implement - // the individual flags access in terms of them, for some derived classes - // it is more natural to implement access to each flag individually, in - // which case they can use SetIndividualFlags() and GetFromIndividualFlags() - // below to implement Set/GetFlags() + // notice that while we make GetFlags() pure virtual here and implement the + // individual flags access in terms of it, for some derived classes it is + // more natural to implement access to each flag individually, in which + // case they can use our GetFromIndividualFlags() helper below to implement + // GetFlags() - // set or retrieve all column flags at once: combination of wxCOL_XXX - // values above - virtual void SetFlags(int flags) = 0; + // retrieve all column flags at once: combination of wxCOL_XXX values above virtual int GetFlags() const = 0; - // change, set, clear, toggle or test for any individual flag - void ChangeFlag(int flag, bool set); - void SetFlag(int flag); - void ClearFlag(int flag); - void ToggleFlag(int flag); - bool HasFlag(int flag) const { return (GetFlags() & flag) != 0; } // wxCOL_RESIZABLE - virtual void SetResizeable(bool resizeable) - { ChangeFlag(wxCOL_RESIZABLE, resizeable); } virtual bool IsResizeable() const { return HasFlag(wxCOL_RESIZABLE); } // wxCOL_SORTABLE - virtual void SetSortable(bool sortable) - { ChangeFlag(wxCOL_SORTABLE, sortable); } virtual bool IsSortable() const { return HasFlag(wxCOL_SORTABLE); } // wxCOL_REORDERABLE - virtual void SetReorderable(bool reorderable) - { ChangeFlag(wxCOL_REORDERABLE, reorderable); } virtual bool IsReorderable() const { return HasFlag(wxCOL_REORDERABLE); } // wxCOL_HIDDEN - virtual void SetHidden(bool hidden) - { ChangeFlag(wxCOL_HIDDEN, hidden); } virtual bool IsHidden() const { return HasFlag(wxCOL_HIDDEN); } bool IsShown() const @@ -152,30 +137,67 @@ public: // sorting // ------- - // set this column as the one used to sort the control - virtual void SetAsSortKey(bool sort = true) = 0; - void UnsetAsSortKey() { SetAsSortKey(false); } - - // return true if the column is used for sorting + // return true if the column is the one currently used for sorting virtual bool IsSortKey() const = 0; // for sortable columns indicate whether we should sort in ascending or // descending order (this should only be taken into account if IsSortKey()) + virtual bool IsSortOrderAscending() const = 0; + +protected: + // helper for the class overriding IsXXX() + int GetFromIndividualFlags() const; +}; + +// ---------------------------------------------------------------------------- +// wxSettableHeaderColumn: column which allows to change its fields too +// ---------------------------------------------------------------------------- + +class wxSettableHeaderColumn : public wxHeaderColumn +{ +public: + virtual void SetTitle(const wxString& title) = 0; + virtual void SetBitmap(const wxBitmap& bitmap) = 0; + virtual void SetWidth(int width) = 0; + virtual void SetMinWidth(int minWidth) = 0; + virtual void SetAlignment(wxAlignment align) = 0; + + // see comment for wxHeaderColumn::GetFlags() about the relationship + // between SetFlags() and Set{Sortable,Reorderable,...} + + // change, set, clear, toggle or test for any individual flag + virtual void SetFlags(int flags) = 0; + void ChangeFlag(int flag, bool set); + void SetFlag(int flag); + void ClearFlag(int flag); + void ToggleFlag(int flag); + + virtual void SetResizeable(bool resizeable) + { ChangeFlag(wxCOL_RESIZABLE, resizeable); } + virtual void SetSortable(bool sortable) + { ChangeFlag(wxCOL_SORTABLE, sortable); } + virtual void SetReorderable(bool reorderable) + { ChangeFlag(wxCOL_REORDERABLE, reorderable); } + virtual void SetHidden(bool hidden) + { ChangeFlag(wxCOL_HIDDEN, hidden); } + + virtual void SetAsSortKey(bool sort = true) = 0; + void UnsetAsSortKey() { SetAsSortKey(false); } + virtual void SetSortOrder(bool ascending) = 0; void ToggleSortOrder() { SetSortOrder(!IsSortOrderAscending()); } - virtual bool IsSortOrderAscending() const = 0; protected: - // helpers for the class overriding Set/IsXXX() + // helper for the class overriding individual SetXXX() methods instead of + // overriding SetFlags() void SetIndividualFlags(int flags); - int GetFromIndividualFlags() const; }; // ---------------------------------------------------------------------------- -// wxHeaderColumnSimple: trivial generic implementation of wxHeaderColumnBase +// wxHeaderColumnSimple: trivial generic implementation of wxHeaderColumn // ---------------------------------------------------------------------------- -class wxHeaderColumnSimple : public wxHeaderColumnBase +class wxHeaderColumnSimple : public wxSettableHeaderColumn { public: // ctors and dtor diff --git a/include/wx/headerctrl.h b/include/wx/headerctrl.h index 82d6507271..d3223c7131 100644 --- a/include/wx/headerctrl.h +++ b/include/wx/headerctrl.h @@ -113,7 +113,7 @@ public: protected: // this method must be implemented by the derived classes to return the // information for the given column - virtual wxHeaderColumnBase& GetColumn(unsigned int idx) = 0; + virtual wxHeaderColumn& GetColumn(unsigned int idx) = 0; // this method is called from the default EVT_HEADER_SEPARATOR_DCLICK // handler to update the fitting column width of the given column, it @@ -241,7 +241,7 @@ public: protected: // implement/override base class methods - virtual wxHeaderColumnBase& GetColumn(unsigned int idx); + virtual wxHeaderColumn& GetColumn(unsigned int idx); virtual bool UpdateColumnWidthToFit(unsigned int idx, int widthTitle); // and define another one to be overridden in the derived classes: it diff --git a/interface/wx/headercol.h b/interface/wx/headercol.h index 906f32409d..5c63468e3e 100644 --- a/interface/wx/headercol.h +++ b/interface/wx/headercol.h @@ -42,9 +42,18 @@ enum Notice that this is an abstract base class which is implemented (usually using the information stored in the associated control) by the different - controls using wxHeaderCtrl. You may use wxHeaderCtrlSimple which uses - concrete wxHeaderColumnSimple if you don't already store the column - information somewhere. + controls using wxHeaderCtrl. As the control only needs to retrieve the + information about the column, this class defines only the methods for + accessing the various column properties but not for changing them as the + setters might not be needed at all, e.g. if the column attributes can only + be changed via the methods of the main associated control (this is the case + for wxGrid for example). If you do want to allow changing them directly + using the column itself, you should inherit from wxSettableHeaderColumn + instead of this class. + + Finally, if you don't already store the column information at all anywhere, + you should use the concrete wxHeaderColumnSimple class and + wxHeaderCtrlSimple. @library{wxcore} @category{ctrl} @@ -53,29 +62,138 @@ class wxHeaderColumn { public: /** - Set the text to display in the column header. + Get the text shown in the column header. */ - virtual void SetTitle(const wxString& title) = 0; + virtual wxString GetTitle() const = 0; /** - Get the text shown in the column header. + Returns the bitmap in the header of the column, if any. + + If the column has no associated bitmap, wxNullBitmap should be returned. + */ + virtual wxBitmap GetBitmap() const = 0; + + /** + Returns the current width of the column. + + @return + Width of the column in pixels, never wxCOL_WIDTH_DEFAULT. + */ + virtual int GetWidth() const = 0; + + /** + Return the minimal column width. + + @return + The minimal width such that the user can't resize the column to + lesser size (notice that it is still possible to set the column + width to smaller value from the program code). Return 0 from here + to allow resizing the column to arbitrarily small size. */ - virtual wxString GetTitle() const = 0; + virtual int GetMinWidth() const = 0; /** - Set the bitmap to be displayed in the column header. + Returns the current column alignment. - Notice that the bitmaps displayed in different columns of the same - control must all be of the same size. + @return + One of wxALIGN_CENTRE, wxALIGN_LEFT or wxALIGN_RIGHT. */ - virtual void SetBitmap(const wxBitmap& bitmap) = 0; + virtual wxAlignment GetAlignment() const = 0; + /** - Returns the bitmap in the header of the column, if any. + Get the column flags. + + This method retrieves all the flags at once, you can also use HasFlag() + to test for any individual flag or IsResizeable(), IsSortable(), + IsReorderable() and IsHidden() to test for particular flags. + */ + virtual int GetFlags() const = 0; + + /** + Return @true if the specified flag is currently set for this column. + */ + bool HasFlag(int flag) const; + + + /** + Return true if the column can be resized by the user. + + Equivalent to HasFlag(wxCOL_RESIZABLE). + */ + virtual bool IsResizeable() const; - If the column has no associated bitmap, wxNullBitmap is returned. + /** + Returns @true if the column can be clicked by user to sort the control + contents by the field in this column. + + This corresponds to wxCOL_SORTABLE flag which is off by default. */ - virtual wxBitmap GetBitmap() const = 0; + virtual bool IsSortable() const; + + /** + Returns @true if the column can be dragged by user to change its order. + + This corresponds to wxCOL_REORDERABLE flag which is on by default. + */ + virtual bool IsReorderable() const; + + /** + Returns @true if the column is currently hidden. + + This corresponds to wxCOL_HIDDEN flag which is off by default. + */ + virtual bool IsHidden() const; + + /** + Returns @true if the column is currently shown. + + This corresponds to the absence of wxCOL_HIDDEN flag. + */ + bool IsShown() const; + + + /** + Returns @true if the column is currently used for sorting. + */ + virtual bool IsSortKey() const = 0; + + /** + Returns @true, if the sort order is ascending. + + Notice that it only makes sense to call this function if the column is + used for sorting at all, i.e. if IsSortKey() returns @true. + */ + virtual bool IsSortOrderAscending() const = 0; +}; + +/** + @class wxSettableHeaderColumn + + Adds methods to set the column attributes to wxHeaderColumn. + + This class adds setters for the column attributes defined by + wxHeaderColumn. It is still an abstract base class and needs to be + implemented before using it with wxHeaderCtrl. + + @library{wxcore} + @category{ctrl} + */ +class wxSettableHeaderColumn : public wxHeaderColumn +{ +public: + /** + Set the text to display in the column header. + */ + virtual void SetTitle(const wxString& title) = 0; + + /** + Set the bitmap to be displayed in the column header. + + Notice that the bitmaps displayed in different columns of the same + control must all be of the same size. + */ + virtual void SetBitmap(const wxBitmap& bitmap) = 0; /** Set the column width. @@ -86,14 +204,6 @@ public: */ virtual void SetWidth(int width) = 0; - /** - Returns the current width of the column. - - @return - Width of the column in pixels, never wxCOL_WIDTH_DEFAULT. - */ - virtual int GetWidth() const = 0; - /** Set the minimal column width. @@ -108,14 +218,6 @@ public: */ virtual void SetMinWidth(int minWidth) = 0; - /** - Return the minimal column width. - - @return - The value previously set by SetMinWidth() or 0 by default. - */ - virtual int GetMinWidth() const = 0; - /** Set the alignment of the column header. @@ -129,14 +231,6 @@ public: */ virtual void SetAlignment(wxAlignment align) = 0; - /** - Returns the current column alignment. - - @return - One of wxALIGN_CENTRE, wxALIGN_LEFT or wxALIGN_RIGHT. - */ - virtual wxAlignment GetAlignment() const = 0; - /** Set the column flags. @@ -189,22 +283,6 @@ public: */ void ToggleFlag(int flag); - /** - Get the column flags. - - This method retrieves all the flags at once, you can also use HasFlag() - to test for any individual flag or IsResizeable(), IsSortable(), - IsReorderable() and IsHidden() to test for particular flags. - - @see SetFlags() - */ - virtual int GetFlags() const = 0; - - /** - Return @true if the specified flag is currently set for this column. - */ - bool HasFlag(int flag) const; - /** Call this to enable or disable interactive resizing of the column by @@ -216,13 +294,6 @@ public: */ virtual void SetResizeable(bool resizeable); - /** - Return true if the column can be resized by the user. - - Equivalent to HasFlag(wxCOL_RESIZABLE). - */ - virtual bool IsResizeable() const; - /** Allow clicking the column to sort the control contents by the field in this column. @@ -235,16 +306,6 @@ public: */ virtual void SetSortable(bool sortable); - /** - Returns @true if the column can be clicked by user to sort the control - contents by the field in this column. - - This corresponds to wxCOL_SORTABLE flag which is off by default. - - @see SetSortable() - */ - virtual bool IsSortable() const; - /** Allow changing the column order by dragging it. @@ -252,15 +313,6 @@ public: */ virtual void SetReorderable(bool reorderable); - /** - Returns @true if the column can be dragged by user to change its order. - - This corresponds to wxCOL_REORDERABLE flag which is on by default. - - @see SetReorderable() - */ - virtual bool IsReorderable() const; - /** Hide or show the column. @@ -271,21 +323,6 @@ public: */ virtual void SetHidden(bool hidden); - /** - Returns @true if the column is currently hidden. - - This corresponds to wxCOL_HIDDEN flag which is off by default. - */ - virtual bool IsHidden() const; - - /** - Returns @true if the column is currently shown. - - This corresponds to the absence of wxCOL_HIDDEN flag. - */ - bool IsShown() const; - - /** Sets this column as the sort key for the associated control. @@ -312,16 +349,6 @@ public: */ void UnsetAsSortKey(); - /** - Returns @true if the column is currently used for sorting. - - Notice that this function simply returns the value last passed to - SetAsSortKey() (or @false if SetAsSortKey() had never been called), it - is up to the associated control to use this information to actually - sort its contents. - */ - virtual bool IsSortKey() const = 0; - /** Sets the sort order for this column. @@ -345,16 +372,6 @@ public: @see SetSortOrder(), IsSortOrderAscending() */ void ToggleSortOrder(); - - /** - Returns @true, if the sort order is ascending. - - Notice that it only makes sense to call this function if the column is - used for sorting at all, i.e. if IsSortKey() returns @true. - - @see SetSortOrder() - */ - virtual bool IsSortOrderAscending() const = 0; }; /** @@ -362,9 +379,9 @@ public: Simple container for the information about the column. - This is a concrete class implementing all base wxHeaderColumn class methods - in a trivial way, i.e. by just storing the information in the object - itself. It is used by and with wxHeaderCtrlSimple, e.g. + This is a concrete class implementing all wxSettableHeaderColumn class + methods in a trivial way, i.e. by just storing the information in the + object itself. It is used by and with wxHeaderCtrlSimple, e.g. @code wxHeaderCtrlSimple * header = new wxHeaderCtrlSimple(...); wxHeaderColumnSimple col("Title"); diff --git a/src/common/headercolcmn.cpp b/src/common/headercolcmn.cpp index 1a6a3cc0ba..27e4843300 100644 --- a/src/common/headercolcmn.cpp +++ b/src/common/headercolcmn.cpp @@ -1,6 +1,6 @@ /////////////////////////////////////////////////////////////////////////////// // Name: src/common/headercolcmn.cpp -// Purpose: wxHeaderColumnBase implementation +// Purpose: wxHeaderColumn implementation // Author: Vadim Zeitlin // Created: 2008-12-02 // RCS-ID: $Id$ @@ -29,18 +29,10 @@ #include "wx/headercol.h" // ============================================================================ -// wxHeaderColumnBase implementation +// wxHeaderColumn implementation // ============================================================================ -void wxHeaderColumnBase::SetIndividualFlags(int flags) -{ - SetResizeable((flags & wxCOL_RESIZABLE) != 0); - SetSortable((flags & wxCOL_SORTABLE) != 0); - SetReorderable((flags & wxCOL_REORDERABLE) != 0); - SetHidden((flags & wxCOL_HIDDEN) != 0); -} - -int wxHeaderColumnBase::GetFromIndividualFlags() const +int wxHeaderColumn::GetFromIndividualFlags() const { int flags = 0; @@ -56,27 +48,39 @@ int wxHeaderColumnBase::GetFromIndividualFlags() const return flags; } -void wxHeaderColumnBase::ChangeFlag(int flag, bool set) +// ============================================================================ +// wxSettableHeaderColumn implementation +// ============================================================================ + +void wxSettableHeaderColumn::SetIndividualFlags(int flags) +{ + SetResizeable((flags & wxCOL_RESIZABLE) != 0); + SetSortable((flags & wxCOL_SORTABLE) != 0); + SetReorderable((flags & wxCOL_REORDERABLE) != 0); + SetHidden((flags & wxCOL_HIDDEN) != 0); +} + +void wxSettableHeaderColumn::ChangeFlag(int flag, bool set) { if ( HasFlag(flag) != set ) ToggleFlag(flag); } -void wxHeaderColumnBase::SetFlag(int flag) +void wxSettableHeaderColumn::SetFlag(int flag) { int flags = GetFlags(); if ( !(flags & flag) ) SetFlags(flags | flag); } -void wxHeaderColumnBase::ClearFlag(int flag) +void wxSettableHeaderColumn::ClearFlag(int flag) { int flags = GetFlags(); if ( flags & flag ) SetFlags(flags & ~flag); } -void wxHeaderColumnBase::ToggleFlag(int flag) +void wxSettableHeaderColumn::ToggleFlag(int flag) { int flags = GetFlags(); if ( flags & flag ) diff --git a/src/common/headerctrlcmn.cpp b/src/common/headerctrlcmn.cpp index 0199090a84..2cc69b4566 100644 --- a/src/common/headerctrlcmn.cpp +++ b/src/common/headerctrlcmn.cpp @@ -149,7 +149,7 @@ void wxHeaderCtrlSimple::Init() m_sortKey = wxNO_COLUMN; } -wxHeaderColumnBase& wxHeaderCtrlSimple::GetColumn(unsigned int idx) +wxHeaderColumn& wxHeaderCtrlSimple::GetColumn(unsigned int idx) { return m_cols[idx]; } diff --git a/src/generic/datavgen.cpp b/src/generic/datavgen.cpp index b15e2eb4d4..21483c4910 100644 --- a/src/generic/datavgen.cpp +++ b/src/generic/datavgen.cpp @@ -91,7 +91,7 @@ public: protected: // implement/override wxHeaderCtrl functions by forwarding them to the main // control - virtual wxHeaderColumnBase& GetColumn(unsigned int idx) + virtual wxHeaderColumn& GetColumn(unsigned int idx) { return *(GetOwner()->GetColumn(idx)); } @@ -176,8 +176,10 @@ private: void OnEndResize(wxHeaderCtrlEvent& event) { + wxDataViewCtrl * const owner = GetOwner(); + const unsigned col = event.GetColumn(); - GetColumn(col).SetWidth(event.GetWidth()); + owner->GetColumn(col)->SetWidth(event.GetWidth()); GetOwner()->OnColumnChange(col); } diff --git a/src/generic/headerctrlg.cpp b/src/generic/headerctrlg.cpp index 85548d7b97..f1a98083c2 100644 --- a/src/generic/headerctrlg.cpp +++ b/src/generic/headerctrlg.cpp @@ -170,7 +170,7 @@ int wxHeaderCtrl::GetColStart(unsigned int idx) const if ( i == idx ) break; - const wxHeaderColumnBase& col = self->GetColumn(i); + const wxHeaderColumn& col = self->GetColumn(i); if ( col.IsShown() ) pos += col.GetWidth(); } @@ -194,7 +194,7 @@ unsigned int wxHeaderCtrl::FindColumnAtPoint(int x, bool *onSeparator) const for ( unsigned n = 0; n < count; n++ ) { const unsigned idx = m_colIndices[n]; - const wxHeaderColumnBase& col = self->GetColumn(idx); + const wxHeaderColumn& col = self->GetColumn(idx); if ( col.IsHidden() ) continue; @@ -531,7 +531,7 @@ void wxHeaderCtrl::OnPaint(wxPaintEvent& WXUNUSED(event)) for ( unsigned int i = 0; i < count; i++ ) { const unsigned idx = m_colIndices[i]; - const wxHeaderColumnBase& col = GetColumn(idx); + const wxHeaderColumn& col = GetColumn(idx); if ( col.IsHidden() ) continue; diff --git a/src/gtk/dataview.cpp b/src/gtk/dataview.cpp index ae58e36199..eca69982ef 100644 --- a/src/gtk/dataview.cpp +++ b/src/gtk/dataview.cpp @@ -2706,7 +2706,7 @@ bool wxDataViewColumn::IsSortable() const void wxDataViewColumn::SetAsSortKey( bool WXUNUSED(sort) ) { - // it might not make sense to have this function in wxHeaderColumnBase at + // it might not make sense to have this function in wxHeaderColumn at // all in fact, changing of the sort order should only be done using the // associated control API wxFAIL_MSG( "not implemented" ); diff --git a/src/msw/headerctrl.cpp b/src/msw/headerctrl.cpp index 5388eca4e1..7336cba3b8 100644 --- a/src/msw/headerctrl.cpp +++ b/src/msw/headerctrl.cpp @@ -172,7 +172,7 @@ void wxHeaderCtrl::DoUpdate(unsigned int idx) void wxHeaderCtrl::DoInsertItem(unsigned int idx, int order) { - const wxHeaderColumnBase& col = GetColumn(idx); + const wxHeaderColumn& col = GetColumn(idx); wxHDITEM hdi; -- 2.45.2