The Trunk: ST80-dtl.64.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

The Trunk: ST80-dtl.64.mcz

commits-2
David T. Lewis uploaded a new version of ST80 to project The Trunk:
http://source.squeak.org/trunk/ST80-dtl.64.mcz

==================== Summary ====================

Name: ST80-dtl.64
Author: dtl
Time: 9 November 2009, 9:02:38 am
UUID: 7a7b05e8-b147-4aa4-a732-3b083bc39d05
Ancestors: ST80-nice.63

Continue factoring Project into MVCProject and MorphicProject. Add method category 'enter' for methods associated with entering one project from another, including MVC-Morphic transition. Project>>enter: revert:saveForRevert: is significantly modified. Changes are in packages System, Morphic, and ST-80.

=============== Diff against ST80-nice.63 ===============

Item was added:
+ ----- Method: MVCProject>>pauseSoundPlayers (in category 'enter') -----
+ pauseSoundPlayers
+ "Pause sound players, subject to preference settings"
+
+ Smalltalk at: #ScorePlayer
+ ifPresentAndInMemory: [:playerClass | playerClass
+ allSubInstancesDo: [:player | player pause]]!

Item was added:
+ ----- Method: MVCProject>>scheduleProcessForEnter: (in category 'enter') -----
+ scheduleProcessForEnter: showZoom
+ "Complete the enter: by launching a new process"
+
+ | newProcess |
+ SystemWindow clearTopWindow. "break external ref to this project"
+ newProcess := [
+ ScheduledControllers resetActiveController. "in case of walkback in #restore"
+ showZoom ifFalse: [ScheduledControllers restore].
+ ScheduledControllers searchForActiveController
+ ] fixTemps newProcess priority: Processor userSchedulingPriority.
+ newProcess resume. "lose the current process and its referenced morphs"
+ Processor terminateActive
+ !

Item was added:
+ ----- Method: MVCProject>>viewLocFor: (in category 'display') -----
+ viewLocFor: exitedProject
+ "Look for a view of the exitedProject, and return its center"
+
+ (world controllerWhoseModelSatisfies: [:p | p == exitedProject])
+ ifNotNilDo: [:ctlr | ^ctlr view windowBox center].
+ ^Sensor cursorPoint "default result"!

Item was added:
+ ----- Method: MVCProject>>setWorldForEnterFrom:recorder: (in category 'enter') -----
+ setWorldForEnterFrom: old recorder: recorderOrNil
+ "Prepare world for enter."
+
+ World := nil.  "Signifies MVC"
+ Smalltalk at: #ScheduledControllers put: world
+ !

Item was added:
+ ----- Method: MVCProject>>setWorldForEmergencyRecovery (in category 'enter') -----
+ setWorldForEmergencyRecovery
+ "Prepare world for enter with an absolute minimum of mechanism.
+ An unrecoverable error has been detected in an isolated project."
+
+ World := nil.
+ Smalltalk at: #ScheduledControllers put: world.
+ ScheduledControllers restore
+ !

Item was added:
+ ----- Method: MVCProject>>armsLengthCommand:withDescription: (in category 'file in/out') -----
+ armsLengthCommand: aCommand withDescription: aString
+ | pvm |
+ "Set things up so that this aCommand is sent to self as a message
+ after jumping to the parentProject.  For things that can't be executed
+ while in this project, such as saveAs, loadFromServer, storeOnServer.  See
+ ProjectViewMorph step."
+
+ parentProject ifNil: [^ self inform: 'The top project can''t do that'].
+ pvm := parentProject findProjectView: self.
+ pvm armsLengthCommand: {self. aCommand}.
+ self exit
+ !