From 89fe5dab825a62a0e3fd8d248cbc91c65eb2a426 Mon Sep 17 00:00:00 2001 From: Jacek Antonelli Date: Fri, 15 Aug 2008 23:44:50 -0500 Subject: Second Life viewer sources 1.14.0.0 --- linden/indra/llui/llviewquery.h | 178 ++++++++++++++++++++-------------------- 1 file changed, 89 insertions(+), 89 deletions(-) (limited to 'linden/indra/llui/llviewquery.h') diff --git a/linden/indra/llui/llviewquery.h b/linden/indra/llui/llviewquery.h index 3dc2861..7ab401a 100644 --- a/linden/indra/llui/llviewquery.h +++ b/linden/indra/llui/llviewquery.h @@ -1,8 +1,8 @@ -/** - * @file llviewquery.h - * @brief Query algorithm for flattening and filtering the view hierarchy. - * - * Copyright (c) 2001-2007, Linden Research, Inc. +/** + * @file llviewquery.h + * @brief Query algorithm for flattening and filtering the view hierarchy. + * + * Copyright (c) 2001-2007, Linden Research, Inc. * * The source code in this file ("Source Code") is provided by Linden Lab * to you under the terms of the GNU General Public License, version 2.0 @@ -22,87 +22,87 @@ * * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, - * COMPLETENESS OR PERFORMANCE. - */ - -#ifndef LL_LLVIEWQUERY_H -#define LL_LLVIEWQUERY_H - -#include - -#include "llmemory.h" - -class LLView; - -typedef std::list viewList_t; -typedef std::pair filterResult_t; - -// Abstract base class for all filters. -class LLQueryFilter : public LLRefCount -{ -public: - virtual filterResult_t operator() (const LLView* const view, const viewList_t & children) const =0; -}; - -class LLQuerySorter : public LLRefCount -{ -public: - virtual void operator() (LLView * parent, viewList_t &children) const; -}; - -class LLNoLeavesFilter : public LLQueryFilter, public LLSingleton -{ - /*virtual*/ filterResult_t operator() (const LLView* const view, const viewList_t & children) const; -}; -class LLVisibleFilter : public LLQueryFilter, public LLSingleton -{ - /*virtual*/ filterResult_t operator() (const LLView* const view, const viewList_t & children) const; -}; -class LLEnabledFilter : public LLQueryFilter, public LLSingleton -{ - /*virtual*/ filterResult_t operator() (const LLView* const view, const viewList_t & children) const; -}; -class LLTabStopFilter : public LLQueryFilter, public LLSingleton -{ - /*virtual*/ filterResult_t operator() (const LLView* const view, const viewList_t & children) const; -}; - -// Algorithm for flattening -class LLViewQuery -{ -public: - typedef std::list filterList_t; - typedef filterList_t::iterator filterList_iter_t; - typedef filterList_t::const_iterator filterList_const_iter_t; - - LLViewQuery(); - virtual ~LLViewQuery() {} - - void addPreFilter(const LLQueryFilter* prefilter); - void addPostFilter(const LLQueryFilter* postfilter); - const filterList_t & getPreFilters() const; - const filterList_t & getPostFilters() const; - - void setSorter(const LLQuerySorter* sorter); - const LLQuerySorter* getSorter() const; - - viewList_t run(LLView * view) const; - // syntactic sugar - viewList_t operator () (LLView * view) const { return run(view); } -protected: - // override this method to provide iteration over other types of children - virtual void filterChildren(LLView * view, viewList_t & filtered_children) const; - filterResult_t runFilters(LLView * view, const viewList_t children, const filterList_t filters) const; -protected: - filterList_t mPreFilters; - filterList_t mPostFilters; - const LLQuerySorter* mSorterp; -}; - -class LLCtrlQuery : public LLViewQuery -{ -public: - LLCtrlQuery(); -}; - -#endif + * COMPLETENESS OR PERFORMANCE. + */ + +#ifndef LL_LLVIEWQUERY_H +#define LL_LLVIEWQUERY_H + +#include + +#include "llmemory.h" + +class LLView; + +typedef std::list viewList_t; +typedef std::pair filterResult_t; + +// Abstract base class for all filters. +class LLQueryFilter : public LLRefCount +{ +public: + virtual filterResult_t operator() (const LLView* const view, const viewList_t & children) const =0; +}; + +class LLQuerySorter : public LLRefCount +{ +public: + virtual void operator() (LLView * parent, viewList_t &children) const; +}; + +class LLNoLeavesFilter : public LLQueryFilter, public LLSingleton +{ + /*virtual*/ filterResult_t operator() (const LLView* const view, const viewList_t & children) const; +}; +class LLVisibleFilter : public LLQueryFilter, public LLSingleton +{ + /*virtual*/ filterResult_t operator() (const LLView* const view, const viewList_t & children) const; +}; +class LLEnabledFilter : public LLQueryFilter, public LLSingleton +{ + /*virtual*/ filterResult_t operator() (const LLView* const view, const viewList_t & children) const; +}; +class LLTabStopFilter : public LLQueryFilter, public LLSingleton +{ + /*virtual*/ filterResult_t operator() (const LLView* const view, const viewList_t & children) const; +}; + +// Algorithm for flattening +class LLViewQuery +{ +public: + typedef std::list filterList_t; + typedef filterList_t::iterator filterList_iter_t; + typedef filterList_t::const_iterator filterList_const_iter_t; + + LLViewQuery(); + virtual ~LLViewQuery() {} + + void addPreFilter(const LLQueryFilter* prefilter); + void addPostFilter(const LLQueryFilter* postfilter); + const filterList_t & getPreFilters() const; + const filterList_t & getPostFilters() const; + + void setSorter(const LLQuerySorter* sorter); + const LLQuerySorter* getSorter() const; + + viewList_t run(LLView * view) const; + // syntactic sugar + viewList_t operator () (LLView * view) const { return run(view); } +protected: + // override this method to provide iteration over other types of children + virtual void filterChildren(LLView * view, viewList_t & filtered_children) const; + filterResult_t runFilters(LLView * view, const viewList_t children, const filterList_t filters) const; +protected: + filterList_t mPreFilters; + filterList_t mPostFilters; + const LLQuerySorter* mSorterp; +}; + +class LLCtrlQuery : public LLViewQuery +{ +public: + LLCtrlQuery(); +}; + +#endif -- cgit v1.1