emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/trunk r106871: Update X Resources chapter o


From: Chong Yidong
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r106871: Update X Resources chapter of Emacs manual.
Date: Sun, 15 Jan 2012 23:26:39 +0800
User-agent: Bazaar (2.3.1)

------------------------------------------------------------
revno: 106871
committer: Chong Yidong <address@hidden>
branch nick: trunk
timestamp: Sun 2012-01-15 23:26:39 +0800
message:
  Update X Resources chapter of Emacs manual.
  
  * doc/emacs/xresources.texi (X Resources): Describe GTK+ case first.
  (Resources): Don't use borderWidth as an example, since it doesn't
  work with GTK+.
  (Table of Resources): Clarify role of several resources, including
  the Emacs 24 behavior of cursorBlink etc.
  (Face Resources): Node deleted.  Recommend using Customize
  instead.  Add paragraph to `Table of Resources' node summarizing
  how to use X resources for changing faces.
  (Lucid Resources): Rewrite, omitting description of font names,
  referring to the Fonts node instead.
  (LessTif Resources): Copyedits.
  (GTK resources): Rewrite, describing the difference between gtk2
  and gtk3.
  (GTK Resource Basics): New node.
  (GTK Widget Names, GTK Names in Emacs): Rewrite.
  (GTK styles): Just refer to Fonts node for GTK font format.
  
  * doc/emacs/display.texi (Faces): Document the cursor face.
modified:
  admin/FOR-RELEASE
  doc/emacs/ChangeLog
  doc/emacs/anti.texi
  doc/emacs/display.texi
  doc/emacs/emacs.texi
  doc/emacs/xresources.texi
=== modified file 'admin/FOR-RELEASE'
--- a/admin/FOR-RELEASE 2012-01-14 11:23:45 +0000
+++ b/admin/FOR-RELEASE 2012-01-15 15:26:39 +0000
@@ -144,7 +144,7 @@
 emerge-xtra.texi
 entering.texi     cyd
 files.texi        cyd
-fixit.texi        
+fixit.texi        cyd
 fortran-xtra.texi 
 frames.texi       cyd
 glossary.texi
@@ -175,7 +175,7 @@
 vc-xtra.texi      cyd
 vc1-xtra.texi     cyd
 windows.texi      cyd
-xresources.texi   
+xresources.texi   cyd
 
 ** Check the Lisp manual.
 

=== modified file 'doc/emacs/ChangeLog'
--- a/doc/emacs/ChangeLog       2012-01-14 09:17:25 +0000
+++ b/doc/emacs/ChangeLog       2012-01-15 15:26:39 +0000
@@ -1,3 +1,24 @@
+2012-01-15  Chong Yidong  <address@hidden>
+
+       * xresources.texi (X Resources): Describe GTK+ case first.
+       (Resources): Don't use borderWidth as an example, since it doesn't
+       work with GTK+.
+       (Table of Resources): Clarify role of several resources, including
+       the Emacs 24 behavior of cursorBlink etc.
+       (Face Resources): Node deleted.  Recommend using Customize
+       instead.  Add paragraph to `Table of Resources' node summarizing
+       how to use X resources for changing faces.
+       (Lucid Resources): Rewrite, omitting description of font names,
+       referring to the Fonts node instead.
+       (LessTif Resources): Copyedits.
+       (GTK resources): Rewrite, describing the difference between gtk2
+       and gtk3.
+       (GTK Resource Basics): New node.
+       (GTK Widget Names, GTK Names in Emacs): Rewrite.
+       (GTK styles): Just refer to Fonts node for GTK font format.
+
+       * display.texi (Faces): Document the cursor face.
+
 2012-01-14  Chong Yidong  <address@hidden>
 
        * cmdargs.texi (Action Arguments): No need to mention

=== modified file 'doc/emacs/anti.texi'
--- a/doc/emacs/anti.texi       2012-01-05 09:46:05 +0000
+++ b/doc/emacs/anti.texi       2012-01-15 15:26:39 +0000
@@ -3,135 +3,19 @@
 @c See file emacs.texi for copying conditions.
 
 @node Antinews, Mac OS / GNUstep, X Resources, Top
address@hidden Emacs 22 Antinews
address@hidden Emacs 23 Antinews
 @c Update the emacs.texi Antinews menu entry with the above version number.
 
   For those users who live backwards in time, here is information
-about downgrading to Emacs version 22.3.  We hope you will enjoy the
+about downgrading to Emacs version 23.4.  We hope you will enjoy the
 greater simplicity that results from the absence of many Emacs
 @value{EMACSVER} features.
 
 @itemize @bullet
-
address@hidden
-We have switched to a character representation specially designed for
-Emacs.  Rather than forcing all the widely used scripts into artificial
-alignment, as Unicode does, Emacs treats them all equally, giving
-each one a place in the space of character codes.  We have eliminated
-the confusing practice, in Emacs 23, whereby one character can belong
-to multiple character sets.  Now each script has its own variant, and
-they all are different as far as Emacs is concerned.  For example,
-there's a Latin-1 c-cedilla character, and there's a Latin-2
-c-cedilla; searching a buffer for the Latin-1 variant only finds that
-variant, but not the others.
-
address@hidden
-Emacs now uses its own special internal encoding for address@hidden
-characters, known as @samp{emacs-mule}.  This was imperative to
-support several different variants of the same character, each one
-belonging to its own script: @samp{emacs-mule} marks each character
-with its script, to better discern them from one another.
-
address@hidden
-For simplicity, the functions @code{encode-coding-region} and
address@hidden no longer accept an argument saying where
-to store the result of their conversions.  The result always replaces
-the original, so there's no need to look for it elsewhere.
-
address@hidden
-Emacs no longer performs font anti-aliasing.  If your fonts look ugly,
-try choosing a larger font and increasing the screen resolution.
-Admittedly, this becomes difficult as you go further back in time,
-since available screen resolutions will decrease.
-
address@hidden
-The Fontconfig font library is no longer supported.  To specify a
-font, you must use an XLFD (X Logical Font Descriptor).  The other
-ways of specifying fonts---so-called ``Fontconfig'' and ``GTK'' font
-names---are redundant, so they have been removed.
-
address@hidden
-Transient Mark mode is now disabled by default.  Furthermore, some
-commands that operate specifically on the region when it is active and
-Transient Mark mode is enabled (such as @code{fill-paragraph}
address@hidden, and @code{indent-for-tab-command}), no longer do
-so.
-
address@hidden
-Holding @key{shift} while typing a motion command no longer creates a
-temporarily active region, since that's inconsistent with how Emacs
-normally handles keybindings.  The variable @code{shift-select-mode}
-has been deleted.  You can, however, still create temporarily active
-regions by dragging the mouse.
-
address@hidden
-The line motion commands, @kbd{C-n} and @kbd{C-p}, now move by logical
-text lines, not screen lines.  Even if a long text line is continued
-over multiple screen lines, @kbd{C-n} and @kbd{C-p} treat it as a
-single line, because that's ultimately what it is.
-
address@hidden
-Visual Line mode, which provides ``word wrap'' functionality, has been
-removed.  You can still use Long Lines mode to gain an approximation
-of word wrapping, though this has some drawbacks---for instance,
-syntax highlighting often doesn't work well on wrapped lines.
-
address@hidden
address@hidden now runs @code{recenter} instead of
address@hidden  This always sets the current line at the
-center of the window, instead of cycling through the center, top, and
-bottom of the window on successive invocations.  This lets you type
address@hidden C-l C-l C-l} to be @emph{absolutely sure} that you have
-recentered the line.
-
address@hidden
-The way Emacs generates possible minibuffer completions is now much
-simpler to understand.  It matches alternatives to the text before
-point, ignoring the text after point; it also does not attempt to
-perform partial completion if the first completion attempt fails.
-
address@hidden
-Typing @kbd{M-n} at the start of the minibuffer history list no longer
-attempts to generate guesses of possible minibuffer input.  It instead
-does the straightforward thing, by issuing the message @samp{End of
-history; no default available}.
-
address@hidden
-Individual buffers can no longer display faces specially.  The text
-scaling commands @kbd{C-x C-+}, @kbd{C-x C--}, and @kbd{C-x C-0} have
-been removed, and so has the buffer face menu bound to
address@hidden
-
address@hidden
-VC no longer supports fileset-based operations on distributed version
-control systems (DVCSs) such as Arch, Bazaar, Subversion, Mercurial,
-and Git.  For instance, multi-file commits will be performed by
-committing one file at a time.  As you go further back in time, we
-will remove DVCS support entirely, so you should migrate your projects
-to CVS.
-
address@hidden
-Rmail now uses a special file format, Babyl format, specifically designed
-for storing and editing mail.  When you visit a file in Rmail, or get new
-mail, Rmail converts it automatically to Babyl format.
-
address@hidden
-Emacs can no longer display frames on X windows and text terminals
-(ttys) simultaneously.  If you start Emacs as an X application, it
-can only create X frames; if you start Emacs on a tty, it can only use
-that tty.  No more confusion about which type of frame
address@hidden will use in any given Emacs session!
-
address@hidden
-Emacs can no longer be started as a daemon.  You can be sure that if
-you don't see Emacs, then it's not running.
-
address@hidden
-Emacs has added support for many soon-to-be-non-obsolete platforms,
-including VMS, DECstation, SCO Unix, and systems lacking alloca.
-Support for Sun windows has been added.
address@hidden
+FIXME
 
 @item
 To keep up with decreasing computer memory capacity and disk space, many
