[squeak-dev] The Trunk: Morphic-mt.1109.mcz
commits at source.squeak.org
commits at source.squeak.org
Tue Apr 12 17:41:23 UTC 2016
Marcel Taeumel uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-mt.1109.mcz
==================== Summary ====================
Name: Morphic-mt.1109
Author: mt
Time: 12 April 2016, 7:40:42.953943 pm
UUID: 1f3d1aa2-1df5-7446-85d0-5262c3d99a83
Ancestors: Morphic-mt.1108
Reduce the use of globals in project classes. Clean-up code.
=============== Diff against Morphic-mt.1108 ===============
Item was removed:
- ----- Method: MorphicProject>>addItem:toMenu:selection:requestor: (in category 'utilities') -----
- addItem: item toMenu: menu selection: action requestor: requestingProject
- "Add a menu item representing this project to a menu being created by requestingProject"
-
- | color |
- "Color to be used for this menu item"
- color := self world isInMemory
- ifTrue: [Color black]
- ifFalse: [Color brown].
- "Menu item of type appropriate for current project"
- requestingProject
- addItem: item
- toMenu: menu
- selection: action
- color: color
- thumbnail: thumbnail!
Item was added:
+ ----- Method: MorphicProject>>color (in category 'accessing') -----
+ color
+
+ ^ self world isInMemory
+ ifTrue: [Color black]
+ ifFalse: [Color brown]!
Item was changed:
----- Method: MorphicProject>>interruptName:preemptedProcess: (in category 'utilities') -----
interruptName: labelString preemptedProcess: theInterruptedProcess
"Create a Notifier on the active scheduling process with the given label."
| preemptedProcess projectProcess |
ActiveHand ifNotNil:[ActiveHand interrupted].
+ ActiveWorld := world. "reinstall active globals"
+ ActiveHand := world primaryHand.
- ActiveWorld := World. "reinstall active globals"
- ActiveHand := World primaryHand.
ActiveHand interrupted. "make sure this one's interrupted too"
ActiveEvent := nil.
projectProcess := self uiProcess. "we still need the accessor for a while"
preemptedProcess := theInterruptedProcess ifNil: [Processor preemptedProcess].
"Only debug preempted process if its priority is >= projectProcess' priority"
preemptedProcess priority < projectProcess priority
ifTrue:[preemptedProcess := projectProcess].
preemptedProcess suspend.
ToolSet interrupt: preemptedProcess label: labelString.!
Item was changed:
----- Method: MorphicProject>>openImage:name:saveResource: (in category 'editors') -----
openImage: aForm name: fullName saveResource: aBoolean
"Open a view on an image. If aBoolean is true, save the image as a project resource."
aBoolean ifTrue:
[self resourceManager
addResource: aForm
url: (FileDirectory urlForFileNamed: fullName) asString].
+ (world drawingClass withForm: aForm) openInWorld
- (World drawingClass withForm: aForm) openInWorld
!
Item was changed:
----- Method: MorphicProject>>pauseEventRecorder (in category 'enter') -----
pauseEventRecorder
"Suspend any event recorder, and return it if found"
+ ^ world pauseEventRecorder!
- ^World pauseEventRecorder!
Item was changed:
----- Method: MorphicProject>>pointerMoved (in category 'utilities') -----
pointerMoved
"Pointer has moved during a drag operation. Perform any necessary updates.
In Morphic, pay the price for reading the sensor directly."
+ world activeHand
- World activeHand
newMouseFocus: nil;
showTemporaryCursor: nil;
flushEvents!
Item was changed:
----- Method: MorphicProject>>resetDisplay (in category 'display') -----
resetDisplay
"Bring the display to a usable state after handling primitiveError."
+ world install "init hands and redisplay"!
- World install "init hands and redisplay"!
Item was changed:
----- Method: MorphicProject>>restoreDisplay (in category 'display') -----
restoreDisplay
"Clear the screen to gray and then redisplay all the scheduled views."
+ ^ world restoreMorphicDisplay
- ^ World restoreMorphicDisplay
!
Item was changed:
----- Method: MorphicProject>>saveState (in category 'enter') -----
saveState
"Save the current state in me prior to leaving this project"
changeSet := ChangeSet current.
thumbnail ifNotNil: [thumbnail hibernate].
- world := World.
world sleep.
transcript := Transcript.
!
Item was changed:
----- Method: MorphicProject>>setFlaps (in category 'flaps support') -----
setFlaps
| flapTabs flapIDs sharedFlapTabs navigationMorph |
self flag: #toRemove. "check if this method still used by Etoys"
flapTabs := ActiveWorld flapTabs.
flapIDs := flapTabs collect: [:tab | tab knownName].
flapTabs
do: [:tab | (tab isMemberOf: ViewerFlapTab)
ifFalse: [tab isGlobalFlap
ifTrue: [Flaps removeFlapTab: tab keepInList: false.
tab currentWorld reformulateUpdatingMenus]
ifFalse: [| referent |
referent := tab referent.
referent isInWorld
ifTrue: [referent delete].
tab delete]]].
sharedFlapTabs := Flaps classPool at: #SharedFlapTabs.
flapIDs
do: [:id |
id = 'Navigator' translated
ifTrue: [sharedFlapTabs add: Flaps newNavigatorFlap].
id = 'Widgets' translated
ifTrue: [sharedFlapTabs add: Flaps newWidgetsFlap].
id = 'Tools' translated
ifTrue: [sharedFlapTabs add: Flaps newToolsFlap].
id = 'Squeak' translated
ifTrue: [sharedFlapTabs add: Flaps newSqueakFlap].
id = 'Supplies' translated
ifTrue: [sharedFlapTabs add: Flaps newSuppliesFlap].
id = 'Stack Tools' translated
ifTrue: [sharedFlapTabs add: Flaps newStackToolsFlap].
id = 'Painting' translated
ifTrue: [sharedFlapTabs add: Flaps newPaintingFlap].
id = 'Objects' translated
ifTrue: [sharedFlapTabs add: Flaps newObjectsFlap ]].
2 timesRepeat: [flapIDs do: [:id | Flaps enableDisableGlobalFlapWithID: id]].
ActiveWorld flapTabs
do: [:flapTab | flapTab isCurrentlyTextual
ifTrue: [flapTab changeTabText: flapTab knownName]].
Flaps positionNavigatorAndOtherFlapsAccordingToPreference.
+ navigationMorph := ActiveWorld findDeeplyA: ProjectNavigationMorph preferredNavigator.
- navigationMorph := World findDeeplyA: ProjectNavigationMorph preferredNavigator.
navigationMorph isNil
ifTrue: [^ self].
navigationMorph allMorphs
do: [:morph | morph class == SimpleButtonDelayedMenuMorph
ifTrue: [(morph findA: ImageMorph) isNil
ifTrue: [| label |
label := morph label.
label isNil
ifFalse: [| name |
name := morph knownName.
name isNil
ifTrue: [morph name: label.
name := label].
morph label: name translated]]]]!
Item was changed:
----- Method: MorphicProject>>showImage:named: (in category 'utilities') -----
showImage: aForm named: imageName
"Show an image, possibly attached to the pointer for positioning"
+ HandMorph attach: (world drawingClass withForm: aForm)
- HandMorph attach: (World drawingClass withForm: aForm)
!
Item was changed:
----- Method: MorphicProject>>spawnNewProcess (in category 'active process') -----
spawnNewProcess
uiProcess := [
+ [world doOneCycle. Processor yield ] repeat.
- [World doOneCycle. Processor yield ] repeat.
] newProcess priority: Processor userSchedulingPriority.
uiProcess resume!
Item was changed:
----- Method: MorphicProject>>textWindows (in category 'utilities') -----
textWindows
"Answer a dictionary of all system windows for text display keyed by window title.
Generate new window titles as required to ensure unique keys in the dictionary."
| aDict windows title |
aDict := Dictionary new.
+ windows := world submorphs select: [:m | m isSystemWindow].
- windows := World submorphs select: [:m | m isSystemWindow].
windows do:
[:w | | assoc |
assoc := w titleAndPaneText.
assoc ifNotNil:
[w holdsTranscript ifFalse:
[title := assoc key.
(aDict includesKey: title) ifTrue: [ | newKey | "Ensure unique keys in aDict"
(1 to: 100) detect: [:e |
newKey := title, '-', e asString.
(aDict includesKey: newKey) not].
title := newKey.
assoc := newKey -> assoc value].
aDict add: assoc]]].
^ aDict
!
Item was changed:
----- Method: Project>>isMorphic (in category '*Morphic-testing') -----
isMorphic
+
+ ^ false!
- "Complexity is because #isMVC is lazily installed"
- ^ world isInMemory
- ifTrue: [world isMorph]
- ifFalse: [(self projectParameters at: #isMVC ifAbsent: [false]) not]!
More information about the Squeak-dev
mailing list
|