source: trunk/ab5.0/ablib/src/Classes/ActiveBasic/Windows/UI/EventArgs.ab@ 615

Last change on this file since 615 was 615, checked in by イグトランス (egtra), 16 years ago

サブクラス化機構(Control.Attach)の整備

File size: 10.8 KB
Line 
1/**
2@file Include/Classes/ActiveBasic/Windows/UI/Args.ab
3@brief イベントハンドラ関連
4*/
5
6Namespace ActiveBasic
7Namespace Windows
8Namespace UI
9
10TypeDef Args = System.EventArgs
11'TypeDef Handler = System.EventHandler
12Delegate Sub Handler(sender As Object, e As Args)
13
14Class MessageArgs
15 Inherits Args
16Public
17 Sub MessageArgs(hwndSrc As HWND, message As DWord, wParam As WPARAM, lParam As LPARAM)
18 msg = message
19 hwnd = hwndSrc
20 wp = wParam
21 lp = lParam
22 lr = 0
23 handled = True
24 End Sub
25
26 Const Function Msg() As DWord
27 Msg = msg
28 End Function
29
30 Const Function HWnd() As HWND
31 HWnd = hwnd
32 End Function
33
34 Const Function WParam() As WPARAM
35 WParam = wp
36 End Function
37
38 Const Function LParam() As LPARAM
39 LParam = lp
40 End Function
41
42 Const Function LResult() As LRESULT
43 LResult = lr
44 End Function
45
46 Sub LResult(lResult As LRESULT)
47 lr = lResult
48 End Sub
49
50 Const Function Handled() As Boolean
51 Handled = handled
52 End Function
53
54 Sub Handled(h As Boolean)
55 handled = h
56 End Sub
57Private
58 msg As DWord
59 hwnd As HWND
60 wp As WPARAM
61 lp As LPARAM
62 lr As LRESULT
63 handled As Boolean
64End Class
65
66Delegate Sub MessageHandler(sender As Object, e As MessageArgs)
67
68Class PaintDCArgs
69 Inherits Args
70Public
71 Sub PaintDCArgs(hdcTarget As HDC, ByRef rect As RECT)
72 hdc = hdcTarget
73 rc = rect
74 End Sub
75
76 Const Function Handle() As HDC
77 Handle = hdc
78 End Function
79
80 Const Function ClipRect() As RECT
81 ClipRect = rc
82 End Function
83
84Private
85 hdc As HDC
86 rc As RECT
87End Class
88
89Delegate Sub PaintDCHandler(sender As Object, e As PaintDCArgs)
90
91Class PaintDCHandledArgs
92 Inherits PaintDCArgs
93Public
94 Sub PaintDCHandledArgs(hdcTarget As HDC, ByRef rect As RECT)
95 PaintDCArgs(hdcTarget, rect)
96 End Sub
97
98 Const Function Handled() As Boolean
99 Handled = h
100 End Function
101
102 Sub Handled(handled As Boolean)
103 h = handled
104 End Sub
105
106Private
107 h As Boolean
108End Class
109
110TypeDef PaintDCBackGroundArgs = PaintDCHandledArgs
111
112Enum MouseButtons
113 None = 0
114 Left = MK_LBUTTON
115 Right = MK_RBUTTON
116 Middle = MK_MBUTTON
117 XButton1 = MK_XBUTTON1
118 XButton2 = MK_XBUTTON2
119
120 Shift = MK_SHIFT
121 Control = MK_CONTROL
122End Enum
123
124Class MouseArgs
125 Inherits Args
126Public
127 Sub MouseArgs(button As MouseButtons, clicks As Long, x As Long, y As Long, delta As Long)
128 This.button = button
129 This.clicks = clicks
130 This.pt = New System.Drawing.Point(x, y)
131 This.delta = delta
132 End Sub
133
134 Const Function Button() As MouseButtons
135 Button = button
136 End Function
137
138 Const Function Clicks() As Long
139 Clicks = clicks
140 End Function
141
142 Const Function Delta() As Long
143 Delta = delta
144 End Function
145
146 Const Function Locale() As System.Drawing.Point
147 Locale = New System.Drawing.Point(pt.X, pt.Y)
148 End Function
149
150 Const Function X() As Long
151 X = pt.X
152 End Function
153
154 Const Function Y() As Long
155 Y = pt.Y
156 End Function
157
158Private
159 pt As System.Drawing.Point
160 button As MouseButtons
161 clicks As Long
162 delta As Long
163End Class
164
165Delegate Sub MouseHandler(sender As Object, e As MouseArgs)
166
167Class KeyPressArgs
168 Inherits Args
169Public
170 Sub KeyPressArgs(keyChar As Char)
171 key = keyChar
172 End Sub
173
174 Sub KeyChar(keyChar As Char)
175 key = keyChar
176 End Sub
177
178 Const Function KeyChar() As Char
179 KeyChar = key
180 End Function
181
182 Sub Handled(handled As Boolean)
183 h = handled
184 End Sub
185
186 Const Function Handled() As Boolean
187 Handled = h
188 End Function
189Private
190 key As Char
191 h As Boolean
192End Class
193
194Delegate Sub KeyPressHandler(sender As Object, e As KeyPressArgs)
195
196Enum Keys
197 None = 0
198 LButton = VK_LBUTTON
199 RButton = VK_RBUTTON
200 Cancel = VK_CANCEL
201 MButton = VK_MBUTTON
202 XButton1 = VK_XBUTTON1
203 XButton2 = VK_XBUTTON2
204 Back = VK_BACK
205 Tab = VK_TAB
206 LineFeed = &ha
207 Clear = VK_CLEAR
208 Enter = VK_RETURN
209 Return_ = VK_RETURN
210 ShiftKey = VK_SHIFT
211 ControlKey = VK_CONTROL
212 Menu = VK_MENU
213 Pause = VK_PAUSE
214 Capital = VK_CAPITAL
215 KanaMode = VK_KANA
216 HangulMode = VK_HANGUL
217 JunjaMode = VK_JUNJA
218 FinalMode = VK_FINAL
219 KanjiMode = VK_KANJI
220 HanjaMode = VK_HANJA
221 Escape = VK_ESCAPE
222 IMEConvert = VK_CONVERT
223 IMENonconvert = VK_NONCONVERT
224 IMEAccept = VK_ACCEPT
225 IMEModeChange = VK_MODECHANGE
226 Space = VK_SPACE
227 Prior = VK_PRIOR
228 PageUp = VK_PRIOR
229 PageDown = VK_NEXT
230 Next_ = VK_NEXT
231 End_ = VK_END
232 Home = VK_HOME
233 Left = VK_LEFT
234 Up = VK_UP
235 Right = VK_RIGHT
236 Down = VK_DOWN
237 Select_ = VK_SELECT
238 Print = VK_PRINT
239 Execute = VK_EXECUTE
240 Snapshot = VK_SNAPSHOT
241 Insert = VK_INSERT
242 Delete_ = VK_DELETE
243 Help = VK_HELP
244 D0 = &h30
245 D1 = &h31
246 D2 = &h32
247 D3 = &h33
248 D4 = &h34
249 D5 = &h35
250 D6 = &h36
251 D7 = &h37
252 D8 = &h38
253 D9 = &h39
254 A = &h41
255 B = &h42
256 C = &h43
257 D = &h44
258 E = &h45
259 F = &h46
260 G = &h47
261 H = &h48
262 I = &h49
263 J = &h4a
264 K = &h4b
265 L = &h4c
266 M = &h4d
267 N = &h4e
268 O = &h4f
269 P = &h50
270 Q = &h51
271 R = &h52
272 S = &h53
273 T = &h54
274 U = &h55
275 V = &h56
276 W = &h57
277 X = &h58
278 Y = &h59
279 Z = &h5A
280 LWin = VK_LWIN
281 RWin = VK_RWIN
282 Apps = VK_APPS
283 Sleep = VK_SLEEP
284 NumPad0 = VK_NUMPAD0
285 NumPad1 = VK_NUMPAD1
286 NumPad2 = VK_NUMPAD2
287 NumPad3 = VK_NUMPAD3
288 NumPad4 = VK_NUMPAD4
289 NumPad5 = VK_NUMPAD5
290 NumPad6 = VK_NUMPAD6
291 NumPad7 = VK_NUMPAD7
292 NumPad8 = VK_NUMPAD8
293 NumPad9 = VK_NUMPAD9
294 Multiply = VK_MULTIPLY
295 Add = VK_ADD
296 Separator = VK_SEPARATOR
297 Substract = VK_SUBTRACT
298 Decimal = VK_DECIMAL
299 Divide = VK_DIVIDE
300 F1 = VK_F1
301 F2 = VK_F2
302 F3 = VK_F3
303 F4 = VK_F4
304 F5 = VK_F5
305 F6 = VK_F6
306 F7 = VK_F7
307 F8 = VK_F8
308 F9 = VK_F9
309 F10 = VK_F10
310 F11 = VK_F11
311 F12 = VK_F12
312 F13 = VK_F13
313 F14 = VK_F14
314 F15 = VK_F15
315 F16 = VK_F16
316 F17 = VK_F17
317 F18 = VK_F18
318 F19 = VK_F19
319 F20 = VK_F20
320 F21 = VK_F21
321 F22 = VK_F22
322 F23 = VK_F23
323 F24 = VK_F24
324 NumLock = VK_NUMLOCK
325 Scroll = VK_SCROLL
326 LShiftKey = VK_LSHIFT
327 RShiftKey = VK_RSHIFT
328 LControlKey = VK_LCONTROL
329 RControlKey = VK_RCONTROL
330 LMenu = VK_LMENU
331 RMenu = VK_RMENU
332 BrowserBack = VK_BROWSER_BACK
333 BrowserForward = VK_BROWSER_FORWARD
334 BrowserRefresh = VK_BROWSER_REFRESH
335 BrowserStop = VK_BROWSER_STOP
336 BrowserSearch = VK_BROWSER_SEARCH
337 BrowserFavorites = VK_BROWSER_FAVORITES
338 BrowserHome = VK_BROWSER_HOME
339 VolumeMute = VK_VOLUME_MUTE
340 VolumeDown = VK_VOLUME_DOWN
341 VolumeUp = VK_VOLUME_UP
342 MediaNextTrack = VK_MEDIA_NEXT_TRACK
343 MediaPreviousTrack = VK_MEDIA_PREV_TRACK
344 MediaStop = VK_MEDIA_STOP
345 MediaPlayPause = VK_MEDIA_PLAY_PAUSE
346 LaunchMail = VK_LAUNCH_MAIL
347 SelectMedia = VK_LAUNCH_MEDIA_SELECT
348 LaunchApplication1 = VK_LAUNCH_APP1
349 LaunchApplication2 = VK_LAUNCH_APP2
350 Oem1 = VK_OEM_1
351 Oemplus = VK_OEM_PLUS
352 Oemcomma = VK_OEM_COMMA
353 OemMinus = VK_OEM_MINUS
354 OemPeriod = VK_OEM_PERIOD
355 Oem2 = VK_OEM_2
356 OemQuestion = VK_OEM_2
357 Oem3 = VK_OEM_3
358 Oemtilde = VK_OEM_3
359 Oem4 = VK_OEM_4
360 OemOpenBrackets = VK_OEM_4
361 Oem5 = VK_OEM_5
362 OemPipe = VK_OEM_5
363 Oem6 = VK_OEM_6
364 OemCloseBrackets = VK_OEM_6
365 Oem7 = VK_OEM_7
366 OemQuotes = VK_OEM_7
367 Oem8 = VK_OEM_8
368 Oem102 = VK_OEM_102
369 OemBackslash = VK_OEM_102
370 ProcessKey = VK_PROCESSKEY
371 Packet = VK_PACKET
372 Attn = VK_ATTN
373 Crsel = VK_CRSEL
374 Exsel = VK_EXSEL
375 EraseEof = VK_EREOF
376 Play = VK_PLAY
377 NoName = VK_NONAME
378 Zoom = VK_ZOOM
379 Pa1 = VK_PA1
380 OemClear = VK_OEM_CLEAR
381
382 KeyCode = &hffff
383
384 Shift = &h10000
385 Control = &h20000
386 Alt = &h40000
387
388 Modifiers = &hffff
389End Enum
390
391Class KeyArgs
392 Inherits Args
393Public
394 Sub KeyArgs(keyData As Keys)
395 key = keyData
396 End Sub
397
398 Const Function Alt() As Boolean
399 Alt = key And Keys.Menu
400 End Function
401
402 Const Function Control() As Boolean
403 Control = key And Keys.Control
404 End Function
405
406 Const Function Shift() As Boolean
407 Shift = key And Keys.Shift
408 End Function
409
410 Const Function KeyCode() As Keys
411 Dim k = key As DWord
412 Dim mask = Keys.KeyCode As DWord
413 KeyCode = (k And mask) As Keys
414 End Function
415
416 Const Function KeyData() As Keys
417 KeyData = key
418 End Function
419
420 Const Function Modifiers() As Keys
421 Dim k = key As DWord
422 Dim mask = Keys.Modifiers As DWord
423 Modifiers = (k And mask) As Keys
424 End Function
425
426 Const Function KeyValue() As Long
427 KeyValue = key As Long
428 End Function
429
430 Sub Handled(handled As Boolean)
431 h = handled
432 End Sub
433
434 Const Function Handled() As Boolean
435 Handled = h
436 End Function
437
438Private
439 key As Keys
440 h As Boolean
441End Class
442
443Delegate Sub KeyHandler(sender As Object, e As KeyArgs)
444
445Class CreateArgs
446 Inherits Args
447Public
448 Sub CreateArgs(pCreateStruct As *CREATESTRUCT)
449 pcs = pCreateStruct
450 End Sub
451
452 Const Function HInstance() As HINSTANCE
453 HInstance = pcs->hInstance
454 End Function
455
456 'Menu: pcs->hMenu
457
458' Const Function Parent() As Control
459' Parent = Control.FromHandle(pcs->hwndParent)
460' End Function
461
462 Const Function Height() As Long
463 Height = pcs->cy
464 End Function
465
466 Const Function Width() As Long
467 Width = pcs->cx
468 End Function
469
470 Const Function Y() As Long
471 Y = pcs->cy
472 End Function
473
474 Const Function X() As Long
475 X = pcs->cx
476 End Function
477
478 Const Function Style() As DWord
479 Style = pcs->style As DWord
480 End Function
481
482 Const Function Caption() As String
483 Caption = New String(pcs->lpszName)
484 End Function
485
486 Const Function ClassName() As String
487 ClassName = New String(pcs->lpszClass)
488 End Function
489
490 Const Function ExStyle() As DWord
491 ExStyle = pcs->dwExStyle
492 End Function
493
494 Const Function CreateStruct() As *CREATESTRUCT
495 CreateStruct = pcs
496 End Function
497Private
498 pcs As *CREATESTRUCT
499End Class
500
501Delegate Sub CreateHandler(sender As Object, e As CreateArgs)
502
503Class FormClosingArgs
504 Inherits Args
505Public
506 Sub FormClosingArgs()
507 c = False
508 End Sub
509
510 Const Function Cancel() As Boolean
511 Cancel = c
512 End Function
513
514 Sub Cancel(cancel As Boolean)
515 c = cancel
516 End Sub
517Private
518 c As Boolean
519End Class
520
521Delegate Sub FormClosingHandler(sender As Object, e As FormClosingArgs)
522
523Class ResizeArgs
524 Inherits Args
525Public
526 Sub ResizeArgs(resizeType As Long, X As Long, Y As Long)
527 rt = resizeType
528 x = X
529 y = Y
530 End Sub
531
532 Sub ResizeArgs(wp As WPARAM, lp As LPARAM)
533 rt = wp As Long
534 x = GET_X_LPARAM(lp)
535 y = GET_Y_LPARAM(lp)
536 End Sub
537
538 Function ResizeType() As Long
539 ResizeType = rt
540 End Function
541
542 Function X() As Long
543 X = x
544 End Function
545
546 Function Y() As Long
547 Y = y
548 End Function
549Private
550 rt As Long
551 x As Long
552 y As Long
553End Class
554
555Delegate Sub ResizeHandler(sender As Object, e As ResizeArgs)
556
557Class PaintBackgroundArgs
558 Inherits Args
559Public
560 Sub PaintBackgroundArgs(hdc As HDC)
561 This.hdc = hdc
562 This.painted = True
563 End Sub
564
565 Sub PaintBackgroundArgs(wp As WPARAM, lp As LPARAM)
566 This.hdc = wp As HDC
567 End Sub
568
569 Const Function Handle() As HDC
570 Handle = hdc
571 End Function
572
573 Const Function Painted() As Boolean
574 Painted = painted
575 End Function
576
577 Sub Painted(p As Boolean)
578 painted = p
579 End Sub
580Private
581 hdc As HDC
582 painted As Boolean
583End Class
584
585Delegate Sub PaintBackgroundHandler(sender As Object, e As PaintBackgroundArgs)
586
587End Namespace 'UI
588End Namespace 'Widnows
589End Namespace 'ActiveBasic
Note: See TracBrowser for help on using the repository browser.