Missing methods are in <span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px; "><a href="http://source.squeak.org/etoys/Morphic-kfr.63.mcz" target="_blank" style="color: rgb(0, 84, 136); ">http://source.squeak.org/</a></span><span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px; "><a href="http://source.squeak.org/etoys/Morphic-kfr.63.mcz" target="_blank" style="color: rgb(0, 84, 136); ">etoys/Morphic-kfr.63.mcz</a></span><div>
<font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;"><br></span></font></div><div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;">I&#39;ll watch the screencast tonight</span></font><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;">  :-)</span><br>
</font></div><div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;"><br></span></font></div><div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;">Thanks for notifying<br>
</span></font></div><div><div class="gmail_quote"><br></div><div class="gmail_quote">Karl</div><div class="gmail_quote"><br></div><div class="gmail_quote"><br></div><div class="gmail_quote">On Mon, May 23, 2011 at 12:49 AM, Bert Freudenberg <span dir="ltr">&lt;<a href="mailto:bert@freudenbergs.de">bert@freudenbergs.de</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Hi Karl,<br>
<br>
this breaks all viewers because the method ScriptingSystem&gt;&gt;commandFeedback is missing. PLease try updating from a clean Etoys-To-Go to witness.<br>
<br>
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 :)<br>
<br>
        <a href="http://etoys.squeak.org/svn/trunk/Documentation/Release-HowTo.txt" target="_blank">http://etoys.squeak.org/svn/trunk/Documentation/Release-HowTo.txt</a><br>
<br>
I also made a screen cast:<br>
<br>
        <a href="http://www.youtube.com/watch?v=rUzrfjP4Jck" target="_blank">http://www.youtube.com/watch?v=rUzrfjP4Jck</a><br>
