本文整理汇总了C++中AccessibilityChildrenVector::removeLast方法的典型用法代码示例。如果您正苦于以下问题:C++ AccessibilityChildrenVector::removeLast方法的具体用法?C++ AccessibilityChildrenVector::removeLast怎么用?C++ AccessibilityChildrenVector::removeLast使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类AccessibilityChildrenVector
的用法示例。
在下文中一共展示了AccessibilityChildrenVector::removeLast方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: accessibleObjectsWithAccessibilitySearchPredicate
void AccessibilityObject::accessibleObjectsWithAccessibilitySearchPredicate(AccessibilitySearchPredicate* axSearchPredicate, AccessibilityChildrenVector& axResults)
{
ASSERT(AXObjectCache::accessibilityEnabled());
if (!axSearchPredicate)
return;
AccessibilityChildrenVector axChildren;
if (axSearchPredicate->axContainerObject)
axChildren.append(axSearchPredicate->axContainerObject);
bool isSearchDirectionNext = (axSearchPredicate->axSearchDirection == SearchDirectionNext);
bool didFindAXStartObject = (!axSearchPredicate->axStartObject);
// FIXME: Iterate the AccessibilityObject cache creating and adding objects if nessesary.
while (!axChildren.isEmpty() && axResults.size() < axSearchPredicate->resultsLimit) {
AccessibilityObject* axChild = axChildren.last().get();
axChildren.removeLast();
if (didFindAXStartObject) {
if (isAccessibilityObjectSearchMatch(axChild, axSearchPredicate)
&& isAccessibilityTextSearchMatch(axChild, axSearchPredicate))
axResults.append(axChild);
} else if (axChild == axSearchPredicate->axStartObject)
didFindAXStartObject = true;
AccessibilityChildrenVector axGrandchildren = axChild->children();
unsigned axGrandchildrenSize = axChild->children().size();
for (unsigned i = (isSearchDirectionNext) ? axGrandchildrenSize : 0; (isSearchDirectionNext) ? i > 0 : i < axGrandchildrenSize; (isSearchDirectionNext) ? i-- : i++)
// FIXME: Handle attachments.
axChildren.append(axGrandchildren.at((isSearchDirectionNext) ? i - 1 : i).get());
}
}
示例2: findMatchingObjects
void AccessibilityObject::findMatchingObjects(AccessibilitySearchCriteria* criteria, AccessibilityChildrenVector& results)
{
ASSERT(criteria);
if (!criteria)
return;
AccessibilityObject* startObject = criteria->startObject;
AccessibilityChildrenVector searchStack;
searchStack.append(this);
bool isForward = criteria->searchDirection == SearchDirectionNext;
bool didFindStartObject = !criteria->startObject;
// FIXME: Iterate the AccessibilityObject cache creating and adding objects if nessesary.
while (!searchStack.isEmpty()) {
AccessibilityObject* searchObject = searchStack.last().get();
searchStack.removeLast();
if (didFindStartObject) {
if (isAccessibilityObjectSearchMatch(searchObject, criteria) && isAccessibilityTextSearchMatch(searchObject, criteria)) {
results.append(searchObject);
// Enough results were found to stop searching.
if (results.size() >= criteria->resultsLimit)
break;
}
} else if (searchObject == startObject)
didFindStartObject = true;
AccessibilityChildrenVector searchChildren = searchObject->children();
size_t childrenSize = searchChildren.size();
for (size_t i = isForward ? childrenSize : 0; isForward ? i > 0 : i < childrenSize; isForward ? i-- : i++) {
// FIXME: Handle attachments.
searchStack.append(searchChildren.at(isForward ? i - 1 : i).get());
}
}
}