DEFINE_EVENT_TYPE(wxEVT_COMMAND_LIST_KEY_DOWN)
DEFINE_EVENT_TYPE(wxEVT_COMMAND_LIST_INSERT_ITEM)
DEFINE_EVENT_TYPE(wxEVT_COMMAND_LIST_COL_CLICK)
+DEFINE_EVENT_TYPE(wxEVT_COMMAND_LIST_COL_RIGHT_CLICK)
+DEFINE_EVENT_TYPE(wxEVT_COMMAND_LIST_COL_BEGIN_DRAG)
+DEFINE_EVENT_TYPE(wxEVT_COMMAND_LIST_COL_DRAGGING)
+DEFINE_EVENT_TYPE(wxEVT_COMMAND_LIST_COL_END_DRAG)
DEFINE_EVENT_TYPE(wxEVT_COMMAND_LIST_ITEM_RIGHT_CLICK)
DEFINE_EVENT_TYPE(wxEVT_COMMAND_LIST_ITEM_MIDDLE_CLICK)
DEFINE_EVENT_TYPE(wxEVT_COMMAND_LIST_ITEM_ACTIVATED)
m_minX = xpos;
}
- if (event.LeftDown())
+ if (event.LeftDown() || event.RightUp())
{
- if (hit_border)
+ if (hit_border && event.LeftDown())
{
m_isDragging = TRUE;
m_currentX = x;
DrawCurrent();
CaptureMouse();
}
- else
+ else // click on a column
{
wxWindow *parent = GetParent();
- wxListEvent le( wxEVT_COMMAND_LIST_COL_CLICK, parent->GetId() );
+ wxListEvent le( event.LeftDown()
+ ? wxEVT_COMMAND_LIST_COL_CLICK
+ : wxEVT_COMMAND_LIST_COL_RIGHT_CLICK,
+ parent->GetId() );
le.SetEventObject( parent );
le.m_col = m_column;
parent->GetEventHandler()->ProcessEvent( le );
to = GetItemCount() - 1;
}
- if ( HasCurrent() && m_current > from && m_current <= to )
+ if ( HasCurrent() && m_current >= from && m_current <= to )
{
RefreshLine(m_current);
}
_T("SetColumnWidth() can only be called in report mode.") );
m_dirty = TRUE;
+ wxListHeaderWindow *headerWin = GetListCtrl()->m_headerWin;
+ if ( headerWin )
+ headerWin->m_dirty = TRUE;
wxListHeaderDataList::Node *node = m_columns.Item( col );
wxCHECK_RET( node, _T("no column?") );