<br>
This takes only 10 minutes, and you can do it even quicker if you don&#39;t have to talk while doing it ;)<br>
<font color="#888888"><br>
- Bert -<br>
</font><div><div></div><div class="h5"><br>
On 22.05.2011, at 18:00, <a href="mailto:commits@source.squeak.org">commits@source.squeak.org</a> wrote:<br>
<br>
&gt; Karl Ramberg uploaded a new version of Etoys to project Etoys:<br>
&gt; <a href="http://source.squeak.org/etoys/Etoys-kfr.70.mcz" target="_blank">http://source.squeak.org/etoys/Etoys-kfr.70.mcz</a><br>
&gt;<br>
&gt; ==================== Summary ====================<br>
&gt;<br>
&gt; Name: Etoys-kfr.70<br>
&gt; Author: kfr<br>
&gt; Time: 22 May 2011, 8:00:42 pm<br>
&gt; UUID: cdee253f-af6d-9b46-8493-464179d48432<br>
&gt; Ancestors: Etoys-kfr.69<br>
&gt;<br>
&gt; Mouseover Feedback of a phrase tile is wrong<br>
&gt; <a href="http://tracker.squeakland.org/browse/SQ-62" target="_blank">http://tracker.squeakland.org/browse/SQ-62</a><br>
&gt;<br>
&gt; =============== Diff against Etoys-kfr.69 ===============<br>
&gt;<br>
&gt; Item was changed:<br>
&gt;  ----- Method: CategoryViewer&gt;&gt;addColorSeesDetailTo: (in category &#39;entries&#39;) -----<br>
&gt;  addColorSeesDetailTo: aRow<br>
&gt;       &quot;Special-casee code for the boolean-valued phrase variously known as is-over-color or sees-color.&quot;<br>
&gt; +     | hotTileForSelf colorMorph |<br>
&gt; -     | hotTileForSelf m |<br>
&gt;       (aRow submorphs last) delete.<br>
&gt;       aRow addMorphBack: (hotTileForSelf _ ColorSeerTile new showPalette: false; yourself).<br>
&gt; +     aRow addMorphBack: (colorMorph _ ColorTileMorph new showPalette: false;<br>
&gt; -     aRow addMorphBack: (m _ ColorTileMorph new showPalette: false;<br>
&gt;                               typeColor: (ScriptingSystem colorForType: #Color); yourself).<br>
&gt; +     colorMorph colorSwatch color: Color blue.<br>
&gt; +      hotTileForSelf on: #mouseEnter send: #addGetterFeedback to: aRow.<br>
&gt; -     m colorSwatch color: Color blue.<br>
&gt; -     hotTileForSelf on: #mouseEnter send: #addGetterFeedback to: aRow.<br>
&gt;       hotTileForSelf on: #mouseLeave send: #removeHighlightFeedback to: aRow.<br>
&gt;       hotTileForSelf on: #mouseLeaveDragging send: #removeHighlightFeedback to: aRow.<br>
&gt;<br>
&gt;       hotTileForSelf  on: #mouseDown send: #makeGetter:event:from:<br>
&gt;               to: self<br>
&gt;               withValue: (Array with: #color:sees: with: #Boolean).<br>
&gt;<br>
&gt; +      colorMorph on: #mouseEnter send: #addGetterFeedback to: aRow.<br>
&gt; +     colorMorph on: #mouseLeave send: #removeHighlightFeedback to: aRow.<br>
&gt; +     colorMorph on: #mouseLeaveDragging send: #removeHighlightFeedback to: aRow.<br>
&gt; +<br>
&gt; +     colorMorph  on: #mouseDown send: #makeGetter:event:from:<br>
&gt; +             to: self<br>
&gt; +             withValue: (Array with: #color:sees: with: #Boolean).<br>
&gt; +<br>
&gt;       aRow addMorphBack: (Morph new extent: 0@(aRow height)).<br>
&gt;  !<br>
&gt;<br>
&gt; Item was changed:<br>
&gt;  ----- Method: CategoryViewer&gt;&gt;addIsOverColorDetailTo: (in category &#39;entries&#39;) -----<br>
&gt;  addIsOverColorDetailTo: aRow<br>
&gt;       &quot;Special-casee code for the boolean-valued phrase variously known as is-over-color or sees-color.&quot;<br>
&gt;<br>
&gt; +     | hotTileForSelf |<br>
&gt; +     aRow addMorphBack: (Morph new color: self color; extent: 0@10).  &quot;spacer&quot;<br>
&gt; +     hotTileForSelf _ ColorTileMorph new showPalette: false;<br>
&gt; -     | m |<br>
&gt; -     aRow addMorphBack: (Morph new color: self color; extent: 2@10).  &quot;spacer&quot;<br>
&gt; -     m _ ColorTileMorph new showPalette: false;<br>
&gt;                               typeColor: (ScriptingSystem colorForType: #Color); yourself.<br>
&gt; +     hotTileForSelf colorSwatch color: Color blue.<br>
&gt; +      hotTileForSelf on: #mouseEnter send: #addGetterFeedback to: aRow.<br>
&gt; +     hotTileForSelf on: #mouseLeave send: #removeHighlightFeedback to: aRow.<br>
&gt; +     hotTileForSelf on: #mouseLeaveDragging send: #removeHighlightFeedback to: aRow.<br>
&gt; +     hotTileForSelf  on: #mouseDown send: #makeGetter:event:from:<br>
&gt; +             to: self<br>
&gt; +             withValue: (Array with: #seesColor: with: #Color).<br>
&gt; +         aRow addMorphBack: hotTileForSelf.<br>
&gt; -     m colorSwatch color: Color blue.<br>
&gt; -     aRow addMorphBack: (m _ ColorTileMorph new showPalette: false;<br>
&gt; -                             typeColor: (ScriptingSystem colorForType: #Color); yourself).<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; -<br>
&gt;  &quot;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...&quot;<br>

&gt;<br>
&gt;  &quot;    aRow addMorphBack: (AlignmentMorph new beTransparent).<br>
&gt;       readout _ UpdatingStringMorphWithArgument new<br>
&gt;                       target: scriptedPlayer; getSelector: #seesColor:; growable: false; putSelector: nil;<br>
&gt;                       argumentTarget: clrTile colorSwatch argumentGetSelector: #color.<br>
&gt;       readout useDefaultFormat.<br>
&gt;       aTile _ StringReadoutTile new typeColor: Color lightGray lighter.<br>
&gt;       aTile addMorphBack: readout.<br>
&gt;       aRow addMorphBack: aTile.<br>
&gt;       aTile setLiteralTo: (scriptedPlayer seesColor: clrTile colorSwatch color) printString width: 30&quot;!<br>
&gt;<br>
&gt; Item was changed:<br>
&gt;  ----- Method: CategoryViewer&gt;&gt;addPlayerArgumentTo: (in category &#39;entries&#39;) -----<br>
&gt;  addPlayerArgumentTo: aRow<br>
&gt;       &quot;Add, delimited by spacer morphs, a player-valued TileMorph to the row provided.&quot;<br>
&gt;<br>
&gt; +     | aTileToRefer |<br>
&gt;       aRow addMorphBack: (Morph new extent: 0@0).  &quot;spacer (Is this spacer really needed??? - takashi)&quot;<br>
&gt; +     aTileToRefer :=  self presenter standardPlayer tileToRefer.<br>
&gt; +     aTileToRefer on: #mouseEnter send: #addGetterFeedback to: aRow.<br>
&gt; +             aTileToRefer on: #mouseLeave send: #removeHighlightFeedback to: aRow.<br>
&gt; +             aTileToRefer on: #mouseLeaveDragging send: #removeHighlightFeedback to: aRow.<br>
&gt; +     aRow addMorphBack: aTileToRefer .<br>
&gt; -     aRow addMorphBack:  self presenter standardPlayer tileToRefer.<br>
&gt;       aRow addMorphBack: (AlignmentMorph new beTransparent).  &quot;flexible spacer&quot;<br>
&gt;<br>
&gt;  !<br>
&gt;<br>
&gt; Item was changed:<br>
&gt;  ----- Method: CategoryViewer&gt;&gt;phraseForVariableFrom: (in category &#39;entries&#39;) -----<br>
&gt;  phraseForVariableFrom: aMethodInterface<br>
&gt;       &quot;Return a structure consisting of tiles and controls and a readout representing a &#39;variable&#39; 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.&quot;<br>

&gt;<br>
&gt; +     | anArrow slotName getterButton aRow doc setter hotTileForSelf spacer readOut aTileToRefer |<br>
&gt; -     | anArrow slotName getterButton aRow doc setter hotTileForSelf spacer |<br>
&gt;       Preferences universalTiles ifTrue: [^ self universalTilesPhraseForVariableFrom: aMethodInterface].<br>
&gt;<br>
&gt;       aRow _ ViewerLine newRow<br>
&gt;               elementSymbol: (slotName _ aMethodInterface selector);<br>
&gt;               wrapCentering: #center;<br>
&gt;               cellPositioning: #leftCenter.<br>
&gt;<br>
&gt;       (self wantsInfoButtonFor: slotName)<br>
&gt;               ifFalse:<br>
&gt;                       [aRow addMorphBack: ScriptingSystem buttonSpacer]<br>
&gt;               ifTrue:<br>
&gt;                       [aRow addMorphBack: (self infoButtonFor: slotName)].<br>
&gt;<br>
&gt;       aRow addMorphBack: self spacerAfterButton.<br>
&gt;<br>
&gt;       hotTileForSelf _ self tileForSelf bePossessive.<br>
&gt;       hotTileForSelf  on: #mouseDown send: #makeGetter:event:from:<br>
&gt;               to: self<br>
&gt;               withValue: (Array with: aMethodInterface selector with: aMethodInterface resultType).<br>
&gt;       aRow addMorphBack: hotTileForSelf.<br>
&gt;<br>
&gt;       aRow addMorphBack: (spacer _ Morph new color: self color; extent: 0@0).<br>
&gt;       spacer on: #mouseEnter send: #addGetterFeedback to: aRow.<br>
&gt;       spacer on: #mouseLeave send: #removeHighlightFeedback to: aRow.<br>
&gt;       spacer on: #mouseLeaveDragging send: #removeHighlightFeedback to: aRow.<br>
&gt;       spacer  on: #mouseDown send: #makeGetter:event:from:<br>
&gt;               to: self<br>
&gt;               withValue: (Array with: aMethodInterface selector with: aMethodInterface resultType).<br>
&gt;       hotTileForSelf on: #mouseEnter send: #addGetterFeedback to: aRow.<br>
&gt;       hotTileForSelf on: #mouseLeave send: #removeHighlightFeedback to: aRow.<br>
&gt;       hotTileForSelf on: #mouseLeaveDragging send: #removeHighlightFeedback to: aRow.<br>
&gt;<br>
&gt;       getterButton _ self getterButtonFor: aMethodInterface selector type: aMethodInterface resultType.<br>
&gt;       aRow addMorphBack: getterButton.<br>
&gt;       getterButton on: #mouseEnter send: #addGetterFeedback to: aRow.<br>
&gt;       getterButton on: #mouseLeave send: #removeHighlightFeedback to: aRow.<br>
&gt;       getterButton on: #mouseLeaveDragging send: #removeHighlightFeedback to: aRow.<br>
&gt;       (doc _ aMethodInterface documentation) ifNotNil:<br>
&gt;               [getterButton setBalloonText: doc].<br>
&gt;<br>
&gt;       (slotName == #seesColor:) ifTrue:<br>
&gt;               [self addIsOverColorDetailTo: aRow.<br>
&gt;               ^ aRow].<br>
&gt;<br>
&gt;       (slotName == #color:sees:) ifTrue:<br>
&gt;               [self addColorSeesDetailTo: aRow.<br>
&gt;               ^ aRow].<br>
&gt;<br>
&gt;       (#(touchesA: overlaps: overlapsAny: distanceToPlayer: bearingTo: bearingFrom:) includes: slotName) ifTrue:<br>
&gt; +             [aRow addMorphBack: (Morph new extent: 0@0).  &quot;spacer (Is this spacer really needed??? - takashi)&quot;<br>
&gt; +     aTileToRefer :=  self presenter standardPlayer tileToRefer.<br>
&gt; +     aTileToRefer on: #mouseEnter send: #addGetterFeedback to: aRow.<br>
&gt; +     aTileToRefer on: #mouseLeave send: #removeHighlightFeedback to: aRow.<br>
&gt; +     aTileToRefer on: #mouseLeaveDragging send: #removeHighlightFeedback to: aRow.<br>
&gt; +     aTileToRefer on: #mouseDown send: #makeGetter:event:from:<br>
&gt; +             to: self<br>
&gt; +             withValue: (Array with: aMethodInterface selector with: aMethodInterface resultType).<br>
&gt; +     aRow addMorphBack: aTileToRefer .<br>
&gt; +     aRow addMorphBack: (AlignmentMorph new beTransparent).  &quot;flexible spacer&quot;<br>
&gt; -             [self addPlayerArgumentTo: aRow.<br>
&gt;               ^ aRow].<br>
&gt;<br>
&gt;       aRow addMorphBack: VariableSpacer new.<br>
&gt;       (setter _ aMethodInterface companionSetterSelector) ifNotNil:<br>
&gt;               [aRow addMorphBack: (Morph new color: self color; extent: 2@10).  &quot; spacer&quot;<br>
&gt;               anArrow _ self arrowSetterButton: #makeSetter:from:forPart:<br>
&gt;                                               args: (Array with: slotName with: aMethodInterface resultType).<br>
&gt;               anArrow beTransparent.<br>
&gt;               anArrow on: #mouseEnter send: #addSetterFeedback to: aRow.<br>
&gt;               anArrow on: #mouseLeave send: #removeHighlightFeedback to: aRow.<br>
&gt;               anArrow on: #mouseLeaveDragging send: #removeHighlightFeedback to: aRow.<br>
&gt;               aRow addMorphBack: anArrow].<br>
&gt;<br>
&gt;       (#(color:sees: copy touchesA: overlaps: overlapsAny: getTurtleAt: getTurtleOf:) includes: slotName) ifFalse:<br>
&gt;               [aMethodInterface wantsReadoutInViewer ifTrue:<br>
&gt; +                             [readOut := (self readoutFor: slotName type: aMethodInterface resultType readOnly: setter isNil getSelector: aMethodInterface selector putSelector: setter).<br>
&gt; +                             readOut on: #mouseEnter send: #addSetterFeedback to: aRow.<br>
&gt; +             readOut on: #mouseLeave send: #removeHighlightFeedback to: aRow.<br>
&gt; +             readOut on: #mouseLeaveDragging send: #removeHighlightFeedback to: aRow.<br>
&gt; +             readOut on: #mouseDown send: #makeGetter:event:from:<br>
&gt; +             to: self<br>
&gt; +             withValue: (Array with: aMethodInterface selector with: aMethodInterface resultType).<br>
&gt; +                                     aRow addMorphBack: readOut.]].<br>
&gt; -                             [aRow addMorphBack: (self readoutFor: slotName type: aMethodInterface resultType readOnly: setter isNil getSelector: aMethodInterface selector putSelector: setter)]].<br>
&gt;       anArrow ifNotNil: [anArrow step].<br>
&gt;       ^ aRow!<br>
&gt;<br>
&gt; Item was changed:<br>
&gt;  ----- Method: CompoundTileMorph&gt;&gt;addCommandFeedback: (in category &#39;miscellaneous&#39;) -----<br>
&gt;  addCommandFeedback: evt<br>
&gt;       &quot;Add screen feedback showing what would be torn off in a drag&quot;<br>
&gt;<br>
&gt;       | aMorph |<br>
&gt; +<br>
&gt;       aMorph _ RectangleMorph new bounds: (self bounds).<br>
&gt; +     aMorph beTransparent; borderWidth: 2; borderColor: ScriptingSystem commandFeedback; lock.<br>
&gt; -     aMorph beTransparent; borderWidth: 2; borderColor: (Color r: 1.0 g: 0.548 b: 0.452); lock.<br>
&gt;       ActiveWorld addHighlightMorph: aMorph for: self outmostScriptEditor!<br>
&gt;<br>
&gt; Item was changed:<br>
&gt;  ----- Method: PhraseTileForTest&gt;&gt;addCommandFeedback: (in category &#39;as yet unclassified&#39;) -----<br>
&gt;  addCommandFeedback: evt<br>
&gt;       &quot;Add screen feedback showing what would be torn off in a drag&quot;<br>
&gt;<br>
&gt; +     | aMorph |<br>
&gt; -     | aMorph rect |<br>
&gt;       (self owner owner isMemberOf: PhraseTileMorph) ifTrue: [self owner owner addCommandFeedback: evt. ^ self].<br>
&gt; +     aMorph _ RectangleMorph new bounds: ((self topLeft - (2@1)) corner: (self bottomRight) + (2@1)).<br>
&gt; +     aMorph beTransparent; borderWidth: 2; borderColor: ScriptingSystem commandFeedback; lock.<br>
&gt; -     rect _ self bounds.<br>
&gt; -     aMorph _ RectangleMorph new bounds: rect.<br>
&gt; -     aMorph beTransparent; borderWidth: 2; borderColor: (Color r: 1.0 g: 0.548 b: 0.452); lock.<br>
&gt;       ActiveWorld addHighlightMorph: aMorph for: self outmostScriptEditor!<br>
&gt;<br>
&gt; Item was changed:<br>
&gt;  ----- Method: PhraseTileForTimesRepeat&gt;&gt;addCommandFeedback: (in category &#39;hilighting&#39;) -----<br>
&gt;  addCommandFeedback: evt<br>
&gt;       &quot;Add screen feedback showing what would be torn off in a drag&quot;<br>
&gt;<br>
&gt; +     | aMorph |<br>
&gt; +<br>
&gt; -     | aMorph rect |<br>
&gt;       (self owner owner isMemberOf: PhraseTileMorph) ifTrue: [self owner owner addCommandFeedback: evt. ^ self].<br>
&gt; +     aMorph _ RectangleMorph new bounds: ((self topLeft - (2@1)) corner: (self bottomRight) + (2@1)).<br>
&gt; +     aMorph beTransparent; borderWidth: 2; borderColor: ScriptingSystem commandFeedback; lock.<br>
&gt; -     rect _ self bounds.<br>
&gt; -     aMorph _ RectangleMorph new bounds: rect.<br>
&gt; -     aMorph beTransparent; borderWidth: 2; borderColor: (Color r: 1.0 g: 0.548 b: 0.452); lock.<br>
&gt;       ActiveWorld addHighlightMorph: aMorph for: self outmostScriptEditor!<br>
&gt;<br>
&gt; Item was changed:<br>
&gt;  ----- Method: PhraseTileMorph&gt;&gt;addCommandFeedback: (in category &#39;hilighting&#39;) -----<br>
&gt;  addCommandFeedback: evt<br>
&gt;       &quot;Add screen feedback showing what would be torn off in a drag&quot;<br>
&gt;<br>
&gt; +     | aMorph |<br>
&gt; -     | aMorph rect inHotZone |<br>
&gt;       (self owner owner isMemberOf: PhraseTileMorph)<br>
&gt;               ifTrue: [self owner owner addCommandFeedback: evt. ^ self].<br>
&gt; +     aMorph _ RectangleMorph new bounds: ((self topLeft - (2@1)) corner: ((submorphs at: (2 max: submorphs size)) bottomRight + (2@1))).<br>
&gt; +     &quot;inHotZone _ evt ifNil: [true] ifNotNil: [rect containsPoint: evt cursorPoint].&quot;<br>
&gt; +     aMorph beTransparent; borderWidth: 2; borderColor: ScriptingSystem commandFeedback; lock.<br>
&gt; -     rect _ self topLeft corner: (submorphs at: (2 min: submorphs size)) bottomRight.<br>
&gt; -     inHotZone _ evt ifNil: [true] ifNotNil: [rect containsPoint: evt cursorPoint].<br>
&gt; -     aMorph _ RectangleMorph new bounds: rect; beTransparent; borderWidth: 2.<br>
&gt; -     aMorph borderColor: (Color r: 1.0 g: 0.548 b: 0.452); lock.<br>
&gt;       ActiveWorld addHighlightMorph: aMorph for: self outmostScriptEditor!<br>
&gt;<br>
&gt; Item was changed:<br>
&gt;  ----- Method: TileMorph&gt;&gt;handlesMouseOver: (in category &#39;event handling&#39;) -----<br>
&gt;  handlesMouseOver: evt<br>
&gt;       ^ self isPopArrowNeeded<br>
&gt; +             or: [^super handlesMouseOver: evt]!<br>
&gt; -             or: [super handlesMouseOver: evt]!<br>
&gt;<br>
&gt; Item was changed:<br>
&gt;  ----- Method: TileMorph&gt;&gt;mouseEnter: (in category &#39;event handling&#39;) -----<br>
&gt;  mouseEnter: evt<br>
&gt; +<br>
&gt; +     .<br>
&gt; +     super mouseEnter:evt.<br>
&gt; +     ^self showPopArrows!<br>
&gt; -     self showPopArrows!<br>
&gt;<br>
&gt; Item was changed:<br>
&gt;  ----- Method: TileMorph&gt;&gt;mouseLeave: (in category &#39;event handling&#39;) -----<br>
&gt;  mouseLeave: evt<br>
&gt;       &quot;When the mouse is leaving and next object is not a pop arrow, remove<br>
&gt;       pop arrows.&quot;<br>
&gt;       | popArrows vpanel hpanel |<br>
&gt;       popArrows := evt hand<br>
&gt;                               valueOfProperty: #popArrows<br>
&gt; +                             ifAbsent: [^super mouseLeave: evt].<br>
&gt; -                             ifAbsent: [^ self].<br>
&gt;       vpanel := popArrows second.<br>
&gt;       hpanel := popArrows third.<br>
&gt;       (vpanel notNil<br>
&gt;                       and: [vpanel containsPoint: evt position])<br>
&gt; +             ifTrue: [^super mouseLeave: evt].<br>
&gt; -             ifTrue: [^ self].<br>
&gt;       (hpanel notNil<br>
&gt;                       and: [hpanel containsPoint: evt position])<br>
&gt; +             ifTrue: [^super mouseLeave: evt].<br>
&gt; +     self hidePopArrows.<br>
&gt; +     ^super mouseLeave: evt!<br>
&gt; -             ifTrue: [^ self].<br>
&gt; -     self hidePopArrows!<br>
&gt;<br>
&gt; Item was changed:<br>
&gt;  ----- Method: TimesRepeatTile&gt;&gt;numberOfTimesToRepeatPart (in category &#39;access&#39;) -----<br>
&gt;  numberOfTimesToRepeatPart<br>
&gt;       &quot;Answer the TilePadMorph which holds the tiles defining the number of times to repeat&quot;<br>
&gt;<br>
&gt;       ^ timesRow timesPad !<br>
&gt;<br>
&gt; Item was changed:<br>
&gt;  ----- Method: TimesRepeatTile&gt;&gt;storeCodeOn:indent: (in category &#39;code generation&#39;) -----<br>
&gt;  storeCodeOn: aStream indent: tabCount<br>
&gt;       &quot;Store code representing the receiver on the stream, obeying the tab state.&quot;<br>
&gt;<br>
&gt;       aStream nextPutAll: &#39;((&#39;.<br>
&gt;       self numberOfTimesToRepeatPart submorphs<br>
&gt;               ifEmpty:<br>
&gt;                       [aStream nextPutAll: &#39;0&#39;]<br>
&gt;               ifNotEmpty:<br>
&gt;                       [self numberOfTimesToRepeatPart storeCodeOn: aStream indent: tabCount + 2].<br>
&gt;       aStream nextPutAll: &#39; ) asInteger max: 0) timesRepeat:&#39;.<br>
&gt;       tabCount + 1 timesRepeat: [aStream tab].<br>
&gt;       aStream nextPutAll: &#39;[&#39;; cr.<br>
&gt;       self storeCodeBlockFor: whatToRepeatPart on: aStream indent: tabCount + 2.<br>
&gt;       aStream nextPut: $].<br>
&gt;  !<br>
&gt;<br>
&gt; Item was changed:<br>
&gt;  ----- Method: TimesRepeatTile&gt;&gt;targetPartFor: (in category &#39;initialization&#39;) -----<br>
&gt;  targetPartFor: aMorph<br>
&gt;       &quot;Return the row into which the given morph should be inserted.&quot;<br>
&gt;<br>
&gt;       | centerY |<br>
&gt;       centerY _ aMorph fullBounds center y.<br>
&gt;       {self numberOfTimesToRepeatPart, whatToRepeatPart} do: [:m |<br>
&gt;               (centerY &lt;= m bounds bottom) ifTrue: [^ m]].<br>
&gt;       ^ noPart<br>
&gt;  !<br>
&gt;<br>
&gt; Item was changed:<br>
&gt;  ----- Method: ViewerLine&gt;&gt;addCommandFeedback: (in category &#39;slot&#39;) -----<br>
&gt;  addCommandFeedback: evt<br>
&gt;       &quot;Add screen feedback showing what would be torn off in a drag&quot;<br>
&gt;<br>
&gt;       | aMorph |<br>
&gt; +     aMorph _ RectangleMorph new bounds: ((submorphs third topLeft - (2@1)) corner: (submorphs last bottomRight) + (2@1)).<br>
&gt; +     aMorph beTransparent; borderWidth: 2; borderColor: ScriptingSystem commandFeedback; lock.<br>
&gt; -     aMorph _ RectangleMorph new bounds: ((submorphs third topLeft - (2@1)) corner: (submorphs last bottomRight) + (2@0)).<br>
&gt; -     aMorph beTransparent; borderWidth: 2; borderColor: (Color r: 1.0 g: 0.548 b: 0.452); lock.<br>
&gt;       ActiveWorld addHighlightMorph: aMorph for: nil!<br>
&gt;<br>
&gt; Item was changed:<br>
&gt;  ----- Method: ViewerLine&gt;&gt;addGetterFeedback (in category &#39;slot&#39;) -----<br>
&gt;  addGetterFeedback<br>
&gt;       &quot;Add feedback during mouseover of a getter&quot;<br>
&gt;<br>
&gt;       | aMorph endMorph |<br>
&gt; +<br>
&gt;       endMorph _<br>
&gt;               (#(touchesA: #seesColor: #overlaps: color:sees: overlapsAny: bearingTo: bearingFrom: distanceToPlayer:) includes: self elementSymbol)<br>
&gt;                       ifTrue:<br>
&gt;                               [submorphs seventh]<br>
&gt;                       ifFalse:<br>
&gt;                               [submorphs fifth].<br>
&gt; +     aMorph _ RectangleMorph new bounds: ((submorphs third topLeft - (2@1)) corner: ((endMorph right  @ submorphs third bottom)  + (2@1))).<br>
&gt; +     aMorph beTransparent; borderWidth: 2; borderColor: ScriptingSystem getterFeedback; lock.<br>
&gt; -     aMorph _ RectangleMorph new bounds: ((submorphs third topLeft - (2@-1)) corner: (endMorph bottomRight + (2@-1))).<br>
&gt; -     aMorph height:(submorphs third height + 1).<br>
&gt; -     aMorph beTransparent; borderWidth: 2; borderColor: (Color r: 1.0 g: 0.355 b: 0.839); lock.<br>
&gt;       ActiveWorld addHighlightMorph: aMorph for: nil.<br>
&gt;<br>
&gt;  &quot;<br>
&gt;  Color fromUser (Color r: 1.0 g: 0.355 b: 0.839)<br>
&gt;  &quot;!<br>
&gt;<br>
&gt; Item was changed:<br>
&gt;  ----- Method: ViewerLine&gt;&gt;addSetterFeedback (in category &#39;slot&#39;) -----<br>
&gt;  addSetterFeedback<br>
&gt;       &quot;Add screen feedback showing what would be torn off to make a setter&quot;<br>
&gt;<br>
&gt;       | aMorph |<br>
&gt; +     aMorph _ RectangleMorph new bounds: ((submorphs third topLeft - (2@1)) corner: ((submorphs last right  @ submorphs third bottom)  + (2@1))).<br>
&gt; +     aMorph beTransparent; borderWidth: 2; borderColor: ScriptingSystem setterFeedback; lock.<br>
&gt; -     aMorph _ RectangleMorph new bounds: ((submorphs third topLeft - (2@1)) corner: (submorphs last bottomRight) + (2@0)).<br>
&gt; -     aMorph height:(submorphs third height + 1).<br>
&gt; -     aMorph beTransparent; borderWidth: 2; borderColor: (Color r: 1.0 g: 0.548 b: 0.452); lock.<br>
&gt;       ActiveWorld addHighlightMorph: aMorph for: nil!<br>
<br>
_______________________________________________<br>
etoys-dev mailing list<br>
<a href="mailto:etoys-dev@squeakland.org">etoys-dev@squeakland.org</a><br>
<a href="http://lists.squeakland.org/mailman/listinfo/etoys-dev" target="_blank">http://lists.squeakland.org/mailman/listinfo/etoys-dev</a><br>
</div></div></blockquote></div><br></div>