Last updated at 3:29 am UTC on 18 July 2018
An instance of the class TheWorldMenu is shown as a World menu when the user clicks the Red button on the desktop .
How to create a custom world menu for the current project and subprojects.
method is used to bring up the TheWorldMenu object. The call is implemented at the bottom of the mouse handler method of PasteUpMorph>>mouseDown:
Later on that results in a call to (PasteUpMorph object)
project: (self project ifNil: [Project current]) "mvc??"
hand: evt hand) buildWorldMenu.
Actually the desktop a PasteUpMorph object.
This object may be accessed with
Project current world
in a Workspace.
Cuis maintains the class TheWorldMenu.
TheWorldMenu selectors size 96
TheWorldMenu class selectors size 9
TheWorldMenu selectors size 41
TheWorldMenu class selectors size 0
So reading code in Cuis can help you to better understand what is going on in Squeak.
For an example where the world menu is fully adapted to the needs of the project see Musical objects for Squeak.
The following code snippet leads you to a point of departure for reading the code for TheWorldMenu.
project: Project current
hand: World currentHand)
The message #openInWorld is sent here to the instance of the class TheWorldMenu just for demonstration purposes. The menu shows up in the upper left corner.
Look at PasteUpMorph>>buildWorldMenu: to see how the menu is used in context.
The method #buildWorldMenu of the class Dynamic open menu is the entry point worth exploring.
A part of the world menu is now dynamic. Your own application can register for an entry in the world menu (see Dynamic open menu for details)
Collaboration diagram for 3.8g made with the BabySRE tool (Trygve Reenskaug)