Le widget
Hugecombo s'utilise à peu près comme le widget
entry standard.
Les différences sont :
- la déclaration du package,
- les options liées à la liste de choix,
- les opérations liées à la liste de choix,
- les bindings liés à la liste de choix.
 
package require Hugecombo |
namespace import ::hugecombo::hugecombo |
hugecombo .hc -values {one two three four} |
.hc list find Huge* |
Les opérations sur la classe
La commande
hugecombo, avec la syntaxe habituelle [
hugecombo pathName args], permet de créer des
Hugecombo.
Elle permet aussi trois autres opérations sur la classe :
 
hugecombo option |
permet de récupérer ou modifier la valeur par défaut ou la description des options du widget |
hugecombo parms |
permet de récupérer ou modifier la valeur par défaut des paramètres de la classe |
hugecombo version |
permet de récupérer le numéro de version de Hugecombo |
 
hugecombo option
 
Cette opération s'applique aux
options du widget et accepte deux options,
get et
set :
 
hugecombo option get |
retourne la liste des options avec les valeurs par défaut |
hugecombo option get key |
retourne la valeur par défaut de l'option key |
hugecombo option set key |
retourne la description de l'option key |
hugecombo option set key value... |
donne la valeur par défaut value à l'option key |
Les valeurs par défaut des options sont prises en compte lors de la création d'une
Hugecombo.
Les valeurs par défaut du widget
Entry sont utilisées pour initialiser la classe, mais ne sont plus utilisées après.
(pour la liste des nouvelles options du widget, voir la section
Les options supplémentaires du widget)
 
hugecombo option get |
set default [hugecombo option get -alternate] |
hugecombo option set -bg beige -alt linen |
 
hugecombo parms
 
Cette opération s'applique aux
paramètres du widget et accepte deux options,
get et
set :
 
hugecombo parms get key |
retourne la valeur par défaut du paramètre key |
hugecombo parms set key value... |
donne la valeur par défaut value au paramètre key |
Les paramètres disponibles sont :
 
nom du paramètre |
valeur par défaut |
description |
TAG1 |
HugeCombo |
classe de binding du megawidget (frame) |
TAG2 |
ComboList |
classe de binding de l'entry subwidget |
TAG3 |
HugeEntry |
classe de binding de la hugelist |
b:borderwidth |
2 |
option borderwidth du subwidget button |
b:highlightthickness |
0 |
option highlightthickness button subwidget option |
b:image |
_hugecombo_ |
option image du subwidget button |
b:relief |
raised |
option relief du subwidget button |
b:width |
16 |
option width du subwidget button |
e:borderwidth |
0 |
option borderwidth du subwidget entry |
e:highlightthickness |
0 |
option highlightthickness du subwidget entry |
e:relief |
flat |
option relief du subwidget entry |
e:selectborderwidth |
0 |
option selectborderwidth du subwidget entry |
l:activestyle |
none |
option activestyle du subwidget hugelist |
l:borderwidth |
0 |
option borderwidth du subwidget hugelist |
l:highlightthickness |
0 |
option highlightthickness du subwidget hugelist |
l:relief |
flat |
option relief du subwidget hugelist |
t:relief |
raised |
option relief du subwidget toplevel |
 
set default [hugecombo parms get b:relief] |
hugecombo parms set b:image button_image |
 
hugecombo version
 
Cette opération retourne le numéro de version de Hugecombo.
 
set version [hugecombo version] |
Les options supplémentaires ou modifiées
-alternatecolor
 
Cette option permet de définir la couleur des lignes paires dans la pick-list.
 
hugecombo .hc -alternatecolor gray95 -values {one two three four} |
 
-compound
 
Cette option permet de réserver la place pour une image à gauche du widget
entry.
Elle prend les valeurs
0
ou
1
.
 
1 |
l'image associée à l'item sélectionné est recopiée à gauche du texte (défaut) |
0 |
la place n'est pas réservée et l'image n'est pas copiée |
 
hugecombo .hc -compound 1 -values {top left right bottom} |
foreach i {0 1 2 3} \ |
{ |
set text [.hc itemcget $i -text] |
image create photo img_$text -file $text.gif |
.hc itemconfig $i -image img_$text |
} |
 
-height
 
Cette option permet de définir le nombre de lignes visibles dans la pick-list.
 
hugecombo .hc -height 4 -values {one two three four} |
 
-image (ou -img)
 
Cette option permet de définir ou supprimer l'image affichée à gauche du texte.
Une valeur vide supprime l'image.
Cette valeur est changée par la prochaine sélection dans la pick-list.
Si l'option compound vaut 0
l'image n'est pas affichée.
 
image create photo img -file img.gif |
hugecombo .hc -image img |
 
-listvariable
 
Cette option permet de déclarer le nom d'une variable qui contient la liste des valeurs.
 
set ::listvar {one two three four} |
hugecombo .hc -listvariable ::listvar |
 
-rowheight
 
Cette option permet de définir la hauteur d'une ligne de la pick-list dans une des formes acceptées par Tk_GetPixels.
 
hugecombo .hc -rowheight 20 -values {one two three four} |
 
-state
 
Cette option accepte une valeur supplémentaire.
Suivant la valeur de l'option, il est possible d'éditer le texte du widget, d'y sélectionner du texte et/ou de choisir une valeur dans la pick-list.
Les couleurs du widget varient suivant la valeur de l'option.
 
