Logiciel Paint Squeak

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Logiciel Paint Squeak

yoan09
This post has NOT been accepted by the mailing list yet.
Bonjour à tous,

Je suis en train de faire un logiciel de dessin en Squeak. J'ai implémenté le canevas sur lequel dessiner avec un pinceau à couleur et taille fixes.
J'ai du mal à rajouter la possibilité de changer la couleur et la taille du pinceau en faisant un choix parmi plusieurs couleurs et tailles à proposer.

Voici le code :

"La surclasse Paint"

Object subclass: #NameOfSubclass
        instanceVariableNames: ''
        classVariableNames: ''
        poolDictionaries: ''
        category: 'Morphic-dessin'
       


"Les méthodes"

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@350.
       
       
handlesMouseDown: evt
        ^ true
       
       
drawOn: aCanvas
        aCanvas image: form at: bounds origin.
       
       
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.


La méthode "clear" dans le menu me permet d'effacer le dessin.
J'aimerais donc rajouter également dans le menu la possibilité de changer la couleur et la taille du pinceau en faisant un choix parmi plusieurs couleurs et tailles.

Quelqu'un pourrait m'aider ?

Merci d'avance.




Loading...