[Newbies] Project on squeak language

roger mpouma rmpouma at gmail.com
Mon Aug 22 16:23:40 UTC 2016


I modified methods:

addCustomMenuItems: aCustomMenu hand: aHandMorph
    super addCustomMenuItems: aCustomMenu hand:  aHandMorph.
    aCustomMenu add: 'clear' action: #clear.
    drawColor := Color red.                    //modification
    drawColor := Color yellow.                //modification
    drawColor := Color green.                 //modification
    drawColor := Color blue.                   //modification

initialize
    super initialize.
    self extent: 500 at 700.
    drawColor := Color black.

mouseDown: evt
    brush := Pen newOnForm: form.
    brush roundNib: 2.
    brush color: drawColor.
//modification
    lastMouse := evt cursorPoint - bounds origin.
    brush drawFrom: lastMouse to: lastMouse.
    self invalidRect:
    ((lastMouse - brush sourceForm extent corner:
    lastMouse + brush sourceForm extent)
    translateBy: bounds origin).


The initial color is black.
When i click the command "change color" on the menu  and i chose for
example the green color, the result is the blue color. I don't understand
why ?
And after the first choice, i must restart the program with the Workspace
for change another color. So i can't make several choices at the same time.

How can I solve these problems ? and to change size of the brush ?

Thank you in advance.

2016-08-21 3:14 GMT+02:00 Ron Teitelbaum <ron at usmedrec.com>:

>
>
>
>
> *From:* roger mpouma
> *Sent:* Saturday, August 20, 2016 2:42 PM
>
>
>
> How can i make  this please ?
>
> I thought to add "color" and "size" commands as "clear" command in the
> custom menu code. After that, add "color" and "size" methods...
>
> *[Ron Teitelbaum] *
>
> *What I was thinking is making buttons on the panel. Color buttons with a
> highlight around it so you can see what is selected.  You could instead add
> something like Red or Blue to the menu.*
>
>
>
> *On your class add some instance variable called drawColor or something
> like that.*
>
>
>
> *When the menu item Red is called you would do *
>
>
>
> *drawColor := Color red.*
>
>
>
> *Then in mouseDown:*
>
>
>
>     brush color: drawColor.
>
>
>
> Initialize your color to something like black
>
>
>
> Initialize
>
>
>
>                drawColor := Color black.
>
>
>
> So that the user is not required to use the menu to get the default color
> (black).
>
>
>
> Hope that helps,
>
>
> Ron
>
>
>
> 2016-08-20 20:26 GMT+02:00 Ron Teitelbaum <ron at usmedrec.com>:
>
> Have you considered having a menu bar with colors and line sizes.  The
> users can select the color and line size which will change your program to
> use those settings.
>
>
>
> All the best,
>
>
>
> Ron Teitelbaum
>
>
>
> *From:* beginners-bounces at lists.squeakfoundation.org [mailto:
> beginners-bounces at lists.squeakfoundation.org] *On Behalf Of *roger mpouma
> *Sent:* Saturday, August 20, 2016 1:51 PM
> *To:* A friendly place to get answers to even the most basic questions
> about Squeak.
> *Subject:* Re: [Newbies] Project on squeak language
>
>
>
> I have already implemented the canvas on which we draw, the possibility of
> drawing with the brush but with only a single color and a single size, a
> capacity to erase what we have already drawn with the "Clear" command on
> the custom menu code.
> So, i'd like to add the possibility of changing the color and the size of
> the brush presenting the choices of color and brush size.
>
> The differents methods are:
>
> "Methods"
>
> extent: aPoint
>     | newForm |
>     super extent: aPoint.
>     newForm := Form extent: self extent depth: 16.
>     newForm fillColor: Color veryLightGray.
>     form ifNotNil: [form displayOn: newForm].
>     form := newForm.
>
>
> initialize
>     super initialize.
>     self extent: 500 at 350.
>
> drawOn: aCanvas
>     aCanvas image: form at: bounds origin.
>
> handlesMouseDown: evt
>     ^ true
>
> mouseDown: evt
>     brush := Pen newOnForm: form.
>     brush roundNib: 3.
>     brush color: Color red.
>     lastMouse := evt cursorPoint - bounds origin.
>     brush drawFrom: lastMouse to: lastMouse.
>     self invalidRect:
>     ((lastMouse - brush sourceForm extent corner:
>     lastMouse + brush sourceForm extent)
>     translateBy: bounds origin).
>
>
> mouseMove: evt
>     | p |
>     p := evt cursorPoint - bounds origin.
>     p = lastMouse ifTrue: [^ self].
>      brush drawFrom: lastMouse to: p.
>     self invalidRect: ((
>         ((lastMouse min: p) - brush sourceForm extent) corner:
>         ((lastMouse max: p) + brush sourceForm extent))
>             translateBy: bounds origin).
>     lastMouse := p.
>
>
> addCustomMenuItems: aCustomMenu hand: aHandMorph
>     super addCustomMenuItems: aCustomMenu hand: aHandMorph.
>     aCustomMenu add: 'clear' action: #clear.
>
>
> clear
>     form fillColor: Color veryLightGray.
>     self changed.
>
> "Class PaintMorph"
>
> Morph subclass: #PaintMorph
>     instanceVariableNames: 'form brush lastMouse'
>     classVariableNames: ''
>     poolDictionaries: ''
>     category: 'Morphic-Fun'
>
> "Workspace"
> PaintMorph new openInWorld.
>
>
>
> Thank you in advance.
>
>
>
> 2016-08-20 18:47 GMT+02:00 Bert Freudenberg <bert at freudenbergs.de>:
>
> Sure. Just ask some specific questions - e.g. what you tried, what worked,
> what didn't etc.
>
>
>
> - Bert -
>
>
>
> On Sat, Aug 20, 2016 at 10:59 AM, roger mpouma <rmpouma at gmail.com> wrote:
>
> Hello,
> I need help for a drawing project on Squeak. I'd like implement a canvas
> on which we draw with the possibility of drawing with brush changing the
> color and size of the brush. Is it possibile to have help ?
>
> Thank you in advance.
>
> _______________________________________________
> Beginners mailing list
> Beginners at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/mailman/listinfo/beginners
>
>
>
>
> _______________________________________________
> Beginners mailing list
> Beginners at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/mailman/listinfo/beginners
>
>
>
>
> _______________________________________________
> Beginners mailing list
> Beginners at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/mailman/listinfo/beginners
>
>
>
> _______________________________________________
> Beginners mailing list
> Beginners at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/mailman/listinfo/beginners
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/beginners/attachments/20160822/479f2c31/attachment-0001.htm


More information about the Beginners mailing list