aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra/llui/llviewquery.h
diff options
context:
space:
mode:
Diffstat (limited to 'linden/indra/llui/llviewquery.h')
-rw-r--r--linden/indra/llui/llviewquery.h36
1 files changed, 31 insertions, 5 deletions
diff --git a/linden/indra/llui/llviewquery.h b/linden/indra/llui/llviewquery.h
index 9fe51a4..2e2b50d 100644
--- a/linden/indra/llui/llviewquery.h
+++ b/linden/indra/llui/llviewquery.h
@@ -12,12 +12,12 @@
12 * ("GPL"), unless you have obtained a separate licensing agreement 12 * ("GPL"), unless you have obtained a separate licensing agreement
13 * ("Other License"), formally executed by you and Linden Lab. Terms of 13 * ("Other License"), formally executed by you and Linden Lab. Terms of
14 * the GPL can be found in doc/GPL-license.txt in this distribution, or 14 * the GPL can be found in doc/GPL-license.txt in this distribution, or
15 * online at http://secondlife.com/developers/opensource/gplv2 15 * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
16 * 16 *
17 * There are special exceptions to the terms and conditions of the GPL as 17 * There are special exceptions to the terms and conditions of the GPL as
18 * it is applied to this Source Code. View the full text of the exception 18 * it is applied to this Source Code. View the full text of the exception
19 * in the file doc/FLOSS-exception.txt in this software distribution, or 19 * in the file doc/FLOSS-exception.txt in this software distribution, or
20 * online at http://secondlife.com/developers/opensource/flossexception 20 * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
21 * 21 *
22 * By copying, modifying or distributing this software, you acknowledge 22 * By copying, modifying or distributing this software, you acknowledge
23 * that you have read and understood your obligations described above, 23 * that you have read and understood your obligations described above,
@@ -35,6 +35,7 @@
35#include <list> 35#include <list>
36 36
37#include "llmemory.h" 37#include "llmemory.h"
38#include "llui.h"
38 39
39class LLView; 40class LLView;
40 41
@@ -42,35 +43,60 @@ typedef std::list<LLView *> viewList_t;
42typedef std::pair<BOOL, BOOL> filterResult_t; 43typedef std::pair<BOOL, BOOL> filterResult_t;
43 44
44// Abstract base class for all filters. 45// Abstract base class for all filters.
45class LLQueryFilter : public LLRefCount 46class LLQueryFilter
46{ 47{
47public: 48public:
49 virtual ~LLQueryFilter() {};
48 virtual filterResult_t operator() (const LLView* const view, const viewList_t & children) const =0; 50 virtual filterResult_t operator() (const LLView* const view, const viewList_t & children) const =0;
49}; 51};
50 52
51class LLQuerySorter : public LLRefCount 53class LLQuerySorter
52{ 54{
53public: 55public:
56 virtual ~LLQuerySorter() {};
54 virtual void operator() (LLView * parent, viewList_t &children) const; 57 virtual void operator() (LLView * parent, viewList_t &children) const;
55}; 58};
56 59
57class LLNoLeavesFilter : public LLQueryFilter, public LLSingleton<LLNoLeavesFilter> 60class LLLeavesFilter : public LLQueryFilter, public LLSingleton<LLLeavesFilter>
58{ 61{
59 /*virtual*/ filterResult_t operator() (const LLView* const view, const viewList_t & children) const; 62 /*virtual*/ filterResult_t operator() (const LLView* const view, const viewList_t & children) const;
60}; 63};
64
65class LLRootsFilter : public LLQueryFilter, public LLSingleton<LLRootsFilter>
66{
67 /*virtual*/ filterResult_t operator() (const LLView* const view, const viewList_t & children) const;
68};
69
61class LLVisibleFilter : public LLQueryFilter, public LLSingleton<LLVisibleFilter> 70class LLVisibleFilter : public LLQueryFilter, public LLSingleton<LLVisibleFilter>
62{ 71{
63 /*virtual*/ filterResult_t operator() (const LLView* const view, const viewList_t & children) const; 72 /*virtual*/ filterResult_t operator() (const LLView* const view, const viewList_t & children) const;
64}; 73};
74
65class LLEnabledFilter : public LLQueryFilter, public LLSingleton<LLEnabledFilter> 75class LLEnabledFilter : public LLQueryFilter, public LLSingleton<LLEnabledFilter>
66{ 76{
67 /*virtual*/ filterResult_t operator() (const LLView* const view, const viewList_t & children) const; 77 /*virtual*/ filterResult_t operator() (const LLView* const view, const viewList_t & children) const;
68}; 78};
79
69class LLTabStopFilter : public LLQueryFilter, public LLSingleton<LLTabStopFilter> 80class LLTabStopFilter : public LLQueryFilter, public LLSingleton<LLTabStopFilter>
70{ 81{
71 /*virtual*/ filterResult_t operator() (const LLView* const view, const viewList_t & children) const; 82 /*virtual*/ filterResult_t operator() (const LLView* const view, const viewList_t & children) const;
72}; 83};
73 84
85class LLCtrlFilter : public LLQueryFilter, public LLSingleton<LLCtrlFilter>
86{
87 /*virtual*/ filterResult_t operator() (const LLView* const view, const viewList_t & children) const;
88};
89
90class LLWidgetTypeFilter : public LLQueryFilter
91{
92public:
93 LLWidgetTypeFilter(EWidgetType type) : mType(type) {};
94private:
95 /*virtual*/ filterResult_t operator() (const LLView* const view, const viewList_t & children) const;
96
97 EWidgetType mType;
98};
99
74// Algorithm for flattening 100// Algorithm for flattening
75class LLViewQuery 101class LLViewQuery
76{ 102{