Index: trunk/ab5.0/ablib/src/Classes/ActiveBasic/Windows/UI/ControlEvent.sbp
===================================================================
--- trunk/ab5.0/ablib/src/Classes/ActiveBasic/Windows/UI/ControlEvent.sbp	(revision 545)
+++ trunk/ab5.0/ablib/src/Classes/ActiveBasic/Windows/UI/ControlEvent.sbp	(revision 551)
@@ -1,4 +1,4 @@
 Public
-	Sub AddPaintDC(h As PaintDCEventHandler)
+	Sub AddPaintDC(h As PaintDCHandler)
 		If IsNothing(paintDC) Then
 			paintDC = h
@@ -7,11 +7,11 @@
 		End If
 	End Sub
-	Sub RemovePaintDC(h As PaintDCEventHandler)
+	Sub RemovePaintDC(h As PaintDCHandler)
 		If Not IsNothing(paintDC) Then
 			paintDC -= h
 		End If
 	End Sub
-Private
-	Sub OnPaintDC(e As PaintDCEventArgs)
+Protected
+	Sub OnPaintDC(e As PaintDCArgs)
 		If Not IsNothing(paintDC) Then
 			paintDC(This, e)
@@ -19,8 +19,74 @@
 	End Sub
 Private
-	paintDC As PaintDCEventHandler
-
-Public
-	Sub AddMouseEnter(h As MouseEventHandler)
+	paintDC As PaintDCHandler
+
+Public
+	Sub AddClick(h As Handler)
+		If IsNothing(click) Then
+			click = h
+		Else
+			click += h
+		End If
+	End Sub
+	Sub RemoveClick(h As Handler)
+		If Not IsNothing(click) Then
+			click -= h
+		End If
+	End Sub
+Protected
+	Sub OnClick(e As Args)
+		If Not IsNothing(click) Then
+			click(This, e)
+		End If
+	End Sub
+Private
+	click As Handler
+
+Public
+	Sub AddDoubleClick(h As Handler)
+		If IsNothing(doubleClick) Then
+			doubleClick = h
+		Else
+			doubleClick += h
+		End If
+	End Sub
+	Sub RemoveDoubleClick(h As Handler)
+		If Not IsNothing(doubleClick) Then
+			doubleClick -= h
+		End If
+	End Sub
+Protected
+	Sub OnDoubleClick(e As Args)
+		If Not IsNothing(doubleClick) Then
+			doubleClick(This, e)
+		End If
+	End Sub
+Private
+	doubleClick As Handler
+
+Public
+	Sub AddMove(h As Handler)
+		If IsNothing(move) Then
+			move = h
+		Else
+			move += h
+		End If
+	End Sub
+	Sub RemoveMove(h As Handler)
+		If Not IsNothing(move) Then
+			move -= h
+		End If
+	End Sub
+Protected
+	Sub OnMove(e As Args)
+		If Not IsNothing(move) Then
+			move(This, e)
+		End If
+	End Sub
+Private
+	move As Handler
+
+Public
+	Sub AddMouseEnter(h As MouseHandler)
 		If IsNothing(mouseEnter) Then
 			mouseEnter = h
@@ -29,11 +95,11 @@
 		End If
 	End Sub
-	Sub RemoveMouseEnter(h As MouseEventHandler)
+	Sub RemoveMouseEnter(h As MouseHandler)
 		If Not IsNothing(mouseEnter) Then
 			mouseEnter -= h
 		End If
 	End Sub
-Private
-	Sub OnMouseEnter(e As MouseEventArgs)
+Protected
+	Sub OnMouseEnter(e As MouseArgs)
 		If Not IsNothing(mouseEnter) Then
 			mouseEnter(This, e)
@@ -41,8 +107,8 @@
 	End Sub
 Private
-	mouseEnter As MouseEventHandler
-
-Public
-	Sub AddMouseMove(h As MouseEventHandler)
+	mouseEnter As MouseHandler
+
+Public
+	Sub AddMouseMove(h As MouseHandler)
 		If IsNothing(mouseMove) Then
 			mouseMove = h
@@ -51,11 +117,11 @@
 		End If
 	End Sub
-	Sub RemoveMouseMove(h As MouseEventHandler)
+	Sub RemoveMouseMove(h As MouseHandler)
 		If Not IsNothing(mouseMove) Then
 			mouseMove -= h
 		End If
 	End Sub
-Private
-	Sub OnMouseMove(e As MouseEventArgs)
+Protected
+	Sub OnMouseMove(e As MouseArgs)
 		If Not IsNothing(mouseMove) Then
 			mouseMove(This, e)
@@ -63,8 +129,8 @@
 	End Sub
 Private
