Etoys: Etoys-kfr.70.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Etoys: Etoys-kfr.70.mcz

commits-2
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@10).  "spacer"
+ hotTileForSelf _ ColorTileMorph new showPalette: false;
- | m |
- aRow addMorphBack: (Morph new color: self color; extent: 2@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@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@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@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@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@1)) corner: (self bottomRight) + (2@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@1)) corner: (self bottomRight) + (2@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@1)) corner: ((submorphs at: (2 max: submorphs size)) bottomRight + (2@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@1)) corner: (submorphs last bottomRight) + (2@1)).
+ aMorph beTransparent; borderWidth: 2; borderColor: ScriptingSystem commandFeedback; lock.
- aMorph _ RectangleMorph new bounds: ((submorphs third topLeft - (2@1)) corner: (submorphs last bottomRight) + (2@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@1)) corner: ((endMorph right  @ submorphs third bottom)  + (2@1))).
+ aMorph beTransparent; borderWidth: 2; borderColor: ScriptingSystem getterFeedback; lock.
- aMorph _ RectangleMorph new bounds: ((submorphs third topLeft - (2@-1)) corner: (endMorph bottomRight + (2@-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@1)) corner: ((submorphs last right  @ submorphs third bottom)  + (2@1))).
+ aMorph beTransparent; borderWidth: 2; borderColor: ScriptingSystem setterFeedback; lock.
- aMorph _ RectangleMorph new bounds: ((submorphs third topLeft - (2@1)) corner: (submorphs last bottomRight) + (2@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
[hidden email]
http://lists.squeakland.org/mailman/listinfo/etoys-dev
Reply | Threaded
Open this post in threaded view
|

Re: Etoys: Etoys-kfr.70.mcz

Bert Freudenberg
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, [hidden email] 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@10).  "spacer"
> + hotTileForSelf _ ColorTileMorph new showPalette: false;
> - | m |
> - aRow addMorphBack: (Morph new color: self color; extent: 2@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@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@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@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@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@1)) corner: (self bottomRight) + (2@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@1)) corner: (self bottomRight) + (2@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@1)) corner: ((submorphs at: (2 max: submorphs size)) bottomRight + (2@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@1)) corner: (submorphs last bottomRight) + (2@1)).
> + aMorph beTransparent; borderWidth: 2; borderColor: ScriptingSystem commandFeedback; lock.
> - aMorph _ RectangleMorph new bounds: ((submorphs third topLeft - (2@1)) corner: (submorphs last bottomRight) + (2@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@1)) corner: ((endMorph right  @ submorphs third bottom)  + (2@1))).
> + aMorph beTransparent; borderWidth: 2; borderColor: ScriptingSystem getterFeedback; lock.
> - aMorph _ RectangleMorph new bounds: ((submorphs third topLeft - (2@-1)) corner: (endMorph bottomRight + (2@-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@1)) corner: ((submorphs last right  @ submorphs third bottom)  + (2@1))).
> + aMorph beTransparent; borderWidth: 2; borderColor: ScriptingSystem setterFeedback; lock.
> - aMorph _ RectangleMorph new bounds: ((submorphs third topLeft - (2@1)) corner: (submorphs last bottomRight) + (2@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
[hidden email]
http://lists.squeakland.org/mailman/listinfo/etoys-dev
Reply | Threaded
Open this post in threaded view
|

Re: Etoys: Etoys-kfr.70.mcz

Karl Ramberg
Missing methods are in 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 <[hidden email]> 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, [hidden email] 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@10).  "spacer"
> +     hotTileForSelf _ ColorTileMorph new showPalette: false;
> -     | m |
> -     aRow addMorphBack: (Morph new color: self color; extent: 2@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@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@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@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@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@1)) corner: (self bottomRight) + (2@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@1)) corner: (self bottomRight) + (2@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@1)) corner: ((submorphs at: (2 max: submorphs size)) bottomRight + (2@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@1)) corner: (submorphs last bottomRight) + (2@1)).
> +     aMorph beTransparent; borderWidth: 2; borderColor: ScriptingSystem commandFeedback; lock.
> -     aMorph _ RectangleMorph new bounds: ((submorphs third topLeft - (2@1)) corner: (submorphs last bottomRight) + (2@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@1)) corner: ((endMorph right  @ submorphs third bottom)  + (2@1))).
> +     aMorph beTransparent; borderWidth: 2; borderColor: ScriptingSystem getterFeedback; lock.
> -     aMorph _ RectangleMorph new bounds: ((submorphs third topLeft - (2@-1)) corner: (endMorph bottomRight + (2@-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@1)) corner: ((submorphs last right  @ submorphs third bottom)  + (2@1))).
> +     aMorph beTransparent; borderWidth: 2; borderColor: ScriptingSystem setterFeedback; lock.
> -     aMorph _ RectangleMorph new bounds: ((submorphs third topLeft - (2@1)) corner: (submorphs last bottomRight) + (2@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
[hidden email]
http://lists.squeakland.org/mailman/listinfo/etoys-dev


_______________________________________________
etoys-dev mailing list
[hidden email]
http://lists.squeakland.org/mailman/listinfo/etoys-dev