-other functions and files have been eliminated in Emacs 22.3.
+other functions and files have been eliminated in Emacs 23.4.
 @end itemize

=== modified file 'doc/emacs/display.texi'
--- a/doc/emacs/display.texi    2012-01-10 06:20:22 +0000
+++ b/doc/emacs/display.texi    2012-01-15 15:26:39 +0000
@@ -489,10 +489,20 @@
 changes for future Emacs sessions.  @xref{Face Customization}.  A face
 does not have to specify every single attribute; often it inherits
 most attributes from another face.  Any ultimately unspecified
-attribute is taken from a face named @code{default}, whose attributes
-are all specified.  The @code{default} face is the default for
-displaying text, and its background color is also used as the frame's
-background color.
+attribute is taken from the face named @code{default}.
+
+  The @code{default} face is the default for displaying text, and all
+of its attributes are specified.  Its background color is also used as
+the frame's background color.
+
address@hidden cursor face
+  Another special face is the @code{cursor} face.  On graphical
+displays, the background color of this face is used to draw the text
+cursor.  None of the other attributes of this face have any effect;
+the foreground color for text under the cursor is taken from the
+background color of the underlying text.  On text terminals, the
+appearance of the text cursor is determined by the terminal, not by
+the @code{cursor} face.
 
   You can also use X resources to specify attributes of any particular
 face.  @xref{Resources}.

=== modified file 'doc/emacs/emacs.texi'
--- a/doc/emacs/emacs.texi      2012-01-14 09:17:25 +0000
+++ b/doc/emacs/emacs.texi      2012-01-15 15:26:39 +0000
@@ -210,7 +210,7 @@
 * GNU Free Documentation License:: The license for this documentation.
 * Emacs Invocation::    Hairy startup options.
 * X Resources::         X resources for customizing Emacs.
-* Antinews::            Information about Emacs version 22.
+* Antinews::            Information about Emacs version 23.
 * Mac OS / GNUstep::    Using Emacs under Mac OS and GNUstep.
 * Microsoft Windows::   Using Emacs on Microsoft Windows and MS-DOS.
 * Manifesto::           What's GNU?  Gnu's Not Unix!
@@ -1124,15 +1124,15 @@
 
 * Resources::           Using X resources with Emacs (in general).
 * Table of Resources::  Table of specific X resources that affect Emacs.
-* Face Resources::      X resources for customizing faces.
 * Lucid Resources::     X resources for Lucid menus.
 * LessTif Resources::   X resources for LessTif and Motif menus.
 * GTK resources::       Resources for GTK widgets.
 
 GTK resources
 
-* GTK widget names::      How widgets in GTK are named in general.
-* GTK Names in Emacs::    GTK widget names in Emacs.
+* GTK Resource Basics::   Basic usage of GTK+ resources.
+* GTK Widget Names::      How GTK+ widgets are named.
+* GTK Names in Emacs::    GTK+ widgets used by Emacs.
 * GTK styles::            What can be customized in a GTK widget.
 
 Emacs and Mac OS / GNUstep

=== modified file 'doc/emacs/xresources.texi'
--- a/doc/emacs/xresources.texi 2012-01-06 10:17:23 +0000
+++ b/doc/emacs/xresources.texi 2012-01-15 15:26:39 +0000
@@ -6,31 +6,26 @@
 @appendix X Options and Resources
 
   You can customize some X-related aspects of Emacs behavior using X
-resources, as is usual for programs that use X.  On MS-Windows, you
-can customize some of the same aspects using the system registry.
address@hidden Registry}.
+resources, as is usual for programs that use X.
 
-  When Emacs is built using an ``X toolkit'', such as Lucid or
-LessTif, you need to use X resources to customize the appearance of
-the widgets, including the menu-bar, scroll-bar, and dialog boxes.
-This is because the libraries that implement these don't provide for
-customization through Emacs.  GTK+ widgets use a separate system of
+  When Emacs is compiled with GTK+ support, the appearance of various
+graphical widgets, such as the menu-bar, scroll-bar, and dialog boxes,
+is determined by
 @ifnottex
 ``GTK resources'', which we will also describe.
 @end ifnottex
 @iftex
-``GTK resources.''  In this chapter we describe the most commonly used
-resource specifications.  For full documentation, see the online
-manual.
-
address@hidden Add xref for LessTif/Motif menu resources.
+``GTK resources''.
 @end iftex
+When Emacs is built without GTK+ support, the appearance of these
+widgets is determined by additional X resources.
 
+  On MS-Windows, you can customize some of the same aspects using the
+system registry (@pxref{MS-Windows Registry}).
 
 @menu
 * Resources::           Using X resources with Emacs (in general).
 * Table of Resources::  Table of specific X resources that affect Emacs.
-* Face Resources::      X resources for customizing faces.
 * Lucid Resources::     X resources for Lucid menus.
 * LessTif Resources::   X resources for LessTif and Motif menus.
 * GTK resources::       Resources for GTK widgets.
@@ -63,60 +58,41 @@
 using the @samp{-xrm} command line option, as explained below.)
 
   Each line in the X resource file specifies a value for one option or
-for a collection of related options.  Each resource specification
+for a collection of related options.  The order in which the lines
+appear in the file does not matter.  Each resource specification
 consists of a @dfn{program name} and a @dfn{resource name}.  Case
 distinctions are significant in each of these names.  Here is an
 example:
 
 @example
-emacs.borderWidth: 2
+emacs.cursorColor: dark green
 @end example
 
address@hidden
   The program name is the name of the executable file to which the
 resource applies.  For Emacs, this is normally @samp{emacs}.  To
 specify a definition that applies to all instances of Emacs,
 regardless of the name of the Emacs executable, use @samp{Emacs}.
 
   The resource name is the name of a program setting.  For instance,
-Emacs recognizes a @samp{borderWidth} resource that controls the width
-of the external border for graphical frames.
+Emacs recognizes a @samp{cursorColor} resource that controls the color
+of the text cursor.
 
   Resources are grouped into named classes.  For instance, the
