annotate man/lispref/x-windows.texi @ 175:2d532a89d707 r20-3b14

Import from CVS: tag r20-3b14
author cvs
date Mon, 13 Aug 2007 09:50:14 +0200
parents 376386a54a3c
children 11cf20601dec
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1 @c -*-texinfo-*-
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2 @c This is part of the XEmacs Lisp Reference Manual.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3 @c Copyright (C) 1990, 1991, 1992, 1993 Free Software Foundation, Inc.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
4 @c See the file lispref.texi for copying conditions.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
5 @setfilename ../../info/x-windows.texinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
6 @node X-Windows, ToolTalk Support, System Interface, Top
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
7 @chapter Functions Specific to the X Window System
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
8 @cindex X
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
9 @cindex X-Windows
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
10
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
11 @c This section is largely different from the one in FSF Emacs.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
12
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
13 XEmacs provides the concept of @dfn{devices}, which generalizes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
14 connections to an X server, a TTY device, etc. Most information about
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
15 an X server that XEmacs is connected to can be determined through
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
16 general console and device functions. @xref{Consoles and Devices}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
17 However, there are some features of the X Window System that do not
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
18 generalize well, and they are covered specially here.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
19
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
20 @menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
21 * X Selections:: Transferring text to and from other X clients.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
22 * X Server:: Information about the X server connected to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
23 a particular device.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
24 * X Miscellaneous:: Other X-specific functions and variables.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
25 @end menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
26
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
27 @node X Selections
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
28 @section X Selections
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
29 @cindex selection (for X windows)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
30
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
31 The X server records a set of @dfn{selections} which permit transfer of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
32 data between application programs. The various selections are
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
33 distinguished by @dfn{selection types}, represented in XEmacs by
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
34 symbols. X clients including XEmacs can read or set the selection for
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
35 any given type.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
36
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
37 @defun x-own-selection data &optional type
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
38 This function sets a ``selection'' in the X server. It takes two
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
39 arguments: a value, @var{data}, and the selection type @var{type} to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
40 assign it to. @var{data} may be a string, a cons of two markers, or an
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
41 extent. In the latter cases, the selection is considered to be the text
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
42 between the markers, or between the extent's endpoints.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
43
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
44 Each possible @var{type} has its own selection value, which changes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
45 independently. The usual values of @var{type} are @code{PRIMARY} and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
46 @code{SECONDARY}; these are symbols with upper-case names, in accord
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
47 with X Windows conventions. The default is @code{PRIMARY}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
48
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
49 (In FSF Emacs, this function is called @code{x-set-selection} and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
50 takes different arguments.)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
51 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
52
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
53 @defun x-get-selection
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
54 This function accesses selections set up by XEmacs or by other X
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
55 clients. It returns the value of the current primary selection.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
56 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
57
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
58 @defun x-disown-selection &optional secondary-p
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
59 Assuming we own the selection, this function disowns it. If
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
60 @var{secondary-p} is non-@code{nil}, the secondary selection instead of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
61 the primary selection is discarded.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
62 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
63
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
64 @cindex cut buffer
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
65 The X server also has a set of numbered @dfn{cut buffers} which can
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
66 store text or other data being moved between applications. Cut buffers
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
67 are considered obsolete, but XEmacs supports them for the sake of X
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
68 clients that still use them.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
69
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
70 @defun x-get-cutbuffer &optional n
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
71 This function returns the contents of cut buffer number @var{n}. (This
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
72 function is called @code{x-get-cut-buffer} in FSF Emacs.)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
73 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
74
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
75 @defun x-store-cutbuffer string
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
76 This function stores @var{string} into the first cut buffer (cut buffer
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
77 0), moving the other values down through the series of cut buffers,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
78 kill-ring-style. (This function is called @code{x-set-cut-buffer} in FSF
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
79 Emacs.)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
80 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
81
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
82 @node X Server
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
83 @section X Server
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
84
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
85 This section describes how to access and change the overall status of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
86 the X server XEmacs is using.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
87
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
88 @menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
89 * Resources:: Getting resource values from the server.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
90 * Server Data:: Getting info about the X server.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
91 * Grabs:: Restricting access to the server by other apps.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
92 @end menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
93
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
94 @node Resources
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
95 @subsection Resources
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
96
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
97 @defun default-x-device
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
98 This function return the default X device for resourcing. This is the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
99 first-created X device that still exists.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
100 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
101
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
102 @defun x-get-resource name class type &optional locale device noerror
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
103 This function retrieves a resource value from the X resource manager.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
104
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
105 @itemize @bullet
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
106 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
107 The first arg is the name of the resource to retrieve, such as
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
108 @samp{"font"}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
109
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
110 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
111 The second arg is the class of the resource to retrieve, like
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
112 @samp{"Font"}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
113
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
114 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
115 The third arg should be one of the symbols @code{string},
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
116 @code{integer}, @code{natnum}, or @code{boolean}, specifying the type of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
117 object that the database is searched for.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
118
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
119 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
120 The fourth arg is the locale to search for the resources on, and can
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
121 currently be a a buffer, a frame, a device, or the symbol @code{global}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
122 If omitted, it defaults to @code{global}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
123
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
124 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
125 The fifth arg is the device to search for the resources on. (The
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
126 resource database for a particular device is constructed by combining
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
127 non-device- specific resources such any command-line resources specified
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
128 and any app-defaults files found [or the fallback resources supplied by
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
129 XEmacs, if no app-defaults file is found] with device-specific resources
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
130 such as those supplied using @samp{xrdb}.) If omitted, it defaults to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
131 the device of @var{locale}, if a device can be derived (i.e. if
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
132 @var{locale} is a frame or device), and otherwise defaults to the value
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
133 of @code{default-x-device}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
134
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
135 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
136 The sixth arg @var{noerror}, if non-@code{nil}, means do not signal an
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
137 error if a bogus resource specification was retrieved (e.g. if a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
138 non-integer was given when an integer was requested). In this case, a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
139 warning is issued instead.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
140 @end itemize
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
141
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
142 The resource names passed to this function are looked up relative to the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
143 locale.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
144
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
145 If you want to search for a subresource, you just need to specify the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
146 resource levels in @var{name} and @var{class}. For example, @var{name}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
147 could be @samp{"modeline.attributeFont"}, and @var{class}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
148 @samp{"Face.AttributeFont"}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
149
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
150 Specifically,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
151
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
152 @enumerate
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
153 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
154 If @var{locale} is a buffer, a call
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
155
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
156 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
157 @code{(x-get-resource "foreground" "Foreground" 'string @var{some-buffer})}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
158 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
159
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
160 is an interface to a C call something like
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
161
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
162 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
163 @code{XrmGetResource (db, "xemacs.buffer.@var{buffer-name}.foreground",
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
164 "Emacs.EmacsLocaleType.EmacsBuffer.Foreground",
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
165 "String");}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
166 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
167
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
168 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
169 If @var{locale} is a frame, a call
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
170
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
171 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
172 @code{(x-get-resource "foreground" "Foreground" 'string @var{some-frame})}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
173 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
174
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
175 is an interface to a C call something like
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
176 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
177
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
178 @code{XrmGetResource (db, "xemacs.frame.@var{frame-name}.foreground",
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
179 "Emacs.EmacsLocaleType.EmacsFrame.Foreground",
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
180 "String");}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
181 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
182
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
183 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
184 If @var{locale} is a device, a call
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
185
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
186 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
187 @code{(x-get-resource "foreground" "Foreground" 'string @var{some-device})}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
188 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
189
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
190 is an interface to a C call something like
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
191
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
192 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
193 @code{XrmGetResource (db, "xemacs.device.@var{device-name}.foreground",
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
194 "Emacs.EmacsLocaleType.EmacsDevice.Foreground",
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
195 "String");}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
196 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
197
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
198 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
199 If @var{locale} is the symbol @code{global}, a call
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
200
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
201 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
202 @code{(x-get-resource "foreground" "Foreground" 'string 'global)}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
203 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
204
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
205 is an interface to a C call something like
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
206
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
207 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
208 @code{XrmGetResource (db, "xemacs.foreground",
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
209 "Emacs.Foreground",
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
210 "String");}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
211 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
212 @end enumerate
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
213
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
214 Note that for @code{global}, no prefix is added other than that of the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
215 application itself; thus, you can use this locale to retrieve arbitrary
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
216 application resources, if you really want to.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
217
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
218 The returned value of this function is @code{nil} if the queried
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
219 resource is not found. If @var{type} is @code{string}, a string is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
220 returned, and if it is @code{integer}, an integer is returned. If
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
221 @var{type} is @code{boolean}, then the returned value is the list
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
222 @code{(t)} for true, @code{(nil)} for false, and is @code{nil} to mean
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
223 ``unspecified''.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
224 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
225
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
226 @defun x-put-resource resource-line &optional device
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
227 This function adds a resource to the resource database for @var{device}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
228 @var{resource-line} specifies the resource to add and should be a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
229 standard resource specification.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
230 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
231
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
232 @defvar x-emacs-application-class
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
233 This variable holds The X application class of the XEmacs process. This
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
234 controls, among other things, the name of the ``app-defaults'' file that
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
235 XEmacs will use. For changes to this variable to take effect, they must
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
236 be made before the connection to the X server is initialized, that is,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
237 this variable may only be changed before XEmacs is dumped, or by setting
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
238 it in the file @file{lisp/term/x-win.el}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
239 @end defvar
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
240
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
241 @node Server Data
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
242 @subsection Data about the X Server
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
243
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
244 This section describes functions and a variable that you can use to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
245 get information about the capabilities and origin of the X server
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
246 corresponding to a particular device. The device argument is generally
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
247 optional and defaults to the selected device.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
248
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
249 @defun x-server-version &optional device
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
250 This function returns the list of version numbers of the X server
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
251 @var{device} is on. The returned value is a list of three integers: the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
252 major and minor version numbers of the X protocol in use, and the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
253 vendor-specific release number.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
254 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
255
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
256 @defun x-server-vendor &optional device
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
257 This function returns the vendor supporting the X server @var{device} is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
258 on.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
259 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
260
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
261 @defun x-display-visual-class &optional device
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
262 This function returns the visual class of the display @var{device} is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
263 on. The value is one of the symbols @code{static-gray},
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
264 @code{gray-scale}, @code{static-color}, @code{pseudo-color},
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
265 @code{true-color}, and @code{direct-color}. (Note that this is different
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
266 from previous versions of XEmacs, which returned @code{StaticGray},
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
267 @code{GrayScale}, etc.)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
268 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
269
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
270 @node Grabs
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
271 @subsection Restricting Access to the Server by Other Apps
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
272
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
273 @defun x-grab-keyboard &optional device
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
274 This function grabs the keyboard on the given device (defaulting to the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
275 selected one). So long as the keyboard is grabbed, all keyboard events
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
276 will be delivered to XEmacs -- it is not possible for other X clients to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
277 eavesdrop on them. Ungrab the keyboard with @code{x-ungrab-keyboard}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
278 (use an @code{unwind-protect}). Returns @code{t} if the grab was
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
279 successful; @code{nil} otherwise.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
280 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
281
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
282 @defun x-ungrab-keyboard &optional device
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
283 This function releases a keyboard grab made with @code{x-grab-keyboard}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
284 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
285
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
286 @defun x-grab-pointer &optional device cursor ignore-keyboard
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
287 This function grabs the pointer and restricts it to its current window.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
288 If optional @var{device} argument is @code{nil}, the selected device
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
289 will be used. If optional @var{cursor} argument is non-@code{nil},
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
290 change the pointer shape to that until @code{x-ungrab-pointer} is called
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
291 (it should be an object returned by the @code{make-cursor} function).
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
292 If the second optional argument @var{ignore-keyboard} is non-@code{nil},
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
293 ignore all keyboard events during the grab. Returns @code{t} if the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
294 grab is successful, @code{nil} otherwise.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
295 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
296
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
297 @defun x-ungrab-pointer &optional device
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
298 This function releases a pointer grab made with @code{x-grab-pointer}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
299 If optional first arg @var{device} is @code{nil} the selected device is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
300 used. If it is @code{t} the pointer will be released on all X devices.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
301 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
302
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
303 @node X Miscellaneous
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
304 @section Miscellaneous X Functions and Variables
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
305
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
306 @defvar x-bitmap-file-path
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
307 This variable holds a list of the directories in which X bitmap files
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
308 may be found. If @code{nil}, this is initialized from the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
309 @samp{"*bitmapFilePath"} resource. This is used by the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
310 @code{make-image-instance} function (however, note that if the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
311 environment variable @samp{XBMLANGPATH} is set, it is consulted first).
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
312 @end defvar
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
313
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
314 @defvar x-library-search-path
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
315 This variable holds the search path used by @code{read-color} to find
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
316 @file{rgb.txt}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
317 @end defvar
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
318
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
319 @defun x-valid-keysym-name-p keysym
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
320 This function returns true if @var{keysym} names a keysym that the X
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
321 library knows about. Valid keysyms are listed in the files
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
322 @file{/usr/include/X11/keysymdef.h} and in
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
323 @file{/usr/lib/X11/XKeysymDB}, or whatever the equivalents are on your
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
324 system.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
325 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
326
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
327 @defun x-window-id &optional frame
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
328 This function returns the ID of the X11 window. This gives us a chance
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
329 to manipulate the Emacs window from within a different program. Since
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
330 the ID is an unsigned long, we return it as a string.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
331 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
332
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
333 @defvar x-allow-sendevents
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
334 If non-@code{nil}, synthetic events are allowed. @code{nil} means
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
335 they are ignored. Beware: allowing XEmacs to process SendEvents opens a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
336 big security hole.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
337 @end defvar
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
338
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
339 @defun x-debug-mode arg &optional device
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
340 With a true arg, make the connection to the X server synchronous. With
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
341 false, make it asynchronous. Synchronous connections are much slower,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
342 but are useful for debugging. (If you get X errors, make the connection
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
343 synchronous, and use a debugger to set a breakpoint on
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
344 @code{x_error_handler}. Your backtrace of the C stack will now be
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
345 useful. In asynchronous mode, the stack above @code{x_error_handler}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
346 isn't helpful because of buffering.) If @var{device} is not specified,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
347 the selected device is assumed.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
348
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
349 Calling this function is the same as calling the C function
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
350 @code{XSynchronize}, or starting the program with the @samp{-sync}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
351 command line argument.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
352 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
353
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
354 @defvar x-debug-events
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
355 If non-zero, debug information about events that XEmacs sees is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
356 displayed. Information is displayed on stderr. Currently defined
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
357 values are:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
358
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
359 @itemize @bullet
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
360 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
361 1 == non-verbose output
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
362 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
363 2 == verbose output
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
364 @end itemize
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
365 @end defvar