David T. Lewis uploaded a new version of Morphic to project The Inbox:
http://source.squeak.org/inbox/Morphic-dtl.1365.mcz ==================== Summary ==================== Name: Morphic-dtl.1365 Author: dtl Time: 15 November 2017, 8:20:53.783219 pm UUID: ffd8c20a-fb70-44c5-93c5-cad0f8dcda3d Ancestors: Morphic-dtl.1364 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 Morphic-dtl.1364 =============== Item was added: + ----- Method: PasteUpMorph>>installAsActiveSubprojectIn:at:titled: (in category 'WiW support') ----- + installAsActiveSubprojectIn: enclosingWorld at: newBounds titled: aString + | window howToOpen tm boundsForWorld | + howToOpen := self embeddedProjectDisplayMode. + "#scaled may be the only one that works at the moment" + submorphs do: [:ss | ss owner isNil ifTrue: [ss privateOwner: self]]. + "Transcript that was in outPointers and then got deleted." + boundsForWorld := howToOpen == #naked ifTrue: [newBounds] ifFalse: [bounds]. + worldState canvas: nil. + worldState viewBox: boundsForWorld. + self bounds: boundsForWorld. + + "self viewBox: Display boundingBox." + "worldState handsDo: [:h | h initForEvents]." + self installFlaps. + + "SystemWindow noteTopWindowIn: self." + "self displayWorldSafely." + howToOpen == #naked ifTrue: [enclosingWorld addMorphFront: self]. + howToOpen == #window + ifTrue: + [window := (SystemWindow labelled: aString) model: self. + window addMorph: self frame: (0 @ 0 extent: 1.0 @ 1.0). + window openInWorld: enclosingWorld]. + howToOpen == #frame + ifTrue: + [window := (AlignmentMorphBob1 new) + minWidth: 100; + minHeight: 100; + borderWidth: 8; + borderColor: Color green; + bounds: newBounds. + window addMorph: self. + window openInWorld: enclosingWorld]. + howToOpen == #scaled + ifTrue: + [self position: 0 @ 0. + window := (EmbeddedWorldBorderMorph new) + minWidth: 100; + minHeight: 100; + borderWidth: 8; + borderColor: Color green; + bounds: newBounds. + tm := BOBTransformationMorph new. + window addMorph: tm. + tm addMorph: self. + window openInWorld: enclosingWorld. + tm changeWorldBoundsToShow: bounds. + self arrangeToStartSteppingIn: enclosingWorld + "tm scale: (tm width / self width min: tm height / self height) asFloat."]! Item was added: + ----- Method: PasteUpMorph>>installAsActiveSubprojectIn:titled: (in category 'WiW support') ----- + installAsActiveSubprojectIn: enclosingWorld titled: aString + + | opt newWidth | + + opt := self optimumExtentFromAuthor. + (opt x > (enclosingWorld width * 0.7) or: + [opt y > (enclosingWorld height * 0.7)]) ifTrue: [ + newWidth := enclosingWorld width // 2. + opt := newWidth @ (opt y * newWidth / opt x) truncated + ]. + ^self + installAsActiveSubprojectIn: enclosingWorld + at: (enclosingWorld topLeft + (enclosingWorld extent - opt // 2) extent: opt) + titled: aString! Item was added: + ----- Method: ProjectViewMorph>>enterAsActiveSubproject (in category 'events') ----- + enterAsActiveSubproject + "Enter my project." + + project class == DiskProxy + ifTrue: + ["When target is not in yet" + + [self enterWhenNotPresent "will bring it in"] on: ProjectEntryNotification + do: [:ex | ^ex projectToEnter enterAsActiveSubprojectWithin: self world]. + project class == DiskProxy ifTrue: [self error: 'Could not find view']]. + (owner isSystemWindow) ifTrue: [project setViewSize: self extent]. + self showMouseState: 3. + project enterAsActiveSubprojectWithin: self world! Item was changed: ----- Method: ProjectViewMorph>>showMenuForProjectView (in category 'events') ----- showMenuForProjectView | menu | (menu := MenuMorph new) add: 'enter this project' translated action: [^ self enter]; + + add: 'ENTER ACTIVE' translated + action: [self setProperty: #wasOpenedAsSubproject toValue: true. + ^ self enterAsActiveSubproject]; add: 'PUBLISH (also saves a local copy)' translated action: [^ project storeOnServerShowProgressOn: self forgetURL: false]; add: 'PUBLISH to a different server' translated action: [project forgetExistingURL. ^ project storeOnServerShowProgressOn: self forgetURL: true]; add: 'see if server version is more recent' translated action: [^ self checkForNewerVersionAndLoad]; addLine; add: 'expunge this project' translated action: [^ self expungeProject]. menu title: ('Project Named \"{1}"' translated withCRs format: {project name}). menu invokeModal.! |
Free forum by Nabble | Edit this page |