I would consider the handleXXX methods to be private. In fact, I tried to move them out of Brick (and failed - but I may try it again soon). These methods do more than just let you add a hilight to your morph when the mouse goes down on it. They also do the event forwarding to models/delegates. So I think you should not override them as I consider them to be part of the system level event dispatching mechanism.
Example from morph:
handleMouseDown: anEvent "System level event handling." anEvent wasHandled ifTrue:[^self]. "not interested" anEvent hand removePendingBalloonFor: self. anEvent hand removePendingHaloFor: self. anEvent wasHandled: true. anEvent controlKeyPressed ifTrue:[^self invokeMetaMenu: anEvent]. "Make me modal during mouse transitions" anEvent hand newMouseFocus: self event: anEvent. anEvent blueButtonChanged ifTrue:[^self blueButtonDown: anEvent]. (self allowsGestureStart: anEvent) ifTrue: [^ self gestureStart: anEvent]. self mouseDown: anEvent. anEvent hand removeHaloFromClick: anEvent on: self. (self handlesMouseStillDown: anEvent) ifTrue:[ self startStepping: #handleMouseStillDown: at: Time millisecondClockValue + self mouseStillDownThreshold arguments: {anEvent copy resetHandlerFields} stepTime: 1].
Notice that if you just override this method without calling super, balloons will stay open, menus will stop working, and mouseStillDown tracking won't work. Instead you want to implement mouseDown: to add your behavior.
On Wednesday, April 30, 2003, at 12:05 PM, Rudi Angela wrote:
I have a Morph subclass, which is dragable by default. Now I would also like to make it doubleclickable. But if I start adding the methods #handlesMouseDown, etc, then apparently I loose the dragability. Am I doing something wrong? Or does Morphic not support this combination of behaviors?
Rudi Angela
Try AOL and get 1045 hours FREE for 45 days! http://free.aol.com/tryaolfree/index.adp?375380
Get AOL Instant Messenger 5.1 for FREE! Download Now! http://aim.aol.com/aimnew/Aim/register.adp?promo=380455