Resource Files: GTK+ 2 Reference Manual

## Resource Files Resource Files |

## Functions

GScanner * | gtk_rc_scanner_new ()
GtkStyle * | gtk_rc_get_style ()
GtkStyle * | gtk_rc_get_style_by_paths ()
void | gtk_rc_add_widget_name_style ()
void | gtk_rc_add_widget_class_style ()
void | gtk_rc_add_class_style ()
void | gtk_rc_parse_string ()
gboolean | gtk_rc_reparse_all ()
gboolean | gtk_rc_reparse_all_for_settings ()
void | gtk_rc_reset_styles ()
gchar ** | gtk_rc_get_default_files ()
guint | gtk_rc_parse_color ()
guint | gtk_rc_parse_color_full ()
guint | gtk_rc_parse_state ()
guint | gtk_rc_parse_priority ()
gchar * | gtk_rc_find_module_in_path ()
gchar * | gtk_rc_find_pixmap_in_path ()
gchar * | gtk_rc_get_module_dir ()
gchar * | gtk_rc_get_im_module_path ()
gchar * | gtk_rc_get_im_module_file ()
gchar * | gtk_rc_get_theme_dir ()
GtkRcStyle * | gtk_rc_style_new ()
GtkRcStyle * | gtk_rc_style_copy ()
void | gtk_rc_style_ref ()
void | gtk_rc_style_unref ()

## Types and Values

| GtkRcStyle
enum | GtkRcFlags
enum | GtkRcTokenType
#define | gtk_rc_parse
#define | gtk_rc_add_default_file
#define | gtk_rc_set_default_files

## Object Hierarchy

        GObject
        ╰── GtkRcStyle

## Includes

    #include <gtk/gtk.h>

## Description

## Functions

### gtk_rc_scanner_new ()

    GScanner *
    gtk_rc_scanner_new (void);

### gtk_rc_get_style ()

    GtkStyle *
    gtk_rc_get_style (GtkWidget *widget);

Finds all matching RC styles for a given widget, composites them together, and then creates a GtkStyle representing the composite appearance. (GTK+ actually keeps a cache of previously created styles, so a new style may not be created.)

#### Parameters

widget | a GtkWidget |

#### Returns

the resulting style. No refcount is added to the returned style, so if you want to save this style around, you should add a reference yourself.

[transfer none]

### 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);

Creates up a GtkStyle from styles defined in a RC file by providing the raw components used in matching. This function may be useful when creating pseudo-widgets that should be themed like widgets but don't actually have corresponding GTK+ widgets. An example of this would be items inside a GNOME canvas widget.

The action of `gtk_rc_get_style()` is similar to:

    1
    2
    3
    4
    5
    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));

#### Parameters

settings | a GtkSettings object |
widget_path | the widget path to use when looking up the style, or `NULL` if no matching against the widget path should be done. | [allow-none]
class_path | the class path to use when looking up the style, or `NULL` if no matching against the class path should be done. | [allow-none]
type | a type that will be used along with parent types of this type when matching against class styles, or G_TYPE_NONE |

#### Returns

A style created by matching with the supplied paths, or `NULL` if nothing matching was specified and the default style should be used. The returned value is owned by GTK+ as part of an internal cache, so you must call `g_object_ref()` on the returned value if you want to keep a reference to it.

[transfer none]

### gtk_rc_add_widget_name_style ()

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

`gtk_rc_add_widget_name_style` is deprecated and should not be used in newly-written code.

### gtk_rc_add_widget_class_style ()

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

`gtk_rc_add_widget_class_style` is deprecated and should not be used in newly-written code.

### gtk_rc_add_class_style ()

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

`gtk_rc_add_class_style` is deprecated and should not be used in newly-written code.

### gtk_rc_parse_string ()

    void
    gtk_rc_parse_string (const gchar *rc_string);

### gtk_rc_reparse_all ()

    gboolean
    gtk_rc_reparse_all (void);

If the modification time on any previously read file for the default GtkSettings has changed, discard all style information and then reread all previously read RC files.

#### Returns

`TRUE` if the files were reread.

### gtk_rc_reparse_all_for_settings ()

    gboolean
    gtk_rc_reparse_all_for_settings (GtkSettings *settings,
                                     gboolean force_load);

If the modification time on any previously read file for the given GtkSettings has changed, discard all style information and then reread all previously read RC files.

#### Parameters

settings | a GtkSettings |
force_load | load whether or not anything changed |

#### Returns

`TRUE` if the files were reread.

### gtk_rc_reset_styles ()

    void
    gtk_rc_reset_styles (GtkSettings *settings);

This function recomputes the styles for all widgets that use a particular GtkSettings object. (There is one GtkSettings object per GdkScreen, see `gtk_settings_get_for_screen()`); It is useful when some global parameter has changed that affects the appearance of all widgets, because when a widget gets a new style, it will both redraw and recompute any cached information about its appearance. As an example, it is used when the default font size set by the operating system changes. Note that this function doesn't affect widgets that have a style set explicitely on them with `gtk_widget_set_style()`.

#### Parameters

settings | a GtkSettings |

Since: 2.4

