Satimage Précédent | Suivant
pick in
Accueil Documentation SmileLab Scripting Personnalisation de l'interface utilisateur d'un graphique pick in  
  • Lorsque l'utilisateur clique dans une graphic view, ou dans une graphic window en dehors de toute graphic view, Smile envoie l'événement suivant au script de la graphic window ou de la graphic view concernée :
    pick in the_object at the_record
    the_object est une référence à l'objet qui possède le script.
    the_record peut contenir jusqu'à trois champs : point, step et target object.
      point est une liste de deux nombres réels, les coordonnées de la souris.
      • si le clic est effectué à l'intérieur d'une vue 1D ou 2D, les coordonnées sont en unités utilisateur, c'est-à-dire dans le système de coordonnées des axes. Ils restent dans ce système de coordonnées tant que la souris n'est pas relâchée.
      • si le clic est effectué sur une surface dans une vue 3D (view3d), les coordonnées sont constituées de trois nombres, correspondant aux coordonnées du point de la surface qui a été cliquée, pour autant que la souris soit au-dessus de la surface.
      • si le clic est effectué en dehors de toute vue graphique (même si par la suite la souris est déplacée sur une vue graphique), les coordonnées sont en pixels, dans le système de coordonnée de la graphic window.
      step est un entier pouvant prendre les valeurs suivantes :
        1
        l'utilisateur vient d'appuyer sur le bouton de la souris
        2
        l'utilisateur déplace la souris, le bouton étant maintenu enfoncé : l'événement pick in est envoyé à chaque fois que la position de la souris change
        3
        l'utilisateur relâche le bouton de la souris
        4
        envoyé lors d'un double-clic
      target object est une référence à l'objet cliqué. Il n'est présent que dans les deux cas suivant :
      • si le clic est effectué sur une surface dans une vue 3D, target object est une référence à la surface,
      • si le clic est effectué sur un widget dans une graphic window, target object est une référence à ce widget.
  • Pour retrouver les coordonnées en pixels à partir du champ point donné en coordonnées utilisateur, utilisez la commande convert coordinates.
    on pick in the_view at the_record
        set userPt to point of the_record
        set pixelPt to convert coordinates userPt in the_view
    end pick in
  • Le comportement de la souris que vous pouvez installer en définissant une fonction pick in dans le script d'un objet remplacera le comportement par défaut (qui affiche les coordonnées de la souris) à moins que vous n'utilisiez dans cette fonction une instruction continue comme dans l'exemple ci-dessous.
Exemple
L'exemple suivant, installé dans le script d'un plot view, créera un nouveau point dans une courbe (qui sera créée si nécessaire) à chaque clic de souris à l'intérieur la vue graphique.
on pick in the_view at the_record
    continue pick in the_view at the_record
    set theStep to step of the_record
    if theStep is not 1 then return
    set {x, y} to point of the_record
    try
        set c to curve 1 of the_view
    on error
        set c to make new curve at the_view
        set xdata of c to {0}
        set ydata of c to {0}
        set line style of c to 1
        set pattern style of c to 1
    end try
    set xdata of c to (get xdata of c) & {x}
    set ydata of c to (get ydata of c) & {y}
    set limits of the_view to {0, 1, 0, 1}
    draw the_view
end pick in
Pour essayer ce script d'exemple, procédez comme suit :
  • Exécutez tout d'abord le script suivant de façon à créer le graphique.
    set w to make new graphic window
    make new plot view at w
  • Sélectionnez le menu Graphiques ▸ Editer le script puis choisissez le plot view. Cela ouvrira le script du plot view.
  • Recopiez le script précédent, enregistrez et refermez la fenêtre de script via le menu Fichier.
Maintenant cliquez à l'intérieur du plot view pour créer de nouveaux points.
English version
Copyright ©2008 Paris, Satimage