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

Bert Freudenberg bert at freudenbergs.de
Thu Jun 28 06:56:12 UTC 2007

What I usually do to find out is selecting a string (like, in an  
error message, or shift-click the label of a button or menu item, or  
just typing it somewhere) and pressing Ctrl-E. This shows me all  
methods that use that string, and if it was sufficiently unique it's  
easy to spot which method was involved. From there, it's the usual  
senders/implementors image surfing to find out what happens next.

- Bert -

On Jun 28, 2007, at 4:14 , David Mitchell wrote:

> Others gave the general approach and how to easily add code to menus.
> I also tear apart menus, like you describe. Here's what I do:
> Explore morph and then look at target, selector, and arguments.  
> Usually the selector is doMenuItem:with: and the arguments have the  
> menu item and a symbol that becomes the message send. Check  
> implementors of the symbol.
> Also, since most of the UI is "translated" you can find most of the  
> messages that build the UI by looking at senders (alt+n) of  
> translated.
> 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?
>> Thanks,
>> Ian

More information about the Beginners mailing list