Chris Cunnington wrote:
http://www.osrcon.ca/image2.png
http://www.osrcon.ca/image1.png

Yea, I'm not asking this very well. And all things Renggli make my head spin.

In image2, if I inspect the string 'bob' I see self contains a string called 'bob'. It does not say "a ByteString", which to me means the usual behaviour has been overtaken by something else. We don't get an instance; we get only its return value. The instance "a ByteString" was no longer as important as its return value.

In image1, Lukas has overwritten Object>>printString: in SUObject>>printString:. And he's using a pattern ("composite with decorations" or something) to represent the domain of the JavaScript language in Smalltalk.

If I print "SUSlider new" I don't get "a SUSlider". I get a string of JavaScript. What is printed out is what is found in self. If I inspect "SUSlider new" I can see in self the string that will be produced. I can also see in the decoration instance variable "a SUCreate". With each decoration in the chain he makes the string in self gets longer. If I execute that entire piece of code from "SUSlider new" down to "onChange:" I will get a string of pure JavaScript.

If how I'm asking this is still really confusing, I'll have to sit on it for a few days. I seem to do my best comprehending when I'm asleep.

Thanks,
Chris


You may already understand the cascade of message sends, or it may be confounding your understanding. That is, if you are incrementally inspecting from "X := SUSlider new" up to each next semi-colon and seeing each Inspector pointing at a different object, since "new" is executed each time. Just to round out your understanding of self try "Do It" separately on each the following lines...
x := SUSLider new new Control.Slider(null,null) inspect
x handleId: 'handle'
x trackId: track
x value: position
x range: (0 to: 100)
x onChange: ( SUUpdater new id: 'position' )



_______________________________________________
Beginners mailing list
Beginners@lists.squeakfoundation.org
http://lists.squeakfoundation.org/mailman/listinfo/beginners

Reply via email to