Environment: Siren
Instances of DisplayListController (or its subclasses) are used by DisplayListViews (or subclass instances) for menu management and selection.
By default, a simple YellowButton menu allows for group/inspect/redraw/zoom.
The RedButton is used for display item selection (by pointing or boxing-in).
LeftShift extends the selection, and dragging a selection moves it.
Instance Variables:
menu messages
selection
copyItem
Copy the selection.
cutItem
Cut the selection.
doInspect
Inspect the view (if leftShiftDown) or the model.
flattenItems
Flatten the hierarchy of the selection.
groupItems
Group the selection.
inspectDisplayList
Inspect the display list.
inspectEditor
Inspect the display list editor.
inspectModel
Inspect the model.
optionsDialog
Run the options dialog box.
pasteFromBuffer
Paste the selection.
pasteItem
Paste the selection.
redraw
Redraw the view and clear the selection.
redrawView
redraw the display list.
undo
Un-do the last operation
ungroupItems
Un-group the selection.
zoom
Prompt the user for a scale point, zoom the view's scale, and redraw.
zoomInPoint
Zoom the view's scale, and redraw.
zoomOutPoint
Zoom the view's scale, and redraw.
zoomTo1
Zoom the view's scale, and redraw.
control defaults
Drag scroll amplified by 2@2 with the blue button.
redButtonActivity
Hit-detect items from the display list or drag a selection.
redButtonPressedAt: pt
Handle the red mouse click
yellowButtonActivity0
Drag scroll amplified by 2@2 with the blue button.
selecting
Hit-detect the model for the given pt.
selectFromPoint: aPoint toPoint: anotherPoint
Hit-detect the model for the given range.
selectRangeWhile: durationBlock
Hit-detect items from the display list or drag a selection as long as the block is true.
accessing
Answer the receiver's 'selection'.
selection: anObject
Set the receiver's instance variable 'selection' to be anObject.
selectionTracker
events
Dragging is event oriented.
mouseMovedEvent: anEvent
Mouse dragging
redButtonPressedEvent: event
redButtonReleasedEvent: event
selectEvent: anEvent
initialize-release
Set up the receiver's YellowButtonMenu
MetaClass: DisplayListController class
resources
MenuEditor new openOnClass: self andSelector: #defaultEditMenu