#endif
#include "wx/imaglist.h"
+#include "wx/vector.h"
#include "wx/msw/private.h"
// columns order
// ----------------------------------------------------------------------------
-int wxListCtrl::GetColumnOrder(int col) const
+int wxListCtrl::GetColumnIndexFromOrder(int order) const
{
const int numCols = GetColumnCount();
- wxCHECK_MSG( col >= 0 && col < numCols, -1, _T("Col index out of bounds") );
+ wxCHECK_MSG( order >= 0 && order < numCols, -1,
+ _T("Column position out of bounds") );
wxArrayInt indexArray(numCols);
-
if ( !ListView_GetColumnOrderArray(GetHwnd(), numCols, &indexArray[0]) )
return -1;
- return indexArray[col];
+ return indexArray[order];
}
-int wxListCtrl::GetColumnIndexFromOrder(int order) const
+int wxListCtrl::GetColumnOrder(int col) const
{
const int numCols = GetColumnCount();
- wxASSERT_MSG( order >= 0 && order < numCols, _T("Col order out of bounds") );
+ wxASSERT_MSG( col >= 0 && col < numCols, _T("Column index out of bounds") );
wxArrayInt indexArray(numCols);
-
if ( !ListView_GetColumnOrderArray(GetHwnd(), numCols, &indexArray[0]) )
return -1;
- for ( int col = 0; col < numCols; col++ )
+ for ( int pos = 0; pos < numCols; pos++ )
{
- if ( indexArray[col] == order )
- return col;
+ if ( indexArray[pos] == col )
+ return pos;
}
wxFAIL_MSG( _T("no column with with given order?") );
HWND hwndEdit = ListView_GetEditControl(GetHwnd());
if ( hwndEdit )
{
- wxListCtrl * const self = wx_const_cast(wxListCtrl *, this);
+ wxListCtrl * const self = const_cast<wxListCtrl *>(this);
if ( !m_textCtrl )
self->m_textCtrl = new wxTextCtrl;
if ( lvi.mask & LVIF_TEXT )
{
wxString text = OnGetItemText(item, lvi.iSubItem);
- wxStrncpy(lvi.pszText, text, lvi.cchTextMax);
+ wxStrlcpy(lvi.pszText, text.c_str(), lvi.cchTextMax);
}
// see comment at the end of wxListCtrl::GetColumn()
dc.SetPen(pen);
dc.SetBrush(*wxTRANSPARENT_BRUSH);
- int numCols = GetColumnCount();
- int* indexArray = new int[numCols];
- if ( !ListView_GetColumnOrderArray( GetHwnd(), numCols, indexArray) )
+ const int numCols = GetColumnCount();
+ wxVector<int> indexArray(numCols);
+ if ( !ListView_GetColumnOrderArray(GetHwnd(),
+ numCols,
+ &indexArray[0]) )
{
wxFAIL_MSG( _T("invalid column index array in OnPaint()") );
+ return;
}
int x = itemRect.GetX();
dc.DrawLine(x-1, firstItemRect.GetY() - gap,
x-1, itemRect.GetBottom());
}
-
- delete indexArray;
}
}
}