Tiré de GTK+ Reference Manual             

acryline 2007 Boosteur de petits projets

Fichiers ressource

Fichiers ressource — Routines pour manipuler les fichiers ressources. (proplème de traduction de "to match" = associer, lier, accorder ....?)

Synopsis


#include <gtk/gtk.h>


GtkRcStyle;
enum GtkRcFlags;
enum GtkRcTokenType;
GScanner* gtk_rc_scanner_new (void);
GtkStyle* gtk_rc_get_style (GtkWidget *widget);
GtkStyle* gtk_rc_get_style_by_paths (GtkSettings *settings,
const char *widget_path,
const char *class_path,
GType type);
void gtk_rc_add_widget_name_style (GtkRcStyle *rc_style,
const gchar *pattern);
void gtk_rc_add_widget_class_style (GtkRcStyle *rc_style,
const gchar *pattern);
void gtk_rc_add_class_style (GtkRcStyle *rc_style,
const gchar *pattern);
void gtk_rc_parse (const gchar *filename);
void gtk_rc_parse_string (const gchar *rc_string);
gboolean gtk_rc_reparse_all (void);
gboolean gtk_rc_reparse_all_for_settings (GtkSettings *settings,
gboolean force_load);
void gtk_rc_reset_styles (GtkSettings *settings);
void gtk_rc_add_default_file (const gchar *filename);
gchar** gtk_rc_get_default_files (void);
void gtk_rc_set_default_files (gchar **filenames);
guint gtk_rc_parse_color (GScanner *scanner,
GdkColor *color);
guint gtk_rc_parse_state (GScanner *scanner,
GtkStateType *state);
guint gtk_rc_parse_priority (GScanner *scanner,
GtkPathPriorityType *priority);
gchar* gtk_rc_find_module_in_path (const gchar *module_file);
gchar* gtk_rc_find_pixmap_in_path (GtkSettings *settings,
GScanner *scanner,
const gchar *pixmap_file);
gchar* gtk_rc_get_module_dir (void);
gchar* gtk_rc_get_im_module_path (void);
gchar* gtk_rc_get_im_module_file (void);
gchar* gtk_rc_get_theme_dir (void);
GtkRcStyle* gtk_rc_style_new (void);
GtkRcStyle* gtk_rc_style_copy (GtkRcStyle *orig);
void gtk_rc_style_ref (GtkRcStyle *rc_style);
void gtk_rc_style_unref (GtkRcStyle *rc_style);

Object Hierarchy

GObject
+----GtkRcStyle

Description

GTK+ fournit un mécanisme de fichier ressource pour configurer les différents aspects des opérations des  applications GTK+ pendant le temps d'exécution.

Fichiers par défaut

Une application peut demander à GTK+ d'analyser un fichier RC spécifique en appelant  gtk_rc_parse(). En plus de cela, certains fichiers seront lus à la fin de gtk_init(). En dehors de toutes modifications, les fichiers recherchés seront  <SYSCONFDIR>/gtk-2.0/gtkrc et .gtkrc-2.0 dans le répertoire "home" des utilisateurs. (<SYSCONFDIR> par défaut pour /usr/local/etc. Cela peut être modifié avec les options --prefix ou --sysconfdir pendant la configuration de GTK+.) Notez que les noms de fichiers contiennent aussi le numéro de  version  2.0, tous les 2.x versions de GTK+ ressemblent à ces fichiers.

L'ensemble de ces fichiers par  défaut peuvent être recherchés avec gtk_rc_get_default_files() et modifiés avec  gtk_rc_add_default_file() et gtk_rc_set_default_files(). De plus, la variable d'environnement GTK2_RC_FILES peut être définit en liste  G_SEARCHPATH_SEPARATOR_S séparée de fichiers pour remplacer l'ensemble des fichiers par défaut du runtime.

Pour chaque fichier ressource, en plus du fichier lui-même, GTK+ cherche  un fichier local spécifique qui est analysé après le fichier principal. Par exemple, si
LANG est défini à ja_JP.ujis, quand le fichier par défaut  est recherché ~/.gtkrc GTK+ cherche  ~/.gtkrc.ja_JP et ~/.gtkrc.ja, et analyse le premier des fichiers existant.

Nom de chemin d'accès et modèles

Un fichier ressource définit un nombre de styles et de touches de raccourci et les lie à des widgets particuliers. Ce lien est réalisé par les déclarations du widget,de la widget_class, et de  class. Comme exemple d'un tel rapport 

widget "mafenetre.*.GtkEntry" style "ma-classe-entree"

attache le style "ma-classe-entree" à tous les widgets pour lequel le chemin de widget associe le modèle "mafenetre.*.GtkEntry".C'est-à-dire, tous les widgets  GtkEntry qui font partie d'un GtkWindow  nommé "mafenetre".

