[Newbies] How do you find which code runs when you click on something?

Matthew Fulmer tapplek at gmail.com
Wed Jun 27 00:26:41 UTC 2007


On Tue, Jun 26, 2007 at 09:47:29PM +0100, Ian Oversby wrote:
> Hi,
> 
> I'm trying to find out which code is run when I click on something
> in Squeak.  I've tried selecting the menu from the middle button
> and then selecting debug -> explore morph.  Is this the best
> way?  Does it work for all morphs?  How can I add new menu
> items which run arbitrary code?

I tried exploring the morph, and also browsing the class
protocol (select the object in the inspector/explorer, and press
cmd-p). I limited the inheritance chain to StringMorph, and
examined the "event handlers" method category. I looked at the
mouseUp handler (mouse up is the usual place where actions are
invoked), and the last line looked promising: "self
invokeWithEvent: t1". I highlighted that and pressed cmd-m to
jump to that method. The last few lines looked like the real
work. So I put a "self halt." right above the Cursor normal
showWhile: [...] block and saved (cmd-s). Now, whenever I hit a
menu item, I get a debugger ready to execute the menu command.

Whenever you are done, hit any menu item, remove the "self
halt." in the debugger window, save, and proceed.

Hope that helps.

-- 
Matthew Fulmer -- http://mtfulmer.wordpress.com/
Help improve Squeak Documentation: http://wiki.squeak.org/squeak/808


More information about the Beginners mailing list