<div dir="ltr"><div dir="ltr">Hi Lauren,<br><br>can you send detailed instructions for how to run your code?<br>I will need to learn how to use canvases soon(*) and your<br>code looks like a good starting point...<br><br> Thanks in advance! =)<br> Eduardo Ochs<br> <a href="http://anggtwu.net/eev-squeak.html">http://anggtwu.net/eev-squeak.html</a><br><br><br>(*): actually I tried to write a drawing program a few weeks<br>ago, but that turned out to be far above my level, and I am<br>still working on debugging tools and on ways to organize my<br>note... =(<br></div><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, 5 Mar 2023 at 03:07, Lauren Pullen <<a href="mailto:drurowin@gmail.com">drurowin@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi List,<br>
<br>
After much pulling of my hair out on how to make GradientFillStyle work,<br>
I managed to get an EllipseMorph with a raised border.<br>
<br>
I've brute forced it by calling fillOval: twice; first call for the<br>
border, then again for the innards. FormCanvas and BalloonCanvas do not<br>
draw the same ellipse, scaled; the difference at a small radius is quite<br>
noticeable.<br>
<br>
Here is the code I've got. It only works with opaque filling, but<br>
that's all I need it to work with. (I mean, it doesn't crash... but<br>
it's certainly wrong.) I think I got the border width math correct?<br>
How would List tackle this?<br>
<br>
drawOn: aCanvas<br>
"manual drawing of RaisedBorder oval"<br>
<br>
aCanvas isShadowDrawing<br>
ifTrue: [^ super drawOn: aCanvas].<br>
aCanvas<br>
"draw the border"<br>
fillOval: self bounds<br>
fillStyle: ((GradientFillStyle ramp: {<br>
0.2 -> (self color mixed: 0.65 with: Color white).<br>
0.5 -> (self color).<br>
0.8 -> (self color mixed: 0.7 with: Color black)})<br>
origin: self bounds origin;<br>
direction: self extent;<br>
radial: true);<br>
"fill the inside"<br>
balloonFillOval: ((self bounds origin + (self borderWidth))<br>
corner: self bounds corner - (self borderWidth))<br>
fillStyle: self color<br>
borderWidth: 0<br>
borderColor: Color transparent<br>
<br>
</blockquote></div></div>