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

23.3. Exemple de fichier rc

# -*- coding:utf-8 -*-      
# pixmap_path "<dir 1>:<dir 2>:<dir 3>:..."
#
pixmap_path "/usr/include/X11R6/pixmaps:/home/images/pixmaps"
#
# style <name> [= <name>]
# {
#   <option>
# }
#
# widget <widget_set> style <style_name>
# widget_class <widget_class_set> style <style_name>

# Voici la liste de tous les états possibles. 
# Certains ne s'appliquent pas à tous les widgets
#
# 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.
#
# À partir de ces états, on peut définir les attributs des widgets pour 
# chacun d'eux avec les commandes suivantes :
#
# fg - indique la couleur de premier plan d'un widget.
# fg - indique la couleur d'arrière-plan d'un widget.
# bg_pixmap - l'arrière plan du widget est une image en mosaïque.
# font - définit la police utilisée avec ce widget.
#

# Ceci crée un style appelé "button". Le nom n'a pas réellement 
# d'importance, il est assigné aux widgets en cours à la fin du fichier.

style "window"
{
  # Ceci remplit l'espacement autour de la fenêtre avec l'image indiquée.
  #bg_pixmap[<STATE>] = "<pixmap filename>"
  bg_pixmap[NORMAL] = "warning.xpm"
}

style "scale"
{
  # Donne la valeur rouge à la couleur de premier plan (la couleur 
  # de police) dans l'état "NORMAL".
  
  fg[NORMAL] = { 1.0, 0, 0 }
  
  # Donne à ce widget la même image de fond que celle de son parent.
  bg_pixmap[NORMAL] = "<parent>"
}

style "button"
{
  # Ceci montre tous les états possibles d'un bouton. Le seul 
  # qui ne s'applique pas dans ce cas est l'état "SELECTED".
  
  fg[PRELIGHT] = { 0, 1.0, 1.0 }
  bg[PRELIGHT] = { 0, 0, 1.0 }
  bg[ACTIVE] = { 1.0, 0, 0 }
  fg[ACTIVE] = { 0, 1.0, 0 }
  bg[NORMAL] = { 1.0, 1.0, 0 }
  fg[NORMAL] = { .99, 0, .99 }
  bg[INSENSITIVE] = { 1.0, 1.0, 1.0 }
  fg[INSENSITIVE] = { 1.0, 0, 1.0 }
}

# Dans cet exemple, le style "main_button" hérite des attributs 
# du style "button" et ensuite, on remplace les couleurs de police 
# et d'arrière-plan de l'état "PRELIGHT"

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

style "toggle_button" = "button"
{
  fg[NORMAL] = { 1.0, 0, 0 }
  fg[ACTIVE] = { 1.0, 0, 0 }
  
  # Ceci définit comme image d'arrière-plan du bouton à bascule, celle 
  # de son parent (tel qu'il est défini dans l'application).
  bg_pixmap[NORMAL] = "<parent>"
}

style "text"
{
  bg_pixmap[NORMAL] = "marble.xpm"
  fg[NORMAL] = { 1.0, 1.0, 1.0 }
}

style "ruler"
{
  font = "-adobe-helvetica-medium-r-normal--*-80-*-*-*-*-*-*"
}

# pixmap_path "~/.pixmaps"

# Les lignes suivantes indiquent aux widgets d'utiliser les styles 
# définis ci-dessus. 
# Les types de widget sont énumérés dans la hiérarchie des classes, 
# mais on pourrait aussi les rappeler dans ce document pour servir 
# de référence aux utilisateurs.

widget_class "GtkWindow" style "window"
widget_class "GtkDialog" style "window"
widget_class "GtkFileSelection" style "window"
widget_class "*Gtk*Scale" style "scale"
widget_class "*GtkCheckButton*" style "toggle_button"
widget_class "*GtkRadioButton*" style "toggle_button"
widget_class "*GtkButton*" style "button"
widget_class "*Ruler" style "ruler"
widget_class "*GtkText" style "text"

# Cette ligne donne à tous les boutons, enfants de la fenêtre 
# principale ("main window"), le style main_button. Ceux-ci doivent 
# être renseignés pour en profiter.
widget "main window.*GtkButton*" style "main_button"