filterResult_t LLViewQuery::runFilters(LLView * view, const viewList_t children, const filterList_t filters) const { filterResult_t result = filterResult_t(TRUE, TRUE); for(filterList_const_iter_t iter = filters.begin(); iter != filters.end(); iter++) { filterResult_t filtered = (**iter)(view, children); result.first = result.first && filtered.first; result.second = result.second && filtered.second; } return result; }
filterResult_t LLCtrlFilter::operator() (const LLView* const view, const viewList_t & children) const { return filterResult_t(view->isCtrl(),TRUE); }
filterResult_t LLTabStopFilter::operator() (const LLView* const view, const viewList_t & children) const { return filterResult_t(view->isCtrl() && static_cast<const LLUICtrl*>(view)->hasTabStop(), view->canFocusChildren()); }
filterResult_t LLEnabledFilter::operator() (const LLView* const view, const viewList_t & children) const { return filterResult_t(view->getEnabled(), view->getEnabled()); }
filterResult_t LLRootsFilter::operator() (const LLView* const view, const viewList_t & children) const { return filterResult_t(TRUE, FALSE); }
filterResult_t LLLeavesFilter::operator() (const LLView* const view, const viewList_t & children) const { return filterResult_t(children.empty(), TRUE); }
filterResult_t LLWidgetTypeFilter::operator() (const LLView* const view, const viewList_t & children) const { return filterResult_t(view->getWidgetType() == mType, TRUE); }
filterResult_t LLNoLeavesFilter::operator() (const LLView* const view, const viewList_t & children) const { return filterResult_t(!(view->getChildList()->size() == 0), TRUE); }