9.1 Macros spéciales

Il s’agit des macros Init(), Exit(), Bsave(), Esave(), TegWrite(), ClicGraph, ClicG(), ClicD(), LButtonUp(), RButtonUp(), MouseMove(), MouseWheel(), CtrlClicG(), CtrlClicD() et OnKey() qui ont un comportement différents des autres macros.

9.1.1 La macro Init()

Si un fichier source *.teg, ou un fichier modèle *.mod, ou un fichier de macros *.mac, contient une macro intitulée Init, alors celle-ci sera automatiquement exécutée dès la fin du chargement du fichier. Cette macro peut être utilisée pour faire certaines initialisations ou par exemple pour demander à l’utilisateur des valeurs.

9.1.2 La macro Exit()

Si un fichier contient une macro intitulée Exit, alors celle-ci est stockée dans une pile lors du chargement du fichier, et sera exécutée lors du prochain changement de fichier, ou lors de la fermeture du programme. Cette macro est surtout destinée à être utilisée dans les fichiers de macros (*.mac), elle permet par exemple de restituer un contexte dans son état d’origine.

9.1.3 Les macros Bsave(), Esave() et TegWrite()

La macro Bsave est automatiquement exécutée avant l’exportation du graphique en cours, tandis que la macro Esave est automatiquement exécutée après l’exportation du graphique en cours.

L’utilisation de ces deux macros est plutôt réservée aux fichiers de macros car il faut tenir compte de leur éventuelle existence avant de les redéfinir. Elles sont d’ailleurs déjà définies dans le fichier TeXgraph.mac, la première ne fait qu’appeler la macro UserBsave(), et la deuxième appelle UserEsave(). Ces deux dernières n’existent pas, et comme leur nom le suggère, elles peuvent être créées par l’utilisateur dans son fichier source.

La constante ExportMode permet de connaître le mode d’exportation, sa valeur peut-être une des constantes suivantes : tex, pgf, tkz, pst, eps, psf, epsc, pdf, pdfc,svg ou teg.

La macro TegWrite est un peu particulière car celle-ci n’est jamais exécutée! Plus précisément, lors de la sauvegarde du graphique on enregistre successivement :

Juste avant la sauvegarde des variables globales, on regarde s’il existe une macro appelée TegWrite, si c’est le cas, alors la commande définissant cette macro est enregistrée dans le fichier de sauvegarde sous forme d’une commande. Ce qui fait que lors de l’ouverture de ce fichier, cette commande va être exécutée avant la lecture des variables globales et de ce qui suit.

9.1.4 Les macros ClicG(), ClicD(), LButtonUp(), RButtonUp(), MouseMove(), MouseWheel(), CtrlClicG() et CtrlClicD()

Un clic gauche de la souris provoque automatiquement l’exécution de la macro ClicG( <affixe> ) avec l’affixe du point cliqué comme paramètre si la touche Ctrl n’est pas enfoncée, sinon c’est la macro CtrlClicG( <affixe> ). Ces macros, qui n’existent pas par défaut, peuvent être créées par l’utilisateur.

Lorsque le bouton gauche est relaché cela provoque l’exécution de la macro LButtonUp( <affixe> ) avec l’affixe du point cliqué comme paramètre. Cette macro, qui n’existe pas par défaut, peut être créée par l’utilisateur.

Un clic droit de la souris provoque automatiquement l’exécution de la macro ClicD( <affixe> ) avec l’affixe du point cliqué comme paramètre si la touche Ctrl n’est pas enfoncée, sinon c’est la macro CtrlClicD( <affixe> ). Par défaut, la macro ClicD( <affixe> ) permet de créer une variable globale.

Lorsque le bouton droit est relâché cela provoque l’exécution de la macro RButtonUp( <affixe> ) avec l’affixe du point cliqué comme paramètre. Cette macro, qui n’existe pas par défaut, peut être créée par l’utilisateur.

Un déplacement de la souris provoque l’exécution de la macro MouseMove( <affixe> ) avec l’affixe du point cliqué comme paramètre. Cette macro, qui n’existe pas par défaut, peut être créée par l’utilisateur.

Une rotation de la molette de la souris provoque l’exécution de la macro MouseWheel( <delta> ) avec delta un entier qui est strictement positif si la molette a été poussée vers l’avant, strictement négatif dans le cas contraire. Par défaut, la macro MouseWheel( <delta> ) permet de faire des zooms avant/arrière sur le graphique.

Exemple(s) : construire une ligne polygonale à la souris :

À chaque clic gauche, le point cliqué est ajouté à la liste L et la commande ReCalc(ligne) force le recalcul de l’élément graphique ligne, on construit ainsi une ligne polygonale à la souris.

9.1.5 Les macros ClicGraph() et OnKey()

.

Un clic gauche de la souris sur un élément de la liste des éléments graphiques (en haut à droite) provoque l’exécution de la macro ClicGraph( <code> ) avec le code de l’élément cliqué, ce code est défini lors de la création de l’élément avec la fonction NewGraph. Cette macro, qui n’existe pas par défaut, peut être créée par l’utilisateur.

La combinaison de touches Ctrl+Maj+<lettre> provoque l’exécution de la macro OnKey( <lettre> ), l’argument est une chaîne d’un seul caractère. Cette macro, qui n’existe pas par défaut, peut être créée par l’utilisateur.