Next: Interface de programmation, Up: Figure Smalltalk [Index]
En lui-même Smalltalk est un langage de très haut niveau. Lorsqu’une figure est définie dans ce langage, nous disposons également de toute sa puissance pour par exemple définir récursivement telle partie de la figure, ou bien pour placer aléatoirement certains objets de telle sorte qu’à chaque ouverture de la figure, celle-ci soit légèrement différente. Bref, les FSD sont libérées du carcan de l’interface graphique tout en étant renforcées par le langage Smalltalk.
Une FSD est un code source Smalltalk à exécuter dans un espace de travail ...Clic arrière-plan → Outils → Espace de travail...20 C’est une fenêtre texte depuis laquelle du code Smalltalk est écrit et exécuté. On peut aussi y coller du texte par Ctrl-v. See workspace, pour plus d’information sur cet outil.
Nous allons étudier plusieurs exemples, chacun d’eux sera écrit dans un espace de travail et exécuté en sélectionnant le code puis la séquence de touches Ctrl-d pour Do-it!21.
Commençons par étudier un exemple simple :
DrGeoFigure nouveau
C’est la plus petite description produisant une figure. Lors de son exécution, celle-ci va simplement créer une nouvelle figure vide. La figure Dr.Geo est affichée dans une fenêtre simplifiée puisqu’elle ne comporte pas la barre d’outils, seulement la barre des menus et les molettes.
Abordons un deuxième exemple :
| c item | c := DrGeoFigure nouveau. item := c point: 1.2 @ -2. item nommer: 'A'.
Cette description définit une figure avec un point libre A de coordonnées initiales (1,2 ; -2). Quelques explications sur ce code :
| |
. Il n’y pas de type, les variables
sont toujours des références vers des objets.22
#point:
, avec
comme argument deux coordonnées, crée un point libre.
Le résultat est une capsule23 sur un objet
géométrique “point” de Dr.Geo qu’il est possible de modifier par
l’envoi de messages, ici #nommer:
pour le renommer ’A’.
Poursuivons avec un troisième exemple :
| c triangle hasard m n p | triangle := [:p1 :p2 :p3 | c segmentDe: p1 a: p2. c segmentDe: p2 a: p3. c segmentDe: p3 a: p1]. hasard := [5 - 10 auHasard]. c := DrGeoFigure nouveau. m := c point: hasard valeur @ 0. n := c point: 5 @ 0. p := c point: hasard valeur @ 3. triangle valeur: m valeur: n valeur: p.
Cet exemple est particulièrement intéressant, il nous montre trois choses importantes :
Pour clore cette section, voici un dernier exemple :
| c a b d | c := DrGeoFigure nouveau. a := c point: 1@0. b := c point: 5@0. d := c line: a to: b. a couleur: Color yellow; rond; large. b cacher. d tiret.
Deux points et une droite sont créés. Ensuite des commandes sont utilisées pour modifier l’aspect des objets, voire pour en cacher.
Nous avons terminé notre petite visite guidée des Figures Smalltalk. Dans les sections suivantes nous exposons l’ensemble des commandes disponibles.
Le raccourci Alt-k fonctionne aussi lorsqu’aucune fenêtre est sélectionnée.
Alternativement, c’est l’entrée à choisir dans le menu contextuel de l’espace de travail.
Des instances de classes qui représentent des objets géométriques.
Pour être précis, la capsule est
un objet DrGWrappedPoint
dont l’objectif est de simplifier la
manipulation des objets géométriques de type point, pour aussi bien
obtenir ses attributs ou modifier son style. Il est toujours possible
d’accéder à l’objet point sous-jacent en envoyant le message
#mathItem
à la capsule. Il est alors possible d’utiliser les
méthodes décrites dans le chapitre sur les scripts.
Next: Interface de programmation, Up: Figure Smalltalk [Index]