[etoys-dev] Etoys: Etoys-kfr.70.mcz
karl ramberg
karlramberg at gmail.com
Mon May 23 02:19:37 EDT 2011
Missing methods are in
http://source.squeak.org/<http://source.squeak.org/etoys/Morphic-kfr.63.mcz>
etoys/Morphic-kfr.63.mcz <http://source.squeak.org/etoys/Morphic-kfr.63.mcz>
I'll watch the screencast tonight :-)
Thanks for notifying
Karl
On Mon, May 23, 2011 at 12:49 AM, Bert Freudenberg <bert at freudenbergs.de>wrote:
> Hi Karl,
>
> this breaks all viewers because the method ScriptingSystem>>commandFeedback
> is missing. PLease try updating from a clean Etoys-To-Go to witness.
>
> I just published an update, which unfortunately is broken because of this.
> Luckily, I wrote up what I did so far so you can do the next one :)
>
> http://etoys.squeak.org/svn/trunk/Documentation/Release-HowTo.txt
>
> I also made a screen cast:
>
> http://www.youtube.com/watch?v=rUzrfjP4Jck
>
> This takes only 10 minutes, and you can do it even quicker if you don't
> have to talk while doing it ;)
>
> - Bert -
>
> On 22.05.2011, at 18:00, commits at source.squeak.org wrote:
>
> > Karl Ramberg uploaded a new version of Etoys to project Etoys:
> > http://source.squeak.org/etoys/Etoys-kfr.70.mcz
> >
> > ==================== Summary ====================
> >
> > Name: Etoys-kfr.70
> > Author: kfr
> > Time: 22 May 2011, 8:00:42 pm
> > UUID: cdee253f-af6d-9b46-8493-464179d48432
> > Ancestors: Etoys-kfr.69
> >
> > Mouseover Feedback of a phrase tile is wrong
> > http://tracker.squeakland.org/browse/SQ-62
> >
> > =============== Diff against Etoys-kfr.69 ===============
> >
> > Item was changed:
> > ----- Method: CategoryViewer>>addColorSeesDetailTo: (in category
> 'entries') -----
> > addColorSeesDetailTo: aRow
> > "Special-casee code for the boolean-valued phrase variously known
> as is-over-color or sees-color."
> > + | hotTileForSelf colorMorph |
> > - | hotTileForSelf m |
> > (aRow submorphs last) delete.
> > aRow addMorphBack: (hotTileForSelf _ ColorSeerTile new showPalette:
> false; yourself).
> > + aRow addMorphBack: (colorMorph _ ColorTileMorph new showPalette:
> false;
> > - aRow addMorphBack: (m _ ColorTileMorph new showPalette: false;
> > typeColor: (ScriptingSystem colorForType:
> #Color); yourself).
> > + colorMorph colorSwatch color: Color blue.
> > + hotTileForSelf on: #mouseEnter send: #addGetterFeedback to: aRow.
> > - m colorSwatch color: Color blue.
> > - hotTileForSelf on: #mouseEnter send: #addGetterFeedback to: aRow.
> > hotTileForSelf on: #mouseLeave send: #removeHighlightFeedback to:
> aRow.
> > hotTileForSelf on: #mouseLeaveDragging send:
> #removeHighlightFeedback to: aRow.
> >
> > hotTileForSelf on: #mouseDown send: #makeGetter:event:from:
> > to: self
> > withValue: (Array with: #color:sees: with: #Boolean).
> >
> > + colorMorph on: #mouseEnter send: #addGetterFeedback to: aRow.
> > + colorMorph on: #mouseLeave send: #removeHighlightFeedback to: aRow.
> > + colorMorph on: #mouseLeaveDragging send: #removeHighlightFeedback
> to: aRow.
> > +
> > + colorMorph on: #mouseDown send: #makeGetter:event:from:
> > + to: self
> > + withValue: (Array with: #color:sees: with: #Boolean).
> > +
> > aRow addMorphBack: (Morph new extent: 0@(aRow height)).
> > !
> >
> > Item was changed:
> > ----- Method: CategoryViewer>>addIsOverColorDetailTo: (in category
> 'entries') -----
> > addIsOverColorDetailTo: aRow
> > "Special-casee code for the boolean-valued phrase variously known
> as is-over-color or sees-color."
> >
> > + | hotTileForSelf |
> > + aRow addMorphBack: (Morph new color: self color; extent: 0 at 10).
> "spacer"
> > + hotTileForSelf _ ColorTileMorph new showPalette: false;
> > - | m |
> > - aRow addMorphBack: (Morph new color: self color; extent: 2 at 10).
> "spacer"
> > - m _ ColorTileMorph new showPalette: false;
> > typeColor: (ScriptingSystem colorForType:
> #Color); yourself.
> > + hotTileForSelf colorSwatch color: Color blue.
> > + hotTileForSelf on: #mouseEnter send: #addGetterFeedback to: aRow.
> > + hotTileForSelf on: #mouseLeave send: #removeHighlightFeedback to:
> aRow.
> > + hotTileForSelf on: #mouseLeaveDragging send:
> #removeHighlightFeedback to: aRow.
> > + hotTileForSelf on: #mouseDown send: #makeGetter:event:from:
> > + to: self
> > + withValue: (Array with: #seesColor: with: #Color).
> > + aRow addMorphBack: hotTileForSelf.
> > - m colorSwatch color: Color blue.
> > - aRow addMorphBack: (m _ ColorTileMorph new showPalette: false;
> > - typeColor: (ScriptingSystem colorForType:
> #Color); yourself).
> >
> >
> >
> > -
> > "The following commented-out code put a readout up; the readout was very
> nice, but was very consumptive of cpu time, which is why the is-over-color
> tile got removed from the viewer long ago. Now is-over-color is reinstated
> to the viewer, minus the expensive readout..."
> >
> > " aRow addMorphBack: (AlignmentMorph new beTransparent).
> > readout _ UpdatingStringMorphWithArgument new
> > target: scriptedPlayer; getSelector: #seesColor:;
> growable: false; putSelector: nil;
> > argumentTarget: clrTile colorSwatch
> argumentGetSelector: #color.
> > readout useDefaultFormat.
> > aTile _ StringReadoutTile new typeColor: Color lightGray lighter.
> > aTile addMorphBack: readout.
> > aRow addMorphBack: aTile.
> > aTile setLiteralTo: (scriptedPlayer seesColor: clrTile colorSwatch
> color) printString width: 30"!
> >
> > Item was changed:
> > ----- Method: CategoryViewer>>addPlayerArgumentTo: (in category
> 'entries') -----
> > addPlayerArgumentTo: aRow
> > "Add, delimited by spacer morphs, a player-valued TileMorph to the
> row provided."
> >
> > + | aTileToRefer |
> > aRow addMorphBack: (Morph new extent: 0 at 0). "spacer (Is this
> spacer really needed??? - takashi)"
> > + aTileToRefer := self presenter standardPlayer tileToRefer.
> > + aTileToRefer on: #mouseEnter send: #addGetterFeedback to: aRow.
> > + aTileToRefer on: #mouseLeave send: #removeHighlightFeedback
> to: aRow.
> > + aTileToRefer on: #mouseLeaveDragging send:
> #removeHighlightFeedback to: aRow.
> > + aRow addMorphBack: aTileToRefer .
> > - aRow addMorphBack: self presenter standardPlayer tileToRefer.
> > aRow addMorphBack: (AlignmentMorph new beTransparent). "flexible
> spacer"
> >
> > !
> >
> > Item was changed:
> > ----- Method: CategoryViewer>>phraseForVariableFrom: (in category
> 'entries') -----
> > phraseForVariableFrom: aMethodInterface
> > "Return a structure consisting of tiles and controls and a readout
> representing a 'variable' belonging to the player, complete with an
> appropriate readout when indicated. Slightly misnamed in that this path is
> used for any methodInterface that indicates an interesting resultType."
> >
> > + | anArrow slotName getterButton aRow doc setter hotTileForSelf
> spacer readOut aTileToRefer |
> > - | anArrow slotName getterButton aRow doc setter hotTileForSelf
> spacer |
> > Preferences universalTiles ifTrue: [^ self
> universalTilesPhraseForVariableFrom: aMethodInterface].
> >
> > aRow _ ViewerLine newRow
> > elementSymbol: (slotName _ aMethodInterface selector);
> > wrapCentering: #center;
> > cellPositioning: #leftCenter.
> >
> > (self wantsInfoButtonFor: slotName)
> > ifFalse:
> > [aRow addMorphBack: ScriptingSystem buttonSpacer]
> > ifTrue:
> > [aRow addMorphBack: (self infoButtonFor:
> slotName)].
> >
> > aRow addMorphBack: self spacerAfterButton.
> >
> > hotTileForSelf _ self tileForSelf bePossessive.
> > hotTileForSelf on: #mouseDown send: #makeGetter:event:from:
> > to: self
> > withValue: (Array with: aMethodInterface selector with:
> aMethodInterface resultType).
> > aRow addMorphBack: hotTileForSelf.
> >
> > aRow addMorphBack: (spacer _ Morph new color: self color; extent:
> 0 at 0).
> > spacer on: #mouseEnter send: #addGetterFeedback to: aRow.
> > spacer on: #mouseLeave send: #removeHighlightFeedback to: aRow.
> > spacer on: #mouseLeaveDragging send: #removeHighlightFeedback to:
> aRow.
> > spacer on: #mouseDown send: #makeGetter:event:from:
> > to: self
> > withValue: (Array with: aMethodInterface selector with:
> aMethodInterface resultType).
> > hotTileForSelf on: #mouseEnter send: #addGetterFeedback to: aRow.
> > hotTileForSelf on: #mouseLeave send: #removeHighlightFeedback to:
> aRow.
> > hotTileForSelf on: #mouseLeaveDragging send:
> #removeHighlightFeedback to: aRow.
> >
> > getterButton _ self getterButtonFor: aMethodInterface selector
> type: aMethodInterface resultType.
> > aRow addMorphBack: getterButton.
> > getterButton on: #mouseEnter send: #addGetterFeedback to: aRow.
> > getterButton on: #mouseLeave send: #removeHighlightFeedback to:
> aRow.
> > getterButton on: #mouseLeaveDragging send: #removeHighlightFeedback
> to: aRow.
> > (doc _ aMethodInterface documentation) ifNotNil:
> > [getterButton setBalloonText: doc].
> >
> > (slotName == #seesColor:) ifTrue:
> > [self addIsOverColorDetailTo: aRow.
> > ^ aRow].
> >
> > (slotName == #color:sees:) ifTrue:
> > [self addColorSeesDetailTo: aRow.
> > ^ aRow].
> >
> > (#(touchesA: overlaps: overlapsAny: distanceToPlayer: bearingTo:
> bearingFrom:) includes: slotName) ifTrue:
> > + [aRow addMorphBack: (Morph new extent: 0 at 0). "spacer (Is
> this spacer really needed??? - takashi)"
> > + aTileToRefer := self presenter standardPlayer tileToRefer.
> > + aTileToRefer on: #mouseEnter send: #addGetterFeedback to: aRow.
> > + aTileToRefer on: #mouseLeave send: #removeHighlightFeedback to:
> aRow.
> > + aTileToRefer on: #mouseLeaveDragging send: #removeHighlightFeedback
> to: aRow.
> > + aTileToRefer on: #mouseDown send: #makeGetter:event:from:
> > + to: self
> > + withValue: (Array with: aMethodInterface selector with:
> aMethodInterface resultType).
> > + aRow addMorphBack: aTileToRefer .
> > + aRow addMorphBack: (AlignmentMorph new beTransparent). "flexible
> spacer"
> > - [self addPlayerArgumentTo: aRow.
> > ^ aRow].
> >
> > aRow addMorphBack: VariableSpacer new.
> > (setter _ aMethodInterface companionSetterSelector) ifNotNil:
> > [aRow addMorphBack: (Morph new color: self color; extent:
> 2 at 10). " spacer"
> > anArrow _ self arrowSetterButton: #makeSetter:from:forPart:
> > args: (Array with: slotName
> with: aMethodInterface resultType).
> > anArrow beTransparent.
> > anArrow on: #mouseEnter send: #addSetterFeedback to: aRow.
> > anArrow on: #mouseLeave send: #removeHighlightFeedback to:
> aRow.
> > anArrow on: #mouseLeaveDragging send:
> #removeHighlightFeedback to: aRow.
> > aRow addMorphBack: anArrow].
> >
> > (#(color:sees: copy touchesA: overlaps: overlapsAny: getTurtleAt:
> getTurtleOf:) includes: slotName) ifFalse:
> > [aMethodInterface wantsReadoutInViewer ifTrue:
> > + [readOut := (self readoutFor: slotName
> type: aMethodInterface resultType readOnly: setter isNil getSelector:
> aMethodInterface selector putSelector: setter).
> > + readOut on: #mouseEnter send:
> #addSetterFeedback to: aRow.
> > + readOut on: #mouseLeave send: #removeHighlightFeedback to:
> aRow.
> > + readOut on: #mouseLeaveDragging send:
> #removeHighlightFeedback to: aRow.
> > + readOut on: #mouseDown send: #makeGetter:event:from:
> > + to: self
> > + withValue: (Array with: aMethodInterface selector with:
> aMethodInterface resultType).
> > + aRow addMorphBack: readOut.]].
> > - [aRow addMorphBack: (self readoutFor:
> slotName type: aMethodInterface resultType readOnly: setter isNil
> getSelector: aMethodInterface selector putSelector: setter)]].
> > anArrow ifNotNil: [anArrow step].
> > ^ aRow!
> >
> > Item was changed:
> > ----- Method: CompoundTileMorph>>addCommandFeedback: (in category
> 'miscellaneous') -----
> > addCommandFeedback: evt
> > "Add screen feedback showing what would be torn off in a drag"
> >
> > | aMorph |
> > +
> > aMorph _ RectangleMorph new bounds: (self bounds).
> > + aMorph beTransparent; borderWidth: 2; borderColor: ScriptingSystem
> commandFeedback; lock.
> > - aMorph beTransparent; borderWidth: 2; borderColor: (Color r: 1.0 g:
> 0.548 b: 0.452); lock.
> > ActiveWorld addHighlightMorph: aMorph for: self
> outmostScriptEditor!
> >
> > Item was changed:
> > ----- Method: PhraseTileForTest>>addCommandFeedback: (in category 'as
> yet unclassified') -----
> > addCommandFeedback: evt
> > "Add screen feedback showing what would be torn off in a drag"
> >
> > + | aMorph |
> > - | aMorph rect |
> > (self owner owner isMemberOf: PhraseTileMorph) ifTrue: [self owner
> owner addCommandFeedback: evt. ^ self].
> > + aMorph _ RectangleMorph new bounds: ((self topLeft - (2 at 1))
> corner: (self bottomRight) + (2 at 1)).
> > + aMorph beTransparent; borderWidth: 2; borderColor: ScriptingSystem
> commandFeedback; lock.
> > - rect _ self bounds.
> > - aMorph _ RectangleMorph new bounds: rect.
> > - aMorph beTransparent; borderWidth: 2; borderColor: (Color r: 1.0 g:
> 0.548 b: 0.452); lock.
> > ActiveWorld addHighlightMorph: aMorph for: self
> outmostScriptEditor!
> >
> > Item was changed:
> > ----- Method: PhraseTileForTimesRepeat>>addCommandFeedback: (in category
> 'hilighting') -----
> > addCommandFeedback: evt
> > "Add screen feedback showing what would be torn off in a drag"
> >
> > + | aMorph |
> > +
> > - | aMorph rect |
> > (self owner owner isMemberOf: PhraseTileMorph) ifTrue: [self owner
> owner addCommandFeedback: evt. ^ self].
> > + aMorph _ RectangleMorph new bounds: ((self topLeft - (2 at 1))
> corner: (self bottomRight) + (2 at 1)).
> > + aMorph beTransparent; borderWidth: 2; borderColor: ScriptingSystem
> commandFeedback; lock.
> > - rect _ self bounds.
> > - aMorph _ RectangleMorph new bounds: rect.
> > - aMorph beTransparent; borderWidth: 2; borderColor: (Color r: 1.0 g:
> 0.548 b: 0.452); lock.
> > ActiveWorld addHighlightMorph: aMorph for: self
> outmostScriptEditor!
> >
> > Item was changed:
> > ----- Method: PhraseTileMorph>>addCommandFeedback: (in category
> 'hilighting') -----
> > addCommandFeedback: evt
> > "Add screen feedback showing what would be torn off in a drag"
> >
> > + | aMorph |
> > - | aMorph rect inHotZone |
> > (self owner owner isMemberOf: PhraseTileMorph)
> > ifTrue: [self owner owner addCommandFeedback: evt. ^ self].
> > + aMorph _ RectangleMorph new bounds: ((self topLeft - (2 at 1))
> corner: ((submorphs at: (2 max: submorphs size)) bottomRight + (2 at 1))).
> > + "inHotZone _ evt ifNil: [true] ifNotNil: [rect containsPoint: evt
> cursorPoint]."
> > + aMorph beTransparent; borderWidth: 2; borderColor: ScriptingSystem
> commandFeedback; lock.
> > - rect _ self topLeft corner: (submorphs at: (2 min: submorphs size))
> bottomRight.
> > - inHotZone _ evt ifNil: [true] ifNotNil: [rect containsPoint: evt
> cursorPoint].
> > - aMorph _ RectangleMorph new bounds: rect; beTransparent;
> borderWidth: 2.
> > - aMorph borderColor: (Color r: 1.0 g: 0.548 b: 0.452); lock.
> > ActiveWorld addHighlightMorph: aMorph for: self
> outmostScriptEditor!
> >
> > Item was changed:
> > ----- Method: TileMorph>>handlesMouseOver: (in category 'event
> handling') -----
> > handlesMouseOver: evt
> > ^ self isPopArrowNeeded
> > + or: [^super handlesMouseOver: evt]!
> > - or: [super handlesMouseOver: evt]!
> >
> > Item was changed:
> > ----- Method: TileMorph>>mouseEnter: (in category 'event handling')
> -----
> > mouseEnter: evt
> > +
> > + .
> > + super mouseEnter:evt.
> > + ^self showPopArrows!
> > - self showPopArrows!
> >
> > Item was changed:
> > ----- Method: TileMorph>>mouseLeave: (in category 'event handling')
> -----
> > mouseLeave: evt
> > "When the mouse is leaving and next object is not a pop arrow,
> remove
> > pop arrows."
> > | popArrows vpanel hpanel |
> > popArrows := evt hand
> > valueOfProperty: #popArrows
> > + ifAbsent: [^super mouseLeave: evt].
> > - ifAbsent: [^ self].
> > vpanel := popArrows second.
> > hpanel := popArrows third.
> > (vpanel notNil
> > and: [vpanel containsPoint: evt position])
> > + ifTrue: [^super mouseLeave: evt].
> > - ifTrue: [^ self].
> > (hpanel notNil
> > and: [hpanel containsPoint: evt position])
> > + ifTrue: [^super mouseLeave: evt].
> > + self hidePopArrows.
> > + ^super mouseLeave: evt!
> > - ifTrue: [^ self].
> > - self hidePopArrows!
> >
> > Item was changed:
> > ----- Method: TimesRepeatTile>>numberOfTimesToRepeatPart (in category
> 'access') -----
> > numberOfTimesToRepeatPart
> > "Answer the TilePadMorph which holds the tiles defining the number
> of times to repeat"
> >
> > ^ timesRow timesPad !
> >
> > Item was changed:
> > ----- Method: TimesRepeatTile>>storeCodeOn:indent: (in category 'code
> generation') -----
> > storeCodeOn: aStream indent: tabCount
> > "Store code representing the receiver on the stream, obeying the
> tab state."
> >
> > aStream nextPutAll: '(('.
> > self numberOfTimesToRepeatPart submorphs
> > ifEmpty:
> > [aStream nextPutAll: '0']
> > ifNotEmpty:
> > [self numberOfTimesToRepeatPart storeCodeOn:
> aStream indent: tabCount + 2].
> > aStream nextPutAll: ' ) asInteger max: 0) timesRepeat:'.
> > tabCount + 1 timesRepeat: [aStream tab].
> > aStream nextPutAll: '['; cr.
> > self storeCodeBlockFor: whatToRepeatPart on: aStream indent:
> tabCount + 2.
> > aStream nextPut: $].
> > !
> >
> > Item was changed:
> > ----- Method: TimesRepeatTile>>targetPartFor: (in category
> 'initialization') -----
> > targetPartFor: aMorph
> > "Return the row into which the given morph should be inserted."
> >
> > | centerY |
> > centerY _ aMorph fullBounds center y.
> > {self numberOfTimesToRepeatPart, whatToRepeatPart} do: [:m |
> > (centerY <= m bounds bottom) ifTrue: [^ m]].
> > ^ noPart
> > !
> >
> > Item was changed:
> > ----- Method: ViewerLine>>addCommandFeedback: (in category 'slot') -----
> > addCommandFeedback: evt
> > "Add screen feedback showing what would be torn off in a drag"
> >
> > | aMorph |
> > + aMorph _ RectangleMorph new bounds: ((submorphs third topLeft -
> (2 at 1)) corner: (submorphs last bottomRight) + (2 at 1)).
> > + aMorph beTransparent; borderWidth: 2; borderColor: ScriptingSystem
> commandFeedback; lock.
> > - aMorph _ RectangleMorph new bounds: ((submorphs third topLeft -
> (2 at 1)) corner: (submorphs last bottomRight) + (2 at 0)).
> > - aMorph beTransparent; borderWidth: 2; borderColor: (Color r: 1.0 g:
> 0.548 b: 0.452); lock.
> > ActiveWorld addHighlightMorph: aMorph for: nil!
> >
> > Item was changed:
> > ----- Method: ViewerLine>>addGetterFeedback (in category 'slot') -----
> > addGetterFeedback
> > "Add feedback during mouseover of a getter"
> >
> > | aMorph endMorph |
> > +
> > endMorph _
> > (#(touchesA: #seesColor: #overlaps: color:sees:
> overlapsAny: bearingTo: bearingFrom: distanceToPlayer:) includes: self
> elementSymbol)
> > ifTrue:
> > [submorphs seventh]
> > ifFalse:
> > [submorphs fifth].
> > + aMorph _ RectangleMorph new bounds: ((submorphs third topLeft -
> (2 at 1)) corner: ((endMorph right @ submorphs third bottom) + (2 at 1))).
> > + aMorph beTransparent; borderWidth: 2; borderColor: ScriptingSystem
> getterFeedback; lock.
> > - aMorph _ RectangleMorph new bounds: ((submorphs third topLeft - (2 at -1))
> corner: (endMorph bottomRight + (2 at -1))).
> > - aMorph height:(submorphs third height + 1).
> > - aMorph beTransparent; borderWidth: 2; borderColor: (Color r: 1.0 g:
> 0.355 b: 0.839); lock.
> > ActiveWorld addHighlightMorph: aMorph for: nil.
> >
> > "
> > Color fromUser (Color r: 1.0 g: 0.355 b: 0.839)
> > "!
> >
> > Item was changed:
> > ----- Method: ViewerLine>>addSetterFeedback (in category 'slot') -----
> > addSetterFeedback
> > "Add screen feedback showing what would be torn off to make a
> setter"
> >
> > | aMorph |
> > + aMorph _ RectangleMorph new bounds: ((submorphs third topLeft -
> (2 at 1)) corner: ((submorphs last right @ submorphs third bottom) + (2 at 1
> ))).
> > + aMorph beTransparent; borderWidth: 2; borderColor: ScriptingSystem
> setterFeedback; lock.
> > - aMorph _ RectangleMorph new bounds: ((submorphs third topLeft -
> (2 at 1)) corner: (submorphs last bottomRight) + (2 at 0)).
> > - aMorph height:(submorphs third height + 1).
> > - aMorph beTransparent; borderWidth: 2; borderColor: (Color r: 1.0 g:
> 0.548 b: 0.452); lock.
> > ActiveWorld addHighlightMorph: aMorph for: nil!
>
> _______________________________________________
> etoys-dev mailing list
> etoys-dev at squeakland.org
> http://lists.squeakland.org/mailman/listinfo/etoys-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakland.org/pipermail/etoys-dev/attachments/20110523/26029763/attachment-0001.html>
More information about the etoys-dev
mailing list