-	mouseMove As MouseEventHandler
-
-Public
-	Sub AddMouseHover(h As MouseEventHandler)
+	mouseMove As MouseHandler
+
+Public
+	Sub AddMouseHover(h As MouseHandler)
 		If IsNothing(mouseHover) Then
 			mouseHover = h
@@ -73,11 +139,11 @@
 		End If
 	End Sub
-	Sub RemoveMouseHover(h As MouseEventHandler)
+	Sub RemoveMouseHover(h As MouseHandler)
 		If Not IsNothing(mouseHover) Then
 			mouseHover -= h
 		End If
 	End Sub
-Private
-	Sub OnMouseHover(e As MouseEventArgs)
+Protected
+	Sub OnMouseHover(e As MouseArgs)
 		If Not IsNothing(mouseHover) Then
 			mouseHover(This, e)
@@ -85,8 +151,8 @@
 	End Sub
 Private
-	mouseHover As MouseEventHandler
-
-Public
-	Sub AddMouseLeave(h As MouseEventHandler)
+	mouseHover As MouseHandler
+
+Public
+	Sub AddMouseLeave(h As MouseHandler)
 		If IsNothing(mouseLeave) Then
 			mouseLeave = h
@@ -95,11 +161,11 @@
 		End If
 	End Sub
-	Sub RemoveMouseLeave(h As MouseEventHandler)
+	Sub RemoveMouseLeave(h As MouseHandler)
 		If Not IsNothing(mouseLeave) Then
 			mouseLeave -= h
 		End If
 	End Sub
-Private
-	Sub OnMouseLeave(e As MouseEventArgs)
+Protected
+	Sub OnMouseLeave(e As MouseArgs)
 		If Not IsNothing(mouseLeave) Then
 			mouseLeave(This, e)
@@ -107,8 +173,8 @@
 	End Sub
 Private
-	mouseLeave As MouseEventHandler
-
-Public
-	Sub AddMouseDown(h As MouseEventHandler)
+	mouseLeave As MouseHandler
+
+Public
+	Sub AddMouseDown(h As MouseHandler)
 		If IsNothing(mouseDown) Then
 			mouseDown = h
@@ -117,11 +183,11 @@
 		End If
 	End Sub
-	Sub RemoveMouseDown(h As MouseEventHandler)
+	Sub RemoveMouseDown(h As MouseHandler)
 		If Not IsNothing(mouseDown) Then
 			mouseDown -= h
 		End If
 	End Sub
-Private
-	Sub OnMouseDown(e As MouseEventArgs)
+Protected
+	Sub OnMouseDown(e As MouseArgs)
 		If Not IsNothing(mouseDown) Then
 			mouseDown(This, e)
@@ -129,8 +195,8 @@
 	End Sub
 Private
-	mouseDown As MouseEventHandler
-
-Public
-	Sub AddMouseClick(h As MouseEventHandler)
+	mouseDown As MouseHandler
+
+Public
+	Sub AddMouseClick(h As MouseHandler)
 		If IsNothing(mouseClick) Then
 			mouseClick = h
@@ -139,11 +205,11 @@
 		End If
 	End Sub
-	Sub RemoveMouseClick(h As MouseEventHandler)
+	Sub RemoveMouseClick(h As MouseHandler)
 		If Not IsNothing(mouseClick) Then
 			mouseClick -= h
 		End If
 	End Sub
-Private
-	Sub OnMouseClick(e As MouseEventArgs)
+Protected
+	Sub OnMouseClick(e As MouseArgs)
 		If Not IsNothing(mouseClick) Then
 			mouseClick(This, e)
@@ -151,8 +217,8 @@
 	End Sub
 Private
-	mouseClick As MouseEventHandler
-
-Public
-	Sub AddMouseDoubleClick(h As MouseEventHandler)
+	mouseClick As MouseHandler
+
+Public
+	Sub AddMouseDoubleClick(h As MouseHandler)
 		If IsNothing(mouseDoubleClick) Then
 			mouseDoubleClick = h
@@ -161,11 +227,11 @@
 		End If
 	End Sub
-	Sub RemoveMouseDoubleClick(h As MouseEventHandler)
+	Sub RemoveMouseDoubleClick(h As MouseHandler)
 		If Not IsNothing(mouseDoubleClick) Then
 			mouseDoubleClick -= h
 		End If
 	End Sub
-Private
-	Sub OnMouseDoubleClick(e As MouseEventArgs)
+Protected
+	Sub OnMouseDoubleClick(e As MouseArgs)
 		If Not IsNothing(mouseDoubleClick) Then
 			mouseDoubleClick(This, e)
@@ -173,8 +239,8 @@
 	End Sub
 Private
