  NOM
    menu, tk_menuSetFocus - Crée et manipule les menus
  SYNTAXE
    menu pathName ?options?
    tk_menuSetFocus pathName
  OPTIONS STANDARD
    -activebackground, activeBackground, Foreground
    -activeborderwidth, activeBorderWidth, BorderWidth
    -activeforeground, activeForeground, Background
    -background ou -bg, background, Background
    -borderwidth ou -bd, borderWidth, BorderWidth
    -cursor, cursor, Cursor
    -disabledforeground, disabledForeground, DisabledForeground
    -font, font, Font
    -foreground ou -fg, foreground, Foreground
    -relief, relief, Relief
    -takefocus, takeFocus, TakeFocus
  OPTIONS SPECIFIQUES AU WIDGET
    -postcommand, postCommand, Command
    -selectcolor, selectColor, Background
    -tearoff, tearOff, TearOff
    -tearoffcommand, tearOffCommand, TearOffCommand
    -title, title, Title
    -type, type, Type
  INTRODUCTION
  COMMANDES
  SEPARATEURS
  CASES A COCHER
  BOUTONS RADIO
  CASCADES
  MENUS DECHIRABLES
  BARRES DE MENU
  MENUS SPECIAUX DES BARRES DE MENU
  CLONES
  COMMANDES DE WIDGET
    nombre
    active
    end
    last
    none
    @nombre
    modèle
    pathName activate index
    pathName add type ?option valeur option valeur ...?
      -activebackground valeur
      -activeforeground valeur
      -accelerator valeur
      -background valeur
      -bitmap valeur
      -columnbreak valeur
      -commande valeur
      -font valeur
      -foreground valeur
      -hidemargin valeur
      -image valeur
      -indicatoron valeur
      -label valeur
      -menu valeur
      -offvalue valeur
      -onvalue valeur
      -selectcolor valeur
      -selectimage valeur
      -state valeur
      -underline valeur
      -value valeur
      -variable valeur
    pathName cget option
    pathName clone newPathname ?cloneType?
    pathName configure ?option? ?valeur option valeur ...?
    pathName delete index1 ?index2?
    pathName entrycget index option
    pathName entryconfigure index ?options?
    pathName index index
    pathName insert index type ?option valeur option valeur ...?
    pathName invoke index
    pathName post x y
    pathName postcascade index
    pathName type index
    .VS
    pathName yposition index
  CONFIGURATIONS DE MENU
    Menus Déroulant dans les Barres de Menus
    Menus Déroulant dans les Boutons de Menus
    Menus Surgissants
    Menus d'Options
    Menus Déchirables
  BINDINGS PAR DEFAUT
  BUGS
  MOTS-CLES

### NOM

menu, tk_menuSetFocus - Crée et manipule le widget menu

### SYNTAXE

menu pathName ?options?
tk_menuSetFocus pathName

### OPTIONS STANDARD

-activebackground, activeBackground, Foreground
-activeborderwidth, activeBorderWidth, BorderWidth
-activeforeground, activeForeground, Background
-background ou -bg, background, Background
-borderwidth ou -bd, borderWidth, BorderWidth
-cursor, cursor, Cursor
-disabledforeground, disabledForeground, DisabledForeground
-font, font, Font
-foreground ou -fg, foreground, Foreground
-relief, relief, Relief
-takefocus, takeFocus, TakeFocus

### OPTIONS SPECIFIQUES AU WIDGET

Command-Line Name: -postcommand
Database Name: postCommand
Database Class: Command
  Si cette option est spécifiée alors elle indique la commande Tcl à exécuter chaque fois que le menu est activé. La commande est appelée par la commande post avant d'activer menu. Notez qu'avec la version 8.0 sur Macintosh et Windows, toutes les commandes d'un menu sont exécutées avant d'être activées. Ceci est dû aux limitations des gestionnaires de menu de ces plateformes.

Command-Line Name: -selectcolor
Database Name: selectColor
Database Class: Background
  Pour les éléments de menu qui sont cases à cocher ou boutons radio, cette option indique la couleur à afficher in l'indicateur quand la case à cocher ou le bouton radio est sélectionné.

Command-Line Name: -tearoff
Database Name: tearOff
Database Class: TearOff
  Cette option doit avoir une valeur booléenne correcte, qui indique si oui ou non le menu doit inclure une entrée déchirable en premier. Si c'est le cas, ce sera l'entrée 0 du menu et les autres entrées seront numérotées en commencant à 1. Les bindings par défaut du menu prépare le menu à être déchiré quand l'entrée déchirable est appelée.

