[squeak-dev] The Trunk: EToys-tfel.261.mcz

commits at source.squeak.org commits at source.squeak.org
Thu Sep 29 12:01:00 UTC 2016


Tim Felgentreff uploaded a new version of EToys to project The Trunk:
http://source.squeak.org/trunk/EToys-tfel.261.mcz

==================== Summary ====================

Name: EToys-tfel.261
Author: tfel
Time: 29 September 2016, 2:00:18.299594 pm
UUID: b41c90b3-754a-452e-add4-3637e2be7a97
Ancestors: EToys-tfel.260

make ScriptableButtons hold on to their own action scripts, rather than their enclosing paste up morph. Otherwise the button action changes when I drop it in a different world!

=============== Diff against EToys-tfel.260 ===============

Item was removed:
- ----- 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: [
- 		anEditor := cardsPlayer scriptEditorFor: scriptSelector.
- 		evt hand attachMorph: anEditor.
- 		^self
- 	].
- 	"Method somehow got removed; I guess we start aftresh"
- 	scriptSelector := nil.
- 	^ self editButtonsScript!

Item was removed:
- ----- Method: PasteUpMorph>>scriptSelectorToTriggerFor: (in category '*Etoys-viewing') -----
- scriptSelectorToTriggerFor: aButtonMorph
- 	"Answer a new selector which will bear the code for aButtonMorph in the receiver"
- 
- 	| buttonName selectorName |
- 	buttonName := aButtonMorph externalName.
- 	selectorName := self assuredPlayer acceptableScriptNameFrom: buttonName  forScriptCurrentlyNamed: nil.
- 
- 	buttonName ~= selectorName ifTrue:
- 		[aButtonMorph setNameTo: selectorName].
- 	^ selectorName!

Item was changed:
  ----- Method: ScriptableButton>>doButtonAction (in category 'button') -----
  doButtonAction
  	"The user has pressed the button.  Dispatch to the actual user script, if any."
  
  	scriptSelector ifNil: [^ super doButtonAction].
+ 	self player performScriptIfCan: scriptSelector!
- 	self pasteUpMorph player performScriptIfCan: scriptSelector!

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."
  
+ 	| anEditor player |
+ 	(player := self assuredPlayer) assureUniClass.
- 	| cardsPasteUp cardsPlayer anEditor |
- 	cardsPasteUp := self pasteUpMorph.
- 	(cardsPlayer := cardsPasteUp assuredPlayer) assureUniClass.
  	anEditor := scriptSelector ifNil: 
+ 					[scriptSelector := self scriptSelectorToTriggerForMe.
+ 					player newTextualScriptorFor: scriptSelector.
+ 					player scriptEditorFor: scriptSelector]
- 					[scriptSelector := cardsPasteUp scriptSelectorToTriggerFor: self.
- 					cardsPlayer newTextualScriptorFor: scriptSelector.
- 					cardsPlayer scriptEditorFor: scriptSelector
- 					]
  				ifNotNil: 
+ 					[(player class selectors includes: scriptSelector) 
+ 						ifTrue: [player scriptEditorFor: scriptSelector]
- 					[(cardsPlayer class selectors includes: scriptSelector) 
- 						ifTrue: [cardsPlayer scriptEditorFor: scriptSelector]
  						ifFalse: 
  							["Method somehow got removed; I guess we start afresh"
- 
  							scriptSelector := nil.
+ 							^ self editButtonsScript]].
- 							^self editButtonsScript]].
  	anEditor showingMethodPane ifTrue: [anEditor toggleWhetherShowingTiles].
  	self currentHand attachMorph: anEditor!

Item was added:
+ ----- Method: ScriptableButton>>scriptSelectorToTriggerForMe (in category 'accessing') -----
+ scriptSelectorToTriggerForMe
+ 	"Answer a new selector which will bear the code for myself"
+ 
+ 	| buttonName selectorName |
+ 	buttonName := self externalName.
+ 	selectorName := self assuredPlayer acceptableScriptNameFrom: buttonName  forScriptCurrentlyNamed: nil.
+ 
+ 	buttonName ~= selectorName ifTrue:
+ 		[self setNameTo: selectorName].
+ 	^ selectorName!



More information about the Squeak-dev mailing list