Nicolas Cellier uploaded a new version of EToys to project The Trunk:
http://source.squeak.org/trunk/EToys-nice.37.mcz ==================== Summary ==================== Name: EToys-nice.37 Author: nice Time: 20 October 2009, 9:30:13 am UUID: 4a1de39f-c516-47c3-919c-01969df2fc32 Ancestors: EToys-nice.36 Track selectors usage, use #includesSelector: #selectorsDo: and #includesKey: where due =============== Diff against EToys-nice.36 =============== Item was changed: ----- Method: ButtonProperties>>editButtonsScript: (in category 'events') ----- editButtonsScript: evt "The user has touched my Scriptor halo-handle. Bring up a Scriptor on the script of the button." | cardsPasteUp cardsPlayer anEditor scriptSelector | cardsPasteUp := self pasteUpMorph. (cardsPlayer := cardsPasteUp assuredPlayer) assureUniClass. scriptSelector := self figureOutScriptSelector. scriptSelector ifNil: [ scriptSelector := cardsPasteUp scriptSelectorToTriggerFor: self. anEditor := cardsPlayer newTextualScriptorFor: scriptSelector. evt hand attachMorph: anEditor. ^self ]. + (cardsPlayer class includesSelector: scriptSelector) ifTrue: [ - (cardsPlayer class selectors includes: scriptSelector) ifTrue: [ anEditor := cardsPlayer scriptEditorFor: scriptSelector. evt hand attachMorph: anEditor. ^self ]. "Method somehow got removed; I guess we start aftresh" scriptSelector := nil. ^ self editButtonsScript! Item was changed: ----- Method: Player>>newTextualScriptorFor: (in category 'scripts-kernel') ----- newTextualScriptorFor: aSelector "Sprout a scriptor for aSelector, opening up in textual mode. Rather special-purpose, consult my lone sender" | aMethodWithInterface aScriptEditor | + (self class includesSelector: aSelector) ifTrue: [self error: 'selector already exists']. - (self class selectors includes: aSelector) ifTrue: [self error: 'selector already exists']. aMethodWithInterface := self class permanentUserScriptFor: aSelector player: self. aScriptEditor := aMethodWithInterface instantiatedScriptEditorForPlayer: self. aScriptEditor install. aScriptEditor showSourceInScriptor. aMethodWithInterface selector numArgs == 0 ifTrue: [self class allSubInstancesDo: [:anInst | anInst scriptInstantiationForSelector: aMethodWithInterface selector]]. "The above assures the presence of a ScriptInstantiation for the new selector in all siblings" self updateAllViewersAndForceToShow: #scripts. ^ aScriptEditor! Item was changed: ----- Method: ScriptableButton>>editButtonsScript (in category 'script') ----- editButtonsScript "The user has touched my Scriptor halo-handle. Bring up a Scriptor on the script of the button." | cardsPasteUp cardsPlayer anEditor | cardsPasteUp := self pasteUpMorph. (cardsPlayer := cardsPasteUp assuredPlayer) assureUniClass. anEditor := scriptSelector ifNil: [scriptSelector := cardsPasteUp scriptSelectorToTriggerFor: self. cardsPlayer newTextualScriptorFor: scriptSelector. cardsPlayer scriptEditorFor: scriptSelector ] ifNotNil: + [(cardsPlayer class includesSelector: scriptSelector) - [(cardsPlayer class selectors includes: scriptSelector) ifTrue: [cardsPlayer scriptEditorFor: scriptSelector] ifFalse: ["Method somehow got removed; I guess we start afresh" scriptSelector := nil. ^self editButtonsScript]]. anEditor showingMethodPane ifTrue: [anEditor toggleWhetherShowingTiles]. self currentHand attachMorph: anEditor! Item was changed: ----- Method: KedamaMorph>>makeTurtles:examplerPlayer:color:ofPrototype:turtles:randomize: (in category 'turtles') ----- makeTurtles: count examplerPlayer: tp color: c ofPrototype: prototype turtles: turtles randomize: randomizeFlag | array inst | array := tp turtles. + (turtlesDict includesKey: tp) ifFalse: [ - (turtlesDict keys includes: tp) ifFalse: [ self addToTurtleDisplayList: tp. turtlesDict at: tp put: (array := turtles). ]. inst := prototype ifNil: [self makePrototypeOfExampler: tp color: c]. turtlesDictSemaphore critical: [array setTurtlesCount: count prototype: inst for: self randomize: randomizeFlag]. self calcTurtlesCount. self changed. ! Item was changed: ----- Method: SyntaxMorph class>>testAll (in category 'as yet unclassified') ----- testAll | source tree total count systNav| " SyntaxMorph testAll " systNav := self systemNavigation. count := total := 0. systNav allBehaviorsDo: [ :aClass | total := total + 1]. 'Testing all behaviors' displayProgressAt: Sensor cursorPoint from: 0 to: total during: [ :bar | systNav allBehaviorsDo: [ :aClass | bar value: (count := count + 1). + aClass selectorsDo: [ :aSelector | - aClass selectors do: [ :aSelector | source := (aClass compiledMethodAt: aSelector) getSourceFromFile. tree := Compiler new parse: source in: aClass notifying: nil. tree asMorphicSyntaxUsing: SyntaxMorph. ]. ]. ]. ! |
Free forum by Nabble | Edit this page |