-	mouseDoubleClick As MouseEventHandler
-
-Public
-	Sub AddMouseUp(h As MouseEventHandler)
+	mouseDoubleClick As MouseHandler
+
+Public
+	Sub AddMouseUp(h As MouseHandler)
 		If IsNothing(mouseUp) Then
 			mouseUp = h
@@ -183,11 +249,11 @@
 		End If
 	End Sub
-	Sub RemoveMouseUp(h As MouseEventHandler)
+	Sub RemoveMouseUp(h As MouseHandler)
 		If Not IsNothing(mouseUp) Then
 			mouseUp -= h
 		End If
 	End Sub
-Private
-	Sub OnMouseUp(e As MouseEventArgs)
+Protected
+	Sub OnMouseUp(e As MouseArgs)
 		If Not IsNothing(mouseUp) Then
 			mouseUp(This, e)
@@ -195,8 +261,8 @@
 	End Sub
 Private
-	mouseUp As MouseEventHandler
-
-Public
-	Sub AddKeyDown(h As KeyEventHandler)
+	mouseUp As MouseHandler
+
+Public
+	Sub AddKeyDown(h As KeyHandler)
 		If IsNothing(keyDown) Then
 			keyDown = h
@@ -205,11 +271,11 @@
 		End If
 	End Sub
-	Sub RemoveKeyDown(h As KeyEventHandler)
+	Sub RemoveKeyDown(h As KeyHandler)
 		If Not IsNothing(keyDown) Then
 			keyDown -= h
 		End If
 	End Sub
-Private
-	Sub OnKeyDown(e As KeyEventArgs)
+Protected
+	Sub OnKeyDown(e As KeyArgs)
 		If Not IsNothing(keyDown) Then
 			keyDown(This, e)
@@ -217,8 +283,8 @@
 	End Sub
 Private
-	keyDown As KeyEventHandler
-
-Public
-	Sub AddKeyUp(h As KeyEventHandler)
+	keyDown As KeyHandler
+
+Public
+	Sub AddKeyUp(h As KeyHandler)
 		If IsNothing(keyUp) Then
 			keyUp = h
@@ -227,11 +293,11 @@
 		End If
 	End Sub
-	Sub RemoveKeyUp(h As KeyEventHandler)
+	Sub RemoveKeyUp(h As KeyHandler)
 		If Not IsNothing(keyUp) Then
 			keyUp -= h
 		End If
 	End Sub
-Private
-	Sub OnKeyUp(e As KeyEventArgs)
+Protected
+	Sub OnKeyUp(e As KeyArgs)
 		If Not IsNothing(keyUp) Then
 			keyUp(This, e)
@@ -239,8 +305,30 @@
 	End Sub
 Private
-	keyUp As KeyEventHandler
-
-Public
-	Sub AddCreate(h As CreateEventHandler)
+	keyUp As KeyHandler
+
+Public
+	Sub AddKeyPress(h As KeyPressHandler)
+		If IsNothing(keyPress) Then
+			keyPress = h
+		Else
+			keyPress += h
+		End If
+	End Sub
+	Sub RemoveKeyPress(h As KeyPressHandler)
+		If Not IsNothing(keyPress) Then
+			keyPress -= h
+		End If
+	End Sub
+Protected
+	Sub OnKeyPress(e As KeyPressArgs)
+		If Not IsNothing(keyPress) Then
+			keyPress(This, e)
+		End If
+	End Sub
+Private
+	keyPress As KeyPressHandler
+/*
+Public
+	Sub AddCreate(h As CreateHandler)
 		If IsNothing(create) Then
 			create = h
@@ -249,11 +337,11 @@
 		End If
 	End Sub
-	Sub RemoveCreate(h As CreateEventHandler)
+	Sub RemoveCreate(h As CreateHandler)
 		If Not IsNothing(create) Then
 			create -= h
 		End If
 	End Sub
-Private
-	Sub OnCreate(e As CreateEventArgs)
+Protected
+	Sub OnCreate(e As CreateArgs)
 		If Not IsNothing(create) Then
 			create(This, e)
@@ -261,4 +349,26 @@
 	End Sub
 Private
-	create As CreateEventHandler
-
+	create As CreateHandler
+
+Public
+	Sub AddDestroy(h As Handler)
+		If IsNothing(destroy) Then
+			destroy = h
+		Else
+			destroy += h
+		End If
+	End Sub
+	Sub RemoveDestroy(h As Handler)
+		If Not IsNothing(destroy) Then
+			destroy -= h
+		End If
+	End Sub
+Protected
+	Sub OnDestroy(e As Args)
+		If Not IsNothing(destroy) Then
+			destroy(This, e)
+		End If
+	End Sub
+Private
+	destroy As Handler
+*/