Les modèles sont ici donnés dans une syntaxe standard shell glob. Le caractère générique  "?" remplace tout caractère, alors que  "*" remplace de 0 à plusieurs caractères. Les trois types de remplacement sont à côté du chemin de widget, du chemin de classe et la hiérarchie de classe. (?). Le chemin du widget et le chemin de la classe consiste en une liste séparée par des "." de tous les parents du widget et le widget lui-même , du widget le plus externe au plus interne. La différence est que pour un chemin de widget, le nom assigné par gtk_widget_set_name() est utilisé s'il est présent, autrement le nom de classe du widget est utilisé. Alors que pour le chemin de classe, le nom de classe est toujours utilisé.

Depuis  GTK+ 2.10 les chemins widget_class peuvent aussi contenir des sous-chaînes  <nomdeclasse>, qui associent la classe avec un nom donné et toute classe dérivée. Par exemple,

widget_class "*<GtkMenuItem>.GtkLabel" style "my-style"
associera des widgets GtkLabel qui contiendront toutes sortes d'item menu.

Ainsi, si vous avez nommé un  GtkEntry "monentree", dans un boîte horizontale dans une fenêtre nommée "mafenetre", alors le chemin du widget est : "mafenetre.GtkHBox.monentree" alors que le chemin de classe est : "GtkWindow.GtkHBox.GtkEntry".

L'association avec les classes est un peu différente. Le modèle associe tous les noms de classe dans la hiérarchie des classes de widgets (non pas le dispositif de hiérarchie) en séquence, ainsi le modèle :

class "GtkButton" style "my-style"

n'associera pas juste les widgets  GtkButton , mais aussi les widgets  GtkToggleButton et GtkCheckButton ,comme ces classes dérivent de GtkButton.

De plus, une priorité peut être spécifiée pour chaque modèle, et les styles pourront surclasser d'autres styles d'abord par priorité, puis par le type de modèle et puis par ordre des spécifications (later overrides earlier). Les priorités qui peuvent être spécifiées sont ( plus haut à  plus bas):

highest
rc
theme
application
gtk
lowest

rc est le défaut pour les styles lus dans un fichier RC,  theme est le défaut pour les styles lus dans un fichier RC de thèmes, application doit être utilisé pour des styles qu'une application a défini, et gtk est utilisé pour les styles que  GTK+ a créé en interne.


Optimisation de Style RC Associé.

Chaque fois qu'un widget est  crée et ajouté à un dispositif de hiérarchie d'un GtkWindow ("ancré " pour être exact), une liste de styles RC associés  en dehors de tous les styles RC  read in so far is composed. Pour cela, tout  style RC est associé à des chemins de classe de widgets, au nom de chemin des widgets et à la hiérarchie d'héritage des widgets. Cela a pour conséquence un ralentissement significatif qui peut être causé par l'utilisation de beaucoup de styles RC et par l'utilisation de modèles de style RC  qui sont lents ou compliqués à associer à un widget donné. La liste qui suit fournit un certain nombre de conseils (par ordre d'efficacité)  pour réduire la performance overhead associée avec le style RC lié.

  1. Mettez les modèles RC pour des applications spécifiques dans des fichier RC  consacrés à ces applications et analysez les fichier RC spécifiques à l'application seulement pour des applications qui sont affectés par eux. Ceci réduit la quantité globale des styles RC à  considérer pour une association dans un groupe d'applications.

  2. Fusionnez les styles multiples qui utilisent les même règles d'association, par exemple :

    style "Foo" { foo_content }
    class "X" style "Foo"
    style "Bar" { bar_content }
    class "X" style "Bar"

    est pus rapide à associer ainsi:

    style "FooBar" { foo_content bar_content }
    class "X" style "FooBar"
  3. L'utilisation de caractères génériques devrait être évitée,  ceci peut ramener l'association individuel de style RC à une simple comparaison  de nombre entier dans la plupart des cas.

  4. Pour éviter de complexes association récursives, la spécification de nom de classe complet (pour des associations de class) ou des noms de chemin complet (pour des associations de  widget et de widget_class) est préférable à l'utilisation de noms raccourcis contenant "*" ou "?".

  5. Si c'est vraiment nécessaire, les caractères génériques doivent être utilisés seulement en tête ou à la queue  du modèle. Ceci réduit la complexité de l'association à une  comparaison de chaînes par style RC.

  6. Pendant l'utilisation des caractères génériques, l'utilisation de "?" devrait être préféré à "*". Ceci peut réduire la complexité de l'association de  O(n^2) à O(n). Par exemple "Gtk*Box" peut être transformé en  "Gtk?Box" et  associera encore  GtkHBox et GtkVBox.

  7. L'utilisation du caractère générique  "*" doit être réduite autant que possible, parce que l'association "A*B*C*RestString" peut avoir comme conséquence des association de(n^2) dans le pire des cas.