address@hidden class contains both the @samp{borderWidth} resource
-(which we just described), as well as the @samp{internalBorder}
-resource, which controls the width of the internal border for
-graphical frames.  Instead of using a resource name, you can use a
-class name to specify the same value for all resources in that class.
-Here's an example:
-
address@hidden
-emacs.BorderWidth: 2
address@hidden example
-
-  If you specify a value for a class, it becomes the default for all
-resources in that class.  You can specify values for individual
-resources as well; these override the class value, for those
-particular resources.  The following example specifies 2 as the
-default width for all borders, but overrides this value with 4 for the
-external border:
-
address@hidden
-emacs.BorderWidth: 2
-emacs.borderWidth: 4
address@hidden example
address@hidden ifnottex
-
-  The order in which the lines appear in the file does not matter.
-One way to experiment with the effect of different resource settings
-is to use the @code{editres} program.  See the @code{editres} man page
-for more details.
address@hidden class contains the @samp{cursorColor},
address@hidden and @samp{pointerColor} resources (@pxref{Table of
+Resources}).  Instead of using a resource name, you can use a class
+name to specify the default value for all resources in that class,
+like this:
+
address@hidden
+emacs.Foreground: dark green
address@hidden example
 
   Emacs does not process X resources at all if you set the variable
address@hidden to a address@hidden value, or if you
-specify the @samp{-Q} (or @samp{--quick}) command-line argument
-(@pxref{Initial Options}).  (The @samp{-Q} argument automatically sets
address@hidden to @code{t}.)
address@hidden to a address@hidden value.  If you invoke
+Emacs with the @samp{-Q} (or @samp{--quick}) command-line option,
address@hidden is automatically set to @code{t}
+(@pxref{Initial Options}).
 
 @ifnottex
   In addition, you can use the following command-line options to
@@ -162,98 +138,93 @@
 @node Table of Resources
 @appendixsec Table of X Resources for Emacs
 
-  This table lists the resource names that designate options for
-Emacs, not counting those for the appearance of the menu bar, each
-with the class that it belongs to:
+  This table lists the X resource names that Emacs recognizes,
+excluding those that control the appearance of graphical widgets like
+the menu bar:
 
 @table @asis
 @item @code{background} (class @code{Background})
-Background color name.
+Background color (@pxref{Colors}).
 
 @item @code{bitmapIcon} (class @code{BitmapIcon})
 Tell the window manager to display the Emacs icon if @samp{on}; don't
-do so if @samp{off}.  (The icon is usually shown in the ``taskbar'' on
-a graphical desktop.)
+do so if @samp{off}.  @xref{Icons X}, for a description of the icon.
 
address@hidden
 @item @code{borderColor} (class @code{BorderColor})
-Color name for the external border.
+Color of the frame's external border.  This has no effect if Emacs is
+compiled with GTK+ support.
 
address@hidden
 @item @code{borderWidth} (class @code{BorderWidth})
-Width in pixels of the external border.
+Width of the frame's external border, in pixels.  This has no effect
+if Emacs is compiled with GTK+ support.
 @end ifnottex
 
 @item @code{cursorColor} (class @code{Foreground})
-Color name for text cursor (point).
+Text cursor color.  If this resource is specified when Emacs starts
+up, Emacs sets its value as the background color of the @code{cursor}
+face (@pxref{Faces}).
 
address@hidden
 @item @code{cursorBlink} (class @code{CursorBlink})
-Specifies whether to make the cursor blink. The default is @samp{on}.  Use
address@hidden or @samp{false} to turn cursor blinking off.
address@hidden ifnottex
+If the value of this resource is @samp{off} or @samp{false} or
address@hidden at startup, Emacs disables Blink Cursor mode (@pxref{Cursor
+Display}).
 
 @item @code{font} (class @code{Font})
-Font name for the @code{default} font.  @xref{Fonts}.  You can also
+Font name for the @code{default} face (@pxref{Fonts}).  You can also
 specify a fontset name (@pxref{Fontsets}).
 
 @item @code{fontBackend} (class @code{FontBackend})
-The backend(s) to use for drawing fonts; if multiple backends are
-specified, they must be comma-delimited and given in order of
-precedence.  On X, for instance, the value @samp{x,xft} tells Emacs to
+Comma-delimited list of backend(s) to use for drawing fonts, in order
+of precedence.  For instance, the value @samp{x,xft} tells Emacs to
 draw fonts using the X core font driver, falling back on the Xft font
-driver if that fails.  Normally, you can leave this resource unset, in
-which case Emacs tries using all font backends available on your
-graphical device.
+driver if that fails.  Normally, you should leave this resource unset,
+in which case Emacs tries using all available font backends.
 
 @item @code{foreground} (class @code{Foreground})
-Color name for text.
+Default foreground color for text.
 
 @item @code{geometry} (class @code{Geometry})
-Window size and position.  Be careful not to specify this resource as
address@hidden, because that may affect individual menus as well
-as the Emacs frame itself.
-
-If this resource specifies a position, that position applies only to the
-initial Emacs frame (or, in the case of a resource for a specific frame
-name, only that frame).  However, the size, if specified here, applies to
-all frames.
-
address@hidden
+Window size and position.  The value should be a size and position
+specification, of the same form as in the @samp{-g} or
address@hidden command-line option (@pxref{Window Size X}).
+
+The size applies to all frames in the Emacs session, but the position
+applies only to the initial Emacs frame (or, in the case of a resource
+for a specific frame name, only that frame).
+
+
+Be careful not to specify this resource as @samp{emacs*geometry}, as
+that may affect individual menus as well as the main Emacs frame.
+
 @item @code{fullscreen} (class @code{Fullscreen})
 The desired fullscreen size.  The value can be one of @code{fullboth},
address@hidden, @code{fullwidth} or @code{fullheight}, which correspond to
-the command-line options @samp{-fs}, @samp{-mm}, @samp{-fw}, and @samp{-fh}
-(@pxref{Window Size X}).
-
-Note that this applies to the initial frame only.
address@hidden ifnottex
-
address@hidden, @code{fullwidth} or @code{fullheight}, which
+correspond to the command-line options @samp{-fs}, @samp{-mm},
address@hidden, and @samp{-fh} (@pxref{Window Size X}).  Note that this
+applies to the initial frame only.
+
address@hidden
 @item @code{iconName} (class @code{Title})
 Name to display in the icon.
 
 @item @code{internalBorder} (class @code{BorderWidth})
-Width in pixels of the internal border.
+Width of the internal frame border, in pixels.
address@hidden ifnottex
 
 @item @code{lineSpacing} (class @code{LineSpacing})
 @cindex line spacing
address@hidden leading
-Additional space (@dfn{leading}) between lines, in pixels.
+Additional space between lines, in pixels.
 
 @item @code{menuBar} (class @code{MenuBar})
 @cindex menu bar
-Give frames menu bars if @samp{on}; don't have menu bars if @samp{off}.
address@hidden
address@hidden Resources}, and @ref{LessTif Resources},
address@hidden ifnottex
address@hidden
address@hidden Resources},
address@hidden iftex
-for how to control the appearance of the menu bar if you have one.
+If the value of this resource is @samp{off} or @samp{false} or
address@hidden, Emacs disables Menu Bar mode at startup (@pxref{Menu Bars}).
 
 @ifnottex
 @item @code{minibuffer} (class @code{Minibuffer})
-If @samp{none}, don't make a minibuffer in this frame.
-It will use a separate minibuffer frame instead.
+If @samp{none}, Emacs will not make a minibuffer in this frame; it
+will use a separate minibuffer frame instead.
 
 @item @code{paneFont} (class @code{Font})
 @cindex font for menus
@@ -261,7 +232,9 @@
 @end ifnottex
 
 @item @code{pointerColor} (class @code{Foreground})
-Color of the mouse cursor.
+Color of the mouse cursor.  This has no effect in many graphical
+desktop environments, as they do not let Emacs change the mouse cursor
+this way.
 
 @ifnottex
 @item @code{privateColormap} (class @code{PrivateColormap})
@@ -271,7 +244,6 @@
 @item @code{reverseVideo} (class @code{ReverseVideo})
 Switch foreground and background default colors if @samp{on}, use colors as
 specified if @samp{off}.
