Hi Nacho, 2015-02-06 22:32 GMT+01:00 nacho <0800na...@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. > >