- NOM
- event - Divers utilitaires pour les évènements: génération d'évènements et définition d'évènements virtuels
- SYNTAXE
- event option ?arg arg ...?
- DESCRIPTION
- event add <<virtuel>> séquence ?séquence ...?
- event delete <<virtuel>> ?séquence séquence ...?
- event generate fenêtre évènement ?option valeur option valeur ...?
- event info ?<<virtuel>>?
- EVENT FIELDS
- -above fenêtre
- -borderwidth size
- -bouton numéro
- -count numéro
- -delta numéro
- -detail detail
- -focus boolean
- -height taille
- -keycode numéro
- -keysym nom
- -mode notify
- -override boolean
- -place where
- -root fenêtre
- -rootx coord
- -rooty coord
- -sendevent boolean
- -serial numéro
- -state state
- -subwindow fenêtre
- -time integer
- -warp boolean
- -width size
- -when quand
- now
- tail
- head
- mark
- -x coord
- -y coord
- VIRTUAL EVENT EXAMPLES
- VOIR EGALEMENT
- MOTS-CLES
event - Divers utilitaires pour les évènements: génération d'évènements et définition d'évènements virtuels
event option ?arg arg ...?
La commande event fournit plusieurs utilitaires de gestion des évènements du
système de fenêtrage, comme la définition d'évènements virtuels et la synthèse
d'évènements. La commande a plusieurs formes différentes, déterminées par le
premier argument. Les formes suivantes sont actuellement reconnues:
- event add <<virtuel>> séquence ?séquence ...?
-
Associe l'évènement virtuel virtuel avec la séquence(s) physique
d'évènements indiquée par les arguments séquence , de manière à ce que
l'évènement virtuel se déclenche chaque fois qu'une des séquences
se produit.
Virtuel peut être n'importe quelle valeur chaîne et séquence doit avoir
une des valeurs autorisées pour l'argument séquence de la commande
bind.
Si virtuel est déjà défini, la ou les nouvelles séquences d'évènements physiques
sont ajoutées aux séquences existantes pour l'évènement.
- event delete <<virtuel>> ?séquence séquence ...?
-
Efface chacune des séquences associées à
l'évènement virtuel indiqué par virtuel.
Virtuel peut être n'importe quelle valeur chaîne et séquence doit avoir
une des valeurs autorisées pour l'argument séquence de la commande
bind.
Toutes les séquences non actuellement associées à virtuel
sont ignorées.
Si aucun argument séquence n'est fourni, toutes les séquences d'évènement physique
sont enlevées de virtuel, ainsi l'évènement virtuel ne se declenchera plus.
- event generate fenêtre évènement ?option valeur option valeur ...?
-
Génère un évènement de fenêtre et le prépare pour le traitement comme s'il avait été produit
par le système de fenêtrage.
Fenêtre donne le nom de chemin de la fenêtre pour laquelle l'évènement
sera généré; ce peut être également un identificateur (comme celui retournée par
winfo id) tant qu'il s'agit d'une fenêtre de l'application courante.
Evènement fournit une courte description de
l'évènement, comme <Shift-Button-2> ou <<Paste>>.
Si Fenêtre est vide tout l'écran est désigné, et les coordonnées sont
relatives à l'écran.
Evènement doit avoir n'importe quelle des formes autorisées pour l'argument séquence
de la commande bind excepté qu'il doit consister en
un unique modèle d'évènement, pas une séquence.
Des paires option-valeur peuvent être utilisées pour spécifier des attributs supplémentaires de l'évènement, comme les positions x et y de la souris ; voir
CHAMPS D'EVENEMENTS ci-dessous. Si l'option -when n'est pas spécifiée, l'évènement est traité immédiatement: tous les gestionnaires d'évènement
se terminent avant que la commande event generate retourne.
Si l'option -when est spécifiée alors elle détermine quand l'évènement est traité. Certains évènements, comme les évènements clavier, exigent que
la fenêtre ait le focus pour recevoir l'évènement correctement.
- event info ?<<virtuel>>?
-
Donne des informations sur les évènements virtuels.
Si l'argument <<virtuel>> est omis, la valeur de retour
est une liste de tous les évènement virtuels qui sont actuellement définis.
Si <<virtuel>> est spécifié alors la valeur de retour est
une liste dont les éléments sont les séquences d'évènement physiques actuellement
définis pour l'évènement virtuel donné; si l'évènement virtuel n'est pas
défini alors une chaîne vide est retournée.
Les options suivantes sont supportées par la commande event generate. Elles correspondent aux expansions``%''
autorisées dans les scripts de la commande bind .
- -above fenêtre
-
Fenêtre indique le champ above de l'évènement,
en tant que nom de chemin de la fenêtre ou en tant qu'id entier de fenêtre .
Valide pour les évènements configure.
Correspond à la substitution %a des scripts de binding.
- -borderwidth size
-
Size doit être une mesure en pixels; indique le
champ border_width de l'évènement.
Valide pour les évènements configure.
Correspond à la substitution %B des scripts de binding.
- -button numéro
-
Numéro doit être un entier; il indique le champ detail
d'un évènement ButtonPress ou ButtonRelease, écrasant
tout numéro de bouton fourni dans l'argument de base évènement.
Correspond à la substitution %b des scripts de binding.
- -count nombre
-
Nombre doit être un entier; il indique le champ count
de l'évènement. Valide pour les évènements Expose.
Correspond à la substitution %c des scripts de binding.
- -delta nombre
-
Nombre doit être un entier; indique le champ delta de l'évènement
MouseWheel. Le delta se réfère à la
direction et à l'amplitude de la rotation de la roulette de la souris. Notez que la valeur
n'est pas une mesure en pixels mais en unités de déplacement de la roulette de la souris.
Généralement ces valeurs sont des multiples de 120. Par exemple, 120 fait
défiler le widget texte du de 4 lignes vers le haut et -240 de 8 lignes vers le bas. Bien sur , d'autre widgets pourraient définir des
comportements différents pour les déplacements de roulette de souris. Ce champ correspond à la
substitution %D des scripts de binding.
- -detail detail
-
Detail indique le champ detail de l'évènement
et doit être un des suivant:
NotifyAncestor NotifyNonlinearVirtual
NotifyDetailNone NotifyPointer
NotifyInferior NotifyPointerRoot
NotifyNonlinear NotifyVirtual
Valide pour les évènementsEnter, Leave, FocusIn et
FocusOut .
Correspond à la substitution %d des scripts de binding.
- -focus boolean
-
Boolean doit être une valeur booléenne; indique le champ focus
de l'évènement.
Valide pour les évènementsEnter et Leave .
Correspond à la substitution %f des scripts de binding.
- -height taille
-
Taille doit être une mesure en pixels; indique le champ hauteur
de l'évènement. Valide pour les évenements Configure.
Correspond à la substitution %h des scripts de binding.
- -keycode nombre
-
Nombre doit être un entier; indique le champ keycode
de l'évènement.
Valide pour les évènementsKeyPress et KeyRelease .
Correspond à la substitution %k des scripts de binding.
- -keysym nom
-
NOM doit être le nom d'un keysym valide, comme g,
space, ou Return; sa valeur keycode correspondante
est utilisée comme champ keycode de l'évènement, écrasant
tout détail spécifié dans l'argument de base event.
Valide pour les évènementsKeyPress et KeyRelease .
Correspond à la substitution %K des scripts de binding.
- -mode notify
-
Notify indique le champ mode de l'évènement et doit être
un de NotifyNormal, NotifyGrab, NotifyUngrab, ou
NotifyWhileGrabbed.
Valide pour les évènementsEnter, Leave, FocusIn, et
FocusOut.
Correspond à la substitution %mdes scripts de binding.
- -override boolean
-
Boolean doit être a valeur booléenne; indique le
champ override_redirect de l'évènement.
Valide pour les évènementsMap, Reparent, et Configure .
Correspond à la substitution %odes scripts de binding.
- -place où
-
Où indique le champ place de l'évènement; ce doit être
soit PlaceOnTop soit PlaceOnBottom.
Valide pour les évenements Configure.
Correspond à la substitution %p des scripts de binding.
- -root fenêtre
-
Fenêtre doit être soit un nom de chemin de fenêtre ou un identificateur entier de fenêtre; indique le champ root de l'évènement.
Valide pour les évènementsKeyPress, KeyRelease, ButtonPress,
ButtonRelease, Enter, Leave, et Motion.
Correspond à la substitution %Rdes scripts de binding.
- -rootx coord
-
Coord doit être une mesure en pixels; indique le champ x_root
de l'évènement.
Valide pour les évènementsKeyPress, KeyRelease, ButtonPress,
ButtonRelease, Enter, Leave, et Motion. Correspond à la substitution %Xdes scripts de binding.
- -rooty coord
-
Coord doit être une mesure en pixels; elle indique le champ y_root
de l'évènement.
Valide pour les évènementsKeyPress, KeyRelease, ButtonPress,
ButtonRelease, Enter, Leave, et Motion.
Correspond à la substitution %Y des scripts de binding.
- -sendevent boolean
-
Boolean doit être a valeur booléenne; indique le
champ send_event de l'évènement. Valide pour tout événement. Correspond à la
substitution %E des scripts de binding.
- -serial numéro
-
Numéro doit être un entier; indique le champ serial
de l'évènement. Valide pour tout événement.
Correspond à la substitution %# des scripts de binding.
- -state état
-
Etat indique l'état de l'évènement.
Pour les évènementsKeyPress, KeyRelease, ButtonPress,
ButtonRelease, Enter, Leave, et Motion
ce doit être une valeur entière.
Pour les évènementsVisibility ce doit être l'un de VisibilityUnobscured,
VisibilityPartiallyObscured, ou VisibilityFullyObscured.
Cette option écrase tous les modificateurs comme Meta ou Control
spécifiés dans l'event de base .
Correspond à la substitution %s des scripts de binding.
- -subwindow fenêtre
-
Fenêtre indique la subwindow de l'évènement, soit
un nom de chemin de widget Tk ou un identificateur entier de fenêtre .
Valide pour les évènementsKeyPress, KeyRelease, ButtonPress,
ButtonRelease, Enter, Leave, et Motion.
Semblable à la substitution %S des scripts de binding.
- -time entier
-
Entier doit être une valeur entière; indique le champ time
de l'évènement.
Valide pour les évènementsKeyPress, KeyRelease, ButtonPress,
ButtonRelease, Enter, Leave, Motion,
et Property .
Correspond à la substitution %tdes scripts de binding.
- -warp boolean
-
boolean doit être une valeur booléenne; elle indique si
le pointeur d'écran doit être décalé.
Valide pour les évènementsKeyPress, KeyRelease, ButtonPress,
ButtonRelease, et Motion. Le pointeur est déplacé
seulement dans la fenêtre à laquelle il est relié.
- -width size
-
Size doit être une mesure en pixels; indique le champ width
de l'évènement.
Valide pour les évènements Configure.
Correspond à la substitution %w des scripts de binding.
- -when quand
-
Quand détermine quand l'évènement sera traité; doit être une
des valeurs suivantes:
- now
-
Traite l'évènement immédiatement, avant que la commande retourne.
Ceci se produit quand l'option -when est omise.
- tail
-
Place l'évènement dans la queue d'évènements Tcl derrière les évènements déjà
dans la queue pour cette application.
- head
-
Place l'évènement au début de la queue d'évènements Tcl, il sera ainsi
géré avant tout autre évènements déjà dans la queue.
- mark
-
Place l'évènement au début de la queue d'évènements Tcl mais derrière tout
autre évènements déjà dans la queue avec -when mark.
Cette option est utile pendant la génération d'une séries d'évènements qui doivent être
traités dans l'ordre mais au début de la queue.
- -x coord
-
Coord doit être une mesure en pixels; indique le champ x
de l'évènement.
Valide pour les évènementsKeyPress, KeyRelease, ButtonPress,
ButtonRelease, Motion, Enter, Leave,
Expose, Configure, Gravity, et Reparent.
Correspond à la substitution %x des scripts de binding.
Si Fenêtre est vide la coordonnée est relative à l'écran, et cette option correspond à la substitution %X des scripts de binding.
- -y coord
-
Coord doit être une mesure en pixels; indique le champ y
de l'évènement.
Valide pour les évènementsKeyPress, KeyRelease, ButtonPress,
ButtonRelease, Motion, Enter, Leave,
Expose, Configure, Gravity, et Reparent.
Correspond à la substitution %ydes scripts de binding.
Si Fenêtre est vide la coordonnée est relative à l'écran, et cette option correspond à la substitution %Y des scripts de binding.
Toutes les options non spécifiées pendant la génération d'un évènement sont remplies
avec la valeur 0, excepté serial, qui est rempli avec le numéro de série
de l'évènement X suivant.
Pour déclencher un binding sur un évènement virtuel, deux conditions doivent être réunies. D'abord, l'évènement virtuel doit être défini avec la
commande event add. Ensuite, un binding doit être créé pour
l'évènement virtuel avec la commande bind .
Considèrons les définitions d'évènement virtuel suivantes:
event add <<Paste>> <Control-y>
event add <<Paste>> <Button-2>
event add <<Save>> <Control-X><Control-S>
event add <<Save>> <Shift-F12>
Dans la commande bind , un évènement virtuel peut être lié comme n'importe quel autre type d'évènement intégré comme suit:
bind Entry <<Paste>> {%W insert [sélection get]}
Les double signes inférieur à/supérieur à sont utilisés pour spécifier qu'un évènement virtuel va être lié. Si l'utilisateur frappe Control-y ou appuie sur le bouton2, ou si un évènement virtuel <<Paste>> est créé avec event generate,
alors le binding <<Paste>> sera appelé.
Si un binding virtuel a exactement la même séquence qu'un
binding physique séparé, alors le binding physique prend la précédence.
Considerons l'exemple suivant:
event add <<Paste>> <Control-y> <Meta-Control-y>
bind Entry <Control-y> {puts Control-y}
bind Entry <<Paste>> {puts Paste}
Quand l'utilisateur tape Control-y le binding <Control-y>
sera appelé, parceque un évènement physique est considéré
plus spécifique qu'un évènement virtuel.
Néanmoins, quand l'utilisateur tape Meta-Control-y le
binding <<Paste>> sera appelé, parceque le
modificateur Meta dans le modèle physique associé avec le
binding virtuel est plus spécifique que la séquence <Control-y> pour
l'évènement physique.
Les bindings sur un évènement virtuel peuvent être créés avant que l'évènement virtuel existe.
Evidemment, l'évènement virtuel ne doit jamais être défini, par exemple,
sur les plateformes où l'évènement virtuel spécifique serait dépourvu de sens ou
ingénérable.
Quand la définition d'un évènement virtuel change à l'exécution, toutes les fenêtres
répondront immédiatement à la nouvelle définition.
Partant de l'exemple précédent, si le code suivant est exécuté:
bind <Entry> <Control-y> {}
event add <<Paste>> <Key-F6>
le comportement changera de deux façons. D'abord, le
binding <<Paste>> émergera.
Taper Control-y will n'appelera plus le binding <Control-y>,
mais appellera à la place l'évènement virtuel <<Paste>>. Ensuite,
appuyer sur la touche F6 key appelera maintenant le binding <<Paste>>.
bind
évènement, binding, define, handle, virtuel évènement
Copyright © 1996 Sun Microsystems, Inc.
Copyright © 1998-2000 Ajuba Solutions.
Copyright © 1995-1997 Roger E. Critchlow Jr.
Copyright © 2003 - Le Portail Tcl/Tk Francophone.