address@hidden ifnottex
 
 @item @code{screenGamma} (class @code{ScreenGamma})
 @cindex gamma correction
@@ -281,7 +253,9 @@
 @item @code{scrollBarWidth} (class @code{ScrollBarWidth})
 @cindex scrollbar width
 The scroll bar width in pixels, equivalent to the frame parameter
address@hidden
address@hidden  Do not set this resource if Emacs is
+compiled with GTK+ support.
address@hidden ifnottex
 
 @ifnottex
 @item @code{selectionFont} (class @code{SelectionFont})
@@ -306,24 +280,16 @@
 
 @item @code{toolBar} (class @code{ToolBar})
 @cindex tool bar
-Number of lines to reserve for the tool bar.  A zero value suppresses
-the tool bar.  For the Emacs tool bar (i.e.@: not Gtk+), if the value
-is non-zero and @code{auto-resize-tool-bars} is address@hidden, the
-tool bar's size will be changed automatically so that all tool bar
-items are visible.  If the value of @code{auto-resize-tool-bars} is
address@hidden, the tool bar expands automatically, but does not
-contract automatically.  To contract the tool bar, you must redraw the
-frame by entering @kbd{C-l}.  For the Gtk+ tool bar, any non-zero
-value means on and @code{auto-resize-tool-bars} has no effect.
+If the value of this resource is @samp{off} or @samp{false} or
address@hidden, Emacs disables Tool Bar mode at startup (@pxref{Tool Bars}).
 
 @item @code{useXIM} (class @code{UseXIM})
 @cindex XIM
 @cindex X input methods
 @cindex input methods, X
-Turn off use of X input methods (XIM) if @samp{false} or @samp{off}.
-This is only relevant if your Emacs is actually built with XIM
-support.  It is potentially useful to turn off XIM for efficiency,
-especially slow X client/server links.
+Disable use of X input methods (XIM) if @samp{false} or @samp{off}.
+This is only relevant if your Emacs is built with XIM support.  It
+might be useful to turn off XIM on slow X client/server links.
 
 @item @code{verticalScrollBars} (class @code{ScrollBars})
 Give frames scroll bars if @samp{on}; don't have scroll bars if
@@ -331,143 +297,51 @@
 
 @ifnottex
 @item @code{visualClass} (class @code{VisualClass})
-Specify the ``visual'' that X should use.  This tells X how to handle
-colors.
-
-The value should start with one of @samp{TrueColor},
address@hidden, @samp{DirectColor}, @samp{StaticColor},
address@hidden, and @samp{StaticGray}, followed by
address@hidden@var{depth}}, where @var{depth} is the number of color planes.
-Most terminals only allow a few ``visuals,'' and the @samp{dpyinfo}
-program outputs information saying which ones.
+The @dfn{visual class} for X color display.  If specified, the value
+should start with one of @samp{TrueColor}, @samp{PseudoColor},
address@hidden, @samp{StaticColor}, @samp{GrayScale}, and
address@hidden, followed by @address@hidden, where @var{depth}
+is the number of color planes.
 @end ifnottex
 @end table
 
address@hidden Face Resources
address@hidden X Resources for Faces
-
-  You can use resources to customize the appearance of particular
-faces (@pxref{Faces}):
-
address@hidden @code
address@hidden @var{face}.attributeForeground
-Foreground color for face @var{face}.
address@hidden @var{face}.attributeBackground
-Background color for face @var{face}.
address@hidden @var{face}.attributeUnderline
-Underline flag for face @var{face}.  Use @samp{on} or @samp{true} for
-yes.
address@hidden @var{face}.attributeStrikeThrough
address@hidden @var{face}.attributeOverline
address@hidden @var{face}.attributeBox
address@hidden @var{face}.attributeInverse
-Likewise, for other boolean font attributes.
address@hidden @var{face}.attributeStipple
-The name of a pixmap data file to use for the stipple pattern, or
address@hidden to not use stipple for the face @var{face}.
address@hidden @var{face}.attributeBackgroundPixmap
-The background pixmap for the face @var{face}.  Should be a name of a
-pixmap file or @code{false}.
address@hidden @var{face}.attributeFont
-Font name (full XFD name or valid X abbreviation) for face @var{face}.
-Instead of this, you can specify the font through separate attributes.
address@hidden table
-
-  Instead of using @code{attributeFont} to specify a font name, you can
-select a font through these separate attributes:
-
address@hidden @code
address@hidden @var{face}.attributeFamily
-Font family for face @var{face}.
address@hidden @var{face}.attributeHeight
-Height of the font to use for face @var{face}: either an integer
-specifying the height in units of 1/address@hidden, or a floating point
-number that specifies a scale factor to scale the underlying face's
-default font, or a function to be called with the default height which
-will return a new height.
address@hidden @var{face}.attributeWidth
address@hidden @var{face}.attributeWeight
address@hidden @var{face}.attributeSlant
-Each of these resources corresponds to a like-named font attribute,
-and you write the resource value the same as the symbol you would use
-for the font attribute value.
address@hidden @var{face}.attributeBold
-Bold flag for face @var{face}---instead of @code{attributeWeight}.  Use 
@samp{on} or @samp{true} for
-yes.
address@hidden @var{face}.attributeItalic
-Italic flag for face @var{face}---instead of @code{attributeSlant}.
address@hidden table
-
+  You can also use X resources to customize individual Emacs faces
+(@pxref{Faces}).  For example, setting the resource
address@hidden@var{face}.attributeForeground} is equivalent to customizing the
address@hidden attribute of the face @var{face}.  However, we
+recommend customizing faces from within Emacs, instead of using X
+resources.  @xref{Face Customization}.
+
address@hidden
 @node Lucid Resources
 @appendixsec Lucid Menu And Dialog X Resources
 @cindex Menu X Resources (Lucid widgets)
 @cindex Dialog X Resources (Lucid widgets)
 @cindex Lucid Widget X Resources
 
address@hidden
-  If the Emacs installed at your site was built to use the X toolkit
-with the Lucid menu widgets, then the menu bar is a separate widget and
-has its own resources.  The resource names contain @samp{pane.menubar}
-(following, as always, the name of the Emacs invocation, or @samp{Emacs},
-which stands for all Emacs invocations).  Specify them like this:
-
address@hidden
address@hidden:  @var{value}
address@hidden example
-
address@hidden
-For example, to specify the font @samp{Courier-12} for the menu-bar items,
-write this:
address@hidden ifnottex
address@hidden
-   If the Emacs installed at your site was built to use the X toolkit
-with the Lucid menu widgets, then the menu bar is a separate widget
-and has its own resources.  The resource specifications start with
address@hidden instance, to specify the font
address@hidden for the menu-bar items, write this:
address@hidden iftex
-
address@hidden
-Emacs.pane.menubar.font:  Courier-12
address@hidden example
-
address@hidden
-To specify a font, use fontconfig font names as values to the @code{font}
-resource, or old style names:
-
address@hidden
-Emacs.pane.menubar.font: lucidasanstypewriter-10
address@hidden example
-
address@hidden
-Emacs first tries to open the font as an old style font, and if that fails
-as an fontconfig font.  In rare cases, Emacs might do the wrong thing.
-
address@hidden
-The Lucid menus can display multilingual text in your locale with old style
-fonts.  For more information about fontsets see the man page for
address@hidden  To enable multilingual menu text you specify a
address@hidden resource instead of the font resource.  If both
address@hidden and @code{fontSet} resources are specified, the
address@hidden resource is used.
-
address@hidden
-Resources for @emph{non-menubar} toolkit pop-up menus have
address@hidden instead of @samp{pane.menubar}.  For example, to specify
-the font @samp{8x16} for the pop-up menu items, write this:
-
address@hidden
-Emacs.menu*.font:       8x16
address@hidden example
-
address@hidden
-For dialog boxes, use @samp{dialog*}:
-
address@hidden
-Emacs.dialog*.font: Sans-12
address@hidden example
-
-  Here is a list of the specific resources for menu bars and pop-up menus:
+  If Emacs is compiled with the X toolkit support using Lucid widgets,
+you can use X resources to customize the appearance of the menu bar,
+pop-up menus, and dialog boxes.  The resources for the menu bar fall
+in the @samp{pane.menubar} class (following, as always, either the
+name of the Emacs executable or @samp{Emacs} for all Emacs
+invocations).  The resources for the pop-up menu are in the
address@hidden class.  The resources for dialog boxes are in the
address@hidden class.
+
+  For example, to display menu bar entries with the @samp{Courier-12}
+font (@pxref{Fonts}), write this:
+
address@hidden
+Emacs.pane.menubar.font: Courier-12
address@hidden example
+
address@hidden
+Lucid widgets can display multilingual text in your locale.  To enable
+this, specify a @code{fontSet} resource instead of a @code{font}
+resource.  @xref{Fontsets}.  If both @code{font} and @code{fontSet}
+resources are specified, the @code{fontSet} resource is used.
+
+Here is a list of resources for menu bars, pop-up menus, and dialogs:
 
 @table @code
 @item font
