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
RevLine 
[473]1/**
[551]2@file Include/Classes/ActiveBasic/Windows/UI/Args.ab
[473]3@brief イベントハンドラ関連
4*/
5
6Namespace ActiveBasic
7Namespace Windows
8Namespace UI
9
[551]10TypeDef Args = System.EventArgs
11'TypeDef Handler = System.EventHandler
12Delegate Sub Handler(sender As Object, e As Args)
[473]13
[551]14Class MessageArgs
15 Inherits Args
[542]16Public
[551]17 Sub MessageArgs(hwndSrc As HWND, message As DWord, wParam As WPARAM, lParam As LPARAM)
[542]18 msg = message
[575]19 hwnd = hwndSrc
[542]20 wp = wParam
21 lp = lParam
22 lr = 0
[615]23 handled = True
[542]24 End Sub
25
[561]26 Const Function Msg() As DWord
[542]27 Msg = msg
28 End Function
29
[575]30 Const Function HWnd() As HWND
31 HWnd = hwnd
32 End Function
[542]33
[561]34 Const Function WParam() As WPARAM
[542]35 WParam = wp
36 End Function
37
[561]38 Const Function LParam() As LPARAM
[542]39 LParam = lp
40 End Function
41
[561]42 Const Function LResult() As LRESULT
[542]43 LResult = lr
44 End Function
45
46 Sub LResult(lResult As LRESULT)
47 lr = lResult
48 End Sub
[615]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
[542]57Private
58 msg As DWord
[575]59 hwnd As HWND
[542]60 wp As WPARAM
61 lp As LPARAM
62 lr As LRESULT
[615]63 handled As Boolean
[542]64End Class
65
[551]66Delegate Sub MessageHandler(sender As Object, e As MessageArgs)
[542]67
[551]68Class PaintDCArgs
69 Inherits Args
[473]70Public
[551]71 Sub PaintDCArgs(hdcTarget As HDC, ByRef rect As RECT)
[473]72 hdc = hdcTarget
73 rc = rect
74 End Sub
75
[561]76 Const Function Handle() As HDC
[473]77 Handle = hdc
78 End Function
79
[561]80 Const Function ClipRect() As RECT
[473]81 ClipRect = rc
82 End Function
83
84Private
85 hdc As HDC
86 rc As RECT
87End Class
88
[551]89Delegate Sub PaintDCHandler(sender As Object, e As PaintDCArgs)
[473]90
[551]91Class PaintDCHandledArgs
92 Inherits PaintDCArgs
[473]93Public
[551]94 Sub PaintDCHandledArgs(hdcTarget As HDC, ByRef rect As RECT)
95 PaintDCArgs(hdcTarget, rect)
[473]96 End Sub
97
[561]98 Const Function Handled() As Boolean
[473]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
[551]110TypeDef PaintDCBackGroundArgs = PaintDCHandledArgs
[473]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
[542]119
120 Shift = MK_SHIFT
121 Control = MK_CONTROL
[473]122End Enum
123
[551]124Class MouseArgs
125 Inherits Args
[473]126Public
[551]127 Sub MouseArgs(button As MouseButtons, clicks As Long, x As Long, y As Long, delta As Long)
[473]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
[551]165Delegate Sub MouseHandler(sender As Object, e As MouseArgs)
[473]166
[551]167Class KeyPressArgs
168 Inherits Args
[473]169Public
[551]170 Sub KeyPressArgs(keyChar As Char)
[473]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
[551]194Delegate Sub KeyPressHandler(sender As Object, e As KeyPressArgs)
[473]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
[551]391Class KeyArgs
392 Inherits Args
[473]393Public
[551]394 Sub KeyArgs(keyData As Keys)
[473]395 key = keyData
396 End Sub
397
[561]398 Const Function Alt() As Boolean
[473]399 Alt = key And Keys.Menu
400 End Function
401
[561]402 Const Function Control() As Boolean
[473]403 Control = key And Keys.Control
404 End Function
405
[561]406 Const Function Shift() As Boolean
[473]407 Shift = key And Keys.Shift
408 End Function
409
[561]410 Const Function KeyCode() As Keys
[542]411 Dim k = key As DWord
412 Dim mask = Keys.KeyCode As DWord
413 KeyCode = (k And mask) As Keys
[473]414 End Function
415
[561]416 Const Function KeyData() As Keys
[473]417 KeyData = key
418 End Function
419
[561]420 Const Function Modifiers() As Keys
[542]421 Dim k = key As DWord
422 Dim mask = Keys.Modifiers As DWord
423 Modifiers = (k And mask) As Keys
[473]424 End Function
425
[561]426 Const Function KeyValue() As Long
[473]427 KeyValue = key As Long
428 End Function
429
430 Sub Handled(handled As Boolean)
431 h = handled
432 End Sub
433
[561]434 Const Function Handled() As Boolean
[473]435 Handled = h
436 End Function
437
438Private
439 key As Keys
440 h As Boolean
441End Class
442
[551]443Delegate Sub KeyHandler(sender As Object, e As KeyArgs)
[473]444
[551]445Class CreateArgs
446 Inherits Args
[542]447Public
[551]448 Sub CreateArgs(pCreateStruct As *CREATESTRUCT)
[542]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
[547]458' Const Function Parent() As Control
459' Parent = Control.FromHandle(pcs->hwndParent)
460' End Function
[542]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
[551]501Delegate Sub CreateHandler(sender As Object, e As CreateArgs)
[542]502
[551]503Class FormClosingArgs
504 Inherits Args
[544]505Public
[551]506 Sub FormClosingArgs()
[544]507 c = False
508 End Sub
509
[561]510 Const Function Cancel() As Boolean
[544]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
[551]521Delegate Sub FormClosingHandler(sender As Object, e As FormClosingArgs)
[544]522
[561]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
[564]557Class PaintBackgroundArgs
558 Inherits Args
559Public
560 Sub PaintBackgroundArgs(hdc As HDC)
561 This.hdc = hdc
[615]562 This.painted = True
[564]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
[615]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
[564]580Private
581 hdc As HDC
[615]582 painted As Boolean
[564]583End Class
584
585Delegate Sub PaintBackgroundHandler(sender As Object, e As PaintBackgroundArgs)
586
[473]587End Namespace 'UI
588End Namespace 'Widnows
589End Namespace 'ActiveBasic
Note: See TracBrowser for help on using the repository browser.