Déclarations de haut niveau

Un fichier RC est un fichier texte qui est composé de séquences de déclarations. Les caractères '#' délimitent les commentaires et la portion de ligne après un '#' est ignorée pendant l'analyse d'un fichier RC.

Les déclaration de haut niveau possibles sont :

binding name { ... }

Déclare une définition de raccourci.

class pattern [ style | binding ][ : priority ] name

Spécifie un style ou une définition de raccourci  pour une branche particulière de la hiérarchie d'héritage.

include filename

Analyse un autre fichier à ce point. Si filename n'est pas un nom de fichier absolu, il sera recherché dans le répertoire des fichiers RC courants ouverts.

GTK+ essaie aussi de charger une variante spécifique locale du fichier inclu.

module_path path

Définit un chemin (une liste de repertoires séparés par deux points ) qui sera recherché pour des moteurs de thèmes référencés dans les fichiers RC.(??)

pixmap_path path

Définit un chemin (une liste de repertoires séparés par deux points ) qui seront cherchés pour des pixmaps référencés dans les fichiers RC.

im_module_file pathname

Définit le nom du chemin pour le fichier de modules IM. Le définir depuis des fichiers RC est déprécié; vous devez utiliser la variable d'environnement  GTK_IM_MODULE_FILE instead à laplace.

style name [ = parent ] { ... }

Déclare un style.

widget pattern [ style | binding ][ : priority ] name

Spécifie un style ou un ensemble de raccourcis pour un groupe particulier de widgets en associant  le nom de chemin des widgets.

widget_class pattern [ style | binding ][ : priority ] name

Spécifie un style ou un ensemble de raccourcis pour un groupe particulier de widgets en associant  le nom de chemin  class.

setting = value

Spécifie une valeur pour une configuration. Notez que les configurations dans le fichiers RC sont dépassées par les configurations niveau système (lesquelles sont contrôlées par un contrôleur XSettings sur X11)


Styles

Un style RC est spécifié par une déclaration de   style  dans un fichier RC, et ensuite il est relié aux widgets avec une déclaration de widget, de widget_class, ou de class. Tous les styles appliqués à un widget particulier sont  composité de telle façon  que les déclarations de widget dépassant les déclarations de classe de widget qui, à leur tour, dépassent les déclarations de classe. Dans chaque type de déclaration, les déclarations postérieures dépassent les précédentes.

Dans une déclaration de  style , les éléments possibles sont :

bg[state] = color

Définit la couleur utilisée pour le fond de la plupart des widgets.

fg[state] = color

Définit la couleur utilisée pour le premier plan de la plupart des widgets.

base[state] = color

Définit la couleur utilisée pour le fond des widgets qui affiche un texte éditable; Cette couelur est utilisée pour le fonc de,entre autres, GtkText, GtkEntry, GtkList, et GtkCList.

text[state] = color

Définit ma couleur utilisée pour le premier plan des widgets utilisant  base comme couleur de fond.

xthickness = number

Définit l'épaisseur x qui est utilisées pour des valeurs variées de remplissage horizontal dans GTK+.

ythickness = number

Définit l'épaisseur y qui est utilisées pour des valeurs variées de remplissage vertical dans GTK+.

bg_pixmap[state] = pixmap

Définit un pixmap de fond utilisé à la place de la couleur  bg  (ou pour  GtkText, à la place de la couleur  base). La valeur spéciale "<parent>"peut être utilisée pour indiquer que le widget utiliser le même pixmap de fond que ses parents. La valeur spéciale "<none>" peut être utilisée pour indiquer qu'il n'y a pas de pixmap de fond.

font = font

Commence avec  GTK+ 2.0, les déclarations "font" et "fontset"  sont ignorées; utilisez les déclarations "font_name" à la place.

fontset = font

Commence avec  GTK+ 2.0, les déclarations "font" et "fontset"  sont ignorées; utilisez les déclarations "font_name" à la place.

font_name = font

Définit la police pour un widget. font doit être une police Pango, par exemple  "Sans Italic 10". Pour plus de détails au sujet des noms de police Pango, voir pango_font_description_from_string().

stock["stock-id"] = { icon source specifications }

Définit l'icône pour un stock item.

color["color-name"] = color specification

Depuis  2.10, cet élément peut être utilisé pour définir des couleurs symboliques. Voir plus bas pour connaître les caractéristiques de la synthax des couleurs.

engine "engine" { engine-specific settings }

Définit le moteur à utiliser pour dessiner avec ce style.