@@ -475,11 +349,11 @@
 @item fontSet
 Fontset for menu item text.
 @item foreground
-Color of the foreground.
+Foreground color.
 @item background
-Color of the background.
+Background color.
 @item buttonForeground
-In the menu bar, the color of the foreground for a selected item.
+Foreground color for a selected item.
 @ifnottex
 @item horizontalSpacing
 Horizontal spacing in pixels between items.  Default is 3.
@@ -489,59 +363,51 @@
 Horizontal spacing between the arrow (which indicates a submenu) and
 the associated text.  Default is 10.
 @item shadowThickness
-Thickness of shadow line around the widget.  Default is 1.
-
-Also determines the thickness of shadow lines around other objects,
-for instance 3D buttons and arrows.  If you have the impression that
-the arrows in the menus do not stand out clearly enough or that the
-difference between ``in'' and ``out'' buttons is difficult to see, set
-this to 2.  If you have no problems with visibility, the default
-probably looks better.  The background color may also have some effect
-on the contrast.
+Thickness of shadow lines for 3D buttons, arrows, and other graphical
+elements.  Default is 1.
 @end ifnottex
 @item margin
-The margin of the menu bar, in characters.  Default is 1.
+Margin of the menu bar, in characters.  Default is 1.
 @end table
 
address@hidden
 @node LessTif Resources
 @appendixsec LessTif Menu X Resources
 @cindex Menu X Resources (LessTif widgets)
 @cindex LessTif Widget X Resources
 
-  If the Emacs installed at your site was built to use the X toolkit
-with the LessTif or Motif widgets, then the menu bar, the dialog
-boxes, the pop-up menus, and the file-selection box are separate
-widgets and have their own resources.
+  If Emacs is compiled with the X toolkit support using LessTif or
+Motif widgets, you can use X resources to customize the appearance of
+the menu bar, pop-up menus, and dialog boxes.  However, the resources
+are organized differently from Lucid widgets.
 
-  The resource names for the menu bar contain @samp{pane.menubar}
-(following, as always, the name of the Emacs invocation, or
address@hidden, which stands for all Emacs invocations).  Specify them
-like this:
+  The resource names for the menu bar are in the @samp{pane.menubar}
+class, and they must be specified in this form:
 
 @smallexample
 address@hidden@var{resource}:  @var{value}
 @end smallexample
 
-  Each individual string in the menu bar is a subwidget; the subwidget's
-name is the same as the menu item string.  For example, the word
address@hidden in the menu bar is part of a subwidget named
address@hidden  Most likely, you want to specify the
-same resources for the whole menu bar.  To do this, use @samp{*} instead
-of a specific subwidget name.  For example, to specify the font
address@hidden for the menu-bar items, write this:
address@hidden
+For pop-up menus, the resources are in the @samp{menu*} class, instead
+of @samp{pane.menubar}.  For dialog boxes, they are in @samp{dialog}.
+In each case, each individual menu string is a subwidget; the
+subwidget's name is the same as the menu item string.  For example,
+the @samp{File} menu in the menu bar is a subwidget named
address@hidden
+
+  Typically, you want to specify the same resources for the whole menu
+bar.  To do this, use @samp{*} instead of a specific subwidget name.
+For example, to specify the font @samp{8x16} for all menu bar items,
+including submenus, write this:
 
 @smallexample
 Emacs.pane.menubar.*.fontList:  8x16
 @end smallexample
 
address@hidden
-This also specifies the resource value for submenus.
-
-  Each item in a submenu in the menu bar also has its own name for X
-resources; for example, the @samp{File} submenu has an item named
address@hidden (current buffer)}.  A resource specification for a submenu
-item looks like this:
+  Each item in a submenu also has its own name for X resources; for
+example, the @samp{File} submenu has an item named @samp{Save (current
+buffer)}.  A resource specification for a submenu item looks like
+this:
 
 @smallexample
 address@hidden@address@hidden: @var{value}
@@ -574,46 +440,23 @@
 @noindent
 (This should be one long line.)
 
-  It's impossible to specify a resource for all the menu-bar items
-without also specifying it for the submenus as well.  So if you want the
-submenu items to look different from the menu bar itself, you must ask
-for that in two steps.  First, specify the resource for all of them;
-then, override the value for submenus alone.  Here is an example:
+  If you want the submenu items to look different from the menu bar
+itself, you must first specify the resource for all of them, then
+override the value for submenus alone.  Here is an example:
 
 @smallexample
 Emacs.pane.menubar.*.fontList:  8x16
 Emacs.pane.menubar.popup_*.fontList: 8x16
 @end smallexample
 
address@hidden
-For LessTif pop-up menus, use @samp{menu*} instead of
address@hidden  For example, to specify the font @samp{8x16} for
-the pop-up menu items, write this:
-
address@hidden
-Emacs.menu*.fontList:  8x16
address@hidden smallexample
-
address@hidden
-For LessTif dialog boxes, use @samp{dialog} instead of @samp{menu}:
-
address@hidden
-Emacs.dialog*.fontList: 8x16
-Emacs.dialog*.foreground: hotpink
address@hidden example
-
-To specify resources for the LessTif file-selection box, use
+  To specify resources for the LessTif file-selection box, use
 @samp{fsb*}, like this:
 
 @example
 Emacs.fsb*.fontList: 8x16
 @end example
 
address@hidden
address@hidden
address@hidden iftex
-  Here is a list of the specific resources for LessTif menu bars and
-pop-up menus:
+  Here is a list of resources for LessTif menu bars and pop-up menus:
 
 @table @code
 @item armColor
@@ -638,227 +481,118 @@
 @end table
 @end ifnottex
 
-
 @node GTK resources
 @appendixsec GTK resources
