[Pharo-project] about fillRectangle: aRectangle fillStyle:aFillStyle

Gary Chambers gazzaguru2 at btinternet.com
Fri Feb 11 12:12:09 CET 2011

The reason was that Squeak had (differing) implementations in each class 
before I introduced the double-dispatch.
Since Polymorph was a loadable package, they needed to be overridden.

In Pharo they can, of course, be removed to just leave the Canvas one.

Regards, Gary

----- Original Message ----- 
From: "Stéphane Ducasse" <stephane.ducasse at inria.fr>
To: <Pharo-project at lists.gforge.inria.fr>
Sent: Thursday, February 10, 2011 6:43 AM
Subject: Re: [Pharo-project] about fillRectangle: aRectangle 

Igor I saw that this was a double dispatch but I imagine that this is not 
needed to duplicate the exact same code within the
same hierarchy.
Can you have a look?
I will prepare a cs or a slice with all my changes and it would be great to 
have somebody else having a look.


> it seems duplicated in
>> pluggableCanvas, canvas and balloonCanvas
>> fillRectangle: aRectangle fillStyle: aFillStyle
>>        "Fill the given rectangle. Double-dispatched via the fill style."
>>        aFillStyle fillRectangle: aRectangle on: self
>> do you confirm that?
> it is a bit tricky. The #fillRectange:fillStyle: is a double-dispatch 
> entry
> actually one could use:
> aFillStyle fillRectangle: aRectangle on: self
> See a CompositeFillStyle how it works.
> The idea was to replace all uses of #doSomething: x color: y
> or #doSomething:border:colorA:colorB:
> with #doSomething: x fillStyle: y...
> Actually all painting operations could take only two objects: shape
> and fill style.
> So, in this respect, a color property of Morph should be a fill style,
> since color can be described as 'solid fill with single color' fill
> style,
> a most simplest possible one.
> -- 
> Best regards,
> Igor Stasenko AKA sig.

More information about the Pharo-project mailing list