1 <!-- ##### SECTION Title ##### -->
4 <!-- ##### SECTION Short_Description ##### -->
5 Routines for handling resource files
7 <!-- ##### SECTION Long_Description ##### -->
9 GTK+ provides resource file mechanism for configuring
10 various aspects of the operation of a GTK+ program
14 <refsect2><title>Default files</title>
16 An application can cause GTK+ to parse a specific RC
17 file by calling gtk_rc_parse(). In addition to this,
18 certain files will be read at the end of gtk_init().
19 Unless modified, the files looked for will be
20 <filename><SYSCONFDIR>/gtk-2.0/gtkrc</filename>
21 and <filename>.gtkrc-3.0</filename> in the users home directory.
22 (<filename><SYSCONFDIR></filename> defaults to
23 <filename>/usr/local/etc</filename>. It can be changed with the
24 <option>--prefix</option> or <option>--sysconfdir</option> options when
28 The set of these <firstterm>default</firstterm> files
29 can be retrieved with gtk_rc_get_default_files()
30 and modified with gtk_rc_add_default_file() and
31 gtk_rc_set_default_files().
32 Additionally, the <envar>GTK2_RC_FILES</envar> environment variable
33 can be set to a #G_SEARCHPATH_SEPARATOR_S-separated list of files
34 in order to overwrite the set of default files at runtime.
36 <para><anchor id="locale-specific-rc"/>
37 For each RC file, in addition to the file itself, GTK+ will look for
38 a locale-specific file that will be parsed after the main file.
39 For instance, if <envar>LANG</envar> is set to <literal>ja_JP.ujis</literal>,
40 when loading the default file <filename>~/.gtkrc</filename> then GTK+ looks
41 for <filename>~/.gtkrc.ja_JP</filename> and <filename>~/.gtkrc.ja</filename>,
42 and parses the first of those that exists.
46 <refsect2><title>Pathnames and patterns</title>
47 <anchor id="gtkrc-pathnames-and-patterns"/>
49 A resource file defines a number of styles and key bindings and
50 attaches them to particular widgets. The attachment is done
51 by the <literal>widget</literal>, <literal>widget_class</literal>,
52 and <literal>class</literal> declarations. As an example
55 <informalexample><programlisting>
56 widget "mywindow.*.GtkEntry" style "my-entry-class"
57 </programlisting></informalexample>
59 attaches the style <literal>"my-entry-class"</literal> to all
60 widgets whose <firstterm>widget path</firstterm> matches the
61 <firstterm>pattern</firstterm> <literal>"mywindow.*.GtkEntry"</literal>.
62 That is, all #GtkEntry widgets which are part of a #GtkWindow named
63 <literal>"mywindow"</literal>.
67 The patterns here are given in the standard shell glob syntax.
68 The <literal>"?"</literal> wildcard matches any character, while
69 <literal>"*"</literal> matches zero or more of any character.
70 The three types of matching are against the widget path, the
71 <firstterm>class path</firstterm> and the class hierarchy. Both the
72 widget path and the class path consist of a <literal>"."</literal>
73 separated list of all the parents of the widget and the widget itself
74 from outermost to innermost. The difference is that in the widget path,
75 the name assigned by gtk_widget_set_name() is used if present, otherwise
76 the class name of the widget, while for the class path, the class name is
80 Since GTK+ 2.10,<literal>widget_class</literal> paths can also contain
81 <literal><classname></literal> substrings, which are matching
82 the class with the given name and any derived classes. For instance,
83 <informalexample><programlisting>
84 widget_class "*<GtkMenuItem>.GtkLabel" style "my-style"
85 </programlisting></informalexample>
86 will match #GtkLabel widgets which are contained in any kind of menu item.
89 So, if you have a #GtkEntry named <literal>"myentry"</literal>, inside of a
90 horizontal box in a window named <literal>"mywindow"</literal>, then the
91 widget path is: <literal>"mywindow.GtkHBox.myentry"</literal>
92 while the class path is: <literal>"GtkWindow.GtkHBox.GtkEntry"</literal>.
95 Matching against class is a little different. The pattern match is done
96 against all class names in the widgets class hierarchy (not the layout
97 hierarchy) in sequence, so the pattern:
98 <informalexample><programlisting>
99 class "GtkButton" style "my-style"
100 </programlisting></informalexample>
101 will match not just #GtkButton widgets, but also #GtkToggleButton and
102 #GtkCheckButton widgets, since those classes derive from #GtkButton.
105 Additionally, a priority can be specified for each pattern, and styles
106 override other styles first by priority, then by pattern type and then
107 by order of specification (later overrides earlier). The priorities
108 that can be specified are (highest to lowest):
110 <member><literal>highest</literal></member>
111 <member><literal>rc</literal></member>
112 <member><literal>theme</literal></member>
113 <member><literal>application</literal></member>
114 <member><literal>gtk</literal></member>
115 <member><literal>lowest</literal></member>
117 <literal>rc</literal> is the default for styles
118 read from an RC file, <literal>theme</literal>
119 is the default for styles read from theme RC files,
120 <literal>application</literal>
121 should be used for styles an application sets
122 up, and <literal>gtk</literal> is used for styles
123 that GTK+ creates internally.
128 <refsect2><title>Theme gtkrc files</title>
129 <anchor id="theme-gtkrc-files"/>
131 Theme RC files are loaded first from under the <filename>~/.themes/</filename>,
132 then from the directory from gtk_rc_get_theme_dir(). The files looked at will
133 be <filename>gtk-3.0/gtkrc</filename>.
136 When the application prefers dark themes
137 (see the #GtkSettings:gtk-application-prefer-dark-theme property for details),
138 <filename>gtk-3.0/gtkrc-dark</filename> will be loaded first, and if not present
139 <filename>gtk-3.0/gtkrc</filename> will be loaded.
144 <anchor id="optimizing-rc-style-matches"/>
145 <title>Optimizing RC Style Matches</title>
147 Everytime a widget is created and added to the layout hierarchy of a #GtkWindow
148 ("anchored" to be exact), a list of matching RC styles out of all RC styles read
149 in so far is composed.
150 For this, every RC style is matched against the widgets class path,
151 the widgets name path and widgets inheritance hierarchy.
152 As a consequence, significant slowdown can be caused by utilization of many
153 RC styles and by using RC style patterns that are slow or complicated to match
154 against a given widget.
155 The following ordered list provides a number of advices (prioritized by
156 effectiveness) to reduce the performance overhead associated with RC style
162 Move RC styles for specific applications into RC files dedicated to those
163 applications and parse application specific RC files only from
164 applications that are affected by them.
165 This reduces the overall amount of RC styles that have to be considered
166 for a match across a group of applications.
170 Merge multiple styles which use the same matching rule, for instance:
171 <informalexample><programlisting>
172 style "Foo" { foo_content }
173 class "X" style "Foo"
174 style "Bar" { bar_content }
175 class "X" style "Bar"
176 </programlisting></informalexample>
177 is faster to match as:
178 <informalexample><programlisting>
179 style "FooBar" { foo_content bar_content }
180 class "X" style "FooBar"
181 </programlisting></informalexample>
185 Use of wildcards should be avoided, this can reduce the individual RC style
186 match to a single integer comparison in most cases.
190 To avoid complex recursive matching, specification of full class names
191 (for <literal>class</literal> matches) or full path names (for
192 <literal>widget</literal> and <literal>widget_class</literal> matches)
193 is to be preferred over shortened names
194 containing <literal>"*"</literal> or <literal>"?"</literal>.
198 If at all necessary, wildcards should only be used at the tail or head
199 of a pattern. This reduces the match complexity to a string comparison
204 When using wildcards, use of <literal>"?"</literal> should be preferred
205 over <literal>"*"</literal>. This can reduce the matching complexity from
206 O(n^2) to O(n). For example <literal>"Gtk*Box"</literal> can be turned into
207 <literal>"Gtk?Box"</literal> and will still match #GtkHBox and #GtkVBox.
211 The use of <literal>"*"</literal> wildcards should be restricted as much
212 as possible, because matching <literal>"A*B*C*RestString"</literal> can
213 result in matching complexities of O(n^2) worst case.
220 <refsect2><title>Toplevel declarations</title>
222 An RC file is a text file which is composed of a sequence
223 of declarations. <literal>'#'</literal> characters delimit comments and
224 the portion of a line after a <literal>'#'</literal> is ignored when parsing
229 The possible toplevel declarations are:
233 <term><literal>binding <replaceable>name</replaceable>
234 { ... }</literal></term>
236 <para>Declares a binding set.</para>
241 <term><literal>class <replaceable>pattern</replaceable>
242 [ style | binding ][ : <replaceable>priority</replaceable> ]
243 <replaceable>name</replaceable></literal></term>
245 <para>Specifies a style or binding set for a particular
246 branch of the inheritance hierarchy.</para>
251 <term><literal>include <replaceable>filename</replaceable></literal></term>
253 <para>Parses another file at this point. If
254 <replaceable>filename</replaceable> is not an absolute filename,
255 it is searched in the directories of the currently open RC files.
257 <para>GTK+ also tries to load a
258 <link linkend="locale-specific-rc">locale-specific variant</link> of
265 <term><literal>module_path <replaceable>path</replaceable></literal></term>
267 <para>Sets a path (a list of directories separated
268 by colons) that will be searched for theme engines referenced in
274 <term><literal>pixmap_path <replaceable>path</replaceable></literal></term>
276 <para>Sets a path (a list of directories separated
277 by colons) that will be searched for pixmaps referenced in
283 <term><literal>im_module_file <replaceable>pathname</replaceable></literal></term>
285 <para>Sets the pathname for the IM modules file. Setting this from RC files
286 is deprecated; you should use the environment variable <envar>GTK_IM_MODULE_FILE</envar>
292 <term><literal>style <replaceable>name</replaceable> [ =
293 <replaceable>parent</replaceable> ] { ... }</literal></term>
295 <para>Declares a style.</para>
300 <term><literal>widget <replaceable>pattern</replaceable>
301 [ style | binding ][ : <replaceable>priority</replaceable> ]
302 <replaceable>name</replaceable></literal></term>
304 <para>Specifies a style or binding set for a particular
305 group of widgets by matching on the widget pathname.</para>
310 <term><literal>widget_class <replaceable>pattern</replaceable>
311 [ style | binding ][ : <replaceable>priority</replaceable> ]
312 <replaceable>name</replaceable></literal></term>
314 <para>Specifies a style or binding set for a particular
315 group of widgets by matching on the class pathname.</para>
320 <term><replaceable>setting</replaceable> = <replaceable>value</replaceable></term>
322 <para>Specifies a value for a <link linkend="GtkSettings">setting</link>.
323 Note that settings in RC files are overwritten by system-wide settings
324 (which are managed by an XSettings manager on X11).</para>
331 <refsect2><title>Styles</title>
333 A RC style is specified by a <literal>style</literal>
334 declaration in a RC file, and then bound to widgets
335 with a <literal>widget</literal>, <literal>widget_class</literal>,
336 or <literal>class</literal> declaration. All styles
337 applying to a particular widget are composited together
338 with <literal>widget</literal> declarations overriding
339 <literal>widget_class</literal> declarations which, in
340 turn, override <literal>class</literal> declarations.
341 Within each type of declaration, later declarations override
346 Within a <literal>style</literal> declaration, the possible
351 <term><literal>bg[<replaceable>state</replaceable>] =
352 <replaceable>color</replaceable></literal></term>
355 Sets the color used for the background of most widgets.
360 <term><literal>fg[<replaceable>state</replaceable>] =
361 <replaceable>color</replaceable></literal></term>
364 Sets the color used for the foreground of most widgets.
369 <term><literal>base[<replaceable>state</replaceable>] =
370 <replaceable>color</replaceable></literal></term>
373 Sets the color used for the background of widgets displaying
374 editable text. This color is used for the background
375 of, among others, #GtkText, #GtkEntry, #GtkList, and #GtkCList.
380 <term><literal>text[<replaceable>state</replaceable>] =
381 <replaceable>color</replaceable></literal></term>
384 Sets the color used for foreground of widgets using
385 <literal>base</literal> for the background color.
390 <term><literal>xthickness =
391 <replaceable>number</replaceable></literal></term>
394 Sets the xthickness, which is used for various horizontal padding
400 <term><literal>ythickness =
401 <replaceable>number</replaceable></literal></term>
404 Sets the ythickness, which is used for various vertical padding
411 <term><literal>bg_pixmap[<replaceable>state</replaceable>] =
412 <replaceable>pixmap</replaceable></literal></term>
415 Sets a background pixmap to be used in place of
416 the <literal>bg</literal> color (or for #GtkText,
417 in place of the <literal>base</literal> color. The special
418 value <literal>"<parent>"</literal> may be used to indicate that the widget should
419 use the same background pixmap as its parent. The special value
420 <literal>"<none>"</literal> may be used to indicate no background pixmap.
425 <term><literal>font = <replaceable>font</replaceable></literal></term>
428 Starting with GTK+ 2.0, the "font" and "fontset"
429 declarations are ignored; use "font_name" declarations instead.
434 <term><literal>fontset = <replaceable>font</replaceable></literal></term>
437 Starting with GTK+ 2.0, the "font" and "fontset"
438 declarations are ignored; use "font_name" declarations instead.
443 <term><literal>font_name = <replaceable>font</replaceable></literal></term>
446 Sets the font for a widget. <replaceable>font</replaceable> must be
447 a Pango font name, e.g. <literal>"Sans Italic 10"</literal>.
448 For details about Pango font names, see
449 pango_font_description_from_string().
454 <term><literal>stock[<replaceable>"stock-id"</replaceable>] = { <replaceable>icon source specifications</replaceable> }</literal></term>
457 Defines the icon for a stock item.
462 <term><literal>color[<replaceable>"color-name"</replaceable>] = <replaceable>color specification</replaceable></literal></term>
465 Since 2.10, this element can be used to defines symbolic colors. See below for
466 the syntax of color specifications.
471 <term><literal>engine <replaceable>"engine"</replaceable> { <replaceable>engine-specific
472 settings</replaceable> }</literal></term>
475 Defines the engine to be used when drawing with this style.
480 <term><literal><replaceable>class</replaceable>::<replaceable>property</replaceable> = <replaceable>value</replaceable></literal></term>
483 Sets a <link linkend="style-properties">style property</link> for a widget class.
490 The colors and background pixmaps are specified as a function of the
491 state of the widget. The states are:
495 <term><literal>NORMAL</literal></term>
498 A color used for a widget in its normal state.
503 <term><literal>ACTIVE</literal></term>
506 A variant of the <literal>NORMAL</literal> color used when the
507 widget is in the %GTK_STATE_ACTIVE state, and also for
508 the trough of a ScrollBar, tabs of a NoteBook
509 other than the current tab and similar areas.
510 Frequently, this should be a darker variant
511 of the <literal>NORMAL</literal> color.
516 <term><literal>PRELIGHT</literal></term>
519 A color used for widgets in the %GTK_STATE_PRELIGHT state. This
520 state is the used for Buttons and MenuItems
521 that have the mouse cursor over them, and for
527 <term><literal>SELECTED</literal></term>
530 A color used to highlight data selected by the user.
531 for instance, the selected items in a list widget, and the
532 selection in an editable widget.
537 <term><literal>INSENSITIVE</literal></term>
540 A color used for the background of widgets that have
541 been set insensitive with gtk_widget_set_sensitive().
548 <para><anchor id="color-format"/>
549 Colors can be specified as a string containing a color name (GTK+ knows
550 all names from the X color database <filename>/usr/lib/X11/rgb.txt</filename>),
551 in one of the hexadecimal forms <literal>#rrrrggggbbbb</literal>,
552 <literal>#rrrgggbbb</literal>, <literal>#rrggbb</literal>,
553 or <literal>#rgb</literal>, where <literal>r</literal>,
554 <literal>g</literal> and <literal>b</literal> are
555 hex digits, or they can be specified as a triplet
556 <literal>{ <replaceable>r</replaceable>, <replaceable>g</replaceable>,
557 <replaceable>b</replaceable>}</literal>, where <literal>r</literal>,
558 <literal>g</literal> and <literal>b</literal> are either integers in
559 the range 0-65535 or floats in the range 0.0-1.0.
562 Since 2.10, colors can also be specified by refering to a symbolic color, as
563 follows: <literal>@<!-- -->color-name</literal>, or by using expressions to combine
564 colors. The following expressions are currently supported:
567 <term>mix (<replaceable>factor</replaceable>, <replaceable>color1</replaceable>, <replaceable>color2</replaceable>)</term>
569 Computes a new color by mixing <replaceable>color1</replaceable> and
570 <replaceable>color2</replaceable>. The <replaceable>factor</replaceable>
571 determines how close the new color is to <replaceable>color1</replaceable>.
572 A factor of 1.0 gives pure <replaceable>color1</replaceable>, a factor of
573 0.0 gives pure <replaceable>color2</replaceable>.
578 <term>shade (<replaceable>factor</replaceable>, <replaceable>color</replaceable>)</term>
580 Computes a lighter or darker variant of <replaceable>color</replaceable>.
581 A <replaceable>factor</replaceable> of 1.0 leaves the color unchanged, smaller
582 factors yield darker colors, larger factors yield lighter colors.
587 <term>lighter (<replaceable>color</replaceable>)</term>
589 This is an abbreviation for
590 <literal>shade (1.3, <replaceable>color</replaceable>)</literal>.
595 <term>darker (<replaceable>color</replaceable>)</term>
597 This is an abbreviation for
598 <literal>shade (0.7, <replaceable>color</replaceable>)</literal>.
604 Here are some examples of color expressions:
605 <informalexample><programlisting>
606 mix (0.5, "red", "blue")
607 shade (1.5, mix (0.3, "#0abbc0", { 0.3, 0.5, 0.9 }))
608 lighter (@<!-- -->foreground)
609 </programlisting></informalexample>
613 In a <literal>stock</literal> definition, icon sources are specified as a
614 4-tuple of image filename or icon name, text direction, widget state, and size, in that
615 order. Each icon source specifies an image filename or icon name to use with a given
616 direction, state, and size. Filenames are specified as a string such
617 as <literal>"itemltr.png"</literal>, while icon names (looked up
618 in the current icon theme), are specified with a leading
619 <literal>@</literal>, such as <literal>@"item-ltr"</literal>.
620 The <literal>*</literal> character can be used as a
621 wildcard, and if direction/state/size are omitted they default to
622 <literal>*</literal>. So for example, the following specifies different icons to
623 use for left-to-right and right-to-left languages:
624 <informalexample><programlisting>
625 stock["my-stock-item"] =
627 { "itemltr.png", LTR, *, * },
628 { "itemrtl.png", RTL, *, * }
630 </programlisting></informalexample>
631 This could be abbreviated as follows:
632 <informalexample><programlisting>
633 stock["my-stock-item"] =
635 { "itemltr.png", LTR },
636 { "itemrtl.png", RTL }
638 </programlisting></informalexample>
642 You can specify custom icons for specific sizes, as follows:
643 <informalexample><programlisting>
644 stock["my-stock-item"] =
646 { "itemmenusize.png", *, *, "gtk-menu" },
647 { "itemtoolbarsize.png", *, *, "gtk-large-toolbar" }
648 { "itemgeneric.png" } /* implicit *, *, * as a fallback */
650 </programlisting></informalexample>
651 The sizes that come with GTK+ itself are <literal>"gtk-menu"</literal>,
652 <literal>"gtk-small-toolbar"</literal>, <literal>"gtk-large-toolbar"</literal>,
653 <literal>"gtk-button"</literal>, <literal>"gtk-dialog"</literal>. Applications
654 can define other sizes.
658 It's also possible to use custom icons for a given state, for example:
659 <informalexample><programlisting>
660 stock["my-stock-item"] =
662 { "itemprelight.png", *, PRELIGHT },
663 { "iteminsensitive.png", *, INSENSITIVE },
664 { "itemgeneric.png" } /* implicit *, *, * as a fallback */
666 </programlisting></informalexample>
670 When selecting an icon source to use, GTK+ will consider text direction most
671 important, state second, and size third. It will select the best match based on
672 those criteria. If an attribute matches exactly (e.g. you specified
673 <literal>PRELIGHT</literal> or specified the size), GTK+ won't modify the image;
674 if the attribute matches with a wildcard, GTK+ will scale or modify the image to
675 match the state and size the user requested.
680 <refsect2><title>Key bindings</title>
682 Key bindings allow the user to specify actions to be
683 taken on particular key presses. The form of a binding
687 <informalexample><programlisting>
688 binding <replaceable>name</replaceable> {
689 bind <replaceable>key</replaceable> {
690 <replaceable>signalname</replaceable> (<replaceable>param</replaceable>, ...)
695 </programlisting></informalexample>
698 <replaceable>key</replaceable> is a string consisting of a
699 series of modifiers followed by the name of a key. The
702 <member><literal><alt></literal></member>
703 <member><literal><ctl></literal></member>
704 <member><literal><control></literal></member>
705 <member><literal><meta></literal></member>
706 <member><literal><hyper></literal></member>
707 <member><literal><super></literal></member>
708 <member><literal><mod1></literal></member>
709 <member><literal><mod2></literal></member>
710 <member><literal><mod3></literal></member>
711 <member><literal><mod4></literal></member>
712 <member><literal><mod5></literal></member>
713 <member><literal><release></literal></member>
714 <member><literal><shft></literal></member>
715 <member><literal><shift></literal></member>
717 <literal><shft></literal> is an alias for
718 <literal><shift></literal>,
719 <literal><ctl></literal> is an alias for
720 <literal><control></literal>,
722 <literal><alt></literal> is an alias for
723 <literal><mod1></literal>.
727 The action that is bound to the key is a sequence
728 of signal names (strings) followed by parameters for
729 each signal. The signals must be action signals.
730 (See g_signal_new()). Each parameter can be
731 a float, integer, string, or unquoted string
732 representing an enumeration value. The types of
733 the parameters specified must match the types of the
734 parameters of the signal.
738 Binding sets are connected to widgets in the same manner as styles,
739 with one difference: Binding sets override other binding sets first
740 by pattern type, then by priority and then by order of specification.
741 The priorities that can be specified and their default values are the
746 <!-- ##### SECTION See_Also ##### -->
751 <!-- ##### SECTION Stability_Level ##### -->
754 <!-- ##### SECTION Image ##### -->
757 <!-- ##### STRUCT GtkRcStyle ##### -->
759 The #GtkRcStyle structure is used to represent a set
760 of information about the appearance of a widget.
761 This can later be composited together with other
762 #GtkRcStyle structures to form a #GtkStyle.
776 <!-- ##### ENUM GtkRcFlags ##### -->
778 The #GtkRcFlags enumeration is used as a bitmask
779 to specify which fields of a #GtkRcStyle have been
783 @GTK_RC_FG: If present, the foreground color has been set for this state.
784 @GTK_RC_BG: If present, the background color has been set for this state.
785 @GTK_RC_TEXT: If present, the text color has been set for this state.
786 @GTK_RC_BASE: If present, the base color has been set for this state.
788 <!-- ##### ENUM GtkRcTokenType ##### -->
790 The #GtkRcTokenType enumeration represents the tokens
791 in the RC file. It is exposed so that theme engines
792 can reuse these tokens when parsing the theme-engine
793 specific portions of a RC file.
796 @GTK_RC_TOKEN_INVALID:
797 @GTK_RC_TOKEN_INCLUDE:
798 @GTK_RC_TOKEN_NORMAL:
799 @GTK_RC_TOKEN_ACTIVE:
800 @GTK_RC_TOKEN_PRELIGHT:
801 @GTK_RC_TOKEN_SELECTED:
802 @GTK_RC_TOKEN_INSENSITIVE:
807 @GTK_RC_TOKEN_XTHICKNESS:
808 @GTK_RC_TOKEN_YTHICKNESS:
810 @GTK_RC_TOKEN_FONTSET:
811 @GTK_RC_TOKEN_FONT_NAME:
812 @GTK_RC_TOKEN_BG_PIXMAP:
813 @GTK_RC_TOKEN_PIXMAP_PATH:
815 @GTK_RC_TOKEN_BINDING:
817 @GTK_RC_TOKEN_WIDGET:
818 @GTK_RC_TOKEN_WIDGET_CLASS:
820 @GTK_RC_TOKEN_LOWEST:
822 @GTK_RC_TOKEN_APPLICATION:
825 @GTK_RC_TOKEN_HIGHEST:
826 @GTK_RC_TOKEN_ENGINE:
827 @GTK_RC_TOKEN_MODULE_PATH:
828 @GTK_RC_TOKEN_IM_MODULE_PATH:
829 @GTK_RC_TOKEN_IM_MODULE_FILE:
834 @GTK_RC_TOKEN_UNBIND:
837 <!-- ##### FUNCTION gtk_rc_scanner_new ##### -->
846 <!-- ##### FUNCTION gtk_rc_get_style ##### -->
854 <!-- ##### FUNCTION gtk_rc_get_style_by_paths ##### -->
866 <!-- ##### FUNCTION gtk_rc_parse ##### -->
868 Parses a given resource file.
871 @filename: the filename of a file to parse. If @filename is not absolute, it
872 is searched in the current directory.
875 <!-- ##### FUNCTION gtk_rc_parse_string ##### -->
877 Parses resource information directly from a string.
880 @rc_string: a string to parse.
883 <!-- ##### FUNCTION gtk_rc_reparse_all ##### -->
891 <!-- ##### FUNCTION gtk_rc_reparse_all_for_settings ##### -->
901 <!-- ##### FUNCTION gtk_rc_reset_styles ##### -->
909 <!-- ##### FUNCTION gtk_rc_add_default_file ##### -->
916 <!-- ##### FUNCTION gtk_rc_get_default_files ##### -->
924 <!-- ##### FUNCTION gtk_rc_set_default_files ##### -->
931 <!-- ##### FUNCTION gtk_rc_parse_color ##### -->
941 <!-- ##### FUNCTION gtk_rc_parse_color_full ##### -->
952 <!-- ##### FUNCTION gtk_rc_parse_state ##### -->
954 Parses a #GtkStateType variable from the format expected
958 @scanner: a #GtkScanner (must be initialized for parsing an RC file)
959 @state: A pointer to a #GtkStateType variable in which to
961 @Returns: %G_TOKEN_NONE if parsing succeeded, otherwise the token
962 that was expected but not found.
965 <!-- ##### FUNCTION gtk_rc_parse_priority ##### -->
967 Parses a #GtkPathPriorityType variable from the format expected
971 @scanner: a #GtkScanner (must be initialized for parsing an RC file)
972 @priority: A pointer to #GtkPathPriorityType variable in which
974 @Returns: %G_TOKEN_NONE if parsing succeeded, otherwise the token
975 that was expected but not found.
978 <!-- ##### FUNCTION gtk_rc_find_module_in_path ##### -->
982 @module_file: The name of the module to search for.
986 <!-- ##### FUNCTION gtk_rc_find_pixmap_in_path ##### -->
991 @scanner: a #GtkScanner. Used for printing out warning messages
992 if the file is not found.
993 @pixmap_file: The name of the file to search for.
994 @Returns: The filename, if found (must be freed with g_free()),
998 <!-- ##### FUNCTION gtk_rc_get_module_dir ##### -->
1006 <!-- ##### FUNCTION gtk_rc_get_im_module_path ##### -->
1015 <!-- ##### FUNCTION gtk_rc_get_im_module_file ##### -->
1024 <!-- ##### FUNCTION gtk_rc_get_theme_dir ##### -->
1026 Returns the standard directory in which themes should
1027 be installed. (GTK+ does not actually use this directory
1032 @Returns: The directory (must be freed with g_free()).
1035 <!-- ##### FUNCTION gtk_rc_style_new ##### -->
1037 Creates a new #GtkRcStyle with no fields set and
1038 a reference count of 1.
1042 @Returns: the newly-created #GtkRcStyle
1045 <!-- ##### FUNCTION gtk_rc_style_copy ##### -->