address@hidden
-  The most common way to customize the GTK widgets Emacs uses (menus,
-dialogs tool bars and scroll bars) is by choosing an appropriate
-theme, for example with the GNOME theme selector.
-
-You can also do Emacs specific customization by inserting GTK style
-directives in the file @file{~/.emacs.d/gtkrc}, but only if you have a
-Gtk+ version earlier than 3 (i.e.@: 2).  Some GTK themes ignore
-customizations in @file{~/.emacs.d/gtkrc} so not everything works with
-all themes.  To customize Emacs font, background, faces, etc., use the
-normal X resources (@pxref{Resources}).  We will present some examples
-of customizations here, but for a more detailed description, see the
-online manual
-
-  The first example is just one line.  It changes the font on all GTK widgets
-to courier with size 12:
-
address@hidden
-gtk-font-name = "courier 12"
address@hidden smallexample
-
-  The thing to note is that the font name is not an X font name, but a
-Pango font name.  A Pango font name is basically of the format "family
-style size", where the style is optional as in the case above.  A name
-with a style could be for example:
-
address@hidden
-gtk-font-name = "helvetica bold 10"
address@hidden smallexample
-
-  To customize widgets you first define a style and then apply the style to
-the widgets.  Here is an example that sets the font for menus, but not
-for other widgets:
-
address@hidden
-# @r{Define the style @samp{menufont}.}
-style "menufont"
address@hidden
-  font_name = "helvetica bold 14"  # This is a Pango font name
address@hidden
-
-# @r{Specify that widget type @samp{*emacs-menuitem*} uses @samp{menufont}.}
-widget "*emacs-menuitem*" style "menufont"
address@hidden smallexample
-
-The widget name in this example contains wildcards, so the style will be
-applied to all widgets that match "*emacs-menuitem*".  The widgets are
-named by the way they are contained, from the outer widget to the inner widget.
-So to apply the style "my_style" (not shown) with the full, absolute name, for
-the menubar and the scroll bar in Emacs we use:
-
address@hidden
-widget "Emacs.pane.menubar" style "my_style"
-widget "Emacs.pane.emacs.verticalScrollBar" style "my_style"
address@hidden smallexample
-
-But to avoid having to type it all, wildcards are often used.  @samp{*}
-matches zero or more characters and @samp{?} matches one character.  So "*"
-matches all widgets.
-
-  Each widget has a class (for example GtkMenuItem) and a name 
(emacs-menuitem).
-You can assign styles by name or by class.  In this example we have used the
-class:
-
address@hidden
-style "menufont"
address@hidden
-  font_name = "helvetica bold 14"
address@hidden
-
-widget_class "*GtkMenuBar" style "menufont"
address@hidden smallexample
-
address@hidden
-The names and classes for the GTK widgets Emacs uses are:
-
address@hidden address@hidden plus}} address@hidden and some}
address@hidden @code{emacs-filedialog}
address@hidden @code{GtkFileSelection}
address@hidden @code{emacs-dialog}
address@hidden @code{GtkDialog}
address@hidden @code{Emacs}
address@hidden @code{GtkWindow}
address@hidden @code{pane}
address@hidden @code{GtkVHbox}
address@hidden @code{emacs}
address@hidden @code{GtkFixed}
address@hidden @code{verticalScrollBar}
address@hidden @code{GtkVScrollbar}
address@hidden @code{emacs-toolbar}
address@hidden @code{GtkToolbar}
address@hidden @code{menubar}
address@hidden @code{GtkMenuBar}
address@hidden @code{emacs-menuitem}
address@hidden anything in menus
address@hidden multitable
-
-  GTK absolute names are quite strange when it comes to menus
-and dialogs.  The names do not start with @samp{Emacs}, as they are
-free-standing windows and not contained (in the GTK sense) by the
-Emacs GtkWindow.  To customize the dialogs and menus, use wildcards like this:
-
address@hidden
-widget "*emacs-dialog*" style "my_dialog_style"
-widget "*emacs-filedialog* style "my_file_style"
-widget "*emacs-menuitem* style "my_menu_style"
address@hidden smallexample
-
-  If you specify a customization in @file{~/.emacs.d/gtkrc}, then it
-automatically applies only to Emacs, since other programs don't read
-that file.  For example, the drop down menu in the file dialog can not
-be customized by any absolute widget name, only by an absolute class
-name.  This is because the widgets in the drop down menu do not
-have names and the menu is not contained in the Emacs GtkWindow.  To
-have all menus in Emacs look the same, use this in
address@hidden/.emacs.d/gtkrc}:
-
address@hidden
-widget_class "*Menu*" style "my_menu_style"
address@hidden smallexample
-
-  Here is a more elaborate example, showing how to change the parts of
-the scroll bar:
-
address@hidden
-style "scroll"
address@hidden
-  fg[NORMAL] = "red"@ @ @ @ @ # @r{The arrow color.}
-  bg[NORMAL] = "yellow"@ @ # @r{The thumb and background around the arrow.}
-  bg[ACTIVE] = "blue"@ @ @ @ # @r{The trough color.}
-  bg[PRELIGHT] = "white"@ # @r{The thumb color when the mouse is over it.}
address@hidden
-
-widget "*verticalScrollBar*" style "scroll"
address@hidden smallexample
address@hidden iftex
-
address@hidden
address@hidden GTK resources and customization
address@hidden GTK+ resources
 @cindex resource files for GTK
 @cindex @file{~/.gtkrc-2.0} file
 @cindex @file{~/.emacs.d/gtkrc} file
 
