Vous êtes à peu près ici : Accueil  »   tutoriel PyGTK  »   PyGTK : sommaire

23.2. Format du fichier rc GTK

Le format du fichier rc GTK+ est illustré dans la Section 23.3, « Exemple de fichier rc » ci-dessous. C'est le fichier testgtkrc de la distribution GTK+, avec quelques commentaires et ajouts. Il est possible d'ajouter cette explication dans son application pour permettre à l'utilisateur de parfaire ses réglages.

Plusieurs commandes permettent de modifier les attributs d'un widget.

De plus, un widget possède plusieurs états, il est possible de définir différentes couleurs, mosaïques de pixmap et polices pour chaque état. Ces états sont les suivants :

NORMAL

L'état normal d'un widget, la souris n'est pas au-dessus, il n'est pas enfoncé, etc.

PRELIGHT

Lorsque le widget est survolé par la souris, les couleurs définies pour cet état seront utilisées.

ACTIVE

Lorsque le widget est cliqué ou enfoncé, il devient actif et les attributs définis pour cet état seront utilisés.

INSENSITIVE

Lorsqu'un widget est marqué "insensible", et ne peut être activé, il prendra ces attributs

SELECTED

Quand un objet est sélectionné, il prend ces attributs.

Quand on utilise les mots-clé "fg" et "bg" pour définir les couleurs des widgets, il faut respecter ce format :

  fg[<STATE>] = { Rouge, Vert, Bleu }

... où STATE est un des états ci-dessus (PRELIGHT, ACTIVE, etc), Rouge, Vert et Bleu sont des valeurs dans l'intervalle 0 - 1.0 ; {1.0,1.0,1.0} est le blanc. Elles doivent être au format décimal, sinon leur valeur est mise à 0, ainsi un simple "1" n'est pas correct, ce doit être "1.0". Un simple "0" fonctionne parce que les valeurs non reconnues sont mises à 0.

Le paramètre bg_pixmap est très semblable au précédent, mais les couleurs sont remplacées par un nom de fichier.

pixmap_path est une liste de chemins séparés par un ":". Ces chemins sont ceux où seront recherchés les pixmaps indiqués.

La commande "font" est simple :

  font = "<font name>"

La partie la plus difficile est de trouver le contenu de la chaîne font. Utiliser le programme xfontsel ou un utilitaire équivalent devrait faciliter la tâche.

La commande "widget_class" définit le style d'une classe de widgets. Ces classes sont énumérées dans la Section 5.1, « Hiérarchie des widgets » de la vue d'ensemble des widgets.

La commande "widget" applique un style donné à un ensemble de widgets portant un nom spécifique, quel que soit le style normal de cette classe de widgets. Ces widgets sont enregistrés dans l'application avec la methode set_name(). Ceci permet de modifier les attributs d'un widget au coup par coup plutôt que de définir les attibuts d'une toute une classe de widgets. Je vous recommande de documenter chacun de ces widgets spécifiques, permettant ainsi à l'utilisateur de les personnaliser.

Quand on utilise le mot-clé parent comme attribut, le widget utilise les attributs de son parent dans l'application.

Lorsqu'on définit un style, on peut attribuer les éléments d'un style déjà défini à ce nouveau style.

  style "main_button" = "button"
  {
    font = "-adobe-helvetica-medium-r-normal--*-100-*-*-*-*-*-*"
    bg[PRELIGHT] = { 0.75, 0, 0 }
  }

Cet exemple utilise le style "button" et crée un nouveau style "main_button" simplement en modifiant la police et la couleur d'arrière-plan de l'état préselectionné (PRELIGHT) du style "button".

Naturellement, beaucoup de ces attributs ne s'appliquent pas à tous les widgets. C'est une simple question de bon sens. Ce qui peut s'appliquer devrait fonctionner.