class::property = value

Definit une  propriété de style pour une classe de widget.

Les couleurs et les pixmaps de fond sont définits comme une fonction de l'état du widget. Les états sont :

NORMAL

Une couleur utilisée pour un widget pour son état normal.

ACTIVE

Une variante de la couleur  NORMAL utilisée quand le widget est dans l'état GTK_STATE_ACTIVE, et aussi pour le creux d'un barre de défilement, onglets d'un block-note autre que l'onglet courant et les secteurs semblables.Souvent, elle c'est une variante plus foncée que la couleur  NORMAL.

PRELIGHT

Une couleur utilisée pour des widgets à l'état  GTK_STATE_PRELIGHT . Cet état est utilisé pour les Boutons et les Items de Menu qui ont le curseur de souris sur eux, et pour leurs enfants.

SELECTED

Une couleur utilisée  mettre en surbrillance les données sélectionnées par l'utilisateur, par exemple, les items sélectionnés dans un widget liste, et la sélection dans un widget d'édition.

INSENSITIVE

Une couleur utilisée pour ke fond des widgets qui ont été désactivés avec  gtk_widget_set_sensitive().

Les couleurs peuvent être définies comme des chaînes contenant un nom de couleur (GTK+ connaît tous les noms des couleurs X de la base de donnée  /usr/lib/X11/rgb.txt), dans une des formes hexadécimal #rrrrggggbbbb, #rrrgggbbb, #rrggbb, ou #rgb, où r, g et b sont des chiffres hécadécimaux, ou ils peuvent être définit comme un triplet  { r, g, b}, où r, g et b sont des entiers compris entre 0 et65535 ou des floats compris entre  0.0 et 1.0.

Depuis 2.10, les couleurs peuvent aussi être définies en se référent à une couleur symbolique, comme ceci : @color-name, ou en utilisant  des expressions pour combiner les couleurs. Les expressions suivantes sont actuellement soutenues :

mix (factor, color1, color2)

Calcule une nouvelle couleur en mixant color1 et color2. Le factor détermine comment la nouvelle couleur s'approche de la couleur color1. Un facteur de  1.0 donne une couleur color1 pure, un facteur de 0.0  donne une couleur color2 pure.

shade (factor, color)

Calcule une variante plus claire ou plus sombre d'une couleur color. Un  factor de 1.0 laisse la couleur inchangée, des facteurs plus petits donnent des couleurs plus foncées, des facteurs plus grands donnent des  couleurs plus claires.

lighter (color)

C'est une abréviation pour  shade (1.3, color).

darker (color)

C'est une abréviation pour  shade (0.7, color).

Voici quelques exemples d'expressions de couleurs :

 mix (0.5, "red", "blue")
shade (1.5, mix (0.3, "#0abbc0", { 0.3, 0.5, 0.9 }))
lighter (@foreground)

