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