David T. Lewis uploaded a new version of MorphicExtras to project The Trunk:
http://source.squeak.org/trunk/MorphicExtras-dtl.216.mcz ==================== Summary ==================== Name: MorphicExtras-dtl.216 Author: dtl Time: 17 November 2017, 10:20:14.502303 pm UUID: 58c41a67-c2cb-4776-9cc3-c9edbf70f443 Ancestors: MorphicExtras-dtl.215 Remove unnecessary references to global World. =============== Diff against MorphicExtras-dtl.215 =============== Item was changed: ----- Method: AtomMorph class>>example (in category 'examples') ----- example " AtomMorph example " + |a world| + world := Project current world. - |a| a := AtomMorph new openInWorld. a color: Color random. + [1000 timesRepeat: [a bounceIn: world bounds. (Delay forMilliseconds: 50) wait]. - [1000 timesRepeat: [a bounceIn: World bounds. (Delay forMilliseconds: 50) wait]. a delete] fork.! Item was changed: ----- Method: InternalThreadNavigationMorph class>>openThreadNamed:atIndex: (in category 'known threads') ----- openThreadNamed: nameOfThread atIndex: anInteger | coll nav | coll := self knownThreads at: nameOfThread ifAbsent: [^self]. + nav := Project current world - nav := World submorphThat: [ :each | (each isKindOf: self) and: [each threadName = nameOfThread]] ifNone: [ nav := self basicNew. nav listOfPages: coll; threadName: nameOfThread index: anInteger; initialize; openInWorld; positionAppropriately. ^self ]. nav listOfPages: coll; threadName: nameOfThread index: anInteger; removeAllMorphs; addButtons. ! Item was changed: ----- Method: InternalThreadNavigationMorph class>>openThreadNamed:atIndex:beKeyboardHandler: (in category 'known threads') ----- openThreadNamed: nameOfThread atIndex: anInteger beKeyboardHandler: aBoolean "Activate the thread of the given name, from the given index; set it up to be navigated via desktop keys if indicated" | coll nav | coll := self knownThreads at: nameOfThread ifAbsent: [^self]. + nav := Project current world - nav := World submorphThat: [ :each | (each isKindOf: self) and: [each threadName = nameOfThread]] ifNone: [nav := self basicNew. nav listOfPages: coll; threadName: nameOfThread index: anInteger; initialize; openInWorld; positionAppropriately. aBoolean ifTrue: [ActiveWorld keyboardNavigationHandler: nav]. ^ self]. nav listOfPages: coll; threadName: nameOfThread index: anInteger; removeAllMorphs; addButtons. aBoolean ifTrue: [ActiveWorld keyboardNavigationHandler: nav] ! Item was changed: ----- Method: PostscriptCanvas class>>fontSampler (in category 'font mapping') ----- fontSampler "Produces a Postscript .eps file on disk, returns a Morph." "PostscriptCanvas fontSampler" "PostscriptCanvas fontSampler openInWorld" | morph file | morph := Morph new layoutPolicy: TableLayout new; listDirection: #topToBottom; wrapDirection: #leftToRight; hResizing: #shrinkWrap; vResizing: #shrinkWrap; color: Color white. TextStyle actualTextStyles keysAndValuesDo: [ :styleName :style | { style fontArray first. style fontArray last } do: [ :baseFont | | info | 0 to: 2 do: [ :i | | font string string2 textMorph row | font := baseFont emphasized: i. (i isZero or: [ font ~~ baseFont ]) ifTrue: [ string := font fontNameWithPointSize. row := Morph new layoutPolicy: TableLayout new; listDirection: #topToBottom; hResizing: #shrinkWrap; vResizing: #shrinkWrap; cellSpacing: 20@0; color: Color white. textMorph := TextMorph new hResizing: #spaceFill; backgroundColor: Color white; beAllFont: font; contentsAsIs: string. row addMorphBack: (textMorph imageForm asMorph). info := self postscriptFontInfoForFont: font. string2 := String streamContents: [ :stream | stream nextPutAll: info first; space; print: (font pixelSize * info second) rounded. ]. textMorph := TextMorph new hResizing: #spaceFill; backgroundColor: Color white; beAllFont: font; contentsAsIs: string2. row addMorphBack: textMorph. morph addMorphBack: row. ] ] ] ]. + morph bounds: Project current world bounds. - morph bounds: World bounds. morph layoutChanged; fullBounds. file := (FileDirectory default newFileNamed: 'PSFontSampler.eps'). Cursor wait showWhile: [ file nextPutAll: (EPSCanvas morphAsPostscript: morph) ]. ^morph! Item was changed: ----- Method: ProjectNavigationMorph>>findAProject (in category 'the actions') ----- findAProject FileList2 + morphicViewProjectLoader2InWorld: self world - morphicViewProjectLoader2InWorld: World reallyLoad: true dirFilterType: #initialDirectoryList! Item was changed: ----- Method: ProjectSorterMorph>>addControls (in category 'initialization') ----- addControls "Add the control bar at the top of the tool." | b r partsBinButton newButton aWrapper | + newButton := ImageMorph new image: (self world project makeThumbnail scaledToSize: 48@36). - newButton := ImageMorph new image: (World project makeThumbnail scaledToSize: 48@36). newButton on: #mouseDown send: #insertNewProject: to: self. newButton setBalloonText: 'Make a new Project' translated. (partsBinButton := UpdatingThreePhaseButtonMorph checkBox) target: self; actionSelector: #togglePartsBinStatus; arguments: #(); getSelector: #getPartsBinStatus. (r := AlignmentMorph newRow) color: Color transparent; borderWidth: 0; layoutInset: 0; cellInset: 10@0; wrapCentering: #center; cellPositioning: #leftCenter; hResizing: #shrinkWrap; vResizing: #shrinkWrap; extent: 5@5. b := SimpleButtonMorph new target: self; color: self defaultColor darker; borderColor: Color black. r addMorphBack: (self wrapperFor: (b label: 'Okay' translated font: ScriptingSystem fontForEToyButtons; actionSelector: #acceptSort)). b := SimpleButtonMorph new target: self; color: self defaultColor darker; borderColor: Color black. r addMorphBack: (self wrapperFor: (b label: 'Cancel' translated font: ScriptingSystem fontForEToyButtons; actionSelector: #delete)); addTransparentSpacerOfSize: 8 @ 0; addMorphBack: (self wrapperFor: (newButton)); addTransparentSpacerOfSize: 8 @ 0. aWrapper := AlignmentMorph newRow beTransparent. aWrapper cellInset: 0; layoutInset: 0; borderWidth: 0. aWrapper addMorphBack: (self wrapperFor: partsBinButton); addMorphBack: (self wrapperFor: (StringMorph contents: 'Parts bin' translated font: ScriptingSystem fontForEToyButtons) lock). r addMorphBack: aWrapper. self addMorphFront: r. ! Item was changed: ----- Method: SqueakPage>>prePurge (in category 'saving') ----- prePurge "Return self if ready to be purged, or nil if not" self isContentsInMemory ifFalse: [^ nil]. contentsMorph ifNil: [^ nil]. "out already" url ifNil: [^ nil]. "just to be safe" + ^ (Project current world ~~ nil and: [contentsMorph world == Project current world]) - ^ (Project current world ~~ nil and: [contentsMorph world == World]) ifTrue: [nil "showing now"] ifFalse: [self]! |
Free forum by Nabble | Edit this page |