them to be used to change/query the item selection and focus status (second
part of patch
1264533 from Ryan, modified to be backwards compatible)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35462
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
wxString GetItemText(long item) const
{
wxListItem info;
wxString GetItemText(long item) const
{
wxListItem info;
+ info.m_mask = wxLIST_MASK_TEXT;
info.m_itemId = item;
GetItem( info );
return info.m_text;
info.m_itemId = item;
GetItem( info );
return info.m_text;
void wxListItemData::GetItem( wxListItem &info ) const
{
void wxListItemData::GetItem( wxListItem &info ) const
{
- info.m_text = m_text;
- info.m_image = m_image;
- info.m_data = m_data;
+ long mask = info.m_mask;
+ if ( !mask )
+ {
+ // by default, get everything for backwards compatibility
+ mask = -1;
+ }
+
+ if ( mask & wxLIST_MASK_TEXT )
+ info.m_text = m_text;
+ if ( mask & wxLIST_MASK_IMAGE )
+ info.m_image = m_image;
+ if ( mask & wxLIST_MASK_DATA )
+ info.m_data = m_data;
wxListLineData *line = GetLine((size_t)id);
line->SetItem( item.m_col, item );
wxListLineData *line = GetLine((size_t)id);
line->SetItem( item.m_col, item );
+ // Set item state if user wants
+ if ( item.m_mask & wxLIST_MASK_STATE )
+ SetItemState( item.m_itemId, item.m_state, item.m_state );
+
if (InReportView())
{
// update the Max Width Cache if needed
if (InReportView())
{
// update the Max Width Cache if needed
wxListLineData *line = GetLine((size_t)item.m_itemId);
line->GetItem( item.m_col, item );
wxListLineData *line = GetLine((size_t)item.m_itemId);
line->GetItem( item.m_col, item );
+
+ // Get item state if user wants it
+ if ( item.m_mask & wxLIST_MASK_STATE )
+ item.m_state = GetItemState( item.m_itemId, wxLIST_STATE_SELECTED |
+ wxLIST_STATE_FOCUSED );
}
// ----------------------------------------------------------------------------
}
// ----------------------------------------------------------------------------
wxUIntPtr wxGenericListCtrl::GetItemData( long item ) const
{
wxListItem info;
wxUIntPtr wxGenericListCtrl::GetItemData( long item ) const
{
wxListItem info;
+ info.m_mask = wxLIST_MASK_DATA;
info.m_itemId = item;
m_mainWin->GetItem( info );
return info.m_data;
info.m_itemId = item;
m_mainWin->GetItem( info );
return info.m_data;