本文整理汇总了C++中TreeViewItem::getNextVisibleItem方法的典型用法代码示例。如果您正苦于以下问题:C++ TreeViewItem::getNextVisibleItem方法的具体用法?C++ TreeViewItem::getNextVisibleItem怎么用?C++ TreeViewItem::getNextVisibleItem使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TreeViewItem
的用法示例。
在下文中一共展示了TreeViewItem::getNextVisibleItem方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: updateComponents
void updateComponents()
{
const int visibleTop = -getY();
const int visibleBottom = visibleTop + getParentHeight();
{
for (int i = items.size(); --i >= 0;)
items.getUnchecked(i)->shouldKeep = false;
}
{
TreeViewItem* item = owner.rootItem;
int y = (item != 0 && ! owner.rootItemVisible) ? -item->itemHeight : 0;
while (item != 0 && y < visibleBottom)
{
y += item->itemHeight;
if (y >= visibleTop)
{
RowItem* const ri = findItem (item->uid);
if (ri != 0)
{
ri->shouldKeep = true;
}
else
{
Component* const comp = item->createItemComponent();
if (comp != 0)
{
items.add (new RowItem (item, comp, item->uid));
addAndMakeVisible (comp);
}
}
}
item = item->getNextVisibleItem (true);
}
}
for (int i = items.size(); --i >= 0;)
{
RowItem* const ri = items.getUnchecked(i);
bool keep = false;
if (isParentOf (ri->component))
{
if (ri->shouldKeep)
{
Rectangle<int> pos (ri->item->getItemPosition (false));
pos.setSize (pos.getWidth(), ri->item->itemHeight);
if (pos.getBottom() >= visibleTop && pos.getY() < visibleBottom)
{
keep = true;
ri->component->setBounds (pos);
}
}
if ((! keep) && isMouseDraggingInChildCompOf (ri->component))
{
keep = true;
ri->component->setSize (0, 0);
}
}
if (! keep)
items.remove (i);
}
}