I want to handle mouse click on a morph in an easy way. Can I do something like:
'hello' asMorph
onClick: [ :e | "baboom" ];
openInHand
?
Something like this?
StringMorph subclass: #ClickMorph
instanceVariableNames: 'action'
classVariableNames: ''
category: 'MyMorph'
handlesMouseDown: evt
^true
mouseDown: evt
evt hand waitForClicksOrDrag: self event: evt
mouseUp: evt
action value
action
^ action
action: anObject
action := anObject
You can call that as
(ClickMorph contents: 'Click me')
action: [Transcript open];
openInWorld
The essentials are of course to have a block and to make sure you can react to a click.