change to only expect one single method to be (re)defined:
processEvent.
The others are left for backward compatibility, for now.
--- a/EventListener.st Mon Jun 27 15:58:20 2011 +0200
+++ b/EventListener.st Wed Jun 29 19:14:28 2011 +0200
@@ -61,6 +61,12 @@
"
! !
+!EventListener class methodsFor:'others'!
+
+version_CVS
+ ^ '$Header: /cvs/stx/stx/libview2/EventListener.st,v 1.28 2011-06-29 17:14:28 cg Exp $'
+! !
+
!EventListener methodsFor:'event handling'!
buttonMotion:buttonAndModifierState x:x y:y view:aView
@@ -154,21 +160,60 @@
"Modified: 23.4.1996 / 21:58:17 / cg"
! !
+!EventListener methodsFor:'event handling-basic'!
+
+processEvent:ev
+ "process an event; if true is returned, the event is considered to be
+ 'eaten' by the listener, and not passed to the view.
+ If false is returned, the event is processed as usual.
+ Here, the event is dispatched into one of the button*/key* etc. methods"
+
+ "/ subclasses may do:
+ "/ |eventHasBeenProcessed|
+ "/
+ "/ eventHasBeenProcessed := false.
+ "/ Error handle:[:ex |
+ "/ ('Listener [info]: error while processing event: ' , ex description) infoPrintCR.
+ "/ ] do:[
+ "/ eventHasBeenProcessed := ev dispatchWithViewArgumentTo:self
+ "/ ].
+ "/ ^ eventHasBeenProcessed
+
+ ^ false
+
+ "Modified: / 29-06-2011 / 19:13:18 / cg"
+! !
+
!EventListener methodsFor:'events-window creation'!
postCreateView:aView
+ "a synthetic event:
+ some view was created"
+
^ self
+
+ "Modified: / 29-06-2011 / 18:55:53 / cg"
!
preCreateView:aView
+ "a synthetic event:
+ some view is about to be created;
+ gives me a chance to intercept and change size, origin, color, etc."
+
^ self
+
+ "Modified: / 29-06-2011 / 18:54:19 / cg"
!
preCreateView:aView origin:org
- "invoked right before a view is about to be physically created.
+ "Obsolete now - the system will now send a preCreateView: event (without origin arg).
+ not really an event:
+ invoked right before a view is about to be physically created.
May return a new origin."
^ org
+
+ "Modified: / 29-06-2011 / 18:55:23 / cg"
! !
!EventListener methodsFor:'listen'!
@@ -188,31 +233,9 @@
"
!
-processEvent:ev
- "process an event; if true is returned, the event is considered to be
- 'eaten' by the listener, and not passed to the view.
- If false is returned, the event is processed as usual.
- Here, the event is dispatched into one of the button*/key* etc. methods"
-
- |eventHasBeenProcessed|
-
- eventHasBeenProcessed := false.
- Error handle:[:ex |
- ('Listener [info]: error while processing event: ' , ex description) infoPrintCR.
- ] do:[
- eventHasBeenProcessed := ev dispatchWithViewArgumentTo:self
- ].
- ^ eventHasBeenProcessed
-!
-
unlisten
"uninstall myself as listener"
WindowSensor removeEventListener:self
! !
-!EventListener class methodsFor:'documentation'!
-
-version
- ^ '$Header: /cvs/stx/stx/libview2/EventListener.st,v 1.27 2009-06-01 08:43:48 cg Exp $'
-! !