Hi Nacho,

2015-02-06 22:32 GMT+01:00 nacho <0800nacho@gmail.com>:
Hi,
I've been digging and inspecting all the classes related to Morphic. But
there's something that I don't happen to figure out.
Morph has a method
drawOn: aCanvas
�� �� �� �� aCanvas fillRectangle: self bounds fillStyle: self fillStyle
borderStyle: self borderStyle


Which if it's not overridden by a subclass of Morph makes it possible to
still instantiate a Morph -the classic blue rectangle.

Now aCanvas is obviously an instance of FormCanvas or some other subclasses
of Canvas.
But the question is, where does Morph create such instance of FormCanvas?

The Morph does not care where this Canvas come from *

The WorldMorph (a PasteUpMorph) has a "WorldState" instance variable and this
world state controlls the update cycle. During this update it
creates THE canvas from the DisplayScreen (this is now a FormCanvas for the DisplayScreen(Form)).
Now it calls drawOn:canvas for all Morph(and submorphs) of the WorldMorph.
(With some more or less complex computations for clipping resp. updating only the changed areas).
��
How does this work? I'm getting all wrong?
look at:
WorldMorph>>#displayWorld
WorldState>>#displayWorld:submorphs:
��
I read the documentation available but I can't grasp it from what I have
read.


* you can create your own Form and Canvas instance and call drawOn: for a Morph with that canvas:

|f canvas |
f:=Form extent:300@300 depth:32.
canvas := f getCanvas.
EllipseMorph new extent:300@300;drawOn:canvas.
f display

��
Thanks in advance for your help
best
Nacho




-----
Nacho
Smalltalker apprentice.
Buenos Aires, Argentina.
--
View this message in context: http://forum.world.st/Relationship-between-Morph-and-Canvas-tp4804251.html
Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.