Command-Line Name: -tearoffcommand
Database Name: tearOffCommand
Database Class: TearOffCommand
  Si cette option a une valeur non-vide, alors elle indique une commande Tcl à appeler chaque fois que le menu est déchiré. La commande actuelle consistera en la valeur de cette option, suivi d'un espace, suivi du nom du menu, suivi d'un espace, suivi du nom du menu déchiré. Par exemple, si l'option est ``a b'' et que le menu .x.y est déchiré pour créer un nouveau menu .x.tearoff1, alors la commande ``a b .x.y .x.tearoff1'' sera appelée.

Command-Line Name: -title
Database Name: title
Database Class: Title
  La chaîne sera utilisé comme titre de la fenêtre créée quand le menu est déchiré. Si le titre est NULL, alors la fenêtre aura le titre du menubutton ou le texte de l'élément cascade à partir duquel ce menu a été appelé.

Command-Line Name: -type
Database Name: type
Database Class: Type
  Cette option peut être l'une de menubar, tearoff, ou normal, et est fixée quand le menu est créé. Bien que la chaîne retournée par la base de données de configuration change si cette option est modifiée, ceci n'affecte pas le comportement du menu. Ceci est utilisé par le mécanisme de clonage et n'est pas normalement modifié en dehors de la bibliothèque Tk.

### INTRODUCTION

