Previous: , Up: Script Smalltalk   [Index]


6.9 Modifier l’aspect d’un objet depuis un script

Un script, en plus de faire des calculs, peut modifier l’aspect d’un objet mathématique passé en argument, de lui même ou de tout autre objet d’une figure (i.e. canevas).

Précédemment, nous avons discuté des modèles d’objet géométrique, ils sont tous des instances de classe de la hiérarchie DrGMathItem ; leur représentant graphique à l’écran sont appelés costumes, instances de classe de la hiérarchie DrGMathItemCostume. Accéder au costume d’un modèle offre la possibilité d’éditer son aspect : couleurs, style de traits, etc. Quelques méthodes sont décrites dans la section suivante pour accéder aux costumes et aux styles. Le lecteur curieux explorera les hiérarchies des classes DrGMathItemCostume et DrGCostumeStyle pour en découvrir davantage.

Method on DrGeoUserScript: <MathItemCostume> costume

⇒ costume du script lui-même. Il faut toujours tester l’existence du costume avant son utilisation (voir exemple)

compute
   self costume ifNotNil: 
      [self costume style color: Color blue].
Method on DrGeoUserScript: <MathItemCostume> costume1

⇒ le costume du modèle passé en premier argument à ce script

paintBlue
   self costume1 style color: Color blue
Method on DrGeoUserScript: <MathItem> arg1

⇒ le modèle passé en premier argument à ce script. Son type exact dépend des arguments avec lesquels l’instance du script a été créée.

isParallelogram
"Test my polygon argument is a parallelogram"
   | points mid1 mid2|
   points := self arg1 points.
   mid1 := points first + points third / 2.
   mid2 := points second + points fourth / 2.
   ^ points size = 4 and: [mid1 = mid2]

Des paires de méthodes pour les arguments suivants sont disponibles : costume2/arg2, costume3/arg3 et costume4/arg4.

Method on DrGeoUserScript: <DrGeo> app

⇒ l’instance Dr.Geo où ce script existe. Entre autres choses, donne accès aux costumes de la figure.

polygonCostumes
"Return the list of polygon costume in the canvas"
   ^ self app costumes select: [ :costume | 
      costume mathItem isPolygonItem].

Previous: , Up: Script Smalltalk   [Index]