Le modèle objet
Tous les éléments de Smile (fenêtres, menus, éléments de visualisation, etc) sont des objets auxquels on peut se référer à tout moment pour en changer les propriétés et les comportements.
Chaque objet a des propriétés qui sont définies dans le dictionnaire de Smile (accessible depuis le menu Smile), et un script éventuellement vide qui permet de lui attacher des fonctions qui pourront être appelées sur certains événements, par exemple la sélection d'un menu ou un clic dans une fenêtre. Chaque objet a donc des propriétés et des comportements par défaut qui peuvent être modifiés par script.
Certains objets en contiennent d'autres, par exemple une fenêtre graphique peut contenir une vue qui elle-même contient des courbes. La taille de la fenêtre est l'une de ses propriétés, alors que le système d'axe est une propriété de la vue, et que les données numériques ou la couleur des courbes sont des propriétés des courbes. Les fenêtres graphiques peuvent contenir différents types de vues, par exemple des vues 3D qui peuvent contenir des surfaces et des objets 3D.
Les références aux objets
Pour manipuler des objets par script, il est nécessaire d'utiliser des variables qui sont des références à ces objets. Par exemple la ligne de script suivante renvoie lorsqu'elle est exécutée une référence w à la fenêtre nouvellement créée :
set w to make new graphic window
-- graphic window id 4
Vous pouvez alors accéder aux réglages de cette fenêtre et par exemple en modifier la taille de la zone de dessin (le rectangle blanc de la fenêtre) :
set pageheight of w to 200
draw w
Obtenir une référence à un objet
Il existe plusieurs façons de récupérer des références à des objets de Smile.
-
Le plus simple est de conserver dans une variable la référence obtenue lors de la création de l'objet :
set w to make new graphic window
set v to make new plot view at w
set c to make new curve at v
set c's formula to "cos(x)"
draw w
Importer le script
Notez que dans cet exemple, on utilise la référence c de la courbe nouvellement créée pour affecter une valeur à sa propriété formula (permettant à la courbe de représenter une fonction). draw w permet d'indiquer à la fenêtre w de rafraîchir son affichage.
On pourra par la suite modifier les limites des axes par les lignes de script suivantes (tant que la fenêtre n'a pas été fermée) :
set limits of v to {-2 * pi, 2 * pi, -1, 1}
draw w
Il est possible à partir d'une référence de remonter aux autres objets qui lui sont liés : ceux qu'il contient, et celui qui le contient.
Les propriétés container et window permettent d'obtenir des références respectivement à l'objet contenant un objet graphique donné ou à la fenêtre dans laquelle l'objet graphique est contenu. Par exemple, les expressions suivantes réfèrent toutes au même objet :
w, container of v, window of v, container of container of c, window of container of c, window of c
Pour obtenir la référence d'un objet contenu dans un autre objet, utilisez la description par index comme ci-dessous :
|