Avec l’instruction :
menubutton cheminBoutonMenu?options?
la commande menubutton cr´ee une nouvelle commande Tcl dont le nom est pr´ecis´e- ment cheminBoutonMenu. Cette commande peut ˆetre compl´et´ee par des sous- commandes permettant d’effectuer diverses op´erations concernant le menu. La forme g´en´erale est :
Les op´erations reconnues par les composantes de type menubutton sont les sui- vantes :
cheminBoutonMenu cget option
Renvoie la valeur courante de l’option de configuration sp´ecifi´ee par l’argu- ment option. L’argument option peut ˆetre une quelconque des valeurs ac- cept´ees par la commande menubutton.
cheminBoutonMenu configure?option??valeur option valeur ...?
Permet d’obtenir ou de modifier les options de configuration du bouton de menu. Si l’argument option n’est pas sp´ecifi´e, la commande renvoie une liste de toutes les options disponibles pour cheminBoutonMenu.
Si l’argument option est sp´ecifi´e sans une valeur correspondante, la com- mande renvoie une liste d´ecrivant l’option nomm´ee. Si un ou plusieurs couples option-valeur sont sp´ecifi´es, les options en question se voient attribuer la va- leur correspondante : la commande renvoie alors une chaˆıne vide. L’argument option peut ˆetre une quelconque des valeurs accept´ees par la commande me- nubutton.
Liaisons par d´efaut
Tk cr´ee automatiquement des liaisons de classe pour les boutons menus avec les caract´eristiques suivantes :
1. un bouton menu est activ´e d`es que le pointeur de la souris passe au-dessus de lui et d´esactiv´e d`es qu’il le quitte ;
2. lorsque le premier bouton de la souris est press´e au-dessus d’un bouton menu, le relief change et le menu associ´e est affich´e. Si le pointeur est ensuite d´eplac´e sur une des entr´ees du menu et le bouton relˆach´e, cette entr´ee est invoqu´ee; 3. lorsque le premier bouton de la souris est press´e au-dessus d’un bouton menu et relˆach´e au-dessus de ce bouton, le menu associ´e reste affich´e. On peut alors aller cliquer sur une des entr´ees pour l’invoquer. Le menu se referme alors ; 4. si le premier bouton de la souris est press´e sur un bouton menu et le pointeur
d´eplac´e sur un autre bouton menu, le premier menu est effac´e et le menu associ´e au deuxi`eme bouton menu est affich´e.
5. si le premier bouton de la souris est press´e sur un bouton menu puis relˆach´e en dehors de tout autre bouton menu, le menu associ´e se referme et aucune action n’est d´eclench´ee;
6. si l’option -underline a ´et´e sp´ecifi´ee pour un bouton menu, le menu peut ˆetre affich´e en tapant au clavier la combinaison Alt+x, o`u x d´esigne le caract`ere qui est soulign´e dans le texte du bouton menu ;
7. la touche de clavier F10 permet d’afficher le premier bouton menu de la fenˆetre ;
8. si un bouton menu est focalis´e par l’application, la barre d’espacement et le retour-chariot permettent de l’activer.
-activebackground activeBackground Foreground -activeforeground activeForeground Background
-anchor anchor Anchor
-background ou -bg background Background
-bitmap bitmap Bitmap
-borderwidth ou -bd borderWidth BorderWidth
-cursor cursor Cursor
-disabledforeground disabledForeground DisabledForeground
-font font Font
-foreground ou -fg foreground Foreground
-highlightbackground highlightBackground HighlightBackground -highlightcolor highlightColor HighlightColor -highlightthickness highlightThickness HighlightThickness
-image image Image
-justify justify Justify
-padx padX Pad
-pady padY Pad
-relief relief Relief
-takefocus takeFocus TakeFocus
-text text Text
-textvariable textVariable Variable
-underline underline Underline
-wraplength wrapLength WrapLength
Tab. 10 – Options standard reconnues par les composants de type menubutton. Si l’´etat d’un bouton menu est disabled, aucune des actions mentionn´ees ne se produit. Les comportements d´ecrits sont les comportements par d´efaut et peuvent toujours ˆetre modifi´es en d´efinissant de nouvelles liaisons pour des composants particuliers ou en red´efinissant les liaisons de classe.
Options standard
Les options standard support´ees par les composants de type menubutton sont rassembl´ees dans le tableau 10. Ces options sont d´ecrites en d´etail `a la page142.
Options sp´ecifiques
-direction direction Direction
Sp´ecifie l’endroit o`u le menu doit apparaˆıtre. La valeur d’option above essaie de faire surgir le menu au-dessus du bouton menu et la valeur below en dessous. De mˆeme, si l’option prend les valeurs left ou right, le menu essaiera d’apparaˆıtre respectivement `a gauche ou `a droite du bouton menu. Enfin la valeur flush fait apparaˆıtre le menu directement au-dessus du bouton.
-height height Height Sp´ecifie une hauteur pour le bouton menu. Si une image ou un bitmap est affich´e dans le bouton menu, la valeur est mesur´ee en unit´es d’´ecran ; pour du texte elle est mesur´ee en lignes de texte. Si cette option n’est pas sp´ecifi´ee, la hauteur pour le bouton menu est calcul´ee `a partir de la taille de l’image, du bitmap ou du texte qu’il contient.
-indicatoron indicatorOn IndicatorOn
Cette option doit prendre une valeur bool´eenne valide. Si cette valeur est true, un petit indicateur rectangulaire sera affich´e `a la droite du bouton de menu et les liaisons par d´efaut le traiteront comme un bouton de menu d’options. Si la valeur est false, aucun indicateur ne sera affich´e.
-menu menu MenuName
Sp´ecifie le nom de chemin du menu associ´e `a ce bouton menu. Le menu doit ˆetre un enfant du bouton menu.
-state state State
Sp´ecifie l’un des trois ´etats normal, active ou disabled pour le bouton menu. Dans l’´etat normal, le bouton menu est affich´e en utilisant les options foreground et background. Dans l’´etat activ´e (typiquement utilis´e lorsque le curseur de la souris se trouve au-dessus du bouton menu), le bouton menu est affich´e en utilisant les options activeForeground et activeBackground. Dans l’´etat d´esactiv´e, les options disabledForeground et background d´eterminent la fa¸con dont le bouton menu est affich´e.
-width width Width
Sp´ecifie une largeur pour le bouton menu. Si une image ou un bitmap est affich´e dans le bouton menu, la valeur est mesur´ee en unit´es d’´ecran ; pour du texte, elle est mesur´ee en nombre de caract`eres. Si cette option n’est pas sp´ecifi´ee, la largeur du bouton menu est calcul´ee `a partir de la taille de l’image, du bitmap ou du texte qu’il contient.
message
Permet de cr´eer et de manipuler des messages graphiques.
Syntaxe
message cheminMessage?options?
Description
La commande message cr´ee une nouvelle fenˆetre (indiqu´ee par l’argument che- minMessage) et en fait un composant graphique de type message. On peut sp´ecifier des options suppl´ementaires soit par une ligne de commandes, soit directement dans la base de ressources pour configurer certaines caract´eristiques du message telles que la couleur, la police, le texte, le relief initial etc. La commande message ren- voie la valeur de son argument cheminMessage. Au moment de son invocation, il ne doit exister aucune autre fenˆetre nomm´ee cheminMessage, mais en revanche l’objet parent de cheminMessage doit exister effectivement.
Un message est un composant graphique qui affiche une petite chaˆıne de texte. Il poss`ede trois caract´eristiques principales :
– il coupe les lignes de fa¸con `a proportionner le texte dans la fenˆetre. Les coupures sont faites autant que possible entre les mots. On peut forcer une coupure de ligne en utilisant le caract`ere de saut de ligne ;
– le texte peut ˆetre justifi´e `a gauche, centr´e ou justifi´e `a droite ;
– les fenˆetres de messages g`erent les caract`eres de contrˆole et les caract`eres non imprimables de fa¸con particuli`ere. Les caract`eres de tabulation et de saut de ligne ont l’effet habituel. Les autres caract`eres dont le code Ascii est inf´erieur `a 0x20 (32 en d´ecimal) sont affich´es sous la forme \xhh o`u hh est le nombre hexad´ecimal correspondant au caract`ere. Il en va de mˆeme des caract`eres absents de la fonte utilis´ee.
On notera que les tabulations sont `a ´eviter dans un texte centr´e ou justifi´e `a droite.