CGUIListItem* CGUIGridList_Impl::GetItem ( int iRow, int hColumn ) { try { CEGUI::MultiColumnList* pMultiColumnList = reinterpret_cast < CEGUI::MultiColumnList* > ( m_pWindow ); if ( (uint)iRow >= pMultiColumnList->getRowCount() || (uint)GetColumnIndex( hColumn ) >= pMultiColumnList->getColumnCount() ) return NULL; // Grab the item at the chosen row / column CEGUI::ListboxItem* pItem = reinterpret_cast < CEGUI::MultiColumnList* > ( m_pWindow ) -> getItemAtGridReference ( CEGUI::MCLGridRef ( iRow, GetColumnIndex ( hColumn ) ) ); // If it exists, get the CGUIListItem by using the pool if ( pItem ) { return GetListItem ( pItem ); } } catch ( CEGUI::Exception ) {} return NULL; }
const char* CGUIGridList_Impl::GetItemText ( int iRow, int hColumn ) { try { CEGUI::MultiColumnList* pMultiColumnList = reinterpret_cast < CEGUI::MultiColumnList* > ( m_pWindow ); if ( (uint)iRow >= pMultiColumnList->getRowCount() || (uint)GetColumnIndex( hColumn ) >= pMultiColumnList->getColumnCount() ) return ""; // Grab the item at the chosen row / column CEGUI::ListboxItem* pItem = reinterpret_cast < CEGUI::MultiColumnList* > ( m_pWindow ) -> getItemAtGridReference ( CEGUI::MCLGridRef ( iRow, GetColumnIndex ( hColumn ) ) ); if ( pItem ) { const char *szRet = pItem->getText().c_str (); if ( !m_bIgnoreTextSpacer ) { unsigned char ucSpacerSize = (unsigned char)(strlen ( CGUIGRIDLIST_SPACER )); if ( GetColumnIndex ( hColumn ) == 0 ) { // Make sure there is a spacer to skip if ( strncmp ( szRet, CGUIGRIDLIST_SPACER, strlen ( CGUIGRIDLIST_SPACER ) ) == 0 ) szRet += ucSpacerSize; } } return szRet; } } catch ( CEGUI::Exception ) { return ""; } return ""; }
void sge::cegui::toolbox::append_row( CEGUI::MultiColumnList &_list, sge::cegui::toolbox::row const &_mapper ) { FCPPT_ASSERT_PRE( static_cast< sge::cegui::toolbox::row::size_type >( _list.getColumnCount() ) == _mapper.size() ); FCPPT_ASSERT_PRE( !_mapper.empty() ); CEGUI::uint const index( _list.addRow( new CEGUI::ListboxTextItem( _mapper[ 0 ], 0, nullptr ), 0 ) ); for( sge::cegui::toolbox::row::size_type const cur : fcppt::make_int_range( fcppt::literal< sge::cegui::toolbox::row::size_type >( 1u ), _mapper.size() ) ) _list.setItem( new CEGUI::ListboxTextItem( _mapper[ cur ], 0, nullptr ), static_cast< CEGUI::uint >( cur ), index ); }