valeur |
édition |
sélection |
choix |
couleur |
disabled |
non |
non |
non |
disabled |
normal |
oui |
oui |
oui |
normal |
picklist |
non |
oui |
oui |
normal |
readonly |
non |
oui |
non |
readonly |
Lorsque l'option
state a la valeur
normal
, il est possible d'accéder à une valeur de la pick-list avec des
motifs.
Lorsque l'option
state a la valeur
picklist
, il est possible d'accéder à une valeur de la pick-list en tapant sa première lettre.
(voir la section
Les bindings supplémentaires)
 
hugecombo .hc -state picklist |
 
-values
 
Cette option permet de déclarer la liste des valeurs.
 
hugecombo .hc -values {one two three four} |
Les opérations supplémentaires
component
 
Cette opération permet de récupérer le path de tous les subwidgets du megawidget.
Elle accepte pour paramètre le type du subwidget désiré.
 
button |
retourne le path du subwidget button (bouton) |
canvas |
retourne le path du subwidget canvas (image) |
entry |
retourne le path du subwidget entry (zone de saisie) |
hugelist |
retourne le path du subwidget hugelist (liste) |
listbox |
retourne le path du subwidget hugelist (liste) |
scrollbar |
retourne le path du subwidget scrollbar (ascenseur) |
 
set hl [.hc component list] |
$hl configure -alternate azure |
 
itemconfig
 
Cette opération permet de configurer les items de la Hugelist.
Elle accepte tous les paramètres de l'opération itemconfig de la Hugelist.
C'est à dire :
- tous les paramètres de la listbox de Tk,
- un deuxième index pour configurer une tranche d'items,
- une nouvelle option -image (ou -img) qui permet de définir une image à gauche du texte de l'item,
- une nouvelle option -left qui permet de définir la marge de gauche de l'item,
- une nouvelle option -text qui permet de redéfinir le texte de l'item.
 
.hc itemconfig 0 end -left 10 -image i_down |
.hc itemconfig 4 -image i_left |
.hc itemconfig 4 -text "[.hc itemcget 4 -text] (externe)" |
 
itemcget
 
Cette opération permet de récupérer la valeur des options des items de la Hugelist.
Elle accepte tous les paramètres de l'opération itemcget de la Hugelist.
C'est à dire :
- tous les paramètres de la listbox de Tk,
- une nouvelle option -image (ou -img) qui retourne l'image de l'item,
- une nouvelle option -left qui retourne la marge de gauche de l'item,
- une nouvelle option -text qui retourne le texte de l'item.
 
set img [.hc itemcget 4 -image] |
set text [.hc itemcget 4 -text] |
 
list
 
Cette opération permet de gérer la Hugelist.
 
Les options sont :
 
close |
ferme la liste |
curselection |
retourne l'index de la ligne sélectionnée (ou rien) |
find pattern |
sélectionne le prochain item correspondant au motif (ou ne fait rien) |
open |
ouvre la liste |
select rowindex |
sélectionne la ligne |
 
.hc list open |
set cur [.hc list cursel] |
.hc list find Huge* |
.hc list open |
.hc list select end-1 |
 
load
 
Cette opération permet de charger l'item désigné par l'index dans le widget entry.
Si l'index est omis, c'est l'item sélectionné qui est chargé.
 
 
send
 
Cette opération simule l'envoi d'un caractère symbolique à la Hugecombo.
 
Les clefs symboliques utilisables sont :
 
<Escape> |
ferme la liste |
<Return> |
copie l'item sélectionné et ferme la liste |
<Control-Return> |
sélectionne le prochain item correspondant au motif |
<Control-Home> |
sélectionne le premier item de la liste |
<Prior> |
sélectionne le dernier item de la page précédente |
<Up> |
sélectionne l'item précédent dans la liste |
<Down> |
sélectionne l'item suivant dans la liste |
<Next> |
sélectionne le premier item de la page suivante |
<Control-End> |
sélectionne le dernier item de la liste |
 
.hc send <Control-Return> |
Les bindings supplémentaires
Des bindings supplémentaires permettent de sélectionner un item dans la liste :
 
<Control-Home> |
sélectionne le premier item de la liste |
<Prior> |
sélectionne le dernier item de la page précédente |
<Up> |
sélectionne l'item précédent dans la liste |
<Down> |
sélectionne l'item suivant dans la liste |
<Next> |
sélectionne le premier item de la page suivante |
<Control-End> |
sélectionne le dernier item de la liste |
Des bindings supplémentaires permettent de sélectionner un item dans la pick-list.
Lorsque l'option
state a la valeur
normal
, <Control-Return> permet de sélectionner suivant le motif de type
string match situé dans le widget
entry.
La répétition de <Control-Return> sélectionne l'item suivant qui répond au même motif (s'il en existe un).
Lorsque l'option
state a la valeur
picklist
, l'appui sur une touche permet de sélectionner le prochain item qui commence par le caractère tapé.
La répétition de ce caractère sélectionne l'item suivant qui commencec par ce caractère (s'il en existe un).
 
<Control-Return> |
sélectionne le prochain item correspondant au motif |
<KeyPress> |
sélectionne le prochain item commençant par le caractère |
Des bindings supplémentaires permettent de copier l'item sélectionné dans le widget
entry :
 
<Return> |
copie l'item sélectionné et ferme la liste |
<Double-1> dans la liste |
copie l'item sélectionné et ferme la liste |