David T. Lewis uploaded a new version of System to project The Inbox:
http://source.squeak.org/inbox/System-dtl.977.mcz ==================== Summary ==================== Name: System-dtl.977 Author: dtl Time: 15 November 2017, 8:22:41.646862 pm UUID: 3d7fa082-cd00-4df2-8574-19b747bb5784 Ancestors: System-dtl.976 Initial rehabilitation of worlds in worlds. Changes are in Morphic and System packages. To: [hidden email] From: Bob Arning <[hidden email]> Date: Tue, 14 Nov 2017 08:14:07 -0500 Subject: Re: [squeak-dev] ActiveWorld and World globals Here is a start (squeak 5.1). Not extensively tested, but a FileList in a world in the World was operational. 'From Squeak5.1 of 23 August 2016 [latest update: #16548] on 14 November 2017 at 8:11:28 am'! "Change Set: fixProjectView Date: 14 November 2017 Author: Bob Arning squeak 5.1... reinstate 'ENTER ACTIVE' option in menu for ProjectViewMorph "! =============== Diff against System-dtl.976 =============== Item was added: + ----- Method: Project>>enterAsActiveSubprojectWithin: (in category 'enter') ----- + enterAsActiveSubprojectWithin: enclosingWorld + + "Install my ChangeSet, Transcript, and scheduled views as current globals. + + If returningFlag is true, we will return to the project from whence the current project was entered; don't change its previousProject link in this case. + If saveForRevert is true, save the ImageSegment of the project being left. + If revertFlag is true, make stubs for the world of the project being left. + If revertWithoutAsking is true in the project being left, then always revert." + + "Experimental mods for initial multi-project work: + 1. assume in morphic (this eliminated need for <showZoom>) + 2. assume <saveForRevert> is false (usual case) - removed <old> + 3. assume <revertFlag> is false + 4. assume <revertWithoutAsking> is false - <forceRevert> now auto false <seg> n.u. + 5. no zooming + 6. assume <projectsSentToDisk> false - could be dangerous here + 7. assume no isolation problems (isolationHead ==) + 8. no closing scripts + " + + self isCurrentProject ifTrue: [^ self]. + + "guards ifNotNil: [ + guards := guards reject: [:obj | obj isNil]. + guards do: [:obj | obj okayToEnterProject ifFalse: [^ self]] + ]." + + "CurrentProject makeThumbnail." + "--> Display bestGuessOfCurrentWorld triggerClosingScripts." + CurrentProject displayDepth: Display depth. + + displayDepth == nil ifTrue: [displayDepth := Display depth]. + "Display newDepthNoRestore: displayDepth." + + "(world hasProperty: #letTheMusicPlay) + ifTrue: [world removeProperty: #letTheMusicPlay] + ifFalse: [Smalltalk at: #ScorePlayer ifPresent: [:playerClass | + playerClass allSubInstancesDo: [:player | player pause]]]." + + "returningFlag + ifTrue: [nextProject := CurrentProject] + ifFalse: [previousProject := CurrentProject]." + + "CurrentProject saveState." + "CurrentProject := self." + "Smalltalk newChanges: changeSet." + "TranscriptStream newTranscript: transcript." + "Sensor flushKeyboard." + "recorderOrNil := Display pauseMorphicEventRecorder." + + "Display changeMorphicWorldTo: world." "Signifies Morphic" + world + installAsActiveSubprojectIn: enclosingWorld + titled: self name. + + "recorderOrNil ifNotNil: [recorderOrNil resumeIn: world]." + world triggerOpeningScripts. + self removeParameter: #exportState. + "self spawnNewProcessAndTerminateOld: true"! |
Free forum by Nabble | Edit this page |