aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra/llui/llviewquery.h
diff options
context:
space:
mode:
authorJacek Antonelli2008-08-15 23:44:50 -0500
committerJacek Antonelli2008-08-15 23:44:50 -0500
commit89fe5dab825a62a0e3fd8d248cbc91c65eb2a426 (patch)
treebcff14b7888d04a2fec799c59369f6095224bd08 /linden/indra/llui/llviewquery.h
parentSecond Life viewer sources 1.13.3.2 (diff)
downloadmeta-impy-89fe5dab825a62a0e3fd8d248cbc91c65eb2a426.zip
meta-impy-89fe5dab825a62a0e3fd8d248cbc91c65eb2a426.tar.gz
meta-impy-89fe5dab825a62a0e3fd8d248cbc91c65eb2a426.tar.bz2
meta-impy-89fe5dab825a62a0e3fd8d248cbc91c65eb2a426.tar.xz
Second Life viewer sources 1.14.0.0
Diffstat (limited to 'linden/indra/llui/llviewquery.h')
-rw-r--r--linden/indra/llui/llviewquery.h178
1 files changed, 89 insertions, 89 deletions
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 @@
1/** 1/**
2 * @file llviewquery.h 2 * @file llviewquery.h
3 * @brief Query algorithm for flattening and filtering the view hierarchy. 3 * @brief Query algorithm for flattening and filtering the view hierarchy.
4 * 4 *
5 * Copyright (c) 2001-2007, Linden Research, Inc. 5 * Copyright (c) 2001-2007, Linden Research, Inc.
6 * 6 *
7 * The source code in this file ("Source Code") is provided by Linden Lab 7 * The source code in this file ("Source Code") is provided by Linden Lab
8 * to you under the terms of the GNU General Public License, version 2.0 8 * to you under the terms of the GNU General Public License, version 2.0
@@ -22,87 +22,87 @@
22 * 22 *
23 * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO 23 * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
24 * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, 24 * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
25 * COMPLETENESS OR PERFORMANCE. 25 * COMPLETENESS OR PERFORMANCE.
26 */ 26 */
27 27
28#ifndef LL_LLVIEWQUERY_H 28#ifndef LL_LLVIEWQUERY_H
29#define LL_LLVIEWQUERY_H 29#define LL_LLVIEWQUERY_H
30 30
31#include <list> 31#include <list>
32 32
33#include "llmemory.h" 33#include "llmemory.h"
34 34
35class LLView; 35class LLView;
36 36
37typedef std::list<LLView *> viewList_t; 37typedef std::list<LLView *> viewList_t;
38typedef std::pair<BOOL, BOOL> filterResult_t; 38typedef std::pair<BOOL, BOOL> filterResult_t;
39 39
40// Abstract base class for all filters. 40// Abstract base class for all filters.
41class LLQueryFilter : public LLRefCount 41class LLQueryFilter : public LLRefCount
42{ 42{
43public: 43public:
44 virtual filterResult_t operator() (const LLView* const view, const viewList_t & children) const =0; 44 virtual filterResult_t operator() (const LLView* const view, const viewList_t & children) const =0;
45}; 45};
46 46
47class LLQuerySorter : public LLRefCount 47class LLQuerySorter : public LLRefCount
48{ 48{
49public: 49public:
50 virtual void operator() (LLView * parent, viewList_t &children) const; 50 virtual void operator() (LLView * parent, viewList_t &children) const;
51}; 51};
52 52
53class LLNoLeavesFilter : public LLQueryFilter, public LLSingleton<LLNoLeavesFilter> 53class LLNoLeavesFilter : public LLQueryFilter, public LLSingleton<LLNoLeavesFilter>
54{ 54{
55 /*virtual*/ filterResult_t operator() (const LLView* const view, const viewList_t & children) const; 55 /*virtual*/ filterResult_t operator() (const LLView* const view, const viewList_t & children) const;
56}; 56};
57class LLVisibleFilter : public LLQueryFilter, public LLSingleton<LLVisibleFilter> 57class LLVisibleFilter : public LLQueryFilter, public LLSingleton<LLVisibleFilter>
58{ 58{
59 /*virtual*/ filterResult_t operator() (const LLView* const view, const viewList_t & children) const; 59 /*virtual*/ filterResult_t operator() (const LLView* const view, const viewList_t & children) const;
60}; 60};
61class LLEnabledFilter : public LLQueryFilter, public LLSingleton<LLEnabledFilter> 61class LLEnabledFilter : public LLQueryFilter, public LLSingleton<LLEnabledFilter>
62{ 62{
63 /*virtual*/ filterResult_t operator() (const LLView* const view, const viewList_t & children) const; 63 /*virtual*/ filterResult_t operator() (const LLView* const view, const viewList_t & children) const;
64}; 64};
65class LLTabStopFilter : public LLQueryFilter, public LLSingleton<LLTabStopFilter> 65class LLTabStopFilter : public LLQueryFilter, public LLSingleton<LLTabStopFilter>
66{ 66{
67 /*virtual*/ filterResult_t operator() (const LLView* const view, const viewList_t & children) const; 67 /*virtual*/ filterResult_t operator() (const LLView* const view, const viewList_t & children) const;
68}; 68};
69 69
70// Algorithm for flattening 70// Algorithm for flattening
71class LLViewQuery 71class LLViewQuery
72{ 72{
73public: 73public:
74 typedef std::list<const LLQueryFilter*> filterList_t; 74 typedef std::list<const LLQueryFilter*> filterList_t;
75 typedef filterList_t::iterator filterList_iter_t; 75 typedef filterList_t::iterator filterList_iter_t;
76 typedef filterList_t::const_iterator filterList_const_iter_t; 76 typedef filterList_t::const_iterator filterList_const_iter_t;
77 77
78 LLViewQuery(); 78 LLViewQuery();
79 virtual ~LLViewQuery() {} 79 virtual ~LLViewQuery() {}
80 80
81 void addPreFilter(const LLQueryFilter* prefilter); 81 void addPreFilter(const LLQueryFilter* prefilter);
82 void addPostFilter(const LLQueryFilter* postfilter); 82 void addPostFilter(const LLQueryFilter* postfilter);
83 const filterList_t & getPreFilters() const; 83 const filterList_t & getPreFilters() const;
84 const filterList_t & getPostFilters() const; 84 const filterList_t & getPostFilters() const;
85 85
86 void setSorter(const LLQuerySorter* sorter); 86 void setSorter(const LLQuerySorter* sorter);
87 const LLQuerySorter* getSorter() const; 87 const LLQuerySorter* getSorter() const;
88 88
89 viewList_t run(LLView * view) const; 89 viewList_t run(LLView * view) const;
90 // syntactic sugar 90 // syntactic sugar
91 viewList_t operator () (LLView * view) const { return run(view); } 91 viewList_t operator () (LLView * view) const { return run(view); }
92protected: 92protected:
93 // override this method to provide iteration over other types of children 93 // override this method to provide iteration over other types of children
94 virtual void filterChildren(LLView * view, viewList_t & filtered_children) const; 94 virtual void filterChildren(LLView * view, viewList_t & filtered_children) const;
95 filterResult_t runFilters(LLView * view, const viewList_t children, const filterList_t filters) const; 95 filterResult_t runFilters(LLView * view, const viewList_t children, const filterList_t filters) const;
96protected: 96protected:
97 filterList_t mPreFilters; 97 filterList_t mPreFilters;
98 filterList_t mPostFilters; 98 filterList_t mPostFilters;
99 const LLQuerySorter* mSorterp; 99 const LLQuerySorter* mSorterp;
100}; 100};
101 101
102class LLCtrlQuery : public LLViewQuery 102class LLCtrlQuery : public LLViewQuery
103{ 103{
104public: 104public:
105 LLCtrlQuery(); 105 LLCtrlQuery();
106}; 106};
107 107
108#endif 108#endif