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 |
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 |
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, _______________________________________________ etoys-dev mailing list [hidden email] http://lists.squeakland.org/mailman/listinfo/etoys-dev |
Free forum by Nabble | Edit this page |