Karl,
We looked at your change, and Scott also proposed another change, and Scott made a version that is sort of a unification of both. Take a look at 1359nonColors-sw.cs in the OLPC image.
-- Yoshiki
At Tue, 05 Jun 2007 00:23:40 +0200, karl wrote:
Alan Kay wrote:
This is definitely a bug. But it does work in individual playfields. See if this is a good enough work around for now.
Cheers,
Alan
Here is a fix
Karl
At 08:39 AM 6/4/2007, narayans@uncw.edu wrote:
I turned on the graph paper in the world, and then tried to open a viewer on the world.
4 June 2007 11:37:04 am
VM: Win32 - a SmalltalkImage Image: OLPC2.0 [latest update: #1349]
SecurityManager state: Restricted: false FileAccess: true SocketAccess: true Working Dir C:\My Squeak\narayans Trusted Dir C:\olpc-E-Toys\narayans Untrusted Dir C:\My Squeak\narayans
InfiniteForm(Object)>>doesNotUnderstand: #red Receiver: an InfiniteForm Arguments and temporary variables: t1: red Receiver's instance variables: patternForm: Form(16x16x16)
UnscriptedPlayer(Player)>>getRed Receiver: an UnscriptedPlayer (3407) named world Arguments and temporary variables:
Receiver's instance variables: dependents: nil costume: a PasteUpMorph<world>(1622) [world] costumes: nil
NumberType(DataType)>>updatingTileForTarget:partName:getter:setter: Receiver: a NumberType named "Number" Arguments and temporary variables: aTarget: an UnscriptedPlayer (3407) named world partName: #getRed getter: #getRed setter: #setRed: aTile: a NumericReadoutTile(2801) - #literal op= '' displayer: an UpdatingStringMorph<readout string>(3696)nil actualSetter: #setRed: Receiver's instance variables: authoringStamp: ' 2/16/2007 17:09' properties: a Dictionary(#helpMessage->'Numbers are things that can do arithmet...etc... elementSymbol: nil naturalLanguageTranslations: nil vocabularyName: #Number categories: an OrderedCollection(an ElementCategory named comparing an ElementC...etc... methodInterfaces: an IdentityDictionary(#abs->a MethodInterface - wording: #abs...etc... object: nil limitClass: nil translationTable: nil
CategoryViewer>>readoutFor:type:readOnly:getSelector:putSelector: Receiver: a CategoryViewer(2912) Arguments and temporary variables: t1: #getRed t2: #Number t3: false t4: #getRed t5: #setRed: t6: nil t7: nil Receiver's instance variables: bounds: 0@0 corner: 50@40 owner: nil submorphs: #(an AlignmentMorph(3081)) fullBounds: nil color: (Color r: 0.946 g: 1.0 b: 0.946) extension: a MorphExtensionPlus (3364) [sticky] [layoutPolicy - TableLayout] ...etc... borderWidth: 0 borderColor: (Color r: 0.5 g: 0.7 b: 0.5) scriptedPlayer: an UnscriptedPlayer (3407) named world namePane: a BorderedMorph(2015) chosenCategorySymbol: #color
--- The full stack --- InfiniteForm(Object)>>doesNotUnderstand: #red UnscriptedPlayer(Player)>>getRed NumberType(DataType)>>updatingTileForTarget:partName:getter:setter: CategoryViewer>>readoutFor:type:readOnly:getSelector:putSelector:
CategoryViewer>>phraseForVariableFrom: [] in UnscriptedPlayer(Object)>>tilePhrasesForMethodInterfaces:inViewer: {[:aMethodInterface | ((resultType := aMethodInterface resultType) notNil ...]} Array(SequenceableCollection)>>collect: UnscriptedPlayer(Object)>>tilePhrasesForMethodInterfaces:inViewer: UnscriptedPlayer(Object)>>tilePhrasesForCategory:inViewer: CategoryViewer>>categoryWording: CategoryViewer>>chosenCategorySymbol: CategoryViewer>>chooseCategoryWhoseTranslatedWordingIs: CategoryViewer>>initializeFor:categoryChoice: StandardViewer>>categoryViewerFor: [] in StandardViewer>>addCategoryViewerFor:atEnd: {[aViewer := self categoryViewerFor: categoryInfo. atEnd ifTrue: [self add...]} BlockContext>>ensure: CursorWithMask(Cursor)>>showWhile: StandardViewer>>addCategoryViewerFor:atEnd: StandardViewer>>addCategoryViewerFor: StandardViewer>>addCategoryViewer StandardViewer>>initializeFor:barHeight:includeDismissButton:showCategor ies: StandardViewer>>initializeFor:barHeight:includeDismissButton: StandardViewer>>initializeFor:barHeight: Presenter>>viewMorph: [] in PasteUpMorph(Morph)>>openViewerForArgument {[self presenter viewMorph: self]} BlockContext>>ensure: CursorWithMask(Cursor)>>showWhile: PasteUpMorph(Morph)>>openViewerForArgument HaloMorph>>openViewerForTarget:with: EventHandler>>send:to:withEvent:fromMorph: EventHandler>>mouseDown:fromMorph: ThreePhaseButtonMorph(Morph)>>mouseDown: ThreePhaseButtonMorph>>mouseDown: ThreePhaseButtonMorph(Morph)>>handleMouseDown: MouseButtonEvent>>sentTo: ThreePhaseButtonMorph(Morph)>>handleEvent: MorphicEventDispatcher>>dispatchMouseDown:with: MorphicEventDispatcher>>dispatchEvent:with: ThreePhaseButtonMorph(Morph)>>processEvent:using: ...etc...