|
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.
|