1
2
3 type vloc
4 {
5 int left
6 int top
7 uint width
8 uint height
9 }
10
11 define <export>{
12 e_winmsg = 1
13 e_winntf = 2
14 e_poschanging = 3
15 e_mouse = 4
16 e_key = 5
17 e_paint = 6
18 // e_ownersize = 7
19 e_poschanged = 8
20
21 e_create = 10
22 e_insert = 11
23 e_remove = 12
24 e_focus = 13
25 e_update = 14
26 }
27
28
29
30 type evparEvent
31 {
32 uint sender
33 uint eventtypeid
34 uint code
35 }
36
37 type evEvent
38 {
39 uint obj
40 uint id
41 uint eventtypeid
42 }
43
44 /*type descrevent {
45 str nameevent
46 str namemethod
47 }*/
48
49 method evEvent evEvent.init
50 {
51 this.eventtypeid = evparEvent
52 return this
53 }
54
55 type evparQuery <inherit=evparEvent>
56 {
57 uint flgCancel
58 }
59
60 type evQuery <inherit=evEvent>
61 {
62 }
63
64 method evQuery evQuery.init
65 {
66 this.eventtypeid = evparQuery
67 return this
68 }
69
70 define {
71 evmMove = 1
72 evmLDown = 2
73 evmLDbl = 3
74 evmLUp = 4
75 evmRDown = 5
76 evmRDbl = 6
77 evmRUp = 7
78 evmMDown = 8
79 evmMDbl = 9
80 evmMUp = 10
81 evmWhellUp = 11
82 evmWhellDown = 12
83 evmLeave = 13
84
85 evkDown = 1
86 evkPress = 2
87 evkUp = 3
88 //evmOn = 13
89 //evmOut = 14
90
91 mstAlt = 0x001
92 mstCtrl = 0x002
93 mstShift = 0x004
94 mstLBtn = 0x100
95 mstRBtn = 0x200
96 mstMBtn = 0x400
97 }
98
99 type eventwnd <inherit = evparEvent>
100 {
101 uint wnd
102 uint message
103 uint wpar
104 uint lpar
105 }
106
107 type oneventwnd <inherit=evEvent> :
108
109 method oneventwnd oneventwnd.init
110 {
111 this.eventtypeid = eventwnd
112 return this
113 }
114
115
116 type evparMouse <inherit = evparEvent>
117 {
118 uint evmtype
119 uint mstate
120 uint x
121 uint y
122 }
123
124 type evMouse <inherit=evEvent> :
125
126 method evMouse evMouse.init
127 {
128 this.eventtypeid = evparMouse
129 return this
130 }
131
132
133 type evparKey <inherit = evparEvent>
134 {
135 uint evktype
136 uint key
137 uint mstate
138
139 }
140
141 type evKey <inherit=evEvent> :
142
143 method evKey evKey.init
144 {
145 this.eventtypeid = evparKey
146 return this
147 }
148
149
150 type eventpos <inherit = evparEvent>
151 {
152 vloc loc
153 uint move
154 uint par
155 }
156
157 type oneventpos <inherit=evEvent> :
158
159 method oneventpos oneventpos.init
160 {
161 this.eventtypeid = eventpos
162 return this
163 }
164
165 type eventstr <inherit=evparEvent>
166 {
167 str val
168 }
169
170 type oneventstr <inherit=evEvent> :
171
172 method oneventstr oneventstr.init
173 {
174 this.eventtypeid = eventstr
175 return this
176 }
177
178 type evparValUint <inherit=evparEvent>
179 {
180 uint val
181 }
182
183 type evValUint <inherit=evEvent> :
184
185 method evValUint evValUint.init
186 {
187 this.eventtypeid = evparValUint
188 return this
189 }
190
191 method uint evEvent.run( evparEvent ev )
192 {
193 if this.id
194 {
195 ev.eventtypeid = this.eventtypeid
196
197 return this.id->func( this.obj, ev )
198 }
199 return 0
200 }
201
202
203
204
205
206 method uint evEvent.run()
207 {
208 if this.id
209 {
210 evparEvent ev
211
212 ev.eventtypeid = this.eventtypeid
213 //print( "run=\(this.obj) \n" )
214 return this.id->func( this.obj, ev )
215 }
216 return 0
217 }
218
219
220
221
222 method uint evEvent.is()
223 {
224 return this.id
225 }
226 /*
227 method evEvent.set( any obj, uint funcid )
228 {
229 this.id = funcid
230 this.obj = obj
231 }*/
232
233 method uint evEvent.Run( /*any Sender,*/ evparEvent ev )
234 {
235 if this.id
236 {
237 ev->evparEvent.eventtypeid = this.eventtypeid
238 return this.id->func( this.obj, /*Sender,*/ ev )
239 }
240 return 0
241 }
242
243 method uint evEvent.Run( /*any Sender,*/ evparEvent ev, vComp sender )
244 {
245 if this.id
246 {
247 ev.eventtypeid = this.eventtypeid
248 ev.sender = &sender
249 return this.id->func( this.obj, /*Sender,*/ ev )
250 }
251 return 0
252 }
253
254 method uint evEvent.Run( vComp sender )
255 {
256 if this.id
257 {
258 evparEvent ev
259 ev.sender = &sender
260 ev.eventtypeid = this.eventtypeid
261 //print( "run=\(this.obj) \(&sender)\n" )
262 return this.id->func( this.obj, ev )
263 }
264 return 0
265 }
266
267 method evEvent.Set( any obj, uint funcid )
268 {
269 this.id = funcid
270 this.obj = obj
271 }
272
273 operator evEvent = ( evEvent dest, evEvent src )
274 {
275 dest.obj = src.obj
276 dest.id = src.id
277 return dest
278 }
Edit