Utiliser les fichiers ressource avec GTK

Date de publication : 20/10/2007 , Date de mise à jour : 20/10/2007




III. La synthaxe des fichiers RC
III-A. Les commentaires
III-B. Les pixmaps
III-C. Les définitions de styles
III-D. Les classes


III. La synthaxe des fichiers RC

Le fichier de configuration de style à une synthaxe particulière qui doit être respectée, c'est elle que nous allons étudier ici.


III-A. Les commentaires

Dans un fichier RC, il est possible de placer un commentaire, tout ce qui suit le caractère '#' est un commentaire qui se poursuit jusqu'à la fin de la ligne. Ainsi toutes les lignes qui sont commencées par un '#' sont ignorées par GTK+.


III-B. Les pixmaps

Si l'on désire pouvoir utiliser des images (au formats XPM), il faut d'abord indiquer dans quel répertoires ces fichiers devront être cherchés. Pour cela, on utilise la directive pixmap_path de la manière suivante :

pixmap_path "chemin:absolu:mais:portable:"
en fait la chaîne suivant la directive pixmap_path doit (je pense que vous l'avez compris) des noms de répertoires séparés par deux points(pour des raisons de portabilitées).


III-C. Les définitions de styles

Pour créer un style nommé "mon_style" de toute pièce, il faut utiliser la synthaxe suivante :

style "mon_style"
{
	...
}
Tous les widgets nommés(grâce à la fonction gtk_widget_set_name) "mon_style" utiliserons alors automatiquement ce style pour être dessinés.
Il est également possible de partir d'un style éxistant, de le copier et d'en modifier quelques aspects. Par exemple, pour créer le style "nouveau" à partir du style "ancien", on utilisera cette synthaxe :

style "nouveau" = "ancien"
{
	...
}
les lignes situées entre les accolades définissent les différentes propriétées du style. Chaque propriété est de la forme :

attribut[ETAT] = valeur
attribut peut être fg(foreground, avant plan), bg(background, arrière plan), base, text, font(police de caractère) ou encore bg_pixmap. Les quatres premiers sont les couleurs qui seront utilisées pour les champs correspondant du style. L'attribut font indique la police de caractère qui sera utilisées pour les éléments de texte des widgets de ce style. bg_pixmap est le nom de l'image qui sera utilisé comme fond pour les widgets de ce style. ETAT peut être NORMAL, PRELIGHT, SELECTED ou INSENSITIVE. Ces états sont bien évidement ceux que peut prendre le widget :

Le format de valeur dépend de l'attribut que l'on change. Si l'attribut est une couleur(bg, fg base et text), alors valeur est une suite de deux trois nombres compris entre 0.0 et 1.0 représentant la quantité de rouge de vert et de bleu de la couleur. Ces trois nombres doivent être séparés par une virgule et mis entre accolades. Par exemple si l'on veut que la couleur d'arrière plan des widgets de ce style soit rouge lorsque le widget est en PRELIGHT, on utilisera la ligne suivante :

bg[PRELIGHT] = {1.0, 0.0, 0.0}
Si l'attribut est bg_pixmap, alors valeurs doit contenir le nom de l'image d'entrée entre "". Par exemple, si l'on veut que "background.xpm" soit placé au fond des widgets de ce style lorsqu'ils sont dans l'état NORMAL, alors on utilisera la ligne suivante :

bg_pixmap[NORMAL] = "background.xpm"
Si, à la plca du nom de l'image, on utilise "<parent>", alors l'image est copiée depuis celle du widget qui contiendra les widgets de ce styles.
Pour l'attribut font, le paramètre ETAT n'est pas utilisé car la police de caractère utilisée est la même quel que soit l'état du widget. La valeur utilisée pour l'attribut font est le nom XLFD de la police. On aura par exemple :

font = "-*-agate-*-*-*-*-*-140-*-*-*-*-*-*"

III-D. Les classes

Une fois votre style créé, on peut indiquer à quelles classes s'applique chaque style en utilisant la synthaxe suivante :

widget_class "class" style "style"
La paramètre class est un nom de classe de widget, pouvant éventuellement contenir le caractère joker * qui remplace n'importe qu'elle chaîne de caractères. Par exemple, si l'on veut que toutes les barres de défilement utilise "mon_style", on utilisera la ligne suivante :

widget_class "Gtk*ScrollBar" style "mon_style"
Notez que lorsque l'on utilise gtk_widget_set_name() pour donner un nom à un widget, ce nom est toujours précédé du nom de la classe du widget. Ainsi si l'on donne le nom "Coucou" à un label, le nom complet de ce label sera "GtkLabelCoucou", ainsi pour faire référence aux widgets de la classe Coucou, il est préférable d'employer "*Coucou".



 

Valid XHTML 1.1!Valid CSS!