Sophie

Sophie

distrib > Fedora > 14 > x86_64 > by-pkgid > 677c1b5134368504c2e447757584d19e > files > 1025

ghc-gtk-devel-0.11.2-5.fc14.i686.rpm

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->
<title>dist/build/Graphics/UI/Gtk/General/RcStyle.hs</title>
<link type='text/css' rel='stylesheet' href='hscolour.css' />
</head>
<body>
<pre><a name="line-1"></a>
<a name="line-2"></a><span class='hs-comment'>{-# LINE 2 "./Graphics/UI/Gtk/General/RcStyle.chs" #-}</span>
<a name="line-3"></a><span class='hs-comment'>-- -*-haskell-*-</span>
<a name="line-4"></a><span class='hs-comment'>-- GIMP Toolkit (GTK) RcStyle</span>
<a name="line-5"></a><span class='hs-comment'>--</span>
<a name="line-6"></a><span class='hs-comment'>-- Author : Axel Simon</span>
<a name="line-7"></a><span class='hs-comment'>--</span>
<a name="line-8"></a><span class='hs-comment'>-- Created: 22 October 2009</span>
<a name="line-9"></a><span class='hs-comment'>--</span>
<a name="line-10"></a><span class='hs-comment'>-- Copyright (C) 2009 Axel Simon</span>
<a name="line-11"></a><span class='hs-comment'>--</span>
<a name="line-12"></a><span class='hs-comment'>-- This library is free software; you can redistribute it and/or</span>
<a name="line-13"></a><span class='hs-comment'>-- modify it under the terms of the GNU Lesser General Public</span>
<a name="line-14"></a><span class='hs-comment'>-- License as published by the Free Software Foundation; either</span>
<a name="line-15"></a><span class='hs-comment'>-- version 2.1 of the License, or (at your option) any later version.</span>
<a name="line-16"></a><span class='hs-comment'>--</span>
<a name="line-17"></a><span class='hs-comment'>-- This library is distributed in the hope that it will be useful,</span>
<a name="line-18"></a><span class='hs-comment'>-- but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<a name="line-19"></a><span class='hs-comment'>-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span>
<a name="line-20"></a><span class='hs-comment'>-- Lesser General Public License for more details.</span>
<a name="line-21"></a><span class='hs-comment'>--</span>
<a name="line-22"></a><span class='hs-comment'>-- |</span>
<a name="line-23"></a><span class='hs-comment'>-- Maintainer : gtk2hs-users@lists.sourceforge.net</span>
<a name="line-24"></a><span class='hs-comment'>-- Stability : provisional</span>
<a name="line-25"></a><span class='hs-comment'>-- Portability : portable (depends on GHC)</span>
<a name="line-26"></a><span class='hs-comment'>--</span>
<a name="line-27"></a><span class='hs-comment'>-- Routines for handling resource files</span>
<a name="line-28"></a><span class='hs-comment'>--</span>
<a name="line-29"></a><span class='hs-keyword'>module</span> <span class='hs-conid'>Graphics</span><span class='hs-varop'>.</span><span class='hs-conid'>UI</span><span class='hs-varop'>.</span><span class='hs-conid'>Gtk</span><span class='hs-varop'>.</span><span class='hs-conid'>General</span><span class='hs-varop'>.</span><span class='hs-conid'>RcStyle</span> <span class='hs-layout'>(</span>
<a name="line-30"></a>
<a name="line-31"></a><span class='hs-comment'>-- * Detail</span>
<a name="line-32"></a><span class='hs-comment'>--</span>
<a name="line-33"></a><span class='hs-comment'>-- | Gtk+ provides resource file mechanism for configuring various aspects of</span>
<a name="line-34"></a><span class='hs-comment'>-- the operation of a Gtk+ program at runtime.</span>
<a name="line-35"></a>
<a name="line-36"></a><span class='hs-comment'>-- ** Default files</span>
<a name="line-37"></a><span class='hs-comment'>--</span>
<a name="line-38"></a><span class='hs-comment'>-- | An application can cause Gtk+ to parse a specific RC file by calling</span>
<a name="line-39"></a><span class='hs-comment'>-- 'rcParse'. In addition to this, certain files will be read at the end of</span>
<a name="line-40"></a><span class='hs-comment'>-- 'initGUI'. Unless modified, the files looked for will be</span>
<a name="line-41"></a><span class='hs-comment'>-- @\&lt;SYSCONFDIR&gt;\/gtk-2.0\/gtkrc@ and @.gtkrc-2.0@ in the users home directory.</span>
<a name="line-42"></a><span class='hs-comment'>-- @(\&lt;SYSCONFDIR&gt;@ defaults to @\/usr\/local\/etc@. It can be changed with the</span>
<a name="line-43"></a><span class='hs-comment'>-- --prefix or --sysconfdir options when configuring Gtk+.) Note that although</span>
<a name="line-44"></a><span class='hs-comment'>-- the filenames contain the version number 2.0, all 2.x versions of Gtk+ look</span>
<a name="line-45"></a><span class='hs-comment'>-- for these files.</span>
<a name="line-46"></a><span class='hs-comment'>--</span>
<a name="line-47"></a><span class='hs-comment'>-- The set of these default files can be retrieved with 'rcGetDefaultFiles'</span>
<a name="line-48"></a><span class='hs-comment'>-- and modified with 'rcAddDefaultFile' and 'rcSetDefaultFiles'. Additionally,</span>
<a name="line-49"></a><span class='hs-comment'>-- the @GTK2_RC_FILES@ environment variable can be set to a</span>
<a name="line-50"></a><span class='hs-comment'>-- @":"@-separated list of</span>
<a name="line-51"></a><span class='hs-comment'>-- files in order to overwrite the set of default files at runtime.</span>
<a name="line-52"></a><span class='hs-comment'>--</span>
<a name="line-53"></a><span class='hs-comment'>-- For each RC file, in addition to the file itself, Gtk+ will look for a</span>
<a name="line-54"></a><span class='hs-comment'>-- locale-specific file that will be parsed after the main file. For instance,</span>
<a name="line-55"></a><span class='hs-comment'>-- if @LANG@ is set to @ja_JP.ujis@, when loading the default file @~\/.gtkrc@ then</span>
<a name="line-56"></a><span class='hs-comment'>-- Gtk+ looks for @~\/.gtkrc.ja_JP@ and @~\/.gtkrc.ja@, and parses the first of</span>
<a name="line-57"></a><span class='hs-comment'>-- those that exists.</span>
<a name="line-58"></a>
<a name="line-59"></a><span class='hs-comment'>-- ** Pathnames and patterns</span>
<a name="line-60"></a><span class='hs-comment'>--</span>
<a name="line-61"></a><span class='hs-comment'>-- | A resource file defines a number of styles and key bindings and attaches</span>
<a name="line-62"></a><span class='hs-comment'>-- them to particular widgets. The attachment is done by the @widget@,</span>
<a name="line-63"></a><span class='hs-comment'>-- @widget_class@, and @class@ declarations. As an example of such a statement:</span>
<a name="line-64"></a><span class='hs-comment'>-- attaches the style @\"my-entry-class\"@ to all widgets whose widget path</span>
<a name="line-65"></a><span class='hs-comment'>-- matches the pattern @\"mywindow.*.GtkEntry\"@. That is, all 'Entry' widgets</span>
<a name="line-66"></a><span class='hs-comment'>-- which are part of a 'Window' named @\"mywindow\"@.</span>
<a name="line-67"></a><span class='hs-comment'>--</span>
<a name="line-68"></a><span class='hs-comment'>-- &gt; widget "mywindow.*.GtkEntry" style "my-entry-class"</span>
<a name="line-69"></a><span class='hs-comment'>--</span>
<a name="line-70"></a><span class='hs-comment'>-- The patterns here are given in the standard shell glob syntax. The</span>
<a name="line-71"></a><span class='hs-comment'>-- @\"?\"@ wildcard matches any character, while @\"*\"@ matches zero or more</span>
<a name="line-72"></a><span class='hs-comment'>-- of any character. The three types of matching are against the widget path,</span>
<a name="line-73"></a><span class='hs-comment'>-- the class path and the class hierarchy. Both the widget path and the class</span>
<a name="line-74"></a><span class='hs-comment'>-- path consist of a @\".\"@ separated list of all the parents of the widget</span>
<a name="line-75"></a><span class='hs-comment'>-- and the widget itself from outermost to innermost. The difference is that in</span>
<a name="line-76"></a><span class='hs-comment'>-- the widget path, the name assigned by 'widgetSetName' is used if present,</span>
<a name="line-77"></a><span class='hs-comment'>-- otherwise the class name of the widget, while for the class path, the class</span>
<a name="line-78"></a><span class='hs-comment'>-- name is always used.</span>
<a name="line-79"></a><span class='hs-comment'>--</span>
<a name="line-80"></a><span class='hs-comment'>-- Since Gtk+ 2.10, @widget_class@ paths can also contain @\&lt;classname&gt;@</span>
<a name="line-81"></a><span class='hs-comment'>-- substrings, which are matching the class with the given name and any derived</span>
<a name="line-82"></a><span class='hs-comment'>-- classes. For instance, will match 'Label' widgets which are contained in any</span>
<a name="line-83"></a><span class='hs-comment'>-- kind of menu item.</span>
<a name="line-84"></a><span class='hs-comment'>--</span>
<a name="line-85"></a><span class='hs-comment'>-- &gt; widget_class "*GtkMenuItem.GtkLabel" style "my-style"</span>
<a name="line-86"></a><span class='hs-comment'>--</span>
<a name="line-87"></a><span class='hs-comment'>-- So, if you have a 'Entry' named @\"myentry\"@, inside of a horizontal box</span>
<a name="line-88"></a><span class='hs-comment'>-- in a window named @\"mywindow\"@, then the widget path is:</span>
<a name="line-89"></a><span class='hs-comment'>-- @\"mywindow.GtkHBox.myentry\"@ while the class path is:</span>
<a name="line-90"></a><span class='hs-comment'>-- @\"GtkWindow.GtkHBox.GtkEntry\"@.</span>
<a name="line-91"></a><span class='hs-comment'>--</span>
<a name="line-92"></a><span class='hs-comment'>-- Matching against class is a little different. The pattern match is done</span>
<a name="line-93"></a><span class='hs-comment'>-- against all class names in the widgets class hierarchy (not the layout</span>
<a name="line-94"></a><span class='hs-comment'>-- hierarchy) in sequence, so the pattern: will match not just 'Button'</span>
<a name="line-95"></a><span class='hs-comment'>-- widgets, but also 'ToggleButton' and 'CheckButton' widgets, since those</span>
<a name="line-96"></a><span class='hs-comment'>-- classes derive from 'Button'.</span>
<a name="line-97"></a><span class='hs-comment'>--</span>
<a name="line-98"></a><span class='hs-comment'>-- &gt; class "GtkButton" style "my-style"</span>
<a name="line-99"></a><span class='hs-comment'>--</span>
<a name="line-100"></a><span class='hs-comment'>-- Additionally, a priority can be specified for each pattern, and styles</span>
<a name="line-101"></a><span class='hs-comment'>-- override other styles first by priority, then by pattern type and then by</span>
<a name="line-102"></a><span class='hs-comment'>-- order of specification (later overrides earlier). The priorities that can be</span>
<a name="line-103"></a><span class='hs-comment'>-- specified are (highest to lowest):</span>
<a name="line-104"></a><span class='hs-comment'>--</span>
<a name="line-105"></a><span class='hs-comment'>-- * @highest@</span>
<a name="line-106"></a><span class='hs-comment'>--</span>
<a name="line-107"></a><span class='hs-comment'>-- * @rc@</span>
<a name="line-108"></a><span class='hs-comment'>--</span>
<a name="line-109"></a><span class='hs-comment'>-- * @theme@</span>
<a name="line-110"></a><span class='hs-comment'>--</span>
<a name="line-111"></a><span class='hs-comment'>-- * @application@</span>
<a name="line-112"></a><span class='hs-comment'>--</span>
<a name="line-113"></a><span class='hs-comment'>-- * @gtk@</span>
<a name="line-114"></a><span class='hs-comment'>--</span>
<a name="line-115"></a><span class='hs-comment'>-- * @lowest@</span>
<a name="line-116"></a><span class='hs-comment'>--</span>
<a name="line-117"></a><span class='hs-comment'>-- @rc@ is the default for styles read from an RC file, @theme@ is the</span>
<a name="line-118"></a><span class='hs-comment'>-- default for styles read from theme RC files, @application@ should be used</span>
<a name="line-119"></a><span class='hs-comment'>-- for styles an application sets up, and @gtk@ is used for styles that Gtk+</span>
<a name="line-120"></a><span class='hs-comment'>-- creates internally.</span>
<a name="line-121"></a>
<a name="line-122"></a><span class='hs-comment'>-- ** Optimizing RC Style Matches</span>
<a name="line-123"></a><span class='hs-comment'>--</span>
<a name="line-124"></a><span class='hs-comment'>-- | Everytime a widget is created and added to the layout hierarchy of a</span>
<a name="line-125"></a><span class='hs-comment'>-- 'Window' (\"anchored\" to be exact), a list of matching RC styles out of all</span>
<a name="line-126"></a><span class='hs-comment'>-- RC styles read in so far is composed. For this, every RC style is matched</span>
<a name="line-127"></a><span class='hs-comment'>-- against the widgets class path, the widgets name path and widgets</span>
<a name="line-128"></a><span class='hs-comment'>-- inheritance hierarchy. As a consequence, significant slowdown can be caused</span>
<a name="line-129"></a><span class='hs-comment'>-- by utilization of many RC styles and by using RC style patterns that are</span>
<a name="line-130"></a><span class='hs-comment'>-- slow or complicated to match against a given widget. The following ordered</span>
<a name="line-131"></a><span class='hs-comment'>-- list provides a number of advices (prioritized by effectiveness) to reduce</span>
<a name="line-132"></a><span class='hs-comment'>-- the performance overhead associated with RC style matches:</span>
<a name="line-133"></a><span class='hs-comment'>--</span>
<a name="line-134"></a><span class='hs-comment'>-- Move RC styles for specific applications into RC files dedicated to those</span>
<a name="line-135"></a><span class='hs-comment'>-- applications and parse application specific RC files only from applications</span>
<a name="line-136"></a><span class='hs-comment'>-- that are affected by them. This reduces the overall amount of RC styles that</span>
<a name="line-137"></a><span class='hs-comment'>-- have to be considered for a match across a group of applications.</span>
<a name="line-138"></a><span class='hs-comment'>--</span>
<a name="line-139"></a><span class='hs-comment'>-- Merge multiple styles which use the same matching rule, for instance: is</span>
<a name="line-140"></a><span class='hs-comment'>-- faster to match as:</span>
<a name="line-141"></a><span class='hs-comment'>--</span>
<a name="line-142"></a><span class='hs-comment'>-- &gt; style "Foo" { foo_content }</span>
<a name="line-143"></a><span class='hs-comment'>-- &gt; class "X" style "Foo"</span>
<a name="line-144"></a><span class='hs-comment'>-- &gt; style "Bar" { bar_content }</span>
<a name="line-145"></a><span class='hs-comment'>-- &gt; class "X" style "Bar"</span>
<a name="line-146"></a><span class='hs-comment'>--</span>
<a name="line-147"></a><span class='hs-comment'>-- &gt; style "FooBar" { foo_content bar_content }</span>
<a name="line-148"></a><span class='hs-comment'>-- &gt; class "X" style "FooBar"</span>
<a name="line-149"></a><span class='hs-comment'>--</span>
<a name="line-150"></a><span class='hs-comment'>-- Use of wildcards should be avoided, this can reduce the individual RC</span>
<a name="line-151"></a><span class='hs-comment'>-- style match to a single integer comparison in most cases.</span>
<a name="line-152"></a><span class='hs-comment'>--</span>
<a name="line-153"></a><span class='hs-comment'>-- To avoid complex recursive matching, specification of full class names</span>
<a name="line-154"></a><span class='hs-comment'>-- (for @class@ matches) or full path names (for @widget@ and @widget_class@</span>
<a name="line-155"></a><span class='hs-comment'>-- matches) is to be preferred over shortened names containing @\"*\"@ or</span>
<a name="line-156"></a><span class='hs-comment'>-- @\"?\"@.</span>
<a name="line-157"></a><span class='hs-comment'>--</span>
<a name="line-158"></a><span class='hs-comment'>-- If at all necessary, wildcards should only be used at the tail or head of</span>
<a name="line-159"></a><span class='hs-comment'>-- a pattern. This reduces the match complexity to a string comparison per RC</span>
<a name="line-160"></a><span class='hs-comment'>-- style.</span>
<a name="line-161"></a><span class='hs-comment'>--</span>
<a name="line-162"></a><span class='hs-comment'>-- When using wildcards, use of @\"?\"@ should be preferred over @\"*\"@.</span>
<a name="line-163"></a><span class='hs-comment'>-- This can reduce the matching complexity from O(n^2) to O(n). For example</span>
<a name="line-164"></a><span class='hs-comment'>-- @\"Gtk*Box\"@ can be turned into @\"Gtk?Box\"@ and will still match 'HBox'</span>
<a name="line-165"></a><span class='hs-comment'>-- and 'VBox'.</span>
<a name="line-166"></a><span class='hs-comment'>--</span>
<a name="line-167"></a><span class='hs-comment'>-- The use of @\"*\"@ wildcards should be restricted as much as possible,</span>
<a name="line-168"></a><span class='hs-comment'>-- because matching @\"A*B*C*RestString\"@ can result in matching complexities</span>
<a name="line-169"></a><span class='hs-comment'>-- of O(n^2) worst case.</span>
<a name="line-170"></a>
<a name="line-171"></a><span class='hs-comment'>-- ** Toplevel declarations</span>
<a name="line-172"></a><span class='hs-comment'>--</span>
<a name="line-173"></a><span class='hs-comment'>-- | An RC file is a text file which is composed of a sequence of</span>
<a name="line-174"></a><span class='hs-comment'>-- declarations. @\'#\'@ characters delimit comments and the portion of a line</span>
<a name="line-175"></a><span class='hs-comment'>-- after a @\'#\'@ is ignored when parsing an RC file.</span>
<a name="line-176"></a><span class='hs-comment'>--</span>
<a name="line-177"></a><span class='hs-comment'>-- The possible toplevel declarations are:</span>
<a name="line-178"></a><span class='hs-comment'>--</span>
<a name="line-179"></a><span class='hs-comment'>-- [@binding name { ... }@] Declares a binding set.</span>
<a name="line-180"></a><span class='hs-comment'>--</span>
<a name="line-181"></a><span class='hs-comment'>-- [@class pattern [ style | binding \][ : priority \] name@]</span>
<a name="line-182"></a><span class='hs-comment'>-- Specifies a style or binding set for a particular branch of the inheritance</span>
<a name="line-183"></a><span class='hs-comment'>-- hierarchy.</span>
<a name="line-184"></a><span class='hs-comment'>--</span>
<a name="line-185"></a><span class='hs-comment'>-- [@include filename@] Parses another file at this point. If filename is</span>
<a name="line-186"></a><span class='hs-comment'>-- not an absolute filename, it is searched in the directories of the currently</span>
<a name="line-187"></a><span class='hs-comment'>-- open RC files. Gtk+ also tries to load a locale-specific variant of the</span>
<a name="line-188"></a><span class='hs-comment'>-- included file.</span>
<a name="line-189"></a><span class='hs-comment'>--</span>
<a name="line-190"></a><span class='hs-comment'>-- [@module_path path@] Sets a path (a list of directories separated by</span>
<a name="line-191"></a><span class='hs-comment'>-- colons) that will be searched for theme engines referenced in RC files.</span>
<a name="line-192"></a><span class='hs-comment'>--</span>
<a name="line-193"></a><span class='hs-comment'>-- [@pixmap_path path@] Sets a path (a list of directories separated by</span>
<a name="line-194"></a><span class='hs-comment'>-- colons) that will be searched for pixmaps referenced in RC files.</span>
<a name="line-195"></a><span class='hs-comment'>--</span>
<a name="line-196"></a><span class='hs-comment'>-- [@im_module_file pathname@] Sets the pathname for the IM modules file.</span>
<a name="line-197"></a><span class='hs-comment'>-- Setting this from RC files is deprecated; you should use the environment</span>
<a name="line-198"></a><span class='hs-comment'>-- variable GTK_IM_MODULE_FILE instead.</span>
<a name="line-199"></a><span class='hs-comment'>--</span>
<a name="line-200"></a><span class='hs-comment'>-- [@style name [ = parent \] { ... }@] Declares a style.</span>
<a name="line-201"></a><span class='hs-comment'>--</span>
<a name="line-202"></a><span class='hs-comment'>-- [@widget pattern [ style | binding \][ : priority \] name@]</span>
<a name="line-203"></a><span class='hs-comment'>-- Specifies a style or binding set for a particular group of widgets by</span>
<a name="line-204"></a><span class='hs-comment'>-- matching on the widget pathname.</span>
<a name="line-205"></a><span class='hs-comment'>--</span>
<a name="line-206"></a><span class='hs-comment'>-- [@widget_class pattern [ style | binding \][ : priority \] name@]</span>
<a name="line-207"></a><span class='hs-comment'>-- Specifies a style or binding set for a particular group of widgets by</span>
<a name="line-208"></a><span class='hs-comment'>-- matching on the class pathname.</span>
<a name="line-209"></a><span class='hs-comment'>--</span>
<a name="line-210"></a><span class='hs-comment'>-- [setting = value] Specifies a value for a setting. Note that settings in</span>
<a name="line-211"></a><span class='hs-comment'>-- RC files are overwritten by system-wide settings (which are managed by an</span>
<a name="line-212"></a><span class='hs-comment'>-- XSettings manager on X11).</span>
<a name="line-213"></a>
<a name="line-214"></a><span class='hs-comment'>-- ** Styles</span>
<a name="line-215"></a><span class='hs-comment'>--</span>
<a name="line-216"></a><span class='hs-comment'>-- | A RC style is specified by a @style@ declaration in a RC file, and then</span>
<a name="line-217"></a><span class='hs-comment'>-- bound to widgets with a @widget@, @widget_class@, or @class@ declaration.</span>
<a name="line-218"></a><span class='hs-comment'>-- All styles applying to a particular widget are composited together with</span>
<a name="line-219"></a><span class='hs-comment'>-- @widget@ declarations overriding @widget_class@ declarations which, in turn,</span>
<a name="line-220"></a><span class='hs-comment'>-- override @class@ declarations. Within each type of declaration, later</span>
<a name="line-221"></a><span class='hs-comment'>-- declarations override earlier ones.</span>
<a name="line-222"></a><span class='hs-comment'>--</span>
<a name="line-223"></a><span class='hs-comment'>-- Within a @style@ declaration, the possible elements are:</span>
<a name="line-224"></a><span class='hs-comment'>--</span>
<a name="line-225"></a><span class='hs-comment'>-- [@bg[state\] = color@] Sets the color used for the background of</span>
<a name="line-226"></a><span class='hs-comment'>-- most widgets.</span>
<a name="line-227"></a><span class='hs-comment'>--</span>
<a name="line-228"></a><span class='hs-comment'>-- [@fg[state\] = color@] Sets the color used for the foreground of</span>
<a name="line-229"></a><span class='hs-comment'>-- most widgets.</span>
<a name="line-230"></a><span class='hs-comment'>--</span>
<a name="line-231"></a><span class='hs-comment'>-- [@base[state\] = color@] Sets the color used for the background of</span>
<a name="line-232"></a><span class='hs-comment'>-- widgets displaying editable text. This color is used for the background of,</span>
<a name="line-233"></a><span class='hs-comment'>-- among others, {GtkText, FIXME: unknown type\/value}, 'Entry', 'List', and</span>
<a name="line-234"></a><span class='hs-comment'>-- 'CList'.</span>
<a name="line-235"></a><span class='hs-comment'>--</span>
<a name="line-236"></a><span class='hs-comment'>-- [@text[state\] = color@] Sets the color used for foreground of</span>
<a name="line-237"></a><span class='hs-comment'>-- widgets using @base@ for the background color.</span>
<a name="line-238"></a><span class='hs-comment'>--</span>
<a name="line-239"></a><span class='hs-comment'>-- [@xthickness = number@] Sets the xthickness, which is used for</span>
<a name="line-240"></a><span class='hs-comment'>-- various horizontal padding values in Gtk+.</span>
<a name="line-241"></a><span class='hs-comment'>--</span>
<a name="line-242"></a><span class='hs-comment'>-- [@ythickness = number@] Sets the ythickness, which is used for</span>
<a name="line-243"></a><span class='hs-comment'>-- various vertical padding values in Gtk+.</span>
<a name="line-244"></a><span class='hs-comment'>--</span>
<a name="line-245"></a><span class='hs-comment'>-- [@bg_pixmap[state\] = pixmap@] Sets a background pixmap to be used</span>
<a name="line-246"></a><span class='hs-comment'>-- in place of the @bg@ color (or for {GtkText, FIXME: unknown type\/value}, in</span>
<a name="line-247"></a><span class='hs-comment'>-- place of the @base@ color. The special value @\"\&lt;parent&gt;\"@ may be used to</span>
<a name="line-248"></a><span class='hs-comment'>-- indicate that the widget should use the same background pixmap as its</span>
<a name="line-249"></a><span class='hs-comment'>-- parent. The special value @\"\&lt;none&gt;\"@ may be used to indicate no</span>
<a name="line-250"></a><span class='hs-comment'>-- background pixmap.</span>
<a name="line-251"></a><span class='hs-comment'>--</span>
<a name="line-252"></a><span class='hs-comment'>-- [@font = font@] Starting with Gtk+ 2.0, the \"font\" and \"fontset\"</span>
<a name="line-253"></a><span class='hs-comment'>-- declarations are ignored; use \"font_name\" declarations instead.</span>
<a name="line-254"></a><span class='hs-comment'>--</span>
<a name="line-255"></a><span class='hs-comment'>-- [@fontset = font@] Starting with Gtk+ 2.0, the \"font\" and \"fontset\"</span>
<a name="line-256"></a><span class='hs-comment'>-- declarations are ignored; use \"font_name\" declarations instead.</span>
<a name="line-257"></a><span class='hs-comment'>--</span>
<a name="line-258"></a><span class='hs-comment'>-- [@font_name = font@] Sets the font for a widget. font must be a Pango</span>
<a name="line-259"></a><span class='hs-comment'>-- font name, e.g. @\"Sans Italic 10\"@. For details about Pango font names,</span>
<a name="line-260"></a><span class='hs-comment'>-- see 'fontDescriptionFromString'.</span>
<a name="line-261"></a><span class='hs-comment'>--</span>
<a name="line-262"></a><span class='hs-comment'>-- [@stock[\"stock-id\"\] = { icon source specifications }@] Defines the</span>
<a name="line-263"></a><span class='hs-comment'>-- icon for a stock item.</span>
<a name="line-264"></a><span class='hs-comment'>--</span>
<a name="line-265"></a><span class='hs-comment'>-- [@color[\"color-name\"\] = color specification@] Since 2.10, this element</span>
<a name="line-266"></a><span class='hs-comment'>-- can be used to defines symbolic colors. See below for the syntax of color</span>
<a name="line-267"></a><span class='hs-comment'>-- specifications.</span>
<a name="line-268"></a><span class='hs-comment'>--</span>
<a name="line-269"></a><span class='hs-comment'>-- [@engine \"engine\" { engine-specific settings }@] Defines the engine to</span>
<a name="line-270"></a><span class='hs-comment'>-- be used when drawing with this style.</span>
<a name="line-271"></a><span class='hs-comment'>--</span>
<a name="line-272"></a><span class='hs-comment'>-- [@class::property = value@] Sets a style property for a widget class.</span>
<a name="line-273"></a><span class='hs-comment'>--</span>
<a name="line-274"></a><span class='hs-comment'>-- The colors and background pixmaps are specified as a function of the</span>
<a name="line-275"></a><span class='hs-comment'>-- state of the widget. The states are:</span>
<a name="line-276"></a><span class='hs-comment'>--</span>
<a name="line-277"></a><span class='hs-comment'>-- [@NORMAL@] A color used for a widget in its normal state.</span>
<a name="line-278"></a><span class='hs-comment'>--</span>
<a name="line-279"></a><span class='hs-comment'>-- [@ACTIVE@] A variant of the @NORMAL@ color used when the widget is in the</span>
<a name="line-280"></a><span class='hs-comment'>-- 'StateActive' state, and also for the trough of a ScrollBar, tabs of a</span>
<a name="line-281"></a><span class='hs-comment'>-- NoteBook other than the current tab and similar areas. Frequently, this</span>
<a name="line-282"></a><span class='hs-comment'>-- should be a darker variant of the @NORMAL@ color.</span>
<a name="line-283"></a><span class='hs-comment'>--</span>
<a name="line-284"></a><span class='hs-comment'>-- [@PRELIGHT@] A color used for widgets in the 'StatePrelight' state. This</span>
<a name="line-285"></a><span class='hs-comment'>-- state is the used for Buttons and MenuItems that have the mouse cursor over</span>
<a name="line-286"></a><span class='hs-comment'>-- them, and for their children.</span>
<a name="line-287"></a><span class='hs-comment'>--</span>
<a name="line-288"></a><span class='hs-comment'>-- [@SELECTED@] A color used to highlight data selected by the user. for</span>
<a name="line-289"></a><span class='hs-comment'>-- instance, the selected items in a list widget, and the selection in an</span>
<a name="line-290"></a><span class='hs-comment'>-- editable widget.</span>
<a name="line-291"></a><span class='hs-comment'>--</span>
<a name="line-292"></a><span class='hs-comment'>-- [@INSENSITIVE@] A color used for the background of widgets that have been</span>
<a name="line-293"></a><span class='hs-comment'>-- set insensitive with 'widgetSetSensitive'.</span>
<a name="line-294"></a><span class='hs-comment'>--</span>
<a name="line-295"></a><span class='hs-comment'>-- Colors can be specified as a string containing a color name (GTK+ knows</span>
<a name="line-296"></a><span class='hs-comment'>-- all names from the X color database \/usr\/lib\/X11\/rgb.txt), in one of the</span>
<a name="line-297"></a><span class='hs-comment'>-- hexadecimal forms @#rrrrggggbbbb@, @#rrrgggbbb@, @#rrggbb@, or @#rgb@, where</span>
<a name="line-298"></a><span class='hs-comment'>-- @r@, @g@ and @b@ are hex digits, or they can be specified as a triplet @{ r,</span>
<a name="line-299"></a><span class='hs-comment'>-- g, b}@, where @r@, @g@ and @b@ are either integers in the range 0-65535 or</span>
<a name="line-300"></a><span class='hs-comment'>-- floats in the range 0.0-1.0.</span>
<a name="line-301"></a><span class='hs-comment'>--</span>
<a name="line-302"></a><span class='hs-comment'>-- Since 2.10, colors can also be specified by refering to a symbolic color,</span>
<a name="line-303"></a><span class='hs-comment'>-- as follows: @\@color-name@, or by using expressions to combine colors. The</span>
<a name="line-304"></a><span class='hs-comment'>-- following expressions are currently supported:</span>
<a name="line-305"></a><span class='hs-comment'>--</span>
<a name="line-306"></a><span class='hs-comment'>-- [mix (factor, color1, color2)] Computes a new color by mixing color1 and</span>
<a name="line-307"></a><span class='hs-comment'>-- color2. The factor determines how close the new color is to color1. A factor</span>
<a name="line-308"></a><span class='hs-comment'>-- of 1.0 gives pure color1, a factor of 0.0 gives pure color2.</span>
<a name="line-309"></a><span class='hs-comment'>--</span>
<a name="line-310"></a><span class='hs-comment'>-- [shade (factor, color)] Computes a lighter or darker variant of color. A</span>
<a name="line-311"></a><span class='hs-comment'>-- factor of 1.0 leaves the color unchanged, smaller factors yield darker</span>
<a name="line-312"></a><span class='hs-comment'>-- colors, larger factors yield lighter colors.</span>
<a name="line-313"></a><span class='hs-comment'>--</span>
<a name="line-314"></a><span class='hs-comment'>-- [lighter (color)] This is an abbreviation for @shade (1.3, color)@.</span>
<a name="line-315"></a><span class='hs-comment'>--</span>
<a name="line-316"></a><span class='hs-comment'>-- [darker (color)] This is an abbreviation for @shade (0.7, color)@.</span>
<a name="line-317"></a><span class='hs-comment'>--</span>
<a name="line-318"></a><span class='hs-comment'>-- Here are some examples of color expressions:</span>
<a name="line-319"></a><span class='hs-comment'>--</span>
<a name="line-320"></a><span class='hs-comment'>-- &gt; mix (0.5, "red", "blue")</span>
<a name="line-321"></a><span class='hs-comment'>-- &gt; shade (1.5, mix (0.3, "#0abbc0", { 0.3, 0.5, 0.9 }))</span>
<a name="line-322"></a><span class='hs-comment'>-- &gt; lighter (@foreground)</span>
<a name="line-323"></a><span class='hs-comment'>--</span>
<a name="line-324"></a><span class='hs-comment'>-- In a @stock@ definition, icon sources are specified as a 4-tuple of image</span>
<a name="line-325"></a><span class='hs-comment'>-- filename or icon name, text direction, widget state, and size, in that</span>
<a name="line-326"></a><span class='hs-comment'>-- order. Each icon source specifies an image filename or icon name to use with</span>
<a name="line-327"></a><span class='hs-comment'>-- a given direction, state, and size. Filenames are specified as a string such</span>
<a name="line-328"></a><span class='hs-comment'>-- as @\"itemltr.png\"@, while icon names (looked up in the current icon</span>
<a name="line-329"></a><span class='hs-comment'>-- theme), are specified with a leading @\@@, such as @\@\"item-ltr\"@. The @*@</span>
<a name="line-330"></a><span class='hs-comment'>-- character can be used as a wildcard, and if direction\/state\/size are</span>
<a name="line-331"></a><span class='hs-comment'>-- omitted they default to @*@. So for example, the following specifies</span>
<a name="line-332"></a><span class='hs-comment'>-- different icons to use for left-to-right and right-to-left languages: This</span>
<a name="line-333"></a><span class='hs-comment'>-- could be abbreviated as follows:</span>
<a name="line-334"></a><span class='hs-comment'>--</span>
<a name="line-335"></a><span class='hs-comment'>-- &gt; stock["my-stock-item"] =</span>
<a name="line-336"></a><span class='hs-comment'>-- &gt; {</span>
<a name="line-337"></a><span class='hs-comment'>-- &gt; { "itemltr.png", LTR, *, * },</span>
<a name="line-338"></a><span class='hs-comment'>-- &gt; { "itemrtl.png", RTL, *, * }</span>
<a name="line-339"></a><span class='hs-comment'>-- &gt; }</span>
<a name="line-340"></a><span class='hs-comment'>--</span>
<a name="line-341"></a><span class='hs-comment'>-- &gt; stock["my-stock-item"] =</span>
<a name="line-342"></a><span class='hs-comment'>-- &gt; {</span>
<a name="line-343"></a><span class='hs-comment'>-- &gt; { "itemltr.png", LTR },</span>
<a name="line-344"></a><span class='hs-comment'>-- &gt; { "itemrtl.png", RTL }</span>
<a name="line-345"></a><span class='hs-comment'>-- &gt; }</span>
<a name="line-346"></a><span class='hs-comment'>--</span>
<a name="line-347"></a><span class='hs-comment'>-- You can specify custom icons for specific sizes, as follows: The sizes</span>
<a name="line-348"></a><span class='hs-comment'>-- that come with Gtk+ itself are @\"gtk-menu\"@, @\"gtk-small-toolbar\"@,</span>
<a name="line-349"></a><span class='hs-comment'>-- @\"gtk-large-toolbar\"@, @\"gtk-button\"@, @\"gtk-dialog\"@. Applications</span>
<a name="line-350"></a><span class='hs-comment'>-- can define other sizes.</span>
<a name="line-351"></a><span class='hs-comment'>--</span>
<a name="line-352"></a><span class='hs-comment'>-- &gt; stock["my-stock-item"] =</span>
<a name="line-353"></a><span class='hs-comment'>-- &gt; {</span>
<a name="line-354"></a><span class='hs-comment'>-- &gt; { "itemmenusize.png", *, *, "gtk-menu" },</span>
<a name="line-355"></a><span class='hs-comment'>-- &gt; { "itemtoolbarsize.png", *, *, "gtk-large-toolbar" }</span>
<a name="line-356"></a><span class='hs-comment'>-- &gt; { "itemgeneric.png" }</span>
<a name="line-357"></a><span class='hs-comment'>-- &gt; }</span>
<a name="line-358"></a><span class='hs-comment'>--</span>
<a name="line-359"></a><span class='hs-comment'>-- It's also possible to use custom icons for a given state, for example:</span>
<a name="line-360"></a><span class='hs-comment'>--</span>
<a name="line-361"></a><span class='hs-comment'>-- &gt; stock["my-stock-item"] =</span>
<a name="line-362"></a><span class='hs-comment'>-- &gt; {</span>
<a name="line-363"></a><span class='hs-comment'>-- &gt; { "itemprelight.png", *, PRELIGHT },</span>
<a name="line-364"></a><span class='hs-comment'>-- &gt; { "iteminsensitive.png", *, INSENSITIVE },</span>
<a name="line-365"></a><span class='hs-comment'>-- &gt; { "itemgeneric.png" }</span>
<a name="line-366"></a><span class='hs-comment'>-- &gt; }</span>
<a name="line-367"></a><span class='hs-comment'>--</span>
<a name="line-368"></a><span class='hs-comment'>-- When selecting an icon source to use, Gtk+ will consider text direction</span>
<a name="line-369"></a><span class='hs-comment'>-- most important, state second, and size third. It will select the best match</span>
<a name="line-370"></a><span class='hs-comment'>-- based on those criteria. If an attribute matches exactly (e.g. you specified</span>
<a name="line-371"></a><span class='hs-comment'>-- @PRELIGHT@ or specified the size), Gtk+ won't modify the image; if the</span>
<a name="line-372"></a><span class='hs-comment'>-- attribute matches with a wildcard, Gtk+ will scale or modify the image to</span>
<a name="line-373"></a><span class='hs-comment'>-- match the state and size the user requested.</span>
<a name="line-374"></a>
<a name="line-375"></a><span class='hs-comment'>-- ** Key bindings</span>
<a name="line-376"></a><span class='hs-comment'>--</span>
<a name="line-377"></a><span class='hs-comment'>-- | Key bindings allow the user to specify actions to be taken on particular</span>
<a name="line-378"></a><span class='hs-comment'>-- key presses. The form of a binding set declaration is:</span>
<a name="line-379"></a><span class='hs-comment'>--</span>
<a name="line-380"></a><span class='hs-comment'>-- key is a string consisting of a series of modifiers followed by the name</span>
<a name="line-381"></a><span class='hs-comment'>-- of a key. The modifiers can be:</span>
<a name="line-382"></a><span class='hs-comment'>--</span>
<a name="line-383"></a><span class='hs-comment'>-- * @\&lt;alt&gt;@</span>
<a name="line-384"></a><span class='hs-comment'>--</span>
<a name="line-385"></a><span class='hs-comment'>-- * @\&lt;ctl&gt;@</span>
<a name="line-386"></a><span class='hs-comment'>--</span>
<a name="line-387"></a><span class='hs-comment'>-- * @\&lt;control&gt;@</span>
<a name="line-388"></a><span class='hs-comment'>--</span>
<a name="line-389"></a><span class='hs-comment'>-- * @\&lt;meta&gt;@</span>
<a name="line-390"></a><span class='hs-comment'>--</span>
<a name="line-391"></a><span class='hs-comment'>-- * @\&lt;hyper&gt;@</span>
<a name="line-392"></a><span class='hs-comment'>--</span>
<a name="line-393"></a><span class='hs-comment'>-- * @\&lt;super&gt;@</span>
<a name="line-394"></a><span class='hs-comment'>--</span>
<a name="line-395"></a><span class='hs-comment'>-- * @\&lt;mod1&gt;@</span>
<a name="line-396"></a><span class='hs-comment'>--</span>
<a name="line-397"></a><span class='hs-comment'>-- * @\&lt;mod2&gt;@</span>
<a name="line-398"></a><span class='hs-comment'>--</span>
<a name="line-399"></a><span class='hs-comment'>-- * @\&lt;mod3&gt;@</span>
<a name="line-400"></a><span class='hs-comment'>--</span>
<a name="line-401"></a><span class='hs-comment'>-- * @\&lt;mod4&gt;@</span>
<a name="line-402"></a><span class='hs-comment'>--</span>
<a name="line-403"></a><span class='hs-comment'>-- * @\&lt;mod5&gt;@</span>
<a name="line-404"></a><span class='hs-comment'>--</span>
<a name="line-405"></a><span class='hs-comment'>-- * @\&lt;release&gt;@</span>
<a name="line-406"></a><span class='hs-comment'>--</span>
<a name="line-407"></a><span class='hs-comment'>-- * @\&lt;shft&gt;@</span>
<a name="line-408"></a><span class='hs-comment'>--</span>
<a name="line-409"></a><span class='hs-comment'>-- * @\&lt;shift&gt;@</span>
<a name="line-410"></a><span class='hs-comment'>--</span>
<a name="line-411"></a><span class='hs-comment'>-- @\&lt;shft&gt;@ is an alias for @\&lt;shift&gt;@, @\&lt;ctl&gt;@ is an alias for</span>
<a name="line-412"></a><span class='hs-comment'>-- @\&lt;control&gt;@, and @\&lt;alt&gt;@ is an alias for @\&lt;mod1&gt;@.</span>
<a name="line-413"></a><span class='hs-comment'>--</span>
<a name="line-414"></a><span class='hs-comment'>-- The action that is bound to the key is a sequence of signal names</span>
<a name="line-415"></a><span class='hs-comment'>-- (strings) followed by parameters for each signal. The signals must be action</span>
<a name="line-416"></a><span class='hs-comment'>-- signals. (See 'gSignalNew'). Each parameter can be a float, integer, string,</span>
<a name="line-417"></a><span class='hs-comment'>-- or unquoted string representing an enumeration value. The types of the</span>
<a name="line-418"></a><span class='hs-comment'>-- parameters specified must match the types of the parameters of the signal.</span>
<a name="line-419"></a><span class='hs-comment'>--</span>
<a name="line-420"></a><span class='hs-comment'>-- Binding sets are connected to widgets in the same manner as styles, with</span>
<a name="line-421"></a><span class='hs-comment'>-- one difference: Binding sets override other binding sets first by pattern</span>
<a name="line-422"></a><span class='hs-comment'>-- type, then by priority and then by order of specification. The priorities</span>
<a name="line-423"></a><span class='hs-comment'>-- that can be specified and their default values are the same as for styles.</span>
<a name="line-424"></a>
<a name="line-425"></a><span class='hs-comment'>-- * Class Hierarchy</span>
<a name="line-426"></a><span class='hs-comment'>--</span>
<a name="line-427"></a><span class='hs-comment'>-- |</span>
<a name="line-428"></a><span class='hs-comment'>-- @</span>
<a name="line-429"></a><span class='hs-comment'>-- | 'GObject'</span>
<a name="line-430"></a><span class='hs-comment'>-- | +----RcStyle</span>
<a name="line-431"></a><span class='hs-comment'>-- @</span>
<a name="line-432"></a>
<a name="line-433"></a><span class='hs-comment'>-- * Types</span>
<a name="line-434"></a>  <span class='hs-conid'>RcStyle</span><span class='hs-layout'>,</span>
<a name="line-435"></a>  <span class='hs-conid'>RcStyleClass</span><span class='hs-layout'>,</span>
<a name="line-436"></a>  <span class='hs-varid'>castToRcStyle</span><span class='hs-layout'>,</span> <span class='hs-varid'>gTypeRcStyle</span><span class='hs-layout'>,</span>
<a name="line-437"></a>  <span class='hs-varid'>toRcStyle</span><span class='hs-layout'>,</span>
<a name="line-438"></a>
<a name="line-439"></a><span class='hs-comment'>-- * Constructors</span>
<a name="line-440"></a>  <span class='hs-varid'>rcStyleNew</span><span class='hs-layout'>,</span>
<a name="line-441"></a>
<a name="line-442"></a><span class='hs-comment'>-- * Methods</span>
<a name="line-443"></a>  <span class='hs-varid'>rcStyleCopy</span><span class='hs-layout'>,</span>
<a name="line-444"></a>  <span class='hs-varid'>rcAddDefaultFile</span><span class='hs-layout'>,</span>
<a name="line-445"></a>  <span class='hs-varid'>rcGetDefaultFiles</span><span class='hs-layout'>,</span>
<a name="line-446"></a>  <span class='hs-varid'>rcGetImModuleFile</span><span class='hs-layout'>,</span>
<a name="line-447"></a>  <span class='hs-varid'>rcGetModuleDir</span><span class='hs-layout'>,</span>
<a name="line-448"></a>  <span class='hs-varid'>rcGetStyle</span><span class='hs-layout'>,</span>
<a name="line-449"></a>  <span class='hs-varid'>rcGetStyleByPaths</span><span class='hs-layout'>,</span>
<a name="line-450"></a>  <span class='hs-varid'>rcGetThemeDir</span><span class='hs-layout'>,</span>
<a name="line-451"></a>  <span class='hs-varid'>rcParse</span><span class='hs-layout'>,</span>
<a name="line-452"></a>  <span class='hs-varid'>rcParseString</span><span class='hs-layout'>,</span>
<a name="line-453"></a>  <span class='hs-varid'>rcReparseAll</span><span class='hs-layout'>,</span>
<a name="line-454"></a>  <span class='hs-varid'>rcReparseAllForSettings</span><span class='hs-layout'>,</span>
<a name="line-455"></a>  <span class='hs-varid'>rcResetStyles</span><span class='hs-layout'>,</span>
<a name="line-456"></a>  <span class='hs-varid'>rcSetDefaultFiles</span><span class='hs-layout'>,</span>
<a name="line-457"></a>  <span class='hs-layout'>)</span> <span class='hs-keyword'>where</span>
<a name="line-458"></a>
<a name="line-459"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Control</span><span class='hs-varop'>.</span><span class='hs-conid'>Monad</span> <span class='hs-layout'>(</span><span class='hs-varid'>liftM</span><span class='hs-layout'>)</span>
<a name="line-460"></a>
<a name="line-461"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>System</span><span class='hs-varop'>.</span><span class='hs-conid'>Glib</span><span class='hs-varop'>.</span><span class='hs-conid'>FFI</span>
<a name="line-462"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>System</span><span class='hs-varop'>.</span><span class='hs-conid'>Glib</span><span class='hs-varop'>.</span><span class='hs-conid'>UTFString</span>
<a name="line-463"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>System</span><span class='hs-varop'>.</span><span class='hs-conid'>Glib</span><span class='hs-varop'>.</span><span class='hs-conid'>GType</span> <span class='hs-layout'>(</span><span class='hs-conid'>GType</span><span class='hs-layout'>)</span>
<a name="line-464"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>System</span><span class='hs-varop'>.</span><span class='hs-conid'>Glib</span><span class='hs-varop'>.</span><span class='hs-conid'>GTypeConstants</span> <span class='hs-layout'>(</span><span class='hs-varid'>none</span><span class='hs-layout'>)</span>
<a name="line-465"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Graphics</span><span class='hs-varop'>.</span><span class='hs-conid'>UI</span><span class='hs-varop'>.</span><span class='hs-conid'>Gtk</span><span class='hs-varop'>.</span><span class='hs-conid'>Types</span>
<a name="line-466"></a><span class='hs-comment'>{-# LINE 465 "./Graphics/UI/Gtk/General/RcStyle.chs" #-}</span>
<a name="line-467"></a>
<a name="line-468"></a>
<a name="line-469"></a>
<a name="line-470"></a><span class='hs-comment'>{-# LINE 468 "./Graphics/UI/Gtk/General/RcStyle.chs" #-}</span>
<a name="line-471"></a>
<a name="line-472"></a><span class='hs-comment'>--------------------</span>
<a name="line-473"></a><span class='hs-comment'>-- Constructors</span>
<a name="line-474"></a>
<a name="line-475"></a><a name="rcStyleNew"></a><span class='hs-comment'>-- | Creates a new 'RcStyle' with no fields set. The 'RcStyle' structure is</span>
<a name="line-476"></a><span class='hs-comment'>-- used to represent a set of information about the appearance of a widget.</span>
<a name="line-477"></a><span class='hs-comment'>-- This can later be composited together with other 'RcStyle' structures to</span>
<a name="line-478"></a><span class='hs-comment'>-- form a 'Style'.</span>
<a name="line-479"></a><span class='hs-comment'>--</span>
<a name="line-480"></a><span class='hs-definition'>rcStyleNew</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>RcStyle</span>
<a name="line-481"></a><span class='hs-definition'>rcStyleNew</span> <span class='hs-keyglyph'>=</span>
<a name="line-482"></a>  <span class='hs-varid'>constructNewGObject</span> <span class='hs-varid'>mkRcStyle</span> <span class='hs-varop'>$</span>
<a name="line-483"></a>  <span class='hs-varid'>gtk_rc_style_new</span>
<a name="line-484"></a><span class='hs-comment'>{-# LINE 481 "./Graphics/UI/Gtk/General/RcStyle.chs" #-}</span>
<a name="line-485"></a>
<a name="line-486"></a><span class='hs-comment'>--------------------</span>
<a name="line-487"></a><span class='hs-comment'>-- Methods</span>
<a name="line-488"></a>
<a name="line-489"></a><a name="rcStyleCopy"></a><span class='hs-comment'>-- | Makes a copy of the specified 'RcStyle'. This function will correctly</span>
<a name="line-490"></a><span class='hs-comment'>-- copy an RC style that is a member of a class derived from 'RcStyle'.</span>
<a name="line-491"></a><span class='hs-comment'>--</span>
<a name="line-492"></a><span class='hs-definition'>rcStyleCopy</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>RcStyleClass</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>self</span>
<a name="line-493"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>RcStyle</span> <span class='hs-comment'>-- ^ returns the resulting 'RcStyle'</span>
<a name="line-494"></a><span class='hs-definition'>rcStyleCopy</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=</span>
<a name="line-495"></a>  <span class='hs-varid'>constructNewGObject</span> <span class='hs-varid'>mkRcStyle</span> <span class='hs-varop'>$</span>
<a name="line-496"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>RcStyle</span> <span class='hs-varid'>arg1</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>withForeignPtr</span> <span class='hs-varid'>arg1</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>argPtr1</span> <span class='hs-keyglyph'>-&gt;</span><span class='hs-varid'>gtk_rc_style_copy</span> <span class='hs-varid'>argPtr1</span><span class='hs-layout'>)</span>
<a name="line-497"></a><span class='hs-comment'>{-# LINE 493 "./Graphics/UI/Gtk/General/RcStyle.chs" #-}</span>
<a name="line-498"></a>    <span class='hs-layout'>(</span><span class='hs-varid'>toRcStyle</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-499"></a>
<a name="line-500"></a><a name="rcAddDefaultFile"></a><span class='hs-comment'>-- | Adds a file to the list of files to be parsed at the end of 'initGUI'.</span>
<a name="line-501"></a><span class='hs-comment'>--</span>
<a name="line-502"></a><span class='hs-definition'>rcAddDefaultFile</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>String</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span>
<a name="line-503"></a><span class='hs-definition'>rcAddDefaultFile</span> <span class='hs-varid'>filename</span> <span class='hs-keyglyph'>=</span>
<a name="line-504"></a>  <span class='hs-varid'>withUTFString</span> <span class='hs-varid'>filename</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>filenamePtr</span> <span class='hs-keyglyph'>-&gt;</span>
<a name="line-505"></a>  <span class='hs-varid'>gtk_rc_add_default_file</span>
<a name="line-506"></a><span class='hs-comment'>{-# LINE 501 "./Graphics/UI/Gtk/General/RcStyle.chs" #-}</span>
<a name="line-507"></a>    <span class='hs-varid'>filenamePtr</span>
<a name="line-508"></a>
<a name="line-509"></a><a name="rcGetDefaultFiles"></a><span class='hs-comment'>-- | etrieves the current list of RC files that will be parsed at the end of</span>
<a name="line-510"></a><span class='hs-comment'>-- 'initGUI'.</span>
<a name="line-511"></a><span class='hs-comment'>--</span>
<a name="line-512"></a><span class='hs-definition'>rcGetDefaultFiles</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>IO</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>String</span><span class='hs-keyglyph'>]</span>
<a name="line-513"></a><span class='hs-definition'>rcGetDefaultFiles</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>do</span>
<a name="line-514"></a>  <span class='hs-varid'>aPtr</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>gtk_rc_get_default_files</span>
<a name="line-515"></a><span class='hs-comment'>{-# LINE 509 "./Graphics/UI/Gtk/General/RcStyle.chs" #-}</span>
<a name="line-516"></a>  <span class='hs-varid'>sPtrs</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>peekArray0</span> <span class='hs-varid'>nullPtr</span> <span class='hs-layout'>(</span><span class='hs-varid'>castPtr</span> <span class='hs-varid'>aPtr</span><span class='hs-layout'>)</span>
<a name="line-517"></a>  <span class='hs-varid'>mapM</span> <span class='hs-varid'>peekUTFString</span> <span class='hs-varid'>sPtrs</span>
<a name="line-518"></a>
<a name="line-519"></a><a name="rcGetImModuleFile"></a><span class='hs-comment'>-- | Obtains the path to the IM modules file. See the documentation of the</span>
<a name="line-520"></a><span class='hs-comment'>-- @GTK_IM_MODULE_FILE@ environment variable for more details.</span>
<a name="line-521"></a><span class='hs-comment'>--</span>
<a name="line-522"></a><span class='hs-definition'>rcGetImModuleFile</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>String</span>
<a name="line-523"></a><span class='hs-definition'>rcGetImModuleFile</span> <span class='hs-keyglyph'>=</span>
<a name="line-524"></a>  <span class='hs-varid'>gtk_rc_get_im_module_file</span>
<a name="line-525"></a><span class='hs-comment'>{-# LINE 518 "./Graphics/UI/Gtk/General/RcStyle.chs" #-}</span>
<a name="line-526"></a>  <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>readUTFString</span>
<a name="line-527"></a>
<a name="line-528"></a><a name="rcGetModuleDir"></a><span class='hs-comment'>-- | Returns a directory in which GTK+ looks for theme engines.</span>
<a name="line-529"></a><span class='hs-comment'>--</span>
<a name="line-530"></a><span class='hs-definition'>rcGetModuleDir</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>String</span>
<a name="line-531"></a><span class='hs-definition'>rcGetModuleDir</span> <span class='hs-keyglyph'>=</span>
<a name="line-532"></a>  <span class='hs-varid'>gtk_rc_get_module_dir</span>
<a name="line-533"></a><span class='hs-comment'>{-# LINE 525 "./Graphics/UI/Gtk/General/RcStyle.chs" #-}</span>
<a name="line-534"></a>  <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>readUTFString</span>
<a name="line-535"></a>
<a name="line-536"></a><a name="rcGetStyle"></a><span class='hs-comment'>-- | Finds all matching RC styles for a given widget, composites them</span>
<a name="line-537"></a><span class='hs-comment'>-- together, and then creates a GtkStyle representing the composite</span>
<a name="line-538"></a><span class='hs-comment'>-- appearance. (GTK+ actually keeps a cache of previously created styles, so a</span>
<a name="line-539"></a><span class='hs-comment'>-- new style may not be created.)</span>
<a name="line-540"></a><span class='hs-comment'>--</span>
<a name="line-541"></a><span class='hs-definition'>rcGetStyle</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>WidgetClass</span> <span class='hs-varid'>widget</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>widget</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>Style</span>
<a name="line-542"></a><span class='hs-definition'>rcGetStyle</span> <span class='hs-varid'>widget</span> <span class='hs-keyglyph'>=</span>
<a name="line-543"></a>  <span class='hs-varid'>makeNewGObject</span> <span class='hs-varid'>mkStyle</span> <span class='hs-varop'>$</span>
<a name="line-544"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>Widget</span> <span class='hs-varid'>arg1</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>withForeignPtr</span> <span class='hs-varid'>arg1</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>argPtr1</span> <span class='hs-keyglyph'>-&gt;</span><span class='hs-varid'>gtk_rc_get_style</span> <span class='hs-varid'>argPtr1</span><span class='hs-layout'>)</span>
<a name="line-545"></a><span class='hs-comment'>{-# LINE 536 "./Graphics/UI/Gtk/General/RcStyle.chs" #-}</span>
<a name="line-546"></a>    <span class='hs-layout'>(</span><span class='hs-varid'>toWidget</span> <span class='hs-varid'>widget</span><span class='hs-layout'>)</span>
<a name="line-547"></a>
<a name="line-548"></a><a name="rcGetStyleByPaths"></a><span class='hs-comment'>-- | Creates up a 'Style' from styles defined in a RC file by providing the</span>
<a name="line-549"></a><span class='hs-comment'>-- raw components used in matching. This function may be useful when creating</span>
<a name="line-550"></a><span class='hs-comment'>-- pseudo-widgets that should be themed like widgets but don't actually have</span>
<a name="line-551"></a><span class='hs-comment'>-- corresponding GTK+ widgets.</span>
<a name="line-552"></a><span class='hs-comment'>--</span>
<a name="line-553"></a><span class='hs-definition'>rcGetStyleByPaths</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Settings</span>
<a name="line-554"></a>  <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Maybe</span> <span class='hs-conid'>String</span>
<a name="line-555"></a>  <span class='hs-comment'>-- ^ @widgetPath@ : the widget path to use when looking up the style, or</span>
<a name="line-556"></a>  <span class='hs-comment'>-- @Nothing@ if no matching against the widget path should be done</span>
<a name="line-557"></a>  <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Maybe</span> <span class='hs-conid'>String</span>
<a name="line-558"></a>  <span class='hs-comment'>-- ^ @classPath@ : the class path to use when looking up the style, or</span>
<a name="line-559"></a>  <span class='hs-comment'>-- @Nothing@ if no matching against the class path should be done.</span>
<a name="line-560"></a>  <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>GType</span>
<a name="line-561"></a>  <span class='hs-comment'>-- ^ @type@ : a type that will be used along with parent types of this type when</span>
<a name="line-562"></a>  <span class='hs-comment'>-- matching against class styles, or 'none'</span>
<a name="line-563"></a>    <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>Style</span>
<a name="line-564"></a><span class='hs-definition'>rcGetStyleByPaths</span> <span class='hs-varid'>settings</span> <span class='hs-varid'>mWidgetPath</span> <span class='hs-varid'>mClassPath</span> <span class='hs-varid'>type_</span> <span class='hs-keyglyph'>=</span>
<a name="line-565"></a>  <span class='hs-varid'>makeNewGObject</span> <span class='hs-varid'>mkStyle</span> <span class='hs-varop'>$</span>
<a name="line-566"></a>  <span class='hs-layout'>(</span><span class='hs-keyword'>case</span> <span class='hs-varid'>mClassPath</span> <span class='hs-keyword'>of</span>
<a name="line-567"></a>    <span class='hs-conid'>Just</span> <span class='hs-varid'>classPath</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>withUTFString</span> <span class='hs-varid'>classPath</span>
<a name="line-568"></a>    <span class='hs-conid'>Nothing</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>act</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>act</span> <span class='hs-varid'>nullPtr</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>classPathPtr</span> <span class='hs-keyglyph'>-&gt;</span>
<a name="line-569"></a>  <span class='hs-layout'>(</span><span class='hs-keyword'>case</span> <span class='hs-varid'>mWidgetPath</span> <span class='hs-keyword'>of</span>
<a name="line-570"></a>    <span class='hs-conid'>Just</span> <span class='hs-varid'>widgetPath</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>withUTFString</span> <span class='hs-varid'>widgetPath</span>
<a name="line-571"></a>    <span class='hs-conid'>Nothing</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>act</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>act</span> <span class='hs-varid'>nullPtr</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>widgetPathPtr</span> <span class='hs-keyglyph'>-&gt;</span>
<a name="line-572"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>Settings</span> <span class='hs-varid'>arg1</span><span class='hs-layout'>)</span> <span class='hs-varid'>arg2</span> <span class='hs-varid'>arg3</span> <span class='hs-varid'>arg4</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>withForeignPtr</span> <span class='hs-varid'>arg1</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>argPtr1</span> <span class='hs-keyglyph'>-&gt;</span><span class='hs-varid'>gtk_rc_get_style_by_paths</span> <span class='hs-varid'>argPtr1</span> <span class='hs-varid'>arg2</span> <span class='hs-varid'>arg3</span> <span class='hs-varid'>arg4</span><span class='hs-layout'>)</span>
<a name="line-573"></a><span class='hs-comment'>{-# LINE 563 "./Graphics/UI/Gtk/General/RcStyle.chs" #-}</span>
<a name="line-574"></a>    <span class='hs-varid'>settings</span>
<a name="line-575"></a>    <span class='hs-varid'>widgetPathPtr</span>
<a name="line-576"></a>    <span class='hs-varid'>classPathPtr</span>
<a name="line-577"></a>    <span class='hs-varid'>type_</span>
<a name="line-578"></a>
<a name="line-579"></a><a name="rcGetThemeDir"></a><span class='hs-comment'>-- | Returns the standard directory in which themes should be installed. (GTK+</span>
<a name="line-580"></a><span class='hs-comment'>-- does not actually use this directory itself.)</span>
<a name="line-581"></a><span class='hs-comment'>--</span>
<a name="line-582"></a><span class='hs-definition'>rcGetThemeDir</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>String</span>
<a name="line-583"></a><span class='hs-definition'>rcGetThemeDir</span> <span class='hs-keyglyph'>=</span>
<a name="line-584"></a>  <span class='hs-varid'>gtk_rc_get_theme_dir</span>
<a name="line-585"></a><span class='hs-comment'>{-# LINE 574 "./Graphics/UI/Gtk/General/RcStyle.chs" #-}</span>
<a name="line-586"></a>  <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>readUTFString</span>
<a name="line-587"></a>
<a name="line-588"></a><a name="rcParse"></a><span class='hs-comment'>-- | Parses a given resource file.</span>
<a name="line-589"></a><span class='hs-comment'>--</span>
<a name="line-590"></a><span class='hs-definition'>rcParse</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>String</span>
<a name="line-591"></a>  <span class='hs-comment'>-- ^ @filename@ : the @filename@ of a file to parse. If @filename@ is not</span>
<a name="line-592"></a>  <span class='hs-comment'>-- absolute, it is searched in the current directory.</span>
<a name="line-593"></a>    <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span>
<a name="line-594"></a><span class='hs-definition'>rcParse</span> <span class='hs-varid'>filename</span> <span class='hs-keyglyph'>=</span>
<a name="line-595"></a>  <span class='hs-varid'>withUTFString</span> <span class='hs-varid'>filename</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>filenamePtr</span> <span class='hs-keyglyph'>-&gt;</span>
<a name="line-596"></a>  <span class='hs-varid'>gtk_rc_parse</span>
<a name="line-597"></a><span class='hs-comment'>{-# LINE 585 "./Graphics/UI/Gtk/General/RcStyle.chs" #-}</span>
<a name="line-598"></a>    <span class='hs-varid'>filenamePtr</span>
<a name="line-599"></a>
<a name="line-600"></a><a name="rcParseString"></a><span class='hs-comment'>-- | Parses resource information directly from a string.</span>
<a name="line-601"></a><span class='hs-comment'>--</span>
<a name="line-602"></a><span class='hs-definition'>rcParseString</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>String</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span>
<a name="line-603"></a><span class='hs-definition'>rcParseString</span> <span class='hs-varid'>rcString</span> <span class='hs-keyglyph'>=</span>
<a name="line-604"></a>  <span class='hs-varid'>withUTFString</span> <span class='hs-varid'>rcString</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>rcStringPtr</span> <span class='hs-keyglyph'>-&gt;</span>
<a name="line-605"></a>  <span class='hs-varid'>gtk_rc_parse_string</span>
<a name="line-606"></a><span class='hs-comment'>{-# LINE 593 "./Graphics/UI/Gtk/General/RcStyle.chs" #-}</span>
<a name="line-607"></a>    <span class='hs-varid'>rcStringPtr</span>
<a name="line-608"></a>
<a name="line-609"></a><a name="rcReparseAll"></a><span class='hs-comment'>-- | If the modification time on any previously read file for the default</span>
<a name="line-610"></a><span class='hs-comment'>-- 'Settings' has changed, discard all style information and then reread all</span>
<a name="line-611"></a><span class='hs-comment'>-- previously read RC files.</span>
<a name="line-612"></a><span class='hs-comment'>--</span>
<a name="line-613"></a><span class='hs-definition'>rcReparseAll</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>Bool</span> <span class='hs-comment'>-- ^ @True@ if the files were reread.</span>
<a name="line-614"></a><span class='hs-definition'>rcReparseAll</span> <span class='hs-keyglyph'>=</span>
<a name="line-615"></a>  <span class='hs-varid'>liftM</span> <span class='hs-varid'>toBool</span> <span class='hs-varop'>$</span>
<a name="line-616"></a>  <span class='hs-varid'>gtk_rc_reparse_all</span>
<a name="line-617"></a><span class='hs-comment'>{-# LINE 603 "./Graphics/UI/Gtk/General/RcStyle.chs" #-}</span>
<a name="line-618"></a>
<a name="line-619"></a><a name="rcReparseAllForSettings"></a><span class='hs-comment'>-- | f the modification time on any previously read file for the given</span>
<a name="line-620"></a><span class='hs-comment'>-- 'Settings' has changed, discard all style information and then reread all</span>
<a name="line-621"></a><span class='hs-comment'>-- previously read RC files.</span>
<a name="line-622"></a><span class='hs-comment'>--</span>
<a name="line-623"></a><span class='hs-definition'>rcReparseAllForSettings</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Settings</span>
<a name="line-624"></a>  <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Bool</span> <span class='hs-comment'>-- ^ @forceLoad@ : load whether or not anything changed</span>
<a name="line-625"></a>  <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>Bool</span> <span class='hs-comment'>-- ^ @True@ if the files were reread.</span>
<a name="line-626"></a><span class='hs-definition'>rcReparseAllForSettings</span> <span class='hs-varid'>settings</span> <span class='hs-varid'>forceLoad</span> <span class='hs-keyglyph'>=</span>
<a name="line-627"></a>  <span class='hs-varid'>liftM</span> <span class='hs-varid'>toBool</span> <span class='hs-varop'>$</span>
<a name="line-628"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>Settings</span> <span class='hs-varid'>arg1</span><span class='hs-layout'>)</span> <span class='hs-varid'>arg2</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>withForeignPtr</span> <span class='hs-varid'>arg1</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>argPtr1</span> <span class='hs-keyglyph'>-&gt;</span><span class='hs-varid'>gtk_rc_reparse_all_for_settings</span> <span class='hs-varid'>argPtr1</span> <span class='hs-varid'>arg2</span><span class='hs-layout'>)</span>
<a name="line-629"></a><span class='hs-comment'>{-# LINE 614 "./Graphics/UI/Gtk/General/RcStyle.chs" #-}</span>
<a name="line-630"></a>    <span class='hs-layout'>(</span><span class='hs-varid'>toSettings</span> <span class='hs-varid'>settings</span><span class='hs-layout'>)</span>
<a name="line-631"></a>    <span class='hs-layout'>(</span><span class='hs-varid'>fromBool</span> <span class='hs-varid'>forceLoad</span><span class='hs-layout'>)</span>
<a name="line-632"></a>
<a name="line-633"></a><a name="rcResetStyles"></a><span class='hs-comment'>-- | This function recomputes the styles for all widgets that use a particular</span>
<a name="line-634"></a><span class='hs-comment'>-- 'Settings' object. (There is one 'Settings' object per 'Screen', see</span>
<a name="line-635"></a><span class='hs-comment'>-- 'settingsGetForScreen'.) It is useful when some global parameter has</span>
<a name="line-636"></a><span class='hs-comment'>-- changed that affects the appearance of all widgets, because when a widget</span>
<a name="line-637"></a><span class='hs-comment'>-- gets a new style, it will both redraw and recompute any cached information</span>
<a name="line-638"></a><span class='hs-comment'>-- about its appearance. As an example, it is used when the default font size</span>
<a name="line-639"></a><span class='hs-comment'>-- set by the operating system changes. Note that this function doesn't affect</span>
<a name="line-640"></a><span class='hs-comment'>-- widgets that have a style set explicitely on them with 'widgetSetStyle'.</span>
<a name="line-641"></a><span class='hs-comment'>--</span>
<a name="line-642"></a><span class='hs-definition'>rcResetStyles</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Settings</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span>
<a name="line-643"></a><span class='hs-definition'>rcResetStyles</span> <span class='hs-varid'>settings</span> <span class='hs-keyglyph'>=</span>
<a name="line-644"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>Settings</span> <span class='hs-varid'>arg1</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>withForeignPtr</span> <span class='hs-varid'>arg1</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>argPtr1</span> <span class='hs-keyglyph'>-&gt;</span><span class='hs-varid'>gtk_rc_reset_styles</span> <span class='hs-varid'>argPtr1</span><span class='hs-layout'>)</span>
<a name="line-645"></a><span class='hs-comment'>{-# LINE 629 "./Graphics/UI/Gtk/General/RcStyle.chs" #-}</span>
<a name="line-646"></a>    <span class='hs-layout'>(</span><span class='hs-varid'>toSettings</span> <span class='hs-varid'>settings</span><span class='hs-layout'>)</span>
<a name="line-647"></a>
<a name="line-648"></a><a name="rcSetDefaultFiles"></a><span class='hs-comment'>-- | Sets the list of files that GTK+ will read at the end of 'initGUI'.</span>
<a name="line-649"></a><span class='hs-comment'>--</span>
<a name="line-650"></a><span class='hs-definition'>rcSetDefaultFiles</span> <span class='hs-keyglyph'>::</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>String</span><span class='hs-keyglyph'>]</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span>
<a name="line-651"></a><span class='hs-definition'>rcSetDefaultFiles</span> <span class='hs-varid'>files</span> <span class='hs-keyglyph'>=</span>
<a name="line-652"></a>  <span class='hs-varid'>withUTFStringArray0</span> <span class='hs-varid'>files</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>ssPtr</span> <span class='hs-keyglyph'>-&gt;</span>
<a name="line-653"></a>  <span class='hs-varid'>gtk_rc_set_default_files</span> <span class='hs-varid'>ssPtr</span>
<a name="line-654"></a>
<a name="line-655"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gtk_rc_style_new"</span>
<a name="line-656"></a>  <span class='hs-varid'>gtk_rc_style_new</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>RcStyle</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-657"></a>
<a name="line-658"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gtk_rc_style_copy"</span>
<a name="line-659"></a>  <span class='hs-varid'>gtk_rc_style_copy</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>RcStyle</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>RcStyle</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-660"></a>
<a name="line-661"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gtk_rc_add_default_file"</span>
<a name="line-662"></a>  <span class='hs-varid'>gtk_rc_add_default_file</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>CChar</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-663"></a>
<a name="line-664"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gtk_rc_get_default_files"</span>
<a name="line-665"></a>  <span class='hs-varid'>gtk_rc_get_default_files</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>CChar</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-666"></a>
<a name="line-667"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gtk_rc_get_im_module_file"</span>
<a name="line-668"></a>  <span class='hs-varid'>gtk_rc_get_im_module_file</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>CChar</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-669"></a>
<a name="line-670"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gtk_rc_get_module_dir"</span>
<a name="line-671"></a>  <span class='hs-varid'>gtk_rc_get_module_dir</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>CChar</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-672"></a>
<a name="line-673"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gtk_rc_get_style"</span>
<a name="line-674"></a>  <span class='hs-varid'>gtk_rc_get_style</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>Widget</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>Style</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-675"></a>
<a name="line-676"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gtk_rc_get_style_by_paths"</span>
<a name="line-677"></a>  <span class='hs-varid'>gtk_rc_get_style_by_paths</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>Settings</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>CChar</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>CChar</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>CUInt</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>Style</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-678"></a>
<a name="line-679"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gtk_rc_get_theme_dir"</span>
<a name="line-680"></a>  <span class='hs-varid'>gtk_rc_get_theme_dir</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>CChar</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-681"></a>
<a name="line-682"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gtk_rc_parse"</span>
<a name="line-683"></a>  <span class='hs-varid'>gtk_rc_parse</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>CChar</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-684"></a>
<a name="line-685"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gtk_rc_parse_string"</span>
<a name="line-686"></a>  <span class='hs-varid'>gtk_rc_parse_string</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>CChar</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-687"></a>
<a name="line-688"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gtk_rc_reparse_all"</span>
<a name="line-689"></a>  <span class='hs-varid'>gtk_rc_reparse_all</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-conid'>CInt</span><span class='hs-layout'>)</span>
<a name="line-690"></a>
<a name="line-691"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gtk_rc_reparse_all_for_settings"</span>
<a name="line-692"></a>  <span class='hs-varid'>gtk_rc_reparse_all_for_settings</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>Settings</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>CInt</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-conid'>CInt</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-693"></a>
<a name="line-694"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gtk_rc_reset_styles"</span>
<a name="line-695"></a>  <span class='hs-varid'>gtk_rc_reset_styles</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>Settings</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-696"></a>
<a name="line-697"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gtk_rc_set_default_files"</span>
<a name="line-698"></a>  <span class='hs-varid'>gtk_rc_set_default_files</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>CChar</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
</pre></body>
</html>