本文整理汇总了C++中wxDataViewItemArray::GetCount方法的典型用法代码示例。如果您正苦于以下问题:C++ wxDataViewItemArray::GetCount方法的具体用法?C++ wxDataViewItemArray::GetCount怎么用?C++ wxDataViewItemArray::GetCount使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类wxDataViewItemArray
的用法示例。
在下文中一共展示了wxDataViewItemArray::GetCount方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: DeleteItems
void MyListModel::DeleteItems( const wxDataViewItemArray &items )
{
unsigned i;
wxArrayInt rows;
for (i = 0; i < items.GetCount(); i++)
{
unsigned int row = GetRow( items[i] );
if (row < m_textColValues.GetCount())
rows.Add( row );
}
if (rows.GetCount() == 0)
{
// none of the selected items were in the range of the items
// which we store... for simplicity, don't allow removing them
wxLogError( "Cannot remove rows with an index greater than %d", m_textColValues.GetCount() );
return;
}
// Sort in descending order so that the last
// row will be deleted first. Otherwise the
// remaining indeces would all be wrong.
rows.Sort( my_sort_reverse );
for (i = 0; i < rows.GetCount(); i++)
m_textColValues.RemoveAt( rows[i] );
// This is just to test if wxDataViewCtrl can
// cope with removing rows not sorted in
// descending order
rows.Sort( my_sort );
RowsDeleted( rows );
}
示例2: SetSelections
void wxDataViewCtrl::SetSelections(wxDataViewItemArray const& sel)
{
size_t const noOfSelections = sel.GetCount();
size_t i;
wxDataViewItem last_parent;
// make sure that all to be selected items are visible in the control:
for (i = 0; i < noOfSelections; i++)
{
wxDataViewItem item = sel[i];
wxDataViewItem parent = GetModel()->GetParent( item );
if (parent.IsOk() && (parent != last_parent))
ExpandAncestors(item);
last_parent = parent;
}
// finally select the items:
wxDataViewWidgetImpl* dataViewWidgetPtr(GetDataViewPeer()); // variable definition for abbreviational purposes
for (i=0; i<noOfSelections; ++i)
dataViewWidgetPtr->Select(sel[i]);
}
示例3: AdjustRowHeights
void wxOSXDataViewModelNotifier::AdjustRowHeights(wxDataViewItemArray const& items)
{
if ((m_DataViewCtrlPtr->GetWindowStyle() & wxDV_VARIABLE_LINE_HEIGHT) != 0)
{
size_t const noOfItems = items.GetCount();
wxDataViewModel *model = GetOwner();
for (size_t itemIndex=0; itemIndex<noOfItems; ++itemIndex)
{
int height = 20; // TODO find out standard height
unsigned int num = m_DataViewCtrlPtr->GetColumnCount();
unsigned int col;
for (col = 0; col < num; col++)
{
wxDataViewColumn* column(m_DataViewCtrlPtr->GetColumnPtr(col));
if (!(column->IsHidden()))
{
wxDataViewCustomRenderer *renderer = dynamic_cast<wxDataViewCustomRenderer*>(column->GetRenderer());
if (renderer)
{
wxVariant value;
model->GetValue( value, items[itemIndex], column->GetModelColumn() );
renderer->SetValue( value );
height = wxMax( height, renderer->GetSize().y );
}
}
}
if (height > 20)
m_DataViewCtrlPtr->GetDataViewPeer()->SetRowHeight(items[itemIndex],height);
}
}
}
示例4: DeleteItems
void CTimeBarListModel::DeleteItems( const wxDataViewItemArray &items )
{
wxArrayInt rows;
for (unsigned i = 0; i < items.GetCount(); i++)
{
unsigned int row = GetRow( items[i] );
if (row < m_textColValues.GetCount())
rows.Add( row );
}
if (rows.GetCount() > 0)
{
// Sort in descending order so that the last
// row will be deleted first. Otherwise the
// remaining indeces would all be wrong.
rows.Sort([](int *v1, int *v2)
{
return *v2-*v1;
});
for (unsigned i = 0; i < rows.GetCount(); i++)
{
m_textColValues.RemoveAt( rows[i] );
m_view.RemoveAt( rows[i] );
m_lock.RemoveAt( rows[i] );
}
// This is just to test if wxDataViewCtrl can
// cope with removing rows not sorted in
// descending order
rows.Sort([](int *v1, int *v2)
{
return *v1-*v2;
});
RowsDeleted( rows );
}
}
示例5: DeleteItems
void TreeListModel::DeleteItems(const wxDataViewItem& parent, const wxDataViewItemArray& items)
{
// sanity
for(size_t i=0; i<items.GetCount(); ++i) {
TreeListModel_Item* node = reinterpret_cast<TreeListModel_Item*>(items.Item(i).m_pItem);
wxUnusedVar(node);
wxASSERT(node && node->GetParent() == parent.m_pItem);
DeleteItem(items.Item(i));
}
}
示例6: GetChildren
unsigned int TreeListModel::GetChildren(const wxDataViewItem& item, wxDataViewItemArray& children) const
{
if(item.GetID() == NULL) {
// Root
for(size_t i=0; i<m_data.size(); ++i) {
children.Add( wxDataViewItem( m_data.at(i) ) );
}
return children.size();
}
children.Clear();
TreeListModel_Item* node = reinterpret_cast<TreeListModel_Item*>(item.m_pItem);
if ( node ) {
for(size_t i=0; i<node->GetChildren().size(); ++i) {
children.Add( wxDataViewItem( node->GetChildren().at(i) ) );
}
}
return children.GetCount();
}
示例7: ItemsChanged
bool wxOSXDataViewModelNotifier::ItemsChanged(wxDataViewItemArray const& items)
{
size_t const noOfItems = items.GetCount();
wxDataViewEvent dataViewEvent(wxEVT_COMMAND_DATAVIEW_ITEM_VALUE_CHANGED,m_DataViewCtrlPtr->GetId());
dataViewEvent.SetEventObject(m_DataViewCtrlPtr);
for (size_t indexItem=0; indexItem<noOfItems; ++indexItem)
if (m_DataViewCtrlPtr->GetDataViewPeer()->Update(GetOwner()->GetParent(items[indexItem]),items[indexItem]))
{
// send for all changed items a wxWidget event:
dataViewEvent.SetItem(items[indexItem]);
m_DataViewCtrlPtr->HandleWindowEvent(dataViewEvent);
}
else
return false;
// if this location is reached all items have been updated:
AdjustRowHeights(items);
AdjustAutosizedColumns();
// done:
return true;
}