La commande menu crée une fenêtre top-level (désignée par l'argument pathName ) et en fait un widget menu. Des options supplémentaires, décrites ci-dessus, peuvent être spécifiées sur la ligne de commande ou dans la base de données d'options pour configurer les aspects du menu comme ses couleurs et sa police de caractères. La commande menu retourne son argument pathName. A l'instant ou cette commande est appelée, il ne doit pas exister une fenêtre nommée pathName, mais le parent de pathName doit exister.

Un menu est un widget qui affiche une collection d'entrées d'une ligne disposées en une ou plusieurs colonnes. Il existe plusieurs différent types d'entrées, chacune avec différentes propriétés. Les entrées de différents types peuvent être combinée en un seul menu. Les entrées de menu ne sont pas les même que que les widgets entrée de texte. En fait, les entrées de menu ne sont pas des widgets distincts; le menu entier est un widget.

Les entrées de menu sont affichées avec jusqu'à trois champs séparés. Le champ principal est un label sous forme de chaîne de texte, un bitmap, ou une image, contrôlé par les options -label, -bitmap, et -image de l'entrée. Si l'option -accelerator est spécifiée pour une entrée alors un second champ texte est affiché à droite du libellé. L'accelérateur décrit généralement une séquence de touches qui peut être tapée dans l'application pour provoquer le même effet que l'appel de l'entrée de menu. Le troisième champ est un indicator. L'indicateur est présent seulement pour les cases à cocher ou les boutons radio. Il indique si l'entrée est sélectionnée ou non, et est affiché à gauche de la chaîne de l'entrée.

Dans une utilisation normale, une entrée devient active (s'affiche différemment) chaque fois que le pointeur de souris passe au-dessus de l'entrée. Si un bouton de souris est relaché au-dessus de l'entrée alors l'entrée est appelée. L'effet de l'appel est différent pour chaque type d'entrée; ces effets sont décrits ci-dessous dans les sections sur les entrées individuelles.

Les entrées peuvent être disabled, dans ce cas leurs libellés et accelerateurs seront affichés en grisé. Les bindings par défaut du menu ne permettent pas l'appel d'une entrée desactivée. Les entrée desactivées peuvent être ré-activées.

Quand une entrée de menu active est choisie, un évènement virtuel <<MenuSelect>> est envoyé au menu. L'article actif peut alors être extrait du menu, et une action peut être choisie, comme paramétrer le texte de l'aide contextuelle de l'entrée.

### ENTREES COMMANDES

L'entrée de menu la plus courante est l'entrée commande , qui se comporte comme un widget bouton. Quand a une entrée commande est appelée, une commande Tcl est exécutée. La commande Tcl est spécifiée avec l'option -command.

### ENTREES SEPARATEUR

Un separateur est une entrée qui affiche une ligne horizontale. Un separateur ne peut être activé ou appelé, et il n'a d'autre comportement que son apparence.

### ENTREES COCHES

Une entrée coche se comporte comme un widget checkbutton. Quand elle est appelée elle bascule entre l'état sélectionné et déselectionné. Quand l'entrée est sélectionnée, une valeur particulière est stockée dans une variable globale particulière (comme déterminée par les options -onvalue et -variable de l'entrée); quand l'entrée est déselectionnée une autre valeur (déterminée par l'option -offvalue ) est stockée dans la variable globale. Un indicateur est affichée à gauche du libéllé d'une entrée checkbutton. Si l'entrée est sélectionné alors l'indicateur est affiché de la couleur indiquée par l'option -selectcolor; autrement l'indicateur center est affiché de la couleur d'arrière-plan du menu. Si une option -command est spécifiée pour une entrée checkbutton, alors sa valeur est evalué comme une commande Tcl chaque fois que l'entrée est appelée; ceci se produit après la sélection de l'entrée.

### ENTREES BOUTON RADIO

Une entrée de menu bouton radio se comporte comme un widget radiobutton. Les entrées bouton radio sont organisée en groupes parmi lesquels seule une entrée peut être sélectionnée à la fois. Quand une entrée devient sélectionnée elle stocke une valeur dans une variable globale (comme déterminé par les options -value et -variable de l'entrée). Cette action provoque la déselection de toute entrée précédemment sélectionnée dans le même groupe. Quand une entrée est sélectionnée, tout changement de la variable associée à l'entrée provoque la déselection de l'entrée. Le regroupement des entrées bouton radio est déterminé par leur variable associée: si deux entrées ont la même variable associée alors ils sont dans le même groupe. Un indicateur est affiché à gauche du libéllé de chaque entrée bouton radio. Si l'entrée est sélectionnée alors l'indicateur est affiché de la couleur indiquée par l'option -selectcolor; autrement l'indicateur est affiché de la couleur d'arrière-plan du menu. Si une option -command est spécifiée pour une entrée bouton radio , alors sa valeur est evaluée comme une commande Tcl chaque fois que l'entrée est appelée; ceci se produit après la sélection de l'entrée.

### ENTREES EN CASCADE

Une entrée en cascade est associée à un menu (determiné par l'option -menu ). Les entrées en cascade permettent la construction de menus en cascade. La commande widget postcascade peut être utilisée pour ouvrir et fermer les menus associés consécutifs à l'entrée en cascade. Les menus associés doivent être des enfants du menu contenant l'entrée en cascade (afin que le parcours des menus fonctionne correctement).

Une entrée en cascade ouvre son menu associé en appelant une commande Tcl de la forme

    menu post x y

où menu est le nom de chemin du menu associé, et x et y sont les coordonnées de fenêtre du coin supérieur droit de l'entrée en cascade . Sous Unix, le menu inférieur est fermé avec une commande Tcl de la forme

    menu unpost

où menu est le nom du menu associé. Sur les autres plateformes, le code natif de la plateforme prend soin de fermer le menu.

Si une option -command est spécifiée pour une entrée en cascade alors elle est evaluée comme commande Tcl chaque fois que l'entrée est appelée. Ceci n'est pas supporté sous Windows.

### ENTREES DECHIRABLES

Une entrée déchirable apparait en haut du menu s'il est activé avec l'option tearOff. Ce n'est pas comme les autres entrées de menu dans le sens ou elle ne peut être créée avec la commande widgetadd et ne peut être effacé avec la commande widget delete. Quand une entrée déchirable est créée elle apparait comme une ligne pointillée en haut du menu. En plus des bindings par défaut, l'appel d'une entrée déchirable crée une copie flottante du menu et de tous ses sous-menus.

### BARRES DE MENUS

N'importe quel menu peut être transformé en barre de menus pour une fenêtre toplevel (voir la commande toplevel pour la syntaxe). Sur Macintosh, chaque fois que la toplevel est au premier plan, les articles de ce menu apparaîtront dans la barre de menus en haut du moniteur principal. Sous Windows et Unix, ces articles de menu seront affichés dans une barre de menus en haut de la fenêtre. Ces menus se comporteront conformément aux règles de leurs plateformes. Pour chaque menu transformé en barre de menus, un menu clone est généré. Voir la section CLONES pour une plus ample information.

Comme signalé, les barre de menus peuvent se comporter différemment sur des plateformes différentes. Un exemple concerne la gestion des coches et des boutons radio à l'intérieur du menu. Bien qu'il soit permis d'inclure ces éléments de menu sur les barres de menus, ils ne peuvent être dessinés avec des indicateurs sur certaines plateformes, dû à des restrictions du système.

### MENUS SPECIAUX DES BARRES DE MENUS

Certains menus dans une barre de menus seront traités spécialement. Sur Macintosh, l'accès aux menus speciaux Pomme et Aide est fourni. Sous Windows, l'accès au menu Système Windows dans chaque fenêtre est fourni. Sous X Windows, un menu d'aide special justifié à droite est fourni. Dans tous les cas, ces menus doivent être créés avec la commande nom de la barre de menus concaténé avec le nom spécial. Donc pour une barre de menus nommée .menubar, Sur Macintosh, les menus speciaux seront .menubar.apple et .menubar.help; sous Windows, le menu special sera .menubar.system; sous X Windows, le menu d'aide sera .menubar.help.

Quand Tk rencontre un menu Pomme sur un Macintosh, le contenu de ce menu devient le premier article du menu Pomme sur l'écran chaque fois que la fenêtre contenant la barre de menus est au premier plan. Le menu est le premier que l'utilisateur voit et a pour titre le logo Apple. A la suite de tous les éléments définis par Tk, le menu aura un séparateur, suivi par tous les éléments du dossier Pomme de l'utilisateur. Commme le système utilise une procédure de définition de menu différente pour le menu Pomme de celle que Tk utilise pour ses menus, et que les APIs système ne supportent pas totalement ce Tk tente de faire, l'élément de menu aura seulement son texte affiché. Aucun attributs de police, images, bitmaps, ou couleurs ne seront affichés. De plus, un menu avec un élément tearoff aura le tearoff affiché comme "(TearOff)".

Quand Tk rencontre un menu Aide sur Macintosh, le contenu du menu est ajouté au menu d'aide standard à la droite de la barre de menu de l'utilisateur chaque fois que la barre de menu de l'utilisateur est au premier plan. Le premier élément du menu est fourni par Apple. Comme pour le menu Pomme, la personnalisation de ce menu est limitée à ce que le système fournit.

Quand Tk rencontre un menu Système sous Windows, ses éléments sont ajoutés au menu système auquel la barre de menu est attachée. Ce menu a une icône représentant une barre d'espace, et peut être appelé avec la souris ou en tapant Alt+Spacebar. Dû aux limitations de l'API Windows , tout changement de polices, couleurs, images, bitmaps, ou d'images tearoff n'apparaîtront pas dans le menu système.

Quand Tk rencontre un menu Aide sous X Windows, le menu est déplacé à la fin de la barre de menu et est justifié à droite.

### CLONES

Quand un menu est positionné comme barre de menu d'une fenêtre toplevel, ou quand un menu est déchiré, un clone du menu est généré. Ce clone est un widget menu indépendant, mais il est un enfant de l'original. Les changement dans la configuration de l'original sont reflétés dans le clone. De plus, toutes les cascades qui sont pointées to sont également clonées ainsi le parcours du menu fonctionnera bien. Les clones sont détruits quand soit le tearoff ou la barre de menu disparait, ou quand le menu original est détruit.

### COMMANDES DE WIDGET

La commande menu crée une nouvelle commande Tcl dont le nom est pathName. Cette commande peut être utilisée pour appeler diverses opérations sur le widget. Elle a la forme générale suivante:

    pathName option ?arg arg ...?

Option et les args déterminent le comportement exact de la commande.

Plusieurs des commandes widget du menu attendent comme argument un indicateur de l'entrée sur laquelle opérer. Ces indicateurs sont appelés indexes et peuvent être spécifiés sous n'importe quelle des formes suivantes:

nombre
  Spécifie l'entrée numériquement, où 0 correspond à la première entrée du menu, 1 à l'entrée en dessous, et ainsi de suite.

active
  Indique l'entrée qui est actuellement active. Si aucune entrée n'est active alors cette forme est équivalente à none. Cette forme ne peut être abrégée.

end
  Indique la dernière entrée du menu. Si il n'y a pas d'entrée dans le menu alors cette forme est équivalente à none. Cette forme ne peut être abrégée.

last
  Identique à end.

none
  Indique``aucune entrée''; ceci est utilisé plus communément avec l'option activate pour désactiver toutes les entrée du menu. Dans la plupart des cas la spécification de none ne provoque rien dans la commande widget. Cette forme ne peut être abrégée.

@nombre
  Sous cette forme, nombre est traité comme la coordonnée y dans le fenêtre du menu; l'entrée la plus proche de cette coordonnée y est utilisée. Par exemple, ``@0'' indique l'entrée supérieure dans la fenêtre.

modèle
  Si l'index ne satisfait aucune des formes ci-dessus alors cette forme est utilisée. Modèle est comparé au libéllé de chaque entrée du menu, dans l'ordre de haut en bas, jusqu'à ce qu'une entrée correspondante soit trouvée. Les règles de Tcl_StringMatch sont utilisées.

Les commandes widget suivantes sont possibles pour les widgets menu:

pathName activate index
  Change l'état de l'entrée indiquée par index en active et la réaffiche en utilisant ses couleurs actives. Toute entrée précédemment active est désactivée. Si index est spécifié comme none, ou si l'entrée spécifiée est desactivée, alors le menu finit sans entrée active. Retourne une chaîne vide.

pathName add type ?option valeur option valeur ...?
  Ajoute une nouvell'entrée en bas du menu. Le type de la nouvell'entrée est indiqué par type et doit être l'un de cascade, checkbutton, commande, radiobutton, ou separator, ou une abréviation unique de l'un d'entre eux. Si des arguments supplémentaires sont présent, ils specifient une des options suivantes:

  -activebackground valeur
    Spécifie une couleur d'arrière-plan à utiliser pour l'affichage de cette entrée quand elle est active. Si cette option est spécifiée comme une chaîne vide (par défaut), alors l'option activeBackground du menu entier est utilisée. Si la variable tk_strictMotif a été fixée pour demander une compatibilité avec Motif stricte, alors cette option est ignorée et l'option -background est utilisée à sa place. Cette option n'est pas disponible pour les séparateurs et les entrées tear-off.

  -activeforeground valeur
    Spécifie la couleur de premier plan à utiliser pour l'affichage de cette entrée quand elle est active. Si cette option est spécifiée comme une chaîne vide (par défaut), alors l'option activeForeground du menu entier est utilisée. Cette option n'est pas disponible pour les séparateurs et les entrées tear-off.

  -accelerator valeur
    Spécifie une chaîne à afficher à droite de l'entrée de menu. Normalement décrit une combinaison de touches qui peut être tapée pour appeler la même fonction que l'entrée de menu. Cette option n'est pas disponible pour les séparateurs et les entrées tear-off.

  -background valeur
    Spécifie une couleur d'arrière-plan à utiliser pour l'affichage de cette entrée quand elle est dans l'état normal (ni active ni desactivée). Si cette option est spécifiée comme une chaîne vide (par défaut), alors l'option background du menu entier est utilisée. Cette option n'est pas disponible pour les séparateurs et les entrées tear-off.

  -bitmap valeur
    Spécifie un bitmap à afficher dans le menu à la place du libellé texte, sous n'importe quelle des formes acceptées par Tk_GetBitmap. Cette option surcharge l'option -label mais peut être réinitialisée à une chaîne vide pour permettre l'affichage d'un libellé texte. Si une option -image a été spécifié, elle écrase -bitmap. Cette option n'est pas disponible pour les séparateurs et les entrées tear-off.

  -columnbreak valeur
    Quand cette option est à zéro, les entrées apparaissent sous la précédente. Quand cette option est à un, le menu apparait en haut d'une nouvelle colonne dans le menu.

  -command valeur
    Spécifie une commande Tcl à exécuter quand l'entrée de menu est appelée. Non disponible pour les séparateurs et les entrées tear-off.

  -font valeur
    Spécifie la police de caractère à utiliser pour l'affichage du libéllé ou de l'accelerateur de cette entrée. Si cette option est spécifiée comme une chaîne vide (par défaut) alors l'option font du menu entier est utilisée. Cette option n'est pas disponible pour les séparateurs et les entrées tear-off.

  -foreground valeur
    Spécifie la couleur de premier plan à utiliser pour l'affichage de cette entrée quand elle est dans l'état normal (ni active ni desactivée). Si cette option est spécifiée comme une chaîne vide (par défaut), alors l'option foreground du menu entier est utilisée. Cette option n'est pas disponible pour les séparateurs et les entrées tear-off.

  -hidemargin valeur
    Spécifie si les marges standard doivent être dessinées pour cette entrée de menu. Ceci est utile quand on crée des palettes avec des images à l'intérieur, c.a.d., des palettes de couleurs, des palettes de modèles, etc. 1 indique que la marge de l'entrée est cachée; 0 signifie que la marge est utilisée.

  -image valeur
    Spécifie l'image à afficher dans le menu à la place d'une chaîne de texte ou d'un bitmap L'image doit avoir été créée par un précédent appel de image create. Cette option surcharge les options -label et -bitmap mais peut être réinitialisée à une chaîne vide pour permettre l'affichage d'un libéllé ou d'un bitmap. Cette option n'est pas disponible pour les séparateurs et les entrées tear-off.

  -indicatoron valeur
    Disponible seulement pour les coches et les boutons radio. Value est un booléen qui détermine si oui ou non l'indicateur doit être affichée.

  -label valeur
    Spécifie une chaîne à afficher comme identifiant dans l'entrée de menu. Non disponible pour les séparateurs et les entrées tear-off.

  -menu valeur
    Disponible seulement pour les entrées cascade. Spécifie le nom de chemin du sous-menu associé à cette entrée. Le sous-menu doit être un enfant du menu.

  -offvalue valeur
    Disponible seulement pour les coches. Spécifie la valeur à stocker dans la variable associée à l'entrée quand l'entrée est déselectionnée.

  -onvalue valeur
    Disponible seulement pour les coches. Spécifie la valeur à stocker dans la variable associée à l'entrée quand l'entrée est sélectionnée.

  -selectcolor valeur
    Disponible seulement pour les coches et les boutons radio. Spécifie la couleur à afficher dans l'indicateur quand l'entrée est sélectionnée. Si la valeur est une chaîne vide(par défaut) alors l'option selectColor du menu détermine la couleur de l'indicateur.

  -selectimage valeur
    Disponible seulement pour les coches et les boutons. Spécifie une image à afficher dans l'entrée (à la place de the -image option) quand il est sélectionné. Value est le nom d'une image, qui doit avoir été créée par un précédent appel de image create. Cette option est ignorée à moins que l'option -image ait été spécifiée.

  -state valeur
    Spécifie un des trois états de l'entrée: normal, active, ou désactivée. Dans l'état normal, l'entrée est affichée en utilisant l'option foreground du menu et l'option background de l'entrée ou du menu. L'état actif est généralement utilisé quand le pointeur est au-dessus l'entrée. Dans l'état actif l'entrée est affichée en utilisant l'option activeForeground pour le menu en conjonction avec l'option activebackground de l'entrée. L'état désactivé signifie que l'entrée doit être insensible: les bindings par défaut refuseront d'activer ou d'appeller l'entrée. Dans cet état l'entrée est affichée conformément à l'option disabledForeground du menu et l'option background de l'entrée. Cette option n'est pas disponible pour les séparateurs.

  -underline valeur
    Spécifie l'index entier du caractère à souligner dans l'entrée. Cette option est également utilisée par les bindings par défaut et utilisée pour implémenter le parcours du clavier. 0 correspond au premier caractère du texte affichée dans l'entrée, 1 au caractère suivant, et ainsi de suite. Si un bitmap ou une image est affichée dans l'entrée alors cette option est ignorée. Cette option n'est pas disponible pour les séparateurs et les entrées tear-off.

  -value valeur
    Disponible seulement pour les boutons radio. Spécifie la valeur à stocker dans la variable associée à l'entrée quand l'entrée est sélectionnée. Si une chaîne vide est spécifiée, alors l'option -label de l'entrée sera la valeur à stocker dans la variable.

  -variable valeur
    Disponible seulement pour les coches et les boutons radio. Spécifie le nom d'une valeur globale à fixer quand l'entrée est sélectionnée. Pour les coches la variable est également fixée quand l'entrée est déselectionnée. Pour les boutons radio, changer la variable provoque la désélection de l'entrée actuellement sélectionnée.

  La commande widget add retourne une chaîne vide.

pathName cget option
  Retourne la valeur courante de l'option de configuration indiquée par option. Option peut prendre n'importe quelle des valeurs acceptées par la commande menu.

pathName clone newPathname ?cloneType?
  Génère un clone du menu courant nommé newPathName. Ce clone est un menu indépendant, mais tout changement du clone est propagé aux menu original et vice versa. cloneType peut être normal, menubar, ou tearoff. Ne doit pas normalement être appelée en dehors de la bibliothèque Tk. Voir la section CLONES pour plus d'information.

pathName configure ?option? ?valeur option valeur ...?
  Interroge ou modifie les options de configuration du widget. Si aucune option n'est spécifiée, retourne une liste décrivant toutes les options disponible pour pathName (voir Tk_ConfigureInfo pour une information sur le format de cette liste). Si option est spécifiée sans valeur, alors la commande retourne une liste décrivant l'option désignée (cette liste sera identique à la sous-liste correspondante de la valeur retournée si aucune option n'est indiquée). Si une ou plusieurs paires option-valeur sont fournies, alors la commande donne aux option(s) les valeur(s) indiquées; dans ce cas la commande retourne une chaîne vide. Option peut prendre n'importe quelle des valeurs acceptées par la commande menu.

pathName delete index1 ?index2?
  Efface toutes les entrées de menu entre index1 et index2 inclus. Si index2 est omis alors il est par défaut de index1. Les tentatives d'effacer une entrée de menu tear-off sont ignorées (à la place, vous devez changer l'option tearOff pour enlever l'entrée tear-off).

pathName entrycget index option
  Retourne la valeur courante d'une option de configuration pour l'entrée indiquée par index. Option peut prendre n'importe quelle des valeurs acceptées par la commande add.

pathName entryconfigure index ?options?
  cette commande est identique à la commande configure, excepté qu'elle s'applique aux options d'une entrée individuelle, ou configure s'applique aux options du menu entier. Options peut prendre n'importe quelle des valeurs acceptées par la commande add. Si des options sont spécifiées, ces options sont modifiées comme indiqué dans la commande et la commande retourne une chaîne vide. Si aucunes options ne sont spécifiées, retourne une liste décrivant les options courantes de l'entrée index (voir Tk_ConfigureInfo pour information sur le format de cette liste).

pathName index index
  Retourne l'index numérique correspondant à index, ou none si index a été spécifié comme none.

pathName insert index type ?option valeur option valeur ...?
  Identique à la commande add excepté qu'elle insère la nouvelle entrée juste avant l'entrée indiquée par index, au lieu de l'ajouter à la fin du menu. Les arguments type, option, et valeur ont les même interprétations que pour la commande add. Il n'est pas possible d'insérer de nouvelles entrées de menu avant l'entrée tear-off, si le menu en a une.

pathName invoke index
  Appelle l'action de l'entrée de menu. Voir la sections sur les entrées individuelles ci-dessus pour les détails sur ce qui se produit. Si l'entrée de menu est desactivée alors rien ne se passe. Si l'entrée a une commande associée alors le resultat de cette commande est retourné comme résultat de la commande invoke . Autrement le resultat est une chaîne vide. Note: l'appel d'une entrée de menu ne déselectionne pas automatiquement le menu; les bindings par défaut s'occupent normalement de cela avant l'appel de la commande invoke.

pathName post x y
  Prépare le menu à être affiché sur l'écran aux coordonnées indiquées par x et y. Ces coordonnées sont ajustées si nécessaire pour assurer que le menu entier est visible à l'écran. cette commande normalement retourne une chaîne vide. Si l'option postCommand a été spécifiée, alors sa valeur est exécutée comme script Tcl avant d'aficher le menu et le résultat de ce script est retourné comme résultat de la commande post. Si une erreur se produit pendant l'exécution de la commande, alors l'erreur est retournée sans afficher le menu.

pathName postcascade index
  Affiche le sous-menu associé avec l'entrée cascade indiquée par index, et cache tout sous-menu précédemment affiché. Si index ne correspond pas à une entrée cascade, ou si pathName n'est pas affiché, la commande n'a pas d'effet excepté de cacher tout sous-menu actuellement affiché.

pathName type index
  Retourne le type de l'entrée de menu indiquée par index. C'est l'argument type transmis à la commande add quand l'entrée a été créée, comme command ou separator, ou tearoff pour une entrée tear-off.

.VS
  pathName unpost Libère la fenêtre ainsi elle n'est plus affichée. Si un menu en cascade de niveau inférieur est affiché, le fait disparaitre. Retourne une chaîne vide. Cette sous-commande ne fonctionne pas sous Windows et Macintosh, car ces plateformes ont leurs modes de gestion de l'affichage des menus.

pathName yposition index
  Retourne une chaîne décimale donnant les coordonnées y à l'intérieur de la fenêtre de menu du premier pixel de l'entrée spécifié par index.

### MENU CONFIGURATIONS

Les bindings par défaut supportent quatre différentes utilisations des menus:

Menus Déroulant dans les Barres de Menus
  Le cas le plus courant. Vous créez un widget menu qui deviendra la barre de menu. Vous ajoutez ensuite des entrées en cascade à ce menu, en indiquant les menus déroulants que vous souhaitez utiliser dans votre barre de menus. Vous créez enfin tous les menus déroulants. Une fois que vous avez fait ceci, spécifiez le menu en utilisant l'option -menu de la commande toplevel. Voir la page de manuel toplevel pour les détails.

Menus Déroulant dans les Boutons de Menus
  C'est la manière compatible de créer des barres de menus. Vous créez un widget menubutton pour chaque menu top-level, et généralement vous disposez une séries de menubuttons en ligne dans une fenêtre barre de menus. Vous créez également les menus de premier niveau et tous les sous-menus en cascade, et les liez ensemble avec les options -menu des menubuttons et des entrées de menu en cascade. Le menu de premier niveau doit être un enfant du menubutton, et chaque sous-menu doit être un enfant du menu auquel il se réfère. Une fois que vous avez fait ceci, les bindings par défaut permettront aux utlisateurs de parcourir et d'appeller l'arbre des menus via son menubutton; voir la page de manuel menubutton pour les détails.

Menus Surgissants
  Les menus Popup s'affichent généralement en réponse à un clic de souris ou une séquence de touches. Vous créez les menus popup et tous leurs sous-menu en cascade, ensuite vous appelez la procédure tk_popup au moment approprié pour afficher le menu.

Menus d'Options
  Un menu d'options consiste en un menubutton avec un menu associé qui vous permet de choisir une parmi plusieurs valeurs. La valeur courante est affichée dans le menubutton et est également stockée dans une variable globale. Utilisez la procédure tk_optionMenu pour créer des menubuttons à option et leurs menus.

Menus Déchirables
  Vous créez un menu déchirable en appelant l'entrée tear-off (en cliquant sur les pointillé NDT.)en haut d'un menu existant. Les bindings par défaut créeront un nouveau menu qui est une copie du menu original et l'affiche comme une fenêtre top-level. Le menu déchirable se comporte de même que le menu original.

### BINDINGS PAR DEFAUT

Tk automatiquement crée des bindings de classe pour les menus qui leur donne le comportement par défaut suivant:

[1]
  Quand la souris entre dans un menu, l'entrée sous le curseur de la souris s'active; si la souris se déplace dans le menu, l'entrée active change en suivant la souris.

[2]
  Quand la souris quitte un menu toutes les entrées dans le menu se désactivent, excepté dans le cas où la souris va d'un menu vers un sous-menu en cascade.

[3]
  Quand un bouton est relaché au-dessus un menu, l'entrée active (si elle existe) est appelée. Le menu disparait également à moins que ce soit un menu déchirable.

[4]
  Les touches Espace et Entrée appellent l'entrée active et cachent le menu.

[5]
  Si une des entrées d'un menu a une lettre soulignée avec avec l'option -underline, alors l'appui sur une des touches des lettres soulignées (ou son equivalent majuscule ou minuscule) appelle cette entrée et cache le menu.

[6]
  La touche Echappement annule la sélection dans un menu sans appeler quelconque entrée. Elle cache également le menu à moins que ce soit un menu déchirable.

[7]
  Les touches Bas et Haut activent l'entrée inférieure ou supérieure suivante dans le menu. Quand la fin du menu est atteinte, l'entrée active passe à l'autre extrémité.

[8]
  La touche Gauche se déplace vers le menu suivant à gauche. Si le menu courant est un sous-menu en cascade, alors the sous-menu est caché et l'entrée de menu courante devient l'entrée en cascade dans le parent. Si le menu courant est un menu top-level affiché depuis un menubutton, alors le menubutton courant est caché et le menubutton suivant à gauche est affiché. Autrement la touche n'a pas d'effet. L'ordre de gauche à droite des menubuttons est déterminés par leur ordre d'empilement: Tk suppose que le menubutton inférieur (qui est par défaut le premier créé) est à gauche.

[9]
  La touche Droite se déplace vers le menu suivant à droite. Si l'entrée courante est une entrée en cascade, alors le sous-menu est affiché et l'entrée de menu courante devient la première entrée dans le sous-menu. Autrement, si le menu courant a été affiché depuis un menubutton, alors le menubutton courant est caché et le menubutton suivant à droite est affiché.

Les entrées de menu desactivées sont inertes: elles ne s'activent pas et ignorent les clics de souris.

Plusieurs des bindings utilisent la commande tk_menuSetFocus. Elle sauvegarde le focus courant et place le focus sur son argument pathName, qui est un widget menu.

Le comportement des menus peut être changé en définissant de nouveaux bindings pour des widgets individuels ou en redéfinissant les bindings de classe.

### BUGS

Actuellement it n'est pas possible d'utiliser la base de données d'options pour spécifier des valeurs pour les options des entrées individuelles.

### MOTS-CLES

menu, widget

    Copyright © 1990-1994 The Regents of the University of California.
    Copyright © 1994-1997 Sun Microsystems, Inc.
    Copyright © 1995-1997 Roger E. Critchlow Jr.
    Traduit en 2002 par Michel Salvagniac

Copyright © 2003 - Le Portail Tcl/Tk Francophone.