Corrected/implemented sorting (by way of clicking on

on the header button) for the generic code.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45527 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robert Roebling
2007-04-18 12:31:35 +00:00
parent b553626907
commit c3112d560e
4 changed files with 30 additions and 6 deletions

View File

@@ -176,6 +176,8 @@ public:
delete m_resizeCursor;
}
virtual void UpdateDisplay() { Refresh(); }
// event handlers:
void OnPaint( wxPaintEvent &event );
@@ -819,6 +821,7 @@ void wxDataViewColumn::Init( int width )
{
m_width = width;
m_minWidth = wxDVC_DEFAULT_MINWIDTH;
m_ascending = true;
}
void wxDataViewColumn::SetResizeable( bool resizeable )
@@ -847,17 +850,24 @@ void wxDataViewColumn::SetSortable( bool sortable )
m_flags |= wxDATAVIEW_COL_SORTABLE;
else
m_flags &= ~wxDATAVIEW_COL_SORTABLE;
// Update header button
if (GetOwner())
GetOwner()->OnColumnChange();
}
void wxDataViewColumn::SetSortOrder( bool WXUNUSED(ascending) )
void wxDataViewColumn::SetSortOrder( bool ascending )
{
// TODO
m_ascending = ascending;
// Update header button
if (GetOwner())
GetOwner()->OnColumnChange();
}
bool wxDataViewColumn::IsSortOrderAscending() const
{
// TODO
return true;
return m_ascending;
}
void wxDataViewColumn::SetInternalWidth( int width )
@@ -1279,13 +1289,23 @@ void wxGenericDataViewHeaderWindow::OnPaint( wxPaintEvent &WXUNUSED(event) )
int cw = col->GetWidth();
int ch = h;
wxHeaderSortIconType sortArrow = wxHDR_SORT_ICON_NONE;
if (col->IsSortable())
{
if (col->IsSortOrderAscending())
sortArrow = wxHDR_SORT_ICON_UP;
else
sortArrow = wxHDR_SORT_ICON_DOWN;
}
wxRendererNative::Get().DrawHeaderButton
(
this,
dc,
wxRect(xpos, 0, cw, ch-1),
m_parent->IsEnabled() ? 0
: (int)wxCONTROL_DISABLED
: (int)wxCONTROL_DISABLED,
sortArrow
);
// align as required the column title: