next up previous contents
suivant: Les règles monter: Les widgets précédent: Les barres d'état   Table des matières


Sous-sections

La sélection des couleurs

Le widget de sélection de couleurs est, ce n'est pas surprenant, un widget pour sélectionner les couleurs de manière interactive. Ce widget composé laisse l'utilisateur choisir une couleur en manipulant les triplés RGB ( Rouge, Vert, Bleu ) ou HVS ( Teinte, Saturation, Valeur ) On le fait soit en ajustant chacune des valeurs avec un curseur ou avec une entrée texte soit en pointant sur la couleur désirée dans le cercle de teinte-saturation et dans la barre de valeur.

Le widget de sélection de couleurs n'émet qu'un seul signal color_changed qui est émis si la couleur courante du widget change ou quand l'utilisateur la change ou si elle est choisie explicitement à l'aide de la fonction selection_set_color().

Regardons ce que le widget de sélection de couleurs nous propose. Le widget existe sous deux moutures : Gtk::ColorSelection et Gtk::ColorSelectionDialog.

Vous n'utiliserez probablement jamais ce constructeur directement. Il crée juste un widget de sélection de couleurs orphelin que vous aurez à parenter vous-même. Le widget de sélection de couleurs hérite du widget VBox.

C'est le constructeur le plus commun. Il crée une fenêtre de dialogue de sélection de couleur. Elle est composée d'un cadre contenant un widget de sélection de couleurs, un séparateur horizontal, une HBox avec trois boutons, ``Ok'', ``Cancel'' et ``Help''. Vous pouvez atteindre ces boutons en accédant aux widgets ok_button, cancel_button et help_button dans la structure du widget de sélection de couleurs. ( i.e., $colordialog->ok_button ).

Cette fonction déclare la politique de mise à jour. La politique par défaut est 'continuous' qui signifie que la couleur courante est mise à jour continuellement quand l'utilisateur prend le curseur, clique sur la souris, se déplace dans le cercle de teinte-saturation ou la barre de valeur. Si vous rencontrez des problèmes de performance, n'hésitez pas à choisir 'discontinuous' ou 'delayed'.

Le widget de sélection de couleurs supporte le réglage de l'opacité d'une couleur ( également connu comme courbe alpha ). Ce n'est pas disponible par défaut. Appeler cette fonction avec une valeur de $use_opacity permet l'opacité. De même, une valeur fausse rend l'opacité indisponible.

Vous pouvez déclarer explicitement la couleur courante en appelant cette fonction avec une liste de couleur. La longueur de l'array, dépend si l'opacité est disponible ou non. La position 0 contient la composante de rouge, 1 celle de vert, 2 celle de bleu ( seulement si l'opacité est disponible ). Toutes les valeurs sont comprises entre 0.0 et 1.0.

Quand vous voulez vous renseigner sur la couleur actuelle, typiquement quand vous avez reçu le signal color_changed, vous pouvez utiliser cette fonction. Une liste de couleurs à remplir est retournée. Voir set_color() pour avoir une description de cette liste.

Exemple

Voici un exemple simple montrant l'usage d'une fenêtre de dialogue de sélection de couleurs. Ce programme affiche une fenêtre contenant une zone de dessin. Si vous cliquez dessus ouvre une fenêtre de sélection de couleurs et changer la couleur dans cette fenêtre de dialogue change la couleur de fond de la zone de dessin. En bonus, il affiche les couleurs au format hexadécimal utilisé en HTML. Avec ce format, les deux premiers caractères sont la valeur de la composante rouge, les deux suivants celle de vert et les deux derniers celle de bleu.

Un bon exercice serait de changer le label en une entrée texte afin de vous permettre de saisir une couleur HTML et de changer la couleur de la zone de dessin en accord. Vous pourriez aussi vérifier que la couleur HTML entrée est valide.

Color Dialog Example

Color Selection Dialog


next up previous contents
suivant: Les règles monter: Les widgets précédent: Les barres d'état   Table des matières
LE BORGNE Patrice 2001-01-11