本文整理汇总了C++中ListIterator::freeze方法的典型用法代码示例。如果您正苦于以下问题:C++ ListIterator::freeze方法的具体用法?C++ ListIterator::freeze怎么用?C++ ListIterator::freeze使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ListIterator
的用法示例。
在下文中一共展示了ListIterator::freeze方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: erase
/**
* Handle eraser event: "Delete Stroke" and "Standard", Whiteout is not handled here
*/
void EraseHandler::erase(double x, double y) {
XOJ_CHECK_TYPE(EraseHandler);
ListIterator<Layer*> it = this->page.layerIterator();
int selected = page.getSelectedLayerId();
this->halfEraserSize = this->handler->getThickness();
GdkRectangle eraserRect = { x - halfEraserSize, y - halfEraserSize, halfEraserSize * 2, halfEraserSize * 2 };
Range * range = new Range(x, y);
while (it.hasNext() && selected) {
Layer * l = it.next();
ListIterator<Element *> eit = l->elementIterator();
eit.freeze();
while (eit.hasNext()) {
Element * e = eit.next();
if (e->getType() == ELEMENT_STROKE && e->intersectsArea(&eraserRect)) {
Stroke * s = (Stroke *) e;
eraseStroke(l, s, x, y, range);
}
}
selected--;
}
this->view->rerenderRange(*range);
delete range;
}