MyGUI 3.4.1
MyGUI_EventPair.h
Go to the documentation of this file.
1/*
2 * This source file is part of MyGUI. For the latest info, see http://mygui.info/
3 * Distributed under the MIT License
4 * (See accompanying file COPYING.MIT or copy at http://opensource.org/licenses/MIT)
5 */
6
7#ifndef MYGUI_EVENT_PAIR_H_
8#define MYGUI_EVENT_PAIR_H_
9
10#include "MyGUI_Prerequest.h"
11
12namespace MyGUI
13{
14
15 template <typename EventObsolete, typename Event>
17 {
18 public:
19
20 template <typename T>
21 MYGUI_OBSOLETE("use : signature : Event::IDelegate * _delegate")
22 void operator = (T* _delegate)
23 {
24 m_eventObsolete = _delegate;
25 m_event = nullptr;
26 }
27
28 MYGUI_OBSOLETE("use : operator += ")
29 void operator = (typename Event::IDelegate* _delegate)
30 {
31 m_eventObsolete = nullptr;
32 m_event = _delegate;
33 }
34
35 template <typename T>
36 MYGUI_OBSOLETE("use : signature : Event::IDelegate * _delegate")
37 void operator += (T* _delegate)
38 {
39 m_eventObsolete += _delegate;
40 m_event.clear();
41 }
42
43 void operator += (typename Event::IDelegate* _delegate)
44 {
45 m_eventObsolete.clear();
46 m_event += _delegate;
47 }
48
49 template <typename T>
50 MYGUI_OBSOLETE("use : signature : Event::IDelegate * _delegate")
51 void operator -= (T* _delegate)
52 {
53 m_eventObsolete -= _delegate;
54 m_event.clear();
55 }
56
57 void operator -= (typename Event::IDelegate* _delegate)
58 {
59 m_eventObsolete.clear();
60 m_event -= _delegate;
61 }
62
63 template <typename TP1>
64 void operator()( TP1 p1 )
65 {
67 m_event(p1);
68 }
69
70 template <typename TP1, typename TP2>
71 void operator()( TP1 p1, TP2 p2 )
72 {
73 m_eventObsolete(p1, p2);
74 m_event(p1, p2);
75 }
76
77 template <typename TP1, typename TP2, typename TP3>
78 void operator()( TP1 p1, TP2 p2, TP3 p3 )
79 {
80 m_eventObsolete(p1, p2, p3);
81 m_event(p1, p2, p3);
82 }
83
84 template <typename TP1, typename TP2, typename TP3, typename TP4>
85 void operator()( TP1 p1, TP2 p2, TP3 p3, TP4 p4 )
86 {
87 m_eventObsolete(p1, p2, p3, p4);
88 m_event(p1, p2, p3, p4);
89 }
90
91 template <typename TP1, typename TP2, typename TP3, typename TP4, typename TP5>
92 void operator()( TP1 p1, TP2 p2, TP3 p3, TP4 p4, TP5 p5 )
93 {
94 m_eventObsolete(p1, p2, p3, p4, p5);
95 m_event(p1, p2, p3, p4, p5);
96 }
97
98 template <typename TP1, typename TP2, typename TP3, typename TP4, typename TP5, typename TP6>
99 void operator()( TP1 p1, TP2 p2, TP3 p3, TP4 p4, TP5 p5, TP6 p6 )
100 {
101 m_eventObsolete(p1, p2, p3, p4, p5, p6);
102 m_event(p1, p2, p3, p4, p5, p6);
103 }
104
105 template <typename TP1, typename TP2, typename TP3, typename TP4, typename TP5, typename TP6, typename TP7>
106 void operator()( TP1 p1, TP2 p2, TP3 p3, TP4 p4, TP5 p5, TP6 p6, TP7 p7 )
107 {
108 m_eventObsolete(p1, p2, p3, p4, p5, p6, p7);
109 m_event(p1, p2, p3, p4, p5, p6, p7);
110 }
111
112 template <typename TP1, typename TP2, typename TP3, typename TP4, typename TP5, typename TP6, typename TP7, typename TP8>
113 void operator()( TP1 p1, TP2 p2, TP3 p3, TP4 p4, TP5 p5, TP6 p6, TP7 p7, TP8 p8 )
114 {
115 m_eventObsolete(p1, p2, p3, p4, p5, p6, p7, p8);
116 m_event(p1, p2, p3, p4, p5, p6, p7, p8);
117 }
118
119 bool empty() const
120 {
121 return m_eventObsolete.empty() && m_event.empty();
122 }
123
124 public:
125 EventObsolete m_eventObsolete;
126 Event m_event;
127 };
128
129 template <typename EventObsolete, typename Event>
131 {
132 public:
133
134 template <typename T>
135 MYGUI_OBSOLETE("use : signature : Event::IDelegate * _delegate")
136 void operator = (T* _delegate)
137 {
138 m_eventObsolete = _delegate;
139 m_event = nullptr;
140 }
141
142 MYGUI_OBSOLETE("use : operator += ")
143 void operator = (typename Event::IDelegate* _delegate)
144 {
145 m_eventObsolete = nullptr;
146 m_event = _delegate;
147 }
148
149 template <typename T>
150 MYGUI_OBSOLETE("use : signature : Event::IDelegate * _delegate")
151 void operator += (T* _delegate)
152 {
153 m_eventObsolete += _delegate;
154 m_event.clear();
155 }
156
157 void operator += (typename Event::IDelegate* _delegate)
158 {
159 m_eventObsolete.clear();
160 m_event += _delegate;
161 }
162
163 template <typename T>
164 MYGUI_OBSOLETE("use : signature : Event::IDelegate * _delegate")
165 void operator -= (T* _delegate)
166 {
167 m_eventObsolete -= _delegate;
168 m_event.clear();
169 }
170
171 void operator -= (typename Event::IDelegate* _delegate)
172 {
173 m_eventObsolete.clear();
174 m_event -= _delegate;
175 }
176
177 // 1 to 2
178 template <typename TP1, typename TP2>
179 void operator()( TP1 p1, TP2 p2 )
180 {
181 m_eventObsolete(p1);
182 m_event(p1, p2);
183 }
184
185 // 2 to 3
186 template <typename TP1, typename TP2, typename TP3, typename TP4>
187 void operator()( TP1 p1, TP2 p2, TP3 p3 )
188 {
189 m_eventObsolete(p1, p2);
190 m_event(p1, p2, p3);
191 }
192
193 // 3 to 4
194 template <typename TP1, typename TP2, typename TP3, typename TP4>
195 void operator()( TP1 p1, TP2 p2, TP3 p3, TP4 p4 )
196 {
197 m_eventObsolete(p1, p2, p3);
198 m_event(p1, p2, p3, p4);
199 }
200
201 bool empty() const
202 {
203 return m_eventObsolete.empty() && m_event.empty();
204 }
205
206 public:
207 EventObsolete m_eventObsolete;
208 Event m_event;
209 };
210
211} // namespace MyGUI
212
213#endif // MYGUI_EVENT_PAIR_H_
#define MYGUI_OBSOLETE(text)
void operator()(TP1 p1, TP2 p2, TP3 p3, TP4 p4)
void operator()(TP1 p1, TP2 p2, TP3 p3)
void operator+=(T *_delegate)
void operator-=(T *_delegate)
void operator()(TP1 p1, TP2 p2)
void operator()(TP1 p1, TP2 p2, TP3 p3, TP4 p4, TP5 p5, TP6 p6)
void operator()(TP1 p1, TP2 p2, TP3 p3, TP4 p4, TP5 p5)
bool empty() const
void operator()(TP1 p1, TP2 p2, TP3 p3, TP4 p4, TP5 p5, TP6 p6, TP7 p7, TP8 p8)
void operator+=(T *_delegate)
void operator()(TP1 p1, TP2 p2, TP3 p3)
void operator()(TP1 p1, TP2 p2)
void operator()(TP1 p1)
void operator()(TP1 p1, TP2 p2, TP3 p3, TP4 p4)
EventObsolete m_eventObsolete
void operator-=(T *_delegate)
void operator()(TP1 p1, TP2 p2, TP3 p3, TP4 p4, TP5 p5, TP6 p6, TP7 p7)