-  If Emacs was built to use the GTK widget set, then the menu bar, tool bar,
-scroll bar and the dialogs are customized with the standard GTK
-customization file, @file{~/.gtkrc-2.0}, or with the Emacs specific
-file @file{~/.emacs.d/gtkrc}.  We recommend that you use
address@hidden/.emacs.d/gtkrc} for customizations, since @file{~/.gtkrc-2.0}
-seems to be ignored when running GConf with GNOME.  These files apply
-only to GTK widget features.  To customize Emacs font, background,
-faces, etc., use the normal X resources (@pxref{Resources}).
-
-  Some GTK themes override these mechanisms, which means that using
-these mechanisms will not work to customize them.
-
-  In these files you first define a style and say what it means; then
-you specify to apply the style to various widget types (@pxref{GTK
-widget names}).  Here is an example of how to change the font for
-Emacs menus:
-
address@hidden
-# @r{Define the style @samp{menufont}.}
-style "menufont"
address@hidden
-  font_name = "helvetica bold 14"  # This is a Pango font name
address@hidden
-
-# @r{Specify that widget type @samp{*emacs-menuitem*} uses @samp{menufont}.}
-widget "*emacs-menuitem*" style "menufont"
address@hidden smallexample
-
-  Here is a more elaborate example, showing how to change the parts of
-the scroll bar:
-
address@hidden
-style "scroll"
address@hidden
-  fg[NORMAL] = "red"@ @ @ @ @ # @r{The arrow color.}
-  bg[NORMAL] = "yellow"@ @ # @r{The thumb and background around the arrow.}
-  bg[ACTIVE] = "blue"@ @ @ @ # @r{The trough color.}
-  bg[PRELIGHT] = "white"@ # @r{The thumb color when the mouse is over it.}
address@hidden
-
-widget "*verticalScrollBar*" style "scroll"
address@hidden smallexample
-
-  There are also parameters that affect GTK as a whole.  For example,
-the property @code{gtk-font-name} sets the default font for GTK.  You
-must use Pango font names (@pxref{GTK styles}).  A GTK resources file
-that just sets a default font looks like this:
-
address@hidden
-gtk-font-name = "courier 12"
address@hidden smallexample
-
-  The GTK resources file is fully described in the GTK API document.
-This can be found in
address@hidden@var{prefix}/share/gtk-doc/html/gtk/gtk-resource-files.html},
-where @file{prefix} is the directory in which the GTK libraries were
-installed (usually @file{/usr} or @file{/usr/local}).  You can also
-find the document online, at
+  If Emacs is compiled with GTK+ toolkit support, the simplest way to
+customize its GTK+ widgets (e.g.@: menus, dialogs, tool bars and
+scroll bars) is to choose an appropriate GTK+ theme, for example with
+the GNOME theme selector.
+
+  In GTK+ version 2, you can also use @dfn{GTK+ resources} to
+customize the appearance of GTK+ widgets used by Emacs.  These
+resources are specified in either the file @file{~/.emacs.d/gtkrc}
+(for Emacs-specific GTK+ resources), or @file{~/.gtkrc-2.0} (for
+general GTK+ resources).  We recommend using @file{~/.emacs.d/gtkrc},
+since GTK+ seems to ignore @file{~/.gtkrc-2.0} when running GConf with
+GNOME.  Note, however, that some GTK themes may override
+customizations in @file{~/.emacs.d/gtkrc}; there is nothing we can do
+about this.  GTK+ resources do not affect aspects of Emacs unrelated
+to GTK+ widgets, such as fonts and colors in the main Emacs window;
+those are governed by normal X resources (@pxref{Resources}).
+
+  The following sections describe how to customize GTK+ resources for
+Emacs.  For details about GTK+ resources, see the GTK+ API document at
 @uref{http://developer.gnome.org/doc/API/2.0/gtk/gtk-Resource-Files.html}.
 
+  In GTK+ version 3, GTK+ resources have been replaced by a completely
+different system.  The appearance of GTK+ widgets is now determined by
+CSS-like style files: @file{gtk-3.0/gtk.css} in the GTK+ installation
+directory, and @file{~/.themes/@var{theme}/gtk-3.0/gtk.css} for local
+style settings (where @var{theme} is the name of the current GTK+
+theme).  Therefore, the description of GTK+ resources in this section
+does not apply to GTK+ 3.  For details about the GTK+ 3 styling
+system, see
address@hidden://developer.gnome.org/gtk3/3.0/GtkCssProvider.html}.
+
 @menu
-* GTK widget names::      How widgets in GTK are named in general.
-* GTK Names in Emacs::    GTK widget names in Emacs.
+* GTK Resource Basics::   Basic usage of GTK+ resources.
+* GTK Widget Names::      How GTK+ widgets are named.
+* GTK Names in Emacs::    GTK widgets used by Emacs.
 * GTK styles::            What can be customized in a GTK widget.
 @end menu
 
address@hidden GTK widget names
address@hidden GTK Resource Basics
address@hidden GTK Resource Basics
+
+  In a GTK+ 2 resource file (usually @file{~/.emacs.d/gtkrc}), the
+simplest kinds of resource settings simply assign a value to a
+variable.  For example, putting the following line in the resource
+file changes the font on all GTK+ widgets to @samp{courier-12}:
+
address@hidden
+gtk-font-name = "courier 12"
address@hidden smallexample
+
address@hidden
+Note that in this case the font name must be supplied as a GTK font
+pattern (also called a @dfn{Pango font name}), not as a
+Fontconfig-style font name or XLFD.  @xref{Fonts}.
+
+  To customize widgets you first define a @dfn{style}, and then apply
+the style to the widgets.  Here is an example that sets the font for
+menus (@samp{#} characters indicate comments):
+
address@hidden
+# @r{Define the style @samp{my_style}.}
+style "my_style"
address@hidden
+  font_name = "helvetica bold 14"
address@hidden
+
+# @r{Specify that widget type @samp{*emacs-menuitem*} uses @samp{my_style}.}
+widget "*emacs-menuitem*" style "my_style"
address@hidden smallexample
+
address@hidden
+The widget name in this example contains wildcards, so the style is
+applied to all widgets matching @samp{*emacs-menuitem*}.  The widgets
+are named by the way they are contained, from the outer widget to the
+inner widget.  Here is another example that applies @samp{my_style}
+specifically to the Emacs menu bar:
+
address@hidden
+widget "Emacs.pane.menubar.*" style "my_style"
address@hidden smallexample
+
+  Here is a more elaborate example, showing how to change the parts of
+the scroll bar:
+
address@hidden
+style "scroll"
address@hidden
+  fg[NORMAL] = "red"@ @ @ @ @ # @r{Arrow color.}
+  bg[NORMAL] = "yellow"@ @ # @r{Thumb and background around arrow.}
+  bg[ACTIVE] = "blue"@ @ @ @ # @r{Trough color.}
+  bg[PRELIGHT] = "white"@ # @r{Thumb color when the mouse is over it.}
address@hidden
+
+widget "*verticalScrollBar*" style "scroll"
address@hidden smallexample
+
address@hidden GTK Widget Names
 @appendixsubsec GTK widget names
 @cindex GTK widget names
 
-  A GTK widget is specified by its @dfn{widget class} and
address@hidden name}.  The widget class is the type of the widget: for
-example, @code{GtkMenuBar}.  The widget name is the name given to a
-specific widget.  A widget always has a class, but need not have a
-name.
+  A GTK+ widget is specified by a @dfn{widget name} and a @dfn{widget
+class}.  The widget name refers to a specific widget
+(e.g.@: @samp{emacs-menuitem}), while the widget class refers to a
+collection of similar widgets (e.g.@: @samp{GtkMenuItem}).  A widget
+always has a class, but need not have a name.
 
   @dfn{Absolute names} are sequences of widget names or widget
 classes, corresponding to hierarchies of widgets embedded within
@@ -868,55 +602,31 @@
 of the menu-bar widget is @code{GtkWindow.GtkVBox.GtkMenuBar}, and
 its absolute widget name is @code{top.box.menubar}.
 
-  When assigning a style to a widget, you can use the absolute class
-name or the absolute widget name.
-
-  There are two commands to specify changes for widgets:
-
address@hidden @asis
address@hidden @code{widget_class}
-specifies a style for widgets based on the absolute class name.
-
address@hidden @code{widget}
-specifies a style for widgets based on the absolute class name,
-or just the class.
+  GTK+ resource files can contain two types of commands for specifying
+widget appearances:
+
address@hidden @code
address@hidden widget
+specifies a style for widgets based on the class name, or just the
+class.
+
address@hidden widget_class
+specifies a style for widgets based on the class name.
 @end table
 
 @noindent
-You must specify the class and the style in double-quotes, and put
-these commands at the top level in the GTK customization file, like
-this:
-
address@hidden
-style "menufont"
address@hidden
-  font_name = "helvetica bold 14"
address@hidden
-
-widget "top.box.menubar" style "menufont"
-widget_class "GtkWindow.GtkVBox.GtkMenuBar" style "menufont"
address@hidden smallexample
-
-  Matching of absolute names uses shell wildcard syntax: @samp{*}
-matches zero or more characters and @samp{?} matches one character.
-This example assigns @code{base_style} to all widgets:
-
address@hidden
-widget "*" style "base_style"
address@hidden smallexample
-
-  Given the absolute class name @code{GtkWindow.GtkVBox.GtkMenuBar}
-and the corresponding absolute widget name @code{top.box.menubar}, all
-these examples specify @code{my_style} for the menu bar:
-
address@hidden
-widget_class "GtkWindow.GtkVBox.GtkMenuBar" style "my_style"
-widget_class "GtkWindow.*.GtkMenuBar" style "my_style"
-widget_class "*GtkMenuBar" style "my_style"
-widget "top.box.menubar" style "my_style"
-widget "*box*menubar" style "my_style"
-widget "*menubar" style "my_style"
-widget "*menu*" style "my_style"
+See the previous subsection for examples of using the @code{widget}
+command; the @code{widget_class} command is used similarly.  Note that
+the widget name/class and the style must be enclosed in double-quotes,
+and these commands must be at the top level in the GTK+ resource file.
+
+  As previously noted, you may specify a widget name or class with
+shell wildcard syntax: @samp{*} matches zero or more characters and
address@hidden matches one character.  This example assigns a style to all
+widgets:
+
address@hidden
+widget "*" style "my_style"
 @end smallexample
 
 @node GTK Names in Emacs
@@ -924,68 +634,52 @@
 @cindex GTK widget names
 @cindex GTK widget classes
 
-  In Emacs, the top level widget for a frame is a @code{GtkWindow}
-that contains a @code{GtkVBox}.  The @code{GtkVBox} contains the
address@hidden and a @code{GtkFixed} widget.  The vertical scroll
-bars, @code{GtkVScrollbar}, are contained in the @code{GtkFixed}
-widget.  The text you write in Emacs is drawn in the @code{GtkFixed}
-widget.
-
-  Dialogs in Emacs are @code{GtkDialog} widgets.  The file dialog is a
address@hidden widget.
-
address@hidden
-To set a style for the menu bar using the absolute class name, use:
-
address@hidden
-widget_class "GtkWindow.GtkVBox.GtkMenuBar" style "my_style"
address@hidden smallexample
-
address@hidden
-For the scroll bar, the absolute class name is:
-
address@hidden
-widget_class
-  "GtkWindow.GtkVBox.GtkFixed.GtkVScrollbar"
-     style "my_style"
address@hidden smallexample
-
address@hidden
-The names for the emacs widgets, and their classes, are:
-
address@hidden address@hidden plus}} address@hidden and some}
address@hidden @code{emacs-filedialog}
address@hidden @code{GtkFileSelection}
address@hidden @code{emacs-dialog}
address@hidden @code{GtkDialog}
address@hidden @code{Emacs}
address@hidden @code{GtkWindow}
address@hidden @code{pane}
address@hidden @code{GtkVHbox}
address@hidden @code{emacs}
address@hidden @code{GtkFixed}
address@hidden @code{verticalScrollBar}
address@hidden @code{GtkVScrollbar}
address@hidden @code{emacs-toolbar}
address@hidden @code{GtkToolbar}
address@hidden @code{menubar}
address@hidden @code{GtkMenuBar}
address@hidden @code{emacs-menuitem}
address@hidden anything in menus
address@hidden multitable
-
address@hidden
-Thus, for Emacs you can write the two examples above as:
-
address@hidden
-widget "Emacs.pane.menubar" style "my_style"
-widget "Emacs.pane.emacs.verticalScrollBar" style "my_style"
address@hidden smallexample
-
-  GTK absolute names are quite strange when it comes to menus
-and dialogs.  The names do not start with @samp{Emacs}, as they are
-free-standing windows and not contained (in the GTK sense) by the
-Emacs GtkWindow.  To customize the dialogs and menus, use wildcards like this:
+  The GTK+ widgets used by an Emacs frame are listed below:
+
address@hidden @asis
address@hidden @code{Emacs} (class @code{GtkWindow})
address@hidden @asis
address@hidden @code{pane} (class @code{GtkVBox})
address@hidden @asis
address@hidden @code{menubar} (class @code{GtkMenuBar})
address@hidden @asis
address@hidden [menu item widgets]
address@hidden table
address@hidden [unnamed widget] (class @code{GtkHandleBox})
address@hidden @asis
address@hidden @code{emacs-toolbar} (class @code{GtkToolbar})
address@hidden @asis
address@hidden [tool bar item widgets]
address@hidden table
address@hidden table
address@hidden @code{emacs} (class @code{GtkFixed})
address@hidden @asis
address@hidden @code{verticalScrollBar} (class @code{GtkVScrollbar})
address@hidden table
address@hidden table
address@hidden table
address@hidden table
+
address@hidden
+The contents of Emacs windows are drawn in the @code{emacs} widget.
+Note that even if there are multiple Emacs windows, each scroll bar
+widget is named @code{verticalScrollBar}.
+
+  For example, here are two different ways to set the menu bar style:
+
address@hidden
+widget "Emacs.pane.menubar.*" style "my_style"
+widget_class "GtkWindow.GtkVBox.GtkMenuBar.*" style "my_style"
address@hidden smallexample
+
+  For GTK+ dialogs, Emacs uses a widget named @code{emacs-dialog}, of
+class @code{GtkDialog}.  For file selection, Emacs uses a widget named
address@hidden, of class @code{GtkFileSelection}.
+
+  Because the widgets for pop-up menus and dialogs are free-standing
+windows and not ``contained'' in the @code{Emacs} widget, their GTK+
+absolute names do not start with @samp{Emacs}.  To customize these
+widgets, use wildcards like this:
 
 @smallexample
 widget "*emacs-dialog*" style "my_dialog_style"
