# xclick

Attend une action d'un bouton de la souris, du clavier dans une fenêtre graphique.

## Séquence d'appel

    [ibutton,xcoord,yxcoord,iwin,cbmenu]=xclick([flag])

## Paramètres

ibutton

  Scalaire réel (valeur entière): numéro de bouton, code de touche clavier...(Voir description ci-dessous).

xccord

  Scalaire réel: abscisse du pointeur de la souris au moment du clic, à l'échelle graphique courante (voir gca()).

ycoord

  Scalaire réel: ordonnée du pointeur de la souris au moment du clic, à l'échelle graphique courante (voir gca()).

iwin

  Scalaire réel (valeur entière): numéro de la fenêtre où l'action s'est produite.

cbmenu

  Chaîne de caractères: callback associé à un menu dynamique si `xclick` se termine à cause d'un clic sur un menu. Dans ce cas, `ibutton`, `xcoord`, `ycoord`, et `iwin` prennent des valeurs arbitraires.

flag

  Scalaire réel (valeur entière): S'il est présent, la queue d'évènements des clics de souris n'est pas vidée préalablement.

## Description

`xclick` attend un évènement souris, clavier, la fermeture de la fenêtre ou l'activation d'un menu. `xclick` empèche l'exécution du callback associé au menu. La valeur du callback sera retournée dans l'argument de sortie `cbmenu`.

Appelée avec 3 arguments en sortie, cette fonction attend qu'un bouton de la souris soit pressé avec le pointeur dans la fenêtre graphique courante.

Avec 4 ou 5 arguments en sortie, l'appui sur un bouton de la souris est attendu dans toutes les fenêtres graphiques.

Attention, les coordonnées `xcoord`, `ycoord` renvoyées par la fonction sont relatives au système d'axes courant (voir gca()).

Les valeurs de `ibutton` sont décrites ci-dessous :

ibutton==0

  Le bouton gauche a été pressé.

ibutton==1

  Le bouton central a été pressé.

ibutton==2

  Le bouton droit a été pressé.

ibutton==3

  Le bouton gauche a été cliqué.

ibutton==4

  Le bouton central a été cliqué.

ibutton==5

  Le bouton droit a été cliqué.

ibutton==10

  Le bouton gauche a été double-cliqué.

ibutton==11

  Le bouton central a été double-cliqué.

ibutton==12

  Le bouton droit a été double-cliqué.

ibutton >=32

  La touche de code ASCII `ibutton` a été pressée.

ibutton <=32

  La touche de code ASCII `-ibutton` a été relachée.

ibutton >=1000+32

  La touche de code ASCII `ibutton-1000` a été pressée avec la touche CTRL enfoncée.

ibutton==-1000

  La fenêtre graphique a été fermée.

  ATTENTION : ibutton était égal à -100 pour la fermeture de la fenêtre graphique jusqu'à Scilab 4.1.2, mais ce code a été changé (dans Scilab 5.0) parce qu'il correspondait aussi au code retourné pour la touche `d` relachée.

ibutton==-2

  Un menu dynamique a été selectionné et son callback est retourné par `cbmenu`.

## Voir aussi

- gca
- locate
- xgetmouse
- seteventhandler