diff options
author | Jacek Antonelli | 2008-08-15 23:44:50 -0500 |
---|---|---|
committer | Jacek Antonelli | 2008-08-15 23:44:50 -0500 |
commit | 89fe5dab825a62a0e3fd8d248cbc91c65eb2a426 (patch) | |
tree | bcff14b7888d04a2fec799c59369f6095224bd08 /linden/indra/llui/llviewquery.h | |
parent | Second Life viewer sources 1.13.3.2 (diff) | |
download | meta-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.h | 178 |
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 | ||
35 | class LLView; | 35 | class LLView; |
36 | 36 | ||
37 | typedef std::list<LLView *> viewList_t; | 37 | typedef std::list<LLView *> viewList_t; |
38 | typedef std::pair<BOOL, BOOL> filterResult_t; | 38 | typedef std::pair<BOOL, BOOL> filterResult_t; |
39 | 39 | ||
40 | // Abstract base class for all filters. | 40 | // Abstract base class for all filters. |
41 | class LLQueryFilter : public LLRefCount | 41 | class LLQueryFilter : public LLRefCount |
42 | { | 42 | { |
43 | public: | 43 | public: |
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 | ||
47 | class LLQuerySorter : public LLRefCount | 47 | class LLQuerySorter : public LLRefCount |
48 | { | 48 | { |
49 | public: | 49 | public: |
50 | virtual void operator() (LLView * parent, viewList_t &children) const; | 50 | virtual void operator() (LLView * parent, viewList_t &children) const; |
51 | }; | 51 | }; |
52 | 52 | ||
53 | class LLNoLeavesFilter : public LLQueryFilter, public LLSingleton<LLNoLeavesFilter> | 53 | class 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 | }; |
57 | class LLVisibleFilter : public LLQueryFilter, public LLSingleton<LLVisibleFilter> | 57 | class 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 | }; |
61 | class LLEnabledFilter : public LLQueryFilter, public LLSingleton<LLEnabledFilter> | 61 | class 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 | }; |
65 | class LLTabStopFilter : public LLQueryFilter, public LLSingleton<LLTabStopFilter> | 65 | class 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 |
71 | class LLViewQuery | 71 | class LLViewQuery |
72 | { | 72 | { |
73 | public: | 73 | public: |
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); } |
92 | protected: | 92 | protected: |
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; |
96 | protected: | 96 | protected: |
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 | ||
102 | class LLCtrlQuery : public LLViewQuery | 102 | class LLCtrlQuery : public LLViewQuery |
103 | { | 103 | { |
104 | public: | 104 | public: |
105 | LLCtrlQuery(); | 105 | LLCtrlQuery(); |
106 | }; | 106 | }; |
107 | 107 | ||
108 | #endif | 108 | #endif |