@@ -993,14 +687,7 @@
 widget "*emacs-menuitem* style "my_menu_style"
 @end smallexample
 
-  If you specify a customization in @file{~/.emacs.d/gtkrc}, then it
-automatically applies only to Emacs, since other programs don't read
-that file.  For example, the drop down menu in the file dialog can not
-be customized by any absolute widget name, only by an absolute class
-name.  This is because the widgets in the drop down menu do not
-have names and the menu is not contained in the Emacs GtkWindow.  To
-have all menus in Emacs look the same, use this in
address@hidden/.emacs.d/gtkrc}:
+  If you want to apply a style to all menus in Emacs, use this:
 
 @smallexample
 widget_class "*Menu*" style "my_menu_style"
@@ -1010,15 +697,7 @@
 @appendixsubsec GTK styles
 @cindex GTK styles
 
-  In a GTK style you specify the appearance widgets shall have.  You
-can specify foreground and background color, background pixmap and
-font.  The edit widget (where you edit the text) in Emacs is a GTK
-widget, but trying to specify a style for the edit widget will have no
-effect.  This is so that Emacs compiled for GTK is compatible with
-Emacs compiled for other X toolkits.  The settings for foreground,
-background and font for the edit widget is taken from the X resources;
address@hidden  Here is an example of two style declarations,
address@hidden and @samp{ruler}:
+  Here is an example of two GTK+ style declarations:
 
 @smallexample
 pixmap_path "/usr/share/pixmaps:/usr/include/X11/pixmaps"
@@ -1128,9 +807,8 @@
 
 @item font_name = "@var{font}"
 This specifies the font for text in the widget.  @var{font} is a
-Pango font name, for example @samp{Sans Italic 10}, @samp{Helvetica
-Bold 12}, @samp{Courier 14}, @samp{Times 18}.  See below for exact
-syntax.  The names are case insensitive.
+GTK-style (or Pango) font name, like @samp{Sans Italic 10}.
address@hidden  The names are case insensitive.
 @end table
 
   There are three ways to specify a color: a color name, an RGB
@@ -1138,60 +816,6 @@
 of color names and RGB triplets.  Color names should be enclosed with
 double quotes, e.g.@: @samp{"red"}.  RGB triplets should be written
 without double quotes, e.g.@: @samp{#ff0000}.  GTK-style RGB triplets
-have the form
-
address@hidden
address@hidden@{ @var{r}, @var{g}, @var{b} @}}
address@hidden smallexample
-
address@hidden
-where @var{r}, @var{g} and @var{b} are either integers in the range
-0-65535 or floats in the range 0.0-1.0.
-
-  Pango font names have the form address@hidden @var{style-options}
address@hidden''
address@hidden Pango font name
address@hidden
address@hidden is a comma separated list of font families optionally
-terminated by a comma.  This way you can specify several families and the
-first one found will be used.  @var{family} corresponds to the second part in
-an X font name, for example in
-
address@hidden
--adobe-times-medium-r-normal--12-120-75-75-p-64-iso10646-1
address@hidden smallexample
-
address@hidden
-the family name is @samp{times}.
-
address@hidden
address@hidden is a whitespace separated list of words where each word
-is a style, variant, weight, or stretch.  The default value for all of
-these is @code{normal}.
-
address@hidden
-A `style' corresponds to the fourth part of an X font name.  In X font
-names it is the character @samp{r}, @samp{i} or @samp{o}; in Pango
-font names the corresponding values are @code{normal}, @code{italic},
-or @code{oblique}.
-
address@hidden
-A `variant' is either @code{normal} or @code{small-caps}.
-Small caps is a font with the lower case characters replaced by
-smaller variants of the capital characters.
-
address@hidden
-Weight describes the ``boldness'' of a font.  It corresponds to the third
-part of an X font name.  It is one of @code{ultra-light}, @code{light},
address@hidden, @code{bold}, @code{ultra-bold}, or @code{heavy}.
-
address@hidden
-Stretch gives the width of the font relative to other designs within a
-family.  It corresponds to the fifth part of an X font name.  It is one of
address@hidden, @code{extra-condensed}, @code{condensed},
address@hidden, @code{normal}, @code{semi-expanded},
address@hidden, @code{extra-expanded}, or @code{ultra-expanded}.
-
address@hidden
address@hidden is a decimal number that describes the font size in points.
address@hidden ifnottex
+have the form @address@hidden@{ @var{r}, @var{g}, @var{b} @}}}, where
address@hidden, @var{g} and @var{b} are either integers in the range 0-65535
+or floats in the range 0.0-1.0.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]