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.
129 <anchor id="optimizing-rc-style-matches"/>
130 <title>Optimizing RC Style Matches</title>
132 Everytime a widget is created and added to the layout hierarchy of a #GtkWindow
133 ("anchored" to be exact), a list of matching RC styles out of all RC styles read
134 in so far is composed.
135 For this, every RC style is matched against the widgets class path,
136 the widgets name path and widgets inheritance hierarchy.
137 As a consequence, significant slowdown can be caused by utilization of many
138 RC styles and by using RC style patterns that are slow or complicated to match
139 against a given widget.
140 The following ordered list provides a number of advices (prioritized by
141 effectiveness) to reduce the performance overhead associated with RC style
147 Move RC styles for specific applications into RC files dedicated to those
148 applications and parse application specific RC files only from
149 applications that are affected by them.
150 This reduces the overall amount of RC styles that have to be considered
151 for a match across a group of applications.
155 Merge multiple styles which use the same matching rule, for instance:
156 <informalexample><programlisting>
157 style "Foo" { foo_content }
158 class "X" style "Foo"
159 style "Bar" { bar_content }
160 class "X" style "Bar"
161 </programlisting></informalexample>
162 is faster to match as:
163 <informalexample><programlisting>
164 style "FooBar" { foo_content bar_content }
165 class "X" style "FooBar"
166 </programlisting></informalexample>
170 Use of wildcards should be avoided, this can reduce the individual RC style
171 match to a single integer comparison in most cases.
175 To avoid complex recursive matching, specification of full class names
176 (for <literal>class</literal> matches) or full path names (for
177 <literal>widget</literal> and <literal>widget_class</literal> matches)
178 is to be preferred over shortened names
179 containing <literal>"*"</literal> or <literal>"?"</literal>.
183 If at all necessary, wildcards should only be used at the tail or head
184 of a pattern. This reduces the match complexity to a string comparison
189 When using wildcards, use of <literal>"?"</literal> should be preferred
190 over <literal>"*"</literal>. This can reduce the matching complexity from
191 O(n^2) to O(n). For example <literal>"Gtk*Box"</literal> can be turned into
192 <literal>"Gtk?Box"</literal> and will still match #GtkHBox and #GtkVBox.
196 The use of <literal>"*"</literal> wildcards should be restricted as much
197 as possible, because matching <literal>"A*B*C*RestString"</literal> can
198 result in matching complexities of O(n^2) worst case.
205 <refsect2><title>Toplevel declarations</title>
207 An RC file is a text file which is composed of a sequence
208 of declarations. <literal>'#'</literal> characters delimit comments and
209 the portion of a line after a <literal>'#'</literal> is ignored when parsing
214 The possible toplevel declarations are:
218 <term><literal>binding <replaceable>name</replaceable>
219 { ... }</literal></term>
221 <para>Declares a binding set.</para>
226 <term><literal>class <replaceable>pattern</replaceable>
227 [ style | binding ][ : <replaceable>priority</replaceable> ]
228 <replaceable>name</replaceable></literal></term>
230 <para>Specifies a style or binding set for a particular
231 branch of the inheritance hierarchy.</para>
236 <term><literal>include <replaceable>filename</replaceable></literal></term>
238 <para>Parses another file at this point. If
239 <replaceable>filename</replaceable> is not an absolute filename,
240 it is searched in the directories of the currently open RC files.
242 <para>GTK+ also tries to load a
243 <link linkend="locale-specific-rc">locale-specific variant</link> of
250 <term><literal>module_path <replaceable>path</replaceable></literal></term>
252 <para>Sets a path (a list of directories separated
253 by colons) that will be searched for theme engines referenced in
259 <term><literal>pixmap_path <replaceable>path</replaceable></literal></term>
261 <para>Sets a path (a list of directories separated
262 by colons) that will be searched for pixmaps referenced in
268 <term><literal>im_module_file <replaceable>pathname</replaceable></literal></term>
270 <para>Sets the pathname for the IM modules file. Setting this from RC files
271 is deprecated; you should use the environment variable <envar>GTK_IM_MODULE_FILE</envar>
277 <term><literal>style <replaceable>name</replaceable> [ =
278 <replaceable>parent</replaceable> ] { ... }</literal></term>
280 <para>Declares a style.</para>
285 <term><literal>widget <replaceable>pattern</replaceable>
286 [ style | binding ][ : <replaceable>priority</replaceable> ]
287 <replaceable>name</replaceable></literal></term>
289 <para>Specifies a style or binding set for a particular
290 group of widgets by matching on the widget pathname.</para>
295 <term><literal>widget_class <replaceable>pattern</replaceable>
296 [ style | binding ][ : <replaceable>priority</replaceable> ]
297 <replaceable>name</replaceable></literal></term>
299 <para>Specifies a style or binding set for a particular
300 group of widgets by matching on the class pathname.</para>
305 <term><replaceable>setting</replaceable> = <replaceable>value</replaceable></term>
307 <para>Specifies a value for a <link linkend="GtkSettings">setting</link>.
308 Note that settings in RC files are overwritten by system-wide settings
309 (which are managed by an XSettings manager on X11).</para>
316 <refsect2><title>Styles</title>
318 A RC style is specified by a <literal>style</literal>
319 declaration in a RC file, and then bound to widgets
320 with a <literal>widget</literal>, <literal>widget_class</literal>,
321 or <literal>class</literal> declaration. All styles
322 applying to a particular widget are composited together
323 with <literal>widget</literal> declarations overriding
324 <literal>widget_class</literal> declarations which, in
325 turn, override <literal>class</literal> declarations.
326 Within each type of declaration, later declarations override
331 Within a <literal>style</literal> declaration, the possible
336 <term><literal>bg[<replaceable>state</replaceable>] =
337 <replaceable>color</replaceable></literal></term>
340 Sets the color used for the background of most widgets.
345 <term><literal>fg[<replaceable>state</replaceable>] =
346 <replaceable>color</replaceable></literal></term>
349 Sets the color used for the foreground of most widgets.
354 <term><literal>base[<replaceable>state</replaceable>] =
355 <replaceable>color</replaceable></literal></term>
358 Sets the color used for the background of widgets displaying
359 editable text. This color is used for the background
360 of, among others, #GtkText, #GtkEntry, #GtkList, and #GtkCList.
365 <term><literal>text[<replaceable>state</replaceable>] =
366 <replaceable>color</replaceable></literal></term>
369 Sets the color used for foreground of widgets using
370 <literal>base</literal> for the background color.
375 <term><literal>xthickness =
376 <replaceable>number</replaceable></literal></term>
379 Sets the xthickness, which is used for various horizontal padding
385 <term><literal>ythickness =
386 <replaceable>number</replaceable></literal></term>
389 Sets the ythickness, which is used for various vertical padding
396 <term><literal>bg_pixmap[<replaceable>state</replaceable>] =
397 <replaceable>pixmap</replaceable></literal></term>
400 Sets a background pixmap to be used in place of
401 the <literal>bg</literal> color (or for #GtkText,
402 in place of the <literal>base</literal> color. The special
403 value <literal>"<parent>"</literal> may be used to indicate that the widget should
404 use the same background pixmap as its parent. The special value
405 <literal>"<none>"</literal> may be used to indicate no background pixmap.
410 <term><literal>font = <replaceable>font</replaceable></literal></term>
413 Starting with GTK+ 2.0, the "font" and "fontset"
414 declarations are ignored; use "font_name" declarations instead.
419 <term><literal>fontset = <replaceable>font</replaceable></literal></term>
422 Starting with GTK+ 2.0, the "font" and "fontset"
423 declarations are ignored; use "font_name" declarations instead.
428 <term><literal>font_name = <replaceable>font</replaceable></literal></term>
431 Sets the font for a widget. <replaceable>font</replaceable> must be
432 a Pango font name, e.g. <literal>"Sans Italic 10"</literal>.
433 For details about Pango font names, see
434 pango_font_description_from_string().
439 <term><literal>stock[<replaceable>"stock-id"</replaceable>] = { <replaceable>icon source specifications</replaceable> }</literal></term>
442 Defines the icon for a stock item.
447 <term><literal>color[<replaceable>"color-name"</replaceable>] = <replaceable>color specification</replaceable></literal></term>
450 Since 2.10, this element can be used to defines symbolic colors. See below for
451 the syntax of color specifications.
456 <term><literal>engine <replaceable>"engine"</replaceable> { <replaceable>engine-specific
457 settings</replaceable> }</literal></term>
460 Defines the engine to be used when drawing with this style.
465 <term><literal><replaceable>class</replaceable>::<replaceable>property</replaceable> = <replaceable>value</replaceable></literal></term>
468 Sets a <link linkend="style-properties">style property</link> for a widget class.
475 The colors and background pixmaps are specified as a function of the
476 state of the widget. The states are:
480 <term><literal>NORMAL</literal></term>
483 A color used for a widget in its normal state.
488 <term><literal>ACTIVE</literal></term>
491 A variant of the <literal>NORMAL</literal> color used when the
492 widget is in the %GTK_STATE_ACTIVE state, and also for
493 the trough of a ScrollBar, tabs of a NoteBook
494 other than the current tab and similar areas.
495 Frequently, this should be a darker variant
496 of the <literal>NORMAL</literal> color.
501 <term><literal>PRELIGHT</literal></term>
504 A color used for widgets in the %GTK_STATE_PRELIGHT state. This
505 state is the used for Buttons and MenuItems
506 that have the mouse cursor over them, and for
512 <term><literal>SELECTED</literal></term>
515 A color used to highlight data selected by the user.
516 for instance, the selected items in a list widget, and the
517 selection in an editable widget.
522 <term><literal>INSENSITIVE</literal></term>
525 A color used for the background of widgets that have
526 been set insensitive with gtk_widget_set_sensitive().
533 <para><anchor id="color-format"/>
534 Colors can be specified as a string containing a color name (GTK+ knows
535 all names from the X color database <filename>/usr/lib/X11/rgb.txt</filename>),
536 in one of the hexadecimal forms <literal>#rrrrggggbbbb</literal>,
537 <literal>#rrrgggbbb</literal>, <literal>#rrggbb</literal>,
538 or <literal>#rgb</literal>, where <literal>r</literal>,
539 <literal>g</literal> and <literal>b</literal> are
540 hex digits, or they can be specified as a triplet
541 <literal>{ <replaceable>r</replaceable>, <replaceable>g</replaceable>,
542 <replaceable>b</replaceable>}</literal>, where <literal>r</literal>,
543 <literal>g</literal> and <literal>b</literal> are either integers in
544 the range 0-65535 or floats in the range 0.0-1.0.
547 Since 2.10, colors can also be specified by refering to a symbolic color, as
548 follows: <literal>@<!-- -->color-name</literal>, or by using expressions to combine
549 colors. The following expressions are currently supported:
552 <term>mix (<replaceable>factor</replaceable>, <replaceable>color1</replaceable>, <replaceable>color2</replaceable>)</term>
554 Computes a new color by mixing <replaceable>color1</replaceable> and
555 <replaceable>color2</replaceable>. The <replaceable>factor</replaceable>
556 determines how close the new color is to <replaceable>color1</replaceable>.
557 A factor of 1.0 gives pure <replaceable>color1</replaceable>, a factor of
558 0.0 gives pure <replaceable>color2</replaceable>.
563 <term>shade (<replaceable>factor</replaceable>, <replaceable>color</replaceable>)</term>
565 Computes a lighter or darker variant of <replaceable>color</replaceable>.
566 A <replaceable>factor</replaceable> of 1.0 leaves the color unchanged, smaller
567 factors yield darker colors, larger factors yield lighter colors.
572 <term>lighter (<replaceable>color</replaceable>)</term>
574 This is an abbreviation for
575 <literal>shade (1.3, <replaceable>color</replaceable>)</literal>.
580 <term>darker (<replaceable>color</replaceable>)</term>
582 This is an abbreviation for
583 <literal>shade (0.7, <replaceable>color</replaceable>)</literal>.
589 Here are some examples of color expressions:
590 <informalexample><programlisting>
591 mix (0.5, "red", "blue")
592 shade (1.5, mix (0.3, "#0abbc0", { 0.3, 0.5, 0.9 }))
593 lighter (@<!-- -->foreground)
594 </programlisting></informalexample>
598 In a <literal>stock</literal> definition, icon sources are specified as a
599 4-tuple of image filename or icon name, text direction, widget state, and size, in that
600 order. Each icon source specifies an image filename or icon name to use with a given
601 direction, state, and size. Filenames are specified as a string such
602 as <literal>"itemltr.png"</literal>, while icon names (looked up
603 in the current icon theme), are specified with a leading
604 <literal>@</literal>, such as <literal>@"item-ltr"</literal>.
605 The <literal>*</literal> character can be used as a
606 wildcard, and if direction/state/size are omitted they default to
607 <literal>*</literal>. So for example, the following specifies different icons to
608 use for left-to-right and right-to-left languages:
609 <informalexample><programlisting>
610 stock["my-stock-item"] =
612 { "itemltr.png", LTR, *, * },
613 { "itemrtl.png", RTL, *, * }
615 </programlisting></informalexample>
616 This could be abbreviated as follows:
617 <informalexample><programlisting>
618 stock["my-stock-item"] =
620 { "itemltr.png", LTR },
621 { "itemrtl.png", RTL }
623 </programlisting></informalexample>
627 You can specify custom icons for specific sizes, as follows:
628 <informalexample><programlisting>
629 stock["my-stock-item"] =
631 { "itemmenusize.png", *, *, "gtk-menu" },
632 { "itemtoolbarsize.png", *, *, "gtk-large-toolbar" }
633 { "itemgeneric.png" } /* implicit *, *, * as a fallback */
635 </programlisting></informalexample>
636 The sizes that come with GTK+ itself are <literal>"gtk-menu"</literal>,
637 <literal>"gtk-small-toolbar"</literal>, <literal>"gtk-large-toolbar"</literal>,
638 <literal>"gtk-button"</literal>, <literal>"gtk-dialog"</literal>. Applications
639 can define other sizes.
643 It's also possible to use custom icons for a given state, for example:
644 <informalexample><programlisting>
645 stock["my-stock-item"] =
647 { "itemprelight.png", *, PRELIGHT },
648 { "iteminsensitive.png", *, INSENSITIVE },
649 { "itemgeneric.png" } /* implicit *, *, * as a fallback */
651 </programlisting></informalexample>
655 When selecting an icon source to use, GTK+ will consider text direction most
656 important, state second, and size third. It will select the best match based on
657 those criteria. If an attribute matches exactly (e.g. you specified
658 <literal>PRELIGHT</literal> or specified the size), GTK+ won't modify the image;
659 if the attribute matches with a wildcard, GTK+ will scale or modify the image to
660 match the state and size the user requested.
665 <refsect2><title>Key bindings</title>
667 Key bindings allow the user to specify actions to be
668 taken on particular key presses. The form of a binding
672 <informalexample><programlisting>
673 binding <replaceable>name</replaceable> {
674 bind <replaceable>key</replaceable> {
675 <replaceable>signalname</replaceable> (<replaceable>param</replaceable>, ...)
680 </programlisting></informalexample>
683 <replaceable>key</replaceable> is a string consisting of a
684 series of modifiers followed by the name of a key. The
687 <member><literal><alt></literal></member>
688 <member><literal><ctl></literal></member>
689 <member><literal><control></literal></member>
690 <member><literal><meta></literal></member>
691 <member><literal><hyper></literal></member>
692 <member><literal><super></literal></member>
693 <member><literal><mod1></literal></member>
694 <member><literal><mod2></literal></member>
695 <member><literal><mod3></literal></member>
696 <member><literal><mod4></literal></member>
697 <member><literal><mod5></literal></member>
698 <member><literal><release></literal></member>
699 <member><literal><shft></literal></member>
700 <member><literal><shift></literal></member>
702 <literal><shft></literal> is an alias for
703 <literal><shift></literal>,
704 <literal><ctl></literal> is an alias for
705 <literal><control></literal>,
707 <literal><alt></literal> is an alias for
708 <literal><mod1></literal>.
712 The action that is bound to the key is a sequence
713 of signal names (strings) followed by parameters for
714 each signal. The signals must be action signals.
715 (See g_signal_new()). Each parameter can be
716 a float, integer, string, or unquoted string
717 representing an enumeration value. The types of
718 the parameters specified must match the types of the
719 parameters of the signal.
723 Binding sets are connected to widgets in the same manner as styles,
724 with one difference: Binding sets override other binding sets first
725 by pattern type, then by priority and then by order of specification.
726 The priorities that can be specified and their default values are the
731 <!-- ##### SECTION See_Also ##### -->
736 <!-- ##### SECTION Stability_Level ##### -->
739 <!-- ##### SECTION Image ##### -->
742 <!-- ##### STRUCT GtkRcStyle ##### -->
744 The #GtkRcStyle structure is used to represent a set
745 of information about the appearance of a widget.
746 This can later be composited together with other
747 #GtkRcStyle structures to form a #GtkStyle.
761 <!-- ##### ENUM GtkRcFlags ##### -->
763 The #GtkRcFlags enumeration is used as a bitmask
764 to specify which fields of a #GtkRcStyle have been
768 @GTK_RC_FG: If present, the foreground color has been set for this state.
769 @GTK_RC_BG: If present, the background color has been set for this state.
770 @GTK_RC_TEXT: If present, the text color has been set for this state.
771 @GTK_RC_BASE: If present, the base color has been set for this state.
773 <!-- ##### ENUM GtkRcTokenType ##### -->
775 The #GtkRcTokenType enumeration represents the tokens
776 in the RC file. It is exposed so that theme engines
777 can reuse these tokens when parsing the theme-engine
778 specific portions of a RC file.
781 @GTK_RC_TOKEN_INVALID:
782 @GTK_RC_TOKEN_INCLUDE:
783 @GTK_RC_TOKEN_NORMAL:
784 @GTK_RC_TOKEN_ACTIVE:
785 @GTK_RC_TOKEN_PRELIGHT:
786 @GTK_RC_TOKEN_SELECTED:
787 @GTK_RC_TOKEN_INSENSITIVE:
792 @GTK_RC_TOKEN_XTHICKNESS:
793 @GTK_RC_TOKEN_YTHICKNESS:
795 @GTK_RC_TOKEN_FONTSET:
796 @GTK_RC_TOKEN_FONT_NAME:
797 @GTK_RC_TOKEN_BG_PIXMAP:
798 @GTK_RC_TOKEN_PIXMAP_PATH:
800 @GTK_RC_TOKEN_BINDING:
802 @GTK_RC_TOKEN_WIDGET:
803 @GTK_RC_TOKEN_WIDGET_CLASS:
805 @GTK_RC_TOKEN_LOWEST:
807 @GTK_RC_TOKEN_APPLICATION:
810 @GTK_RC_TOKEN_HIGHEST:
811 @GTK_RC_TOKEN_ENGINE:
812 @GTK_RC_TOKEN_MODULE_PATH:
813 @GTK_RC_TOKEN_IM_MODULE_PATH:
814 @GTK_RC_TOKEN_IM_MODULE_FILE:
819 @GTK_RC_TOKEN_UNBIND:
822 <!-- ##### FUNCTION gtk_rc_scanner_new ##### -->
831 <!-- ##### FUNCTION gtk_rc_get_style ##### -->
839 <!-- ##### FUNCTION gtk_rc_get_style_by_paths ##### -->
851 <!-- ##### FUNCTION gtk_rc_parse ##### -->
853 Parses a given resource file.
856 @filename: the filename of a file to parse. If @filename is not absolute, it
857 is searched in the current directory.
860 <!-- ##### FUNCTION gtk_rc_parse_string ##### -->
862 Parses resource information directly from a string.
865 @rc_string: a string to parse.
868 <!-- ##### FUNCTION gtk_rc_reparse_all ##### -->
876 <!-- ##### FUNCTION gtk_rc_reparse_all_for_settings ##### -->
886 <!-- ##### FUNCTION gtk_rc_reset_styles ##### -->
894 <!-- ##### FUNCTION gtk_rc_add_default_file ##### -->
901 <!-- ##### FUNCTION gtk_rc_get_default_files ##### -->
909 <!-- ##### FUNCTION gtk_rc_set_default_files ##### -->
916 <!-- ##### FUNCTION gtk_rc_parse_color ##### -->
926 <!-- ##### FUNCTION gtk_rc_parse_color_full ##### -->
937 <!-- ##### FUNCTION gtk_rc_parse_state ##### -->
939 Parses a #GtkStateType variable from the format expected
943 @scanner: a #GtkScanner (must be initialized for parsing an RC file)
944 @state: A pointer to a #GtkStateType variable in which to
946 @Returns: %G_TOKEN_NONE if parsing succeeded, otherwise the token
947 that was expected but not found.
950 <!-- ##### FUNCTION gtk_rc_parse_priority ##### -->
952 Parses a #GtkPathPriorityType variable from the format expected
956 @scanner: a #GtkScanner (must be initialized for parsing an RC file)
957 @priority: A pointer to #GtkPathPriorityType variable in which
959 @Returns: %G_TOKEN_NONE if parsing succeeded, otherwise the token
960 that was expected but not found.
963 <!-- ##### FUNCTION gtk_rc_find_module_in_path ##### -->
967 @module_file: The name of the module to search for.
971 <!-- ##### FUNCTION gtk_rc_find_pixmap_in_path ##### -->
976 @scanner: a #GtkScanner. Used for printing out warning messages
977 if the file is not found.
978 @pixmap_file: The name of the file to search for.
979 @Returns: The filename, if found (must be freed with g_free()),
983 <!-- ##### FUNCTION gtk_rc_get_module_dir ##### -->
991 <!-- ##### FUNCTION gtk_rc_get_im_module_path ##### -->
1000 <!-- ##### FUNCTION gtk_rc_get_im_module_file ##### -->
1009 <!-- ##### FUNCTION gtk_rc_get_theme_dir ##### -->
1011 Returns the standard directory in which themes should
1012 be installed. (GTK+ does not actually use this directory
1017 @Returns: The directory (must be freed with g_free()).
1020 <!-- ##### FUNCTION gtk_rc_style_new ##### -->
1022 Creates a new #GtkRcStyle with no fields set and
1023 a reference count of 1.
1027 @Returns: the newly-created #GtkRcStyle
1030 <!-- ##### FUNCTION gtk_rc_style_copy ##### -->