### gtk_rc_get_default_files ()

    gchar **
    gtk_rc_get_default_files (void);

Retrieves the current list of RC files that will be parsed at the end of `gtk_init()`.

#### Returns

A `NULL`-terminated array of filenames. This memory is owned by GTK+ and must not be freed by the application. If you want to store this information, you should make a copy.

[transfer none][array zero-terminated=1][element-type filename]

### gtk_rc_parse_color ()

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

Parses a color in the format expected in a RC file.

Note that theme engines should use `gtk_rc_parse_color_full()` in order to support symbolic colors.

#### Parameters

scanner | a GScanner |
color | a pointer to a GdkColor structure in which to store the result. | [out]

#### Returns

`G_TOKEN_NONE` if parsing succeeded, otherwise the token that was expected but not found

### gtk_rc_parse_color_full ()

    guint
    gtk_rc_parse_color_full (GScanner *scanner,
                             GtkRcStyle *style,
                             GdkColor *color);

Parses a color in the format expected in a RC file. If `style` is not `NULL`, it will be consulted to resolve references to symbolic colors.

#### Parameters

scanner | a GScanner |
style | a GtkRcStyle, or `NULL`. | [allow-none]
color | a pointer to a GdkColor structure in which to store the result. | [out]

#### Returns

`G_TOKEN_NONE` if parsing succeeded, otherwise the token that was expected but not found

Since: 2.12

### gtk_rc_parse_state ()

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

### gtk_rc_parse_priority ()

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

### gtk_rc_find_module_in_path ()

    gchar *
    gtk_rc_find_module_in_path (const gchar *module_file);

Searches for a theme engine in the GTK+ search path. This function is not useful for applications and should not be used.

#### Parameters

module_file | name of a theme engine |

#### Returns

The filename, if found (must be freed with `g_free()`), otherwise `NULL`.

### gtk_rc_find_pixmap_in_path ()

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

Looks up a file in pixmap path for the specified GtkSettings. If the file is not found, it outputs a warning message using `g_warning()` and returns `NULL`.

#### Parameters

settings | a GtkSettings |
scanner | Scanner used to get line number information for the warning message, or `NULL` |
pixmap_file | name of the pixmap file to locate. |

#### Returns

the filename.

### gtk_rc_get_module_dir ()

    gchar *
    gtk_rc_get_module_dir (void);

Returns a directory in which GTK+ looks for theme engines. For full information about the search for theme engines, see the docs for `GTK_PATH` in

Running GTK+ Applications(3).

#### Returns

the directory. (Must be freed with `g_free()`)

### gtk_rc_get_im_module_path ()

    gchar *
    gtk_rc_get_im_module_path (void);

Obtains the path in which to look for IM modules. See the documentation of the `GTK_PATH` environment variable for more details about looking up modules. This function is useful solely for utilities supplied with GTK+ and should not be used by applications under normal circumstances.

#### Parameters

returns | a newly-allocated string containing the path in which to look for IM modules. |

### gtk_rc_get_im_module_file ()

    gchar *
    gtk_rc_get_im_module_file (void);

Obtains the path to the IM modules file. See the documentation of the `GTK_IM_MODULE_FILE` environment variable for more details.

#### Parameters

returns | a newly-allocated string containing the name of the file listing the IM modules available for loading |

### gtk_rc_get_theme_dir ()

    gchar *
    gtk_rc_get_theme_dir (void);

### gtk_rc_style_new ()

    GtkRcStyle *
    gtk_rc_style_new (void);

### gtk_rc_style_copy ()

    GtkRcStyle *
    gtk_rc_style_copy (GtkRcStyle *orig);

Makes a copy of the specified GtkRcStyle. This function will correctly copy an RC style that is a member of a class derived from GtkRcStyle.

#### Parameters

orig | the style to copy |

#### Returns

the resulting GtkRcStyle.

[transfer full]

### gtk_rc_style_ref ()

    void
    gtk_rc_style_ref (GtkRcStyle *rc_style);

`gtk_rc_style_ref` is deprecated and should not be used in newly-written code.

### gtk_rc_style_unref ()

    void
    gtk_rc_style_unref (GtkRcStyle *rc_style);

`gtk_rc_style_unref` is deprecated and should not be used in newly-written code.

## Types and Values

### 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;

### enum GtkRcFlags

#### Members

GTK_RC_FG |  |
GTK_RC_BG |  |
GTK_RC_TEXT |  |
GTK_RC_BASE |  |

### enum GtkRcTokenType

#### Members

GTK_RC_TOKEN_INVALID |  |
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 |  |

### gtk_rc_parse

    #define gtk_rc_parse gtk_rc_parse_utf8

### gtk_rc_add_default_file

    #define gtk_rc_add_default_file gtk_rc_add_default_file_utf8

Adds a file to the list of files to be parsed at the end of `gtk_init()`.

#### Parameters

filename | the pathname to the file. If `filename` is not absolute, it is searched in the current directory. |

### gtk_rc_set_default_files

    #define gtk_rc_set_default_files gtk_rc_set_default_files_utf8

Sets the list of files that GTK+ will read at the end of `gtk_init()`.

#### Parameters

filenames | A `NULL`-terminated list of filenames. |