Dans une définition de stock, les sources d'icônes sont spécifiées comme des quadruples nom de fichiers images ou de nom d'icônes, une direction de texte, un état de widget, et une taille, dans cet ordre. Chaque source d'icône définit un nom de fichier image ou un nom d'icône à utiliser avec la direction donnée, l'état et la taille. Les noms de fichiers sont définit comme des chaînes de la forme  "itemltr.png", tandis que les noms d'icône (recherchés dans le thème courant d'icônes), sont définis avec une marque @, ainsi  @"item-ltr". Le caractère  *  peut être utilisé en tant que caractère générique, et si direction/état/taille sont omis ils se transforment en * . Ainsi par exemple, ce qui suit définit différentes icônes à utiliser pour des langues à lecture de gauche à droite et à lecture droite à gauche :
stock["mon-stock-item"] = 
{
{ "itemltr.png", LTR, *, * },
{ "itemrtl.png", RTL, *, * }
}

Cela peut être abrègé ainsi :
stock["mon-stock-item"] =
{
{ "itemltr.png", LTR },
{ "itemrtl.png", RTL }
}

Vous pouvez spécifier des icônes créées pour des tailles spécifiques, comme ceci :
stock["mon-stock-item"] = 
{
{ "itemmenusize.png", *, *, "gtk-menu" },
{ "itemtoolbarsize.png", *, *, "gtk-large-toolbar" }
{ "itemgeneric.png" } /* implicit *, *, * as a fallback (comme un retour en arrière)*/
}

Les tailles associées à GTK+ elle-même sont  "gtk-menu", "gtk-small-toolbar", "gtk-large-toolbar", "gtk-button", "gtk-dialog". Les applications peuvent définir d'autres tailles.

Il est aussi possible d'utiliser des icônes créées pour des état données, par exemple :

stock["my-stock-item"] =
{
{ "itemprelight.png", *, PRELIGHT },
{ "iteminsensitive.png", *, INSENSITIVE }, { "itemgeneric.png" } /* implicit *, *, * as a fallback */
}

Pendant la sélection d'une source d'icône à utiliser, GTK+ considèrera que la direction du texte est la plus importante, l'état vient en deuxième, et la taille en troisième. Il sélectionnera la meilleure association basée sur ces critères. Si un attribut s'accorde exactement (c'est à dire que vous avez défini PRELIGHT  ou défini la taille), GTK+ ne modifira pas l'image; si l'attribut s'associe avec un caractère générique, GTK+ dimensionnera ou modifiera l'image pour accorder l'état et la taille à la requête de l'utilisateur.

Raccourcis Clavier

Les raccourcis clavier permettent à l'utilisateur de définir des actions qui seront envoyées en pressant sur des touches particulières. La forme de la définition de déclaration d'un raccourci  est :

binding name 
{
bind key { nondusignal (param, ...)
...
}
...
}

keyest une chaîne composée d'une série de modifieurs suivis pas le nom de la touche. Les modifieurs peuvent être :

<alt>
<ctl>
<control>
<meta>
<hyper>
<super>
<mod1>
<mod2>
<mod3>
<mod4>
<mod5>
<release>
<shft>
<shift>

<shft> est un alias pour  <shift>, <ctl> est un alias pour  <control>, et <alt>est un alias pour  <mod1>.

L'action qui est liée à la touche est une séquence de noms de signaux (chaînes) suivie par des paramètres pour chaque signal. Les signaux doivent êtres des signaux d'action. (voir g_signal_new()). Chaque paramètre peut être un float, un entier, une chaîne, ou une chaîne entre guillemets représentant une énumération. Les types des paramètres spécifiés doivent accorder les types de paramètres du signal.

Les configuration de raccourci sont connectés aux widgets de la même manière que les styles, avec une différence : les configurations de raccourci dépassent les autres  raccourcis définis en premier par le type de modèle, ensuite par priorité et enfin par ordre de spécification. Les priorités  peuvent être définies et leur valeurs par défaut sont les mêmes que pour les styles.

Details

GtkRcStyle


typedef struct 
{
gchar *name;
gchar *bg_pixmap_name[5];
PangoFontDescription *font_desc;
GtkRcFlags color_flags[5];
GdkColor fg[5];
GdkColor bg[5];
GdkColor text[5];
GdkColor base[5];
gint xthickness;
gint ythickness;
} GtkRcStyle;

La structure  GtkRcStyle  est utilisée pour représenter un ensemble d'informations concernant l'apparence d'un widget. Elle peut ensuite être assemblée  avec d'autres sutructures  GtkRcStyle pour former un GtkStyle.


enum GtkRcFlags


typedef enum
{
GTK_RC_FG = 1 << 0,
GTK_RC_BG = 1 << 1,
GTK_RC_TEXT = 1 << 2,
GTK_RC_BASE = 1 << 3
} GtkRcFlags;

L'énumération GtkRcFlags  est utilisée comme un  bitmask pour spécifier quels champs d'un  GtkRcStyle  ont été définis pour chaque état.

GTK_RC_FG S'il est présent, la couleur de premier plan a été définie pour cet état.
GTK_RC_BG S'il est présent, la couleur de fond plan a été définie pour cet état.
GTK_RC_TEXT S'il est présent, la couleur du texte a été définie pour cet état.
GTK_RC_BASE S'il est présent, la couleur de base plan a été définie pour cet état.

enum GtkRcTokenType


typedef enum {
GTK_RC_TOKEN_INVALID = G_TOKEN_LAST,
GTK_RC_TOKEN_INCLUDE,
GTK_RC_TOKEN_NORMAL,
GTK_RC_TOKEN_ACTIVE,
GTK_RC_TOKEN_PRELIGHT,
GTK_RC_TOKEN_SELECTED,
GTK_RC_TOKEN_INSENSITIVE,
GTK_RC_TOKEN_FG,
GTK_RC_TOKEN_BG,
GTK_RC_TOKEN_TEXT,
GTK_RC_TOKEN_BASE,
GTK_RC_TOKEN_XTHICKNESS,
GTK_RC_TOKEN_YTHICKNESS,
GTK_RC_TOKEN_FONT,
GTK_RC_TOKEN_FONTSET,
GTK_RC_TOKEN_FONT_NAME,
GTK_RC_TOKEN_BG_PIXMAP,
GTK_RC_TOKEN_PIXMAP_PATH,
GTK_RC_TOKEN_STYLE,
GTK_RC_TOKEN_BINDING,
GTK_RC_TOKEN_BIND,
GTK_RC_TOKEN_WIDGET,
GTK_RC_TOKEN_WIDGET_CLASS,
GTK_RC_TOKEN_CLASS,
GTK_RC_TOKEN_LOWEST,
GTK_RC_TOKEN_GTK,
GTK_RC_TOKEN_APPLICATION,
GTK_RC_TOKEN_THEME,
GTK_RC_TOKEN_RC,
GTK_RC_TOKEN_HIGHEST,
GTK_RC_TOKEN_ENGINE,
GTK_RC_TOKEN_MODULE_PATH,
GTK_RC_TOKEN_IM_MODULE_PATH,
GTK_RC_TOKEN_IM_MODULE_FILE,
GTK_RC_TOKEN_STOCK,
GTK_RC_TOKEN_LTR,
GTK_RC_TOKEN_RTL,
GTK_RC_TOKEN_COLOR,
GTK_RC_TOKEN_UNBIND,
GTK_RC_TOKEN_LAST
} GtkRcTokenType;
The

L'énumeration GtkRcTokenType  représente des mots-clés dans le fichier RC. Elle est exposé de tel façon que les moteurs de thèmes peuvent réutiliser des mots-clés pendant l'analyse des portions spécifiques  du theme-engine  du fichier RC.


gtk_rc_scanner_new ()


GScanner* 		gtk_rc_scanner_new 		(void);
Retourne :

gtk_rc_get_style ()


GtkStyle* 		gtk_rc_get_style 		(GtkWidget *widget);

Trouve tous les styles RC associés à un widget donné, elle les  sont assemble, et enfin elle crée un  GtkStyle représentant un aspect composé. (GTK+ généralement conserve un cache des styles préalablement créés, ainsi un nouveau style ne peut pas être créé.)

widget : un GtkWidget
Retourne:  style résultant. Aucune référence de compteur n'est ajoutée quand le style est retourné, aussi si vous voulez enregistrer le style, vous devez ajouter une référence vous-même.

gtk_rc_get_style_by_paths ()


GtkStyle* 		gtk_rc_get_style_by_paths 		(GtkSettings *settings,
 const char *widget_path,
 const char *class_path,
 GType type);

Créé un  GtkStyle à partir de styles définies dans un fichier RC en fournissant les composants bruts utilisés dans l'association. Cette fonction peut être utile pendant la création de pseudo-widgets auxquels on associe un thème comme pour les widgets mais qui n'ont pas réellement de widgets correspondants dans GTK+. Un exemple de cela serait les items à l'intérieur d'un widget canevas de GNOME.  

L'action de  gtk_rc_get_style() est semblable à :

gtk_widget_path (widget, NULL, &path, NULL);
gtk_widget_class_path (widget, NULL, &class_path, NULL);
gtk_rc_get_style_by_paths (gtk_widget_get_settings (widget), path, class_path,
G_OBJECT_TYPE (widget));

settings : un objet  GtkSettings 
widget_path : chemin du widget à utiliser pendant la recherche d'un style, ou NULL  si aucune association avec le chemin du widget doit être réalisée.
class_path : chemin de la classe à utiliser pendant la recherche d'un style, ou NULL si aucune association avec le chemin de la classe ne doit être réalisée.
type :  type qui sera utilisé avec les types parents de ce type pendant l'association avec les styles de classe, ou  G_TYPE_NONE
Retourne : style créé par l'association avec les chemins  fournis, ou NULL si aucune association n'est spécifiée et que le style par défaut doit être utilisé. La valeur retournée appartient à GTK+ comme une partie d'un cache interne, aussi vous devez appeler  g_object_ref() sur la valeur retournée si vous voulez conserver une référence pour elle.

gtk_rc_add_widget_name_style ()


void 		gtk_rc_add_widget_name_style 		(GtkRcStyle *rc_style,
 const gchar *pattern);

Attention

gtk_rc_add_widget_name_style est dépréciée et ne doit plus être utilisée dans un code nouvellement écrit.

Ajoute un  GtkRcStyle qui sera recherché par  son association avec un nom de chemin de widget. c'est équivalent à un état : widget PATTERN style STYLE dans un fichier RC.

rc_style :  le GtkRcStyle à utiliser pour le widgets associant  pattern
pattern : le modèle

gtk_rc_add_widget_class_style ()


void 		gtk_rc_add_widget_class_style 		(GtkRcStyle *rc_style,
 const gchar *pattern);

Attention

gtk_rc_add_widget_class_style est dépréciée et ne doit plus être utilisée dans un code nouvellement écrit.

Ajoute un GtkRcStyle qui sera recherché par une association avec le nom de chemin de classe du widget. C'est équivalent à un état : widget_class PATTERN style STYLE dans un fichier RC.

rc_style :  le GtkRcStyle à utiliser pour le widgets associant  pattern
pattern : le modèle

gtk_rc_add_class_style ()


void 		gtk_rc_add_class_style 		(GtkRcStyle *rc_style,
 const gchar *pattern);

Attention

gtk_rc_add_class_style est dépréciée et ne doit plus être utilisée dans un code nouvellement écrit.

Ajoute un  GtkRcStyle qui sera recherché par une association avec la hiérarchie de classe d'un widget. C'est l'équivalent de l'état : class PATTERN style STYLE dans un fichier RC.

rc_style :  le GtkRcStyle à utiliser pour le widgets associant  pattern
pattern : le modèle

gtk_rc_parse ()


void 		gtk_rc_parse 		(const gchar *filename);

Analyse le fichier ressource donné.

filename : nom de fichier d'un fichier à analyser. Si filename n'est pas absolu, le fichier sera rechérché dans le répertoire courant.

gtk_rc_parse_string ()


void 		gtk_rc_parse_string 		(const gchar *rc_string);

Analyse l'information ressource directement à partir d'une chaîne.

rc_string : une chaîne à analyser.

gtk_rc_reparse_all ()


gboolean 		gtk_rc_reparse_all		 (void);

Si le temps de modification ? ( modification time )  sur n'importe quel fichier lu précédemment pour le  GtkSettings par défaut a changé, cette fonction supprime toute information du style et ensuite relit tous les fichiers RC lus prédédemment .

Retourne : TRUE si les fichiers sont relus

gtk_rc_reparse_all_for_settings ()


gboolean 		gtk_rc_reparse_all_for_settings 		(GtkSettings *settings,
 gboolean force_load);

Si le temps de modification ? ( modification time )  sur n'importe quel fichier lu précédemment pour le  GtkSettings donné a changé, cette fonction supprime toute information du style et ensuite relit tous les fichiers RC lus prédédemment .

settings : un  GtkSettings
force_load : charge si oui ou non quelque chose à changé
Retourne : TRUE si les fichiers sont relus

gtk_rc_reset_styles ()


void 		gtk_rc_reset_styles 		(GtkSettings *settings);

Cette fonction recalcule les styles pour tous les widgets qui utilisent un objet  GtkSettings particulier. (Il y a un objet  GtkSettings par  GdkScreen, voir gtk_settings_get_for_screen()); C'est utile quand un paramètre global a changé en affectant l'apparence de tous les widgets, parce que quand un widget prend un nouveau style, elle va redessiner et recalculer toutes les informations sur l'apparence placées dans un cache. Par exemple, elle est utilisée quand la taille de la police par défaut, définie par le système d'exploitation, change. Notez que cette fonction n'a pas d'effet sur les widgets qui ont un style défini explicitement pour eux avec gtk_widget_set_style().

settings : un GtkSettings

Depuis 2.4


gtk_rc_add_default_file ()


void 		gtk_rc_add_default_file 		(const gchar *filename);

Ajoute un fichier à la liste des fichiers à analyser à la fin de gtk_init().

filename : le chemin d'accès au fichier. Si  filename n'est pas absolu, la recherche se fait dans le répertoire couran.

gtk_rc_get_default_files ()


gchar** 		gtk_rc_get_default_files 		(void);

Recherche la liste courante des fichiers RC qui seront analysés à la fin de gtk_init().

Retourne : un tableau de chaînes terminées par  NULL  de nom de fichiers (chemin d'accès) ?. Cette mémoire appartient à GTK+ et ne doit pas être libérée par l'application. Si vous voulez stocker cette information, vous devez faire une copie.

gtk_rc_set_default_files ()


void 		gtk_rc_set_default_files 		(gchar **filenames);

Définit la liste des fichiers que  GTK+ lira à la fin de gtk_init().

filenames :  une liste terminée par NULL de noms de fichiers (chemin d'accès ?)

gtk_rc_parse_color ()


guint 		gtk_rc_parse_color 		(GScanner *scanner,
 GdkColor *color);

Analyse une couleur dans le format prévu dans le fichier RC.

scanner : un GtkScanner
color : un pointeur sur une structure  GtkColor dans laquelle stocker le résultat
Retourne : G_TOKEN_NONE si l'analyse réussit, autrement le mot-clé qui était prévu pas pas trouvé.

gtk_rc_parse_state ()


guint 		gtk_rc_parse_state 		(GScanner *scanner,
 GtkStateType *state);

Analyse une variable  GtkStateType  pour  le  format prévu dans le fichier RC.

scanner : un GtkScanner (doit être initialisé pour analiser un fichier RC)
state : un pointeur sur la variable  GtkStateType  dans laquelle stocker le résultat
Retourne : G_TOKEN_NONE si l'analyse réussit, autrement le mot-clé qui était prévu pas pas trouvé.

gtk_rc_parse_priority ()


guint 		gtk_rc_parse_priority 		(GScanner *scanner,
 GtkPathPriorityType *priority);

Analyse une variable  GtkPathPriorityType  pour le format prévu dans le fichier RC.

scanner : un GtkScanner (doit être initialisé pour analiser un fichier RC)
priority : un pointeur sur la variable  GtkPathPriorityType dans laquelle stocker le résultat
Retourne : G_TOKEN_NONE si l'analyse réussit, autrement le mot-clé qui était prévu pas pas trouvé.

gtk_rc_find_module_in_path ()


gchar* 		gtk_rc_find_module_in_path 		(const gchar *module_file);

Cherche un moteur de thème (a theme engine)dans le chemin de recherche de GTK+. Cette fonction n'est pas utile pour les applications et ne doit pas être utilisée.

module_file : nom du moteur de thème
Retourne : le nom de fichier, s'il est trouvé (doit être libéré avec  g_free()), autrement NULL.

gtk_rc_find_pixmap_in_path ()


gchar* 		gtk_rc_find_pixmap_in_path 		(GtkSettings *settings,
 GScanner *scanner,
 const gchar *pixmap_file);

Cherche le fichier dans le chemin de pixmap pour le  GtkSettings spécifié. Si le fichier n'est pas trouvé, la fonction envoie un message d'alerte en utilisant g_warning() et retourne  NULL.

settings : un GtkSettings
scanner : Scanner utilisé pour obtenir  L'information du numéro de ligne pour le message d'alerte, ou NULL
pixmap_file : nom du fichier pixmap à localiser
Retourne : le nom de fichier

gtk_rc_get_module_dir ()


gchar* 		gtk_rc_get_module_dir 		(void);

Retourne un répertoire dans lequel GTK+ cherche des moteurs de thème. Pour plus d'information au sujet de la recherche de moteurs de thèmes, voir la documentation pour GTK_PATH in Exécuter les application GTK+(3).

Retourne : le répertoire. (Doit être libéré avec g_free())

gtk_rc_get_im_module_path ()


gchar* 		gtk_rc_get_im_module_path 		(void);

Obtient le chemin dans lequel chercher des modules IM. Voir la documentation sur la variable d'environnement GTK_PATH  pour plus de détails sur de la recherche de module. Cette fonction est utile seulement pour les utilitaires fournis  avec  GTK+ et ne devrait pas être utilisée par les applications dans des circonstances normales.

Retourne : une chaîne nouvellement allouée contenant le chemin dans lequel chercher les modules IM.

gtk_rc_get_im_module_file ()


gchar* 		gtk_rc_get_im_module_file 		(void);

Obteint le chemin pour le  fichier de modules IL. Voir la documentation de la variable d'environnement  GTK_IM_MODULE_FILE  pour plus de détails.

Retourne : une chaîne nouvellement allouée contenant le nom du fichier lisatnt les modules IM valides pour le chargement.

gtk_rc_get_theme_dir ()


gchar* 		gtk_rc_get_theme_dir 		(void);

Retourne me répertoire standard dans lequel les thèmes devraient être installés. (GTK+ n'utilse pas réellement ce répertoire elle-même).

Retourne : le répertoire (soit être libéré avec g_free()).

gtk_rc_style_new ()


GtkRcStyle* 		gtk_rc_style_new 		(void);

Crée un nouveau GtkRcStyle avec aucune définition des champs et une référence de compteur à 1.

Retourne : le GtkRcStyle nouvellement créé.

gtk_rc_style_copy ()


GtkRcStyle* 		gtk_rc_style_copy 		(GtkRcStyle *orig);

Fait une copie d'un GtkRcStyle  spécifié. Cette fonction copiera correctement un style RC qui est un membre d'une classe dérivée de GtkRcStyle.

orig : le style à copier
Retourne : le GtkRcStyle résultant 

gtk_rc_style_ref ()


void 		gtk_rc_style_ref 		(GtkRcStyle *rc_style);

Attention

gtk_rc_style_ref est dépréciée et ne doit plus être utilisée dans un code nouvellement écrit. Utilisez  g_object_ref() à la place.

Incrémente le compteur de référence d'un GtkRcStyle.

rc_style : un GtkRcStyle

gtk_rc_style_unref ()


void 		gtk_rc_style_unref 		(GtkRcStyle *rc_style);

Attention

gtk_rc_style_unref est dépréciée et ne doit plus être utilisée dans un code nouvellement écrit.Utilisez g_object_unref() à la place.

Décrémente le compteur de référence d'un GtkRcStyle et libère si le résultat est  0.

rc_style : un GtkRcStyle