Yes that is a screenshot. MessageTrace is just a subclass of the classic MessageSet which, when the user highlights a chunk of code in the bottom pane and presses i(m)plementors, rather than opening a new window or pane, the implementors are listed in the top-half of the same browser, indented below the currently selected message.
Likewise, when the user selects (s)enders on a message in the upper pane, it outdents those senders above the selected message. Multiple paths of flow can be built.
Since it does not do type-inference, heavily overloaded selectors will cause many extra senders/implementors to be put into the browser -- so to handle this the UI merely allows the user to easily trim unwanted messages with a couple of simple gestures (swipe select + Command-d).
The result is a single window that encapsulates the method flow of a single piece of functionality (e.g., a "Trace") that the user can comprehend because of the way it is presented.
Try it out in Squeak is the best way to appreciate it. The code for it is not complicated I'm sure it could be adapted into Pharo..
Thanks for the explanation. I will try it in squeak because when I thought about that browser I was concerned with the senders/multiple implementors display. Stef