Class:            DisplayListController

Environment:      Siren
Superclass:         ControllerWithMenu
Category:         MusicUI-DisplayListViews
Instance variables:   selOffset

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:
   selection       the object's selected items

menu messages

again
   Repeat the last operation

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

blueButtonActivity
   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

selectAtPoint: aPoint
   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

selection
   Answer the receiver's 'selection'.

selection: anObject
   Set the receiver's instance variable 'selection' to be anObject.

selectionTracker
   

events

dragSelection: anEvent
   Dragging is event oriented.

mouseMovedEvent: anEvent
   Mouse dragging

redButtonPressedEvent: event
   

redButtonReleasedEvent: event
   

selectEvent: anEvent
   

initialize-release

initializeMenu
   Set up the receiver's YellowButtonMenu

MetaClass:         DisplayListController class

resources

defaultEditMenu
   MenuEditor new openOnClass: self andSelector: #defaultEditMenu