annotate man/lispref/gutter.texi @ 5791:9fae6227ede5

Silence texinfo 5.2 warnings, primarily by adding next, prev, and up pointers to all nodes. See xemacs-patches message with ID <5315f7bf.sHpFD7lXYR05GH6E%james@xemacs.org>.
author Jerry James <james@xemacs.org>
date Thu, 27 Mar 2014 08:59:03 -0600
parents 2ba4f06a264d
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
1 @c -*-texinfo-*-
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
2 @c This is part of the XEmacs Lisp Reference Manual.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
3 @c Copyright (C) 1994, 1995 Ben Wing.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
4 @c Copyright (C) 1999 Andy Piper.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
5 @c Copyright (C) 1999 Stephen J. Turnbull.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
6 @c See the file lispref.texi for copying conditions.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
7 @setfilename ../../info/gutter.info
5791
9fae6227ede5 Silence texinfo 5.2 warnings, primarily by adding next, prev, and up
Jerry James <james@xemacs.org>
parents: 2028
diff changeset
8 @node Gutter, Scrollbars, Toolbar, Top
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
9 @chapter Gutter
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
10 @cindex gutter
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
11
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
12 A gutter is a rectangle displayed along one edge of a frame. It
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
13 can contain arbitrary text or graphics.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
14
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
15 @menu
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
16 * Gutter Intro:: An introduction.
2028
2ba4f06a264d [xemacs-hg @ 2004-04-19 08:02:27 by stephent]
stephent
parents: 444
diff changeset
17 * Creating Gutters:: How to create a gutter.
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
18 * Specifying a Gutter:: Setting a gutter's contents.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
19 * Other Gutter Variables:: Controlling the size of gutters.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
20 * Common Gutter Widgets:: Things to put in gutters.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
21 @end menu
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
22
2028
2ba4f06a264d [xemacs-hg @ 2004-04-19 08:02:27 by stephent]
stephent
parents: 444
diff changeset
23 @node Gutter Intro, Creating Gutters, Gutter, Gutter
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
24 @section Gutter Intro
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
25
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
26 A @dfn{gutter} is a rectangle displayed along one edge of a frame. It
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
27 can contain arbitrary text or graphics. It could be considered a
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
28 generalization of a toolbar, although toolbars are not currently
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
29 implemented using gutters.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
30
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
31 In XEmacs, a gutter can be displayed along any of the four edges
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
32 of the frame, and two or more different edges can be displaying
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
33 gutters simultaneously. The contents, thickness, and visibility of
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
34 the gutters can be controlled separately, and the values can
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
35 be per-buffer, per-frame, etc., using specifiers (@pxref{Specifiers}).
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
36
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
37 Normally, there is one gutter displayed in a frame. Usually, this is
2028
2ba4f06a264d [xemacs-hg @ 2004-04-19 08:02:27 by stephent]
stephent
parents: 444
diff changeset
38 the default gutter, containing buffer tabs, but modes can override this
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
39 and substitute their own gutter. This default gutter is usually
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
40 positioned along the top of the frame, but this can be changed using
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
41 @code{set-default-gutter-position}.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
42
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
43 Note that, for each of the gutter properties (contents, thickness,
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
44 and visibility), there is a separate specifier for each of the four
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
45 gutter positions (top, bottom, left, and right), and an additional
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
46 specifier for the ``default'' gutter, i.e. the gutter whose
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
47 position is controlled by @code{set-default-gutter-position}. The
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
48 way this works is that @code{set-default-gutter-position} arranges
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
49 things so that the appropriate position-specific specifiers for the
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
50 default position inherit from the corresponding default specifiers.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
51 That way, if the position-specific specifier does not give a value
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
52 (which it usually doesn't), then the value from the default
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
53 specifier applies. If you want to control the default gutter, you
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
54 just change the default specifiers, and everything works. A package
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
55 such as VM that wants to put its own gutter in a different location
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
56 from the default just sets the position-specific specifiers, and if
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
57 the user sets the default gutter to the same position, it will just
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
58 not be visible.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
59
2028
2ba4f06a264d [xemacs-hg @ 2004-04-19 08:02:27 by stephent]
stephent
parents: 444
diff changeset
60 @node Creating Gutters, Specifying a Gutter, Gutter Intro, Gutter
2ba4f06a264d [xemacs-hg @ 2004-04-19 08:02:27 by stephent]
stephent
parents: 444
diff changeset
61 @section Creating Gutters
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
62
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
63 @defun make-gutter-specifier spec-list
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
64
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
65 Return a new @code{gutter} specifier object with the given specification
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
66 list. @var{spec-list} can be a list of specifications (each of which is
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
67 a cons of a locale and a list of instantiators), a single instantiator,
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
68 or a list of instantiators. @xref{Specifiers}, for more information
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
69 about specifiers.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
70
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
71 Gutter specifiers are used to specify the format of a gutter. The
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
72 values of the variables @code{default-gutter}, @code{top-gutter},
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
73 @code{left-gutter}, @code{right-gutter}, and @code{bottom-gutter} are
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
74 always gutter specifiers.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
75
2028
2ba4f06a264d [xemacs-hg @ 2004-04-19 08:02:27 by stephent]
stephent
parents: 444
diff changeset
76 Valid gutter instantiators are called ``gutter descriptors.'' A gutter
2ba4f06a264d [xemacs-hg @ 2004-04-19 08:02:27 by stephent]
stephent
parents: 444
diff changeset
77 descriptor may be a string, a property-list with symbol keys and string
2ba4f06a264d [xemacs-hg @ 2004-04-19 08:02:27 by stephent]
stephent
parents: 444
diff changeset
78 values, or @code{nil}. If @code{nil}, nothing will be displayed in the
2ba4f06a264d [xemacs-hg @ 2004-04-19 08:02:27 by stephent]
stephent
parents: 444
diff changeset
79 gutter. If a string, the string will be displayed, with text properties
2ba4f06a264d [xemacs-hg @ 2004-04-19 08:02:27 by stephent]
stephent
parents: 444
diff changeset
80 such as faces and additional glyphs taken from the extents in the
2ba4f06a264d [xemacs-hg @ 2004-04-19 08:02:27 by stephent]
stephent
parents: 444
diff changeset
81 string, if any. If a property-list of strings, the string values will
2ba4f06a264d [xemacs-hg @ 2004-04-19 08:02:27 by stephent]
stephent
parents: 444
diff changeset
82 be conditionally concatenated according to the contents of the
2ba4f06a264d [xemacs-hg @ 2004-04-19 08:02:27 by stephent]
stephent
parents: 444
diff changeset
83 corresponding @samp{gutter-visible} variable, and displayed according to
2ba4f06a264d [xemacs-hg @ 2004-04-19 08:02:27 by stephent]
stephent
parents: 444
diff changeset
84 any text properties they contain.
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
85 @end defun
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
86
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
87 @defun make-gutter-size-specifier spec-list
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
88
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
89 Return a new @code{gutter-size} specifier object with the given spec
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
90 list. @var{spec-list} can be a list of specifications (each of which is
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
91 a cons of a locale and a list of instantiators), a single instantiator,
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
92 or a list of instantiators. @xref{Specifiers}, for more information
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
93 about specifiers.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
94
2028
2ba4f06a264d [xemacs-hg @ 2004-04-19 08:02:27 by stephent]
stephent
parents: 444
diff changeset
95 Gutter-size specifiers are used to specify the size of a gutter.
2ba4f06a264d [xemacs-hg @ 2004-04-19 08:02:27 by stephent]
stephent
parents: 444
diff changeset
96 The width of top and bottom gutters and the height of left and right
2ba4f06a264d [xemacs-hg @ 2004-04-19 08:02:27 by stephent]
stephent
parents: 444
diff changeset
97 gutters are always adjusted to the size of the frame, so ``size'' means
2ba4f06a264d [xemacs-hg @ 2004-04-19 08:02:27 by stephent]
stephent
parents: 444
diff changeset
98 ``thickness,'' @emph{i.e.}, height for top and bottom gutters and width
2ba4f06a264d [xemacs-hg @ 2004-04-19 08:02:27 by stephent]
stephent
parents: 444
diff changeset
99 for left and right gutters. The values of the variables
2ba4f06a264d [xemacs-hg @ 2004-04-19 08:02:27 by stephent]
stephent
parents: 444
diff changeset
100 @code{default-gutter-size}, @code{top-gutter-size},
2ba4f06a264d [xemacs-hg @ 2004-04-19 08:02:27 by stephent]
stephent
parents: 444
diff changeset
101 @code{left-gutter-size}, @code{right-gutter-size}, and
2ba4f06a264d [xemacs-hg @ 2004-04-19 08:02:27 by stephent]
stephent
parents: 444
diff changeset
102 @code{bottom-gutter-size} are always gutter-size specifiers.
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
103
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
104 Valid gutter-size instantiators are either integers or the special
2028
2ba4f06a264d [xemacs-hg @ 2004-04-19 08:02:27 by stephent]
stephent
parents: 444
diff changeset
105 symbol @code{autodetect}. If a gutter-size is set to @code{autodetect}
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
106 them the size of the gutter will be adjusted to just accommodate the
2028
2ba4f06a264d [xemacs-hg @ 2004-04-19 08:02:27 by stephent]
stephent
parents: 444
diff changeset
107 gutter's contents. @code{autodetect} only works for top and bottom
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
108 gutters.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
109 @end defun
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
110
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
111 @defun make-gutter-visible-specifier spec-list
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
112
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
113 Return a new @code{gutter-visible} specifier object with the given spec
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
114 list. @var{spec-list} can be a list of specifications (each of which is
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
115 a cons of a locale and a list of instantiators), a single instantiator,
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
116 or a list of instantiators. @xref{Specifiers}, for more information
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
117 about specifiers.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
118
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
119 Gutter-visible specifiers are used to specify the visibility of a
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
120 gutter. The values of the variables @code{default-gutter-visible-p},
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
121 @code{top-gutter-visible-p}, @code{left-gutter-visible-p},
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
122 @code{right-gutter-visible-p}, and @code{bottom-gutter-visible-p} are
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
123 always gutter-visible specifiers.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
124
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
125 Valid gutter-visible instantiators are @code{t}, @code{nil} or a list of
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
126 symbols. If a gutter-visible instantiator is set to a list of symbols,
2028
2ba4f06a264d [xemacs-hg @ 2004-04-19 08:02:27 by stephent]
stephent
parents: 444
diff changeset
127 and the corresponding gutter specification is a property-list of strings,
2ba4f06a264d [xemacs-hg @ 2004-04-19 08:02:27 by stephent]
stephent
parents: 444
diff changeset
128 then property values of the gutter specification will only be visible if the
2ba4f06a264d [xemacs-hg @ 2004-04-19 08:02:27 by stephent]
stephent
parents: 444
diff changeset
129 corresponding key occurs in the gutter-visible instantiator.
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
130 @end defun
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
131
2028
2ba4f06a264d [xemacs-hg @ 2004-04-19 08:02:27 by stephent]
stephent
parents: 444
diff changeset
132 @node Specifying a Gutter, Other Gutter Variables, Creating Gutters, Gutter
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
133 @section Specifying a Gutter
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
134
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
135 In order to specify the contents of a gutter, set one of the specifier
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
136 variables @code{default-gutter}, @code{top-gutter},
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
137 @code{bottom-gutter}, @code{left-gutter}, or @code{right-gutter}.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
138 These are specifiers, which means you set them with @code{set-specifier}
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
139 and query them with @code{specifier-specs} or @code{specifier-instance}.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
140 You will get an error if you try to set them using @code{setq}. The
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
141 valid instantiators for these specifiers are gutter descriptors, as
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
142 described above. @xref{Specifiers}, for more information.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
143
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
144 Most of the time, you will set @code{default-gutter}, which allows
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
145 the user to choose where the gutter should go.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
146
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
147 @defvr Specifier default-gutter
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
148 The position of this gutter is specified in the function
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
149 @code{default-gutter-position}. If the corresponding
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
150 position-specific gutter (e.g. @code{top-gutter} if
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
151 @code{default-gutter-position} is @code{top}) does not specify a
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
152 gutter in a particular domain, then the value of @code{default-gutter}
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
153 in that domain, of any, will be used instead.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
154 @end defvr
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
155
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
156 Note that the gutter at any particular position will not be displayed
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
157 unless its thickness (width or height, depending on orientation) is
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
158 non-zero and its visibility status is true. The thickness is controlled
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
159 by the specifiers @code{top-gutter-height},
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
160 @code{bottom-gutter-height}, @code{left-gutter-width}, and
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
161 @code{right-gutter-width}, and the visibility status is controlled by
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
162 the specifiers @code{top-gutter-visible-p},
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
163 @code{bottom-gutter-visible-p}, @code{left-gutter-visible-p}, and
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
164 @code{right-gutter-visible-p} (@pxref{Other Gutter Variables}).
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
165
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
166 @defun set-default-gutter-position position
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
167 This function sets the position that the @code{default-gutter} will be
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
168 displayed at. Valid positions are the symbols @code{top},
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
169 @code{bottom}, @code{left} and @code{right}. What this actually does is
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
170 set the fallback specifier for the position-specific specifier
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
171 corresponding to the given position to @code{default-gutter}, and set
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
172 the fallbacks for the other position-specific specifiers to @code{nil}.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
173 It also does the same thing for the position-specific thickness and
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
174 visibility specifiers, which inherit from one of
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
175 @code{default-gutter-height} or @code{default-gutter-width}, and from
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
176 @code{default-gutter-visible-p}, respectively (@pxref{Other Gutter
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
177 Variables}).
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
178 @end defun
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
179
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
180 @defun default-gutter-position
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
181 This function returns the position that the @code{default-gutter} will
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
182 be displayed at.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
183 @end defun
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
184
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
185 You can also explicitly set a gutter at a particular position. When
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
186 redisplay determines what to display at a particular position in a
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
187 particular domain (i.e. window), it first consults the position-specific
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
188 gutter. If that does not yield a gutter descriptor, the
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
189 @code{default-gutter} is consulted if @code{default-gutter-position}
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
190 indicates this position.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
191
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
192 @defvr Specifier top-gutter
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
193 Specifier for the gutter at the top of the frame.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
194 @end defvr
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
195
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
196 @defvr Specifier bottom-gutter
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
197 Specifier for the gutter at the bottom of the frame.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
198 @end defvr
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
199
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
200 @defvr Specifier left-gutter
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
201 Specifier for the gutter at the left edge of the frame.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
202 @end defvr
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
203
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
204 @defvr Specifier right-gutter
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
205 Specifier for the gutter at the right edge of the frame.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
206 @end defvr
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
207
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
208 @defun gutter-specifier-p object
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
209 This function returns non-@code{nil} if @var{object} is a gutter specifier.
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
210 Gutter specifiers are the actual objects contained in the gutter
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
211 variables described above, and their valid instantiators are
2028
2ba4f06a264d [xemacs-hg @ 2004-04-19 08:02:27 by stephent]
stephent
parents: 444
diff changeset
212 gutter descriptors.
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
213 @end defun
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
214
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
215 @node Other Gutter Variables, Common Gutter Widgets, Specifying a Gutter, Gutter
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
216 @section Other Gutter Variables
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
217
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
218 The variables to control the gutter thickness, visibility status, and
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
219 captioned status are all specifiers. @xref{Specifiers}.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
220
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
221 @defvr Specifier default-gutter-height
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
222 This specifies the height of the default gutter, if it's oriented
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
223 horizontally. The position of the default gutter is specified by the
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
224 function @code{set-default-gutter-position}. If the corresponding
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
225 position-specific gutter thickness specifier
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
226 (e.g. @code{top-gutter-height} if @code{default-gutter-position} is
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
227 @code{top}) does not specify a thickness in a particular domain (a
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
228 window or a frame), then the value of @code{default-gutter-height} or
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
229 @code{default-gutter-width} (depending on the gutter orientation) in
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
230 that domain, if any, will be used instead.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
231 @end defvr
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
232
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
233 @defvr Specifier default-gutter-width
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
234 This specifies the width of the default gutter, if it's oriented
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
235 vertically. This behaves like @code{default-gutter-height}.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
236 @end defvr
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
237
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
238 Note that @code{default-gutter-height} is only used when
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
239 @code{default-gutter-position} is @code{top} or @code{bottom}, and
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
240 @code{default-gutter-width} is only used when
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
241 @code{default-gutter-position} is @code{left} or @code{right}.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
242
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
243 @defvr Specifier top-gutter-height
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
244 This specifies the height of the top gutter.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
245 @end defvr
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
246
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
247 @defvr Specifier bottom-gutter-height
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
248 This specifies the height of the bottom gutter.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
249 @end defvr
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
250
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
251 @defvr Specifier left-gutter-width
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
252 This specifies the width of the left gutter.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
253 @end defvr
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
254
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
255 @defvr Specifier right-gutter-width
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
256 This specifies the width of the right gutter.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
257 @end defvr
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
258
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
259 Note that all of the position-specific gutter thickness specifiers
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
260 have a fallback value of zero when they do not correspond to the
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
261 default gutter. Therefore, you will have to set a non-zero thickness
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
262 value if you want a position-specific gutter to be displayed.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
263
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
264 @defvr Specifier default-gutter-visible-p
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
265 This specifies whether the default gutter is visible. The position of
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
266 the default gutter is specified by the function
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
267 @code{set-default-gutter-position}. If the corresponding position-specific
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
268 gutter visibility specifier (e.g. @code{top-gutter-visible-p} if
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
269 @code{default-gutter-position} is @code{top}) does not specify a
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
270 visible-p value in a particular domain (a window or a frame), then the
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
271 value of @code{default-gutter-visible-p} in that domain, if any, will
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
272 be used instead.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
273 @end defvr
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
274
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
275 @defvr Specifier top-gutter-visible-p
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
276 This specifies whether the top gutter is visible.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
277 @end defvr
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
278
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
279 @defvr Specifier bottom-gutter-visible-p
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
280 This specifies whether the bottom gutter is visible.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
281 @end defvr
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
282
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
283 @defvr Specifier left-gutter-visible-p
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
284 This specifies whether the left gutter is visible.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
285 @end defvr
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
286
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
287 @defvr Specifier right-gutter-visible-p
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
288 This specifies whether the right gutter is visible.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
289 @end defvr
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
290
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
291 @code{default-gutter-visible-p} and all of the position-specific
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
292 gutter visibility specifiers have a fallback value of true.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
293
2028
2ba4f06a264d [xemacs-hg @ 2004-04-19 08:02:27 by stephent]
stephent
parents: 444
diff changeset
294 @c #### is this true?
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
295 Internally, gutter thickness and visibility specifiers are instantiated
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
296 in both window and frame domains, for different purposes. The value in
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
297 the domain of a frame's selected window specifies the actual gutter
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
298 thickness or visibility that you will see in that frame. The value in
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
299 the domain of a frame itself specifies the gutter thickness or
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
300 visibility that is used in frame geometry calculations.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
301
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
302 Thus, for example, if you set the frame width to 80 characters and the
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
303 left gutter width for that frame to 68 pixels, then the frame will be
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
304 sized to fit 80 characters plus a 68-pixel left gutter. If you then
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
305 set the left gutter width to 0 for a particular buffer (or if that
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
306 buffer does not specify a left gutter or has a @code{nil} value specified for
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
307 @code{left-gutter-visible-p}), you will find that, when that buffer is
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
308 displayed in the selected window, the window will have a width of 86 or
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
309 87 characters -- the frame is sized for a 68-pixel left gutter but the
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
310 selected window specifies that the left gutter is not visible, so it is
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
311 expanded to take up the slack.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
312
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
313 @node Common Gutter Widgets, , Other Gutter Variables, Gutter
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
314 @section Common Gutter Widgets
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
315
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
316 A gutter can contain arbitrary text. So, for example, in an Info
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
317 buffer you could put the title of the current node in the top gutter,
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
318 and it would not scroll out of view in a long node. (This is an
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
319 artificial example, since usually the node name is sufficiently
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
320 descriptive, and Info puts that in the mode line.)
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
321
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
322 A more common use for the gutter is to hold some kind of active
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
323 widget. The buffer-tab facility, available in all XEmacs frames,
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
324 creates an array of file-folder-like tabs, which the user can click with
2028
2ba4f06a264d [xemacs-hg @ 2004-04-19 08:02:27 by stephent]
stephent
parents: 444
diff changeset
325 the mouse to switch buffers. W3 and font-lock use progress-bar widgets in the
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
326 bottom gutter to give a visual indication of the progress of
2028
2ba4f06a264d [xemacs-hg @ 2004-04-19 08:02:27 by stephent]
stephent
parents: 444
diff changeset
327 time-consuming operations like downloading and syntax highlighting.
2ba4f06a264d [xemacs-hg @ 2004-04-19 08:02:27 by stephent]
stephent
parents: 444
diff changeset
328
2ba4f06a264d [xemacs-hg @ 2004-04-19 08:02:27 by stephent]
stephent
parents: 444
diff changeset
329 @c #### Remove the following sentence when the subnodes are created.
2ba4f06a264d [xemacs-hg @ 2004-04-19 08:02:27 by stephent]
stephent
parents: 444
diff changeset
330 These widgets are currently documented only in the library
2ba4f06a264d [xemacs-hg @ 2004-04-19 08:02:27 by stephent]
stephent
parents: 444
diff changeset
331 @file{gutter-items}.
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
332
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
333 @menu
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
334 * Buffer Tabs:: Tabbed divider index metaphor for switching buffers.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
335 * Progress Bars:: Visual indication of operation progress.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
336 @end menu
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
337
2028
2ba4f06a264d [xemacs-hg @ 2004-04-19 08:02:27 by stephent]
stephent
parents: 444
diff changeset
338
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
339 @node Buffer Tabs, Progress Bars, ,Common Gutter Widgets
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
340 @subsection Buffer Tabs
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
341
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
342 Not documented yet.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
343
2028
2ba4f06a264d [xemacs-hg @ 2004-04-19 08:02:27 by stephent]
stephent
parents: 444
diff changeset
344
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
345 @node Progress Bars, , Buffer Tabs, Common Gutter Widgets
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
346 @subsection Progress Bars
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
347
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
348 Not documented yet.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
349