annotate man/lispref/gutter.texi @ 740:68d3b87a6754

[xemacs-hg @ 2002-02-03 20:33:34 by adrian] [AC21.5R21.4] [PATCH] xemacs-21.5: Dont pass unwanted buffer argument to lpr-region in generic-print-region <zo2qqpbv.fsf@mailto.t-online.de>
author adrian
date Sun, 03 Feb 2002 20:33:35 +0000
parents 576fb035e263
children 2ba4f06a264d
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
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
8 @node Gutter, Scrollbars, Toolbar, top
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.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
17 * Creating Gutter:: How to create a gutter.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
18 * Gutter Descriptor Format:: Accessing and modifying a gutter's
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
19 properties.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
20 * Specifying a Gutter:: Setting a gutter's contents.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
21 * Other Gutter Variables:: Controlling the size of gutters.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
22 * Common Gutter Widgets:: Things to put in gutters.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
23 @end menu
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
24
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
25 @node Gutter Intro, Creating Gutter, Gutter, Gutter
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
26 @section Gutter Intro
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
27
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
28 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
29 can contain arbitrary text or graphics. It could be considered a
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
30 generalization of a toolbar, although toolbars are not currently
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
31 implemented using gutters.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
32
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
33 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
34 of the frame, and two or more different edges can be displaying
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
35 gutters simultaneously. The contents, thickness, and visibility of
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
36 the gutters can be controlled separately, and the values can
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
37 be per-buffer, per-frame, etc., using specifiers (@pxref{Specifiers}).
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
38
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
39 Normally, there is one gutter displayed in a frame. Usually, this is
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
40 the default gutter, containing buffer tabs, but modes cab override this
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
41 and substitute their own gutter. This default gutter is usually
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
42 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
43 @code{set-default-gutter-position}.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
44
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
45 Note that, for each of the gutter properties (contents, thickness,
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
46 and visibility), there is a separate specifier for each of the four
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
47 gutter positions (top, bottom, left, and right), and an additional
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
48 specifier for the ``default'' gutter, i.e. the gutter whose
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
49 position is controlled by @code{set-default-gutter-position}. The
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
50 way this works is that @code{set-default-gutter-position} arranges
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
51 things so that the appropriate position-specific specifiers for the
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
52 default position inherit from the corresponding default specifiers.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
53 That way, if the position-specific specifier does not give a value
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
54 (which it usually doesn't), then the value from the default
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
55 specifier applies. If you want to control the default gutter, you
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
56 just change the default specifiers, and everything works. A package
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
57 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
58 from the default just sets the position-specific specifiers, and if
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
59 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
60 not be visible.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
61
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
62 @node Creating Gutter, Gutter Descriptor Format, Gutter Intro, Gutter
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
63 @section Creating Gutter
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 @defun make-gutter-specifier spec-list
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
66
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
67 Return a new @code{gutter} specifier object with the given specification
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
68 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
69 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
70 or a list of instantiators. @xref{Specifiers}, for more information
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
71 about specifiers.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
72
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
73 Gutter specifiers are used to specify the format of a gutter. The
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
74 values of the variables @code{default-gutter}, @code{top-gutter},
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
75 @code{left-gutter}, @code{right-gutter}, and @code{bottom-gutter} are
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
76 always gutter specifiers.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
77
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
78 Valid gutter instantiators are called "gutter descriptors" and are
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
79 either strings or property-lists of strings. See @code{default-gutter}
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
80 for a description of the exact format.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
81 @end defun
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
82
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
83 @defun make-gutter-size-specifier spec-list
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
84
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
85 Return a new @code{gutter-size} specifier object with the given spec
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
86 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
87 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
88 or a list of instantiators. @xref{Specifiers}, for more information
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
89 about specifiers.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
90
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
91 Gutter-size specifiers are used to specify the size of a gutter. The
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
92 values of the variables @code{default-gutter-size},
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
93 @code{top-gutter-size}, @code{left-gutter-size},
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
94 @code{right-gutter-size}, and @code{bottom-gutter-size} are always
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
95 gutter-size specifiers.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
96
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
97 Valid gutter-size instantiators are either integers or the special
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
98 symbol @code{autodetect}. If a gutter-size is set to @code{autodetect}
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
99 them the size of the gutter will be adjusted to just accommodate the
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
100 gutters contents. @code{autodetect} only works for top and bottom
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
101 gutters.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
102 @end defun
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 @defun make-gutter-visible-specifier spec-list
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
105
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
106 Return a new @code{gutter-visible} specifier object with the given spec
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
107 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
108 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
109 or a list of instantiators. @xref{Specifiers}, for more information
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
110 about specifiers.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
111
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
112 Gutter-visible specifiers are used to specify the visibility of a
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
113 gutter. The values of the variables @code{default-gutter-visible-p},
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
114 @code{top-gutter-visible-p}, @code{left-gutter-visible-p},
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
115 @code{right-gutter-visible-p}, and @code{bottom-gutter-visible-p} are
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
116 always gutter-visible specifiers.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
117
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
118 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
119 symbols. If a gutter-visible instantiator is set to a list of symbols,
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
120 and the corresponding gutter specification is a property-list strings,
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
121 then elements of the gutter specification will only be visible if the
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
122 corresponding symbol occurs in the gutter-visible instantiator.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
123 @end defun
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
124
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
125 @node Gutter Descriptor Format, Specifying a Gutter, Creating Gutter, Gutter
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
126 @section Gutter Descriptor Format
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
127
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
128 The contents of a gutter are specified using a @dfn{gutter descriptor}.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
129 The format of a gutter descriptor is a list of @dfn{gutter button
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
130 descriptors}. Each gutter button descriptor is a vector in one of the
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
131 following formats:
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
132
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
133 @itemize @bullet
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
134 @item
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
135 @code{[@var{glyph-list} @var{function} @var{enabled-p} @var{help}]}
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
136 @item
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
137 @code{[:style @var{2d-or-3d}]}
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
138 @item
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
139 @code{[:style @var{2d-or-3d} :size @var{width-or-height}]}
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
140 @item
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
141 @code{[:size @var{width-or-height} :style @var{2d-or-3d}]}
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
142 @end itemize
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 Optionally, one of the gutter button descriptors may be @code{nil}
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
145 instead of a vector; this signifies the division between the gutter
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
146 buttons that are to be displayed flush-left, and the buttons to be
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
147 displayed flush-right.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
148
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
149 The first vector format above specifies a normal gutter button;
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
150 the others specify blank areas in the gutter.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
151
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
152 For the first vector format:
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
153
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
154 @itemize @bullet
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
155 @item
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
156 @var{glyph-list} should be a list of one to six glyphs (as created by
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
157 @code{make-glyph}) or a symbol whose value is such a list. The first
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
158 glyph, which must be provided, is the glyph used to display the gutter
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
159 button when it is in the ``up'' (not pressed) state. The optional
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
160 second glyph is for displaying the button when it is in the ``down''
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
161 (pressed) state. The optional third glyph is for when the button is
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
162 disabled. The last three glyphs are for displaying the button in the
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
163 ``up'', ``down'', and ``disabled'' states, respectively, but are used
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
164 when the user has called for captioned gutter buttons (using
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
165 @code{gutter-buttons-captioned-p}). The function
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
166 @code{gutter-make-button-list} is useful in creating these glyph lists.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
167
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
168 @item
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
169 Even if you do not provide separate down-state and disabled-state
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
170 glyphs, the user will still get visual feedback to indicate which
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
171 state the button is in. Buttons in the up-state are displayed
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
172 with a shadowed border that gives a raised appearance to the
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
173 button. Buttons in the down-state are displayed with shadows that
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
174 give a recessed appearance. Buttons in the disabled state are
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
175 displayed with no shadows, giving a 2-d effect.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
176
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
177 @item
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
178 If some of the gutter glyphs are not provided, they inherit as follows:
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 @example
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
181 UP: up
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
182 DOWN: down -> up
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
183 DISABLED: disabled -> up
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
184 CAP-UP: cap-up -> up
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
185 CAP-DOWN: cap-down -> cap-up -> down -> up
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
186 CAP-DISABLED: cap-disabled -> cap-up -> disabled -> up
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
187 @end example
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
188
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
189 @item
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
190 The second element @var{function} is a function to be called when the
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
191 gutter button is activated (i.e. when the mouse is released over the
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
192 gutter button, if the press occurred in the gutter). It can be any
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
193 form accepted by @code{call-interactively}, since this is how it is
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
194 invoked.
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 @item
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
197 The third element @var{enabled-p} specifies whether the gutter button
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
198 is enabled (disabled buttons do nothing when they are activated, and are
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
199 displayed differently; see above). It should be either a boolean or a
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
200 form that evaluates to a boolean.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
201
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
202 @item
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
203 The fourth element @var{help}, if non-@code{nil}, should be a string.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
204 This string is displayed in the echo area when the mouse passes over the
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
205 gutter button.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
206 @end itemize
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 For the other vector formats (specifying blank areas of the gutter):
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
209
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
210 @itemize @bullet
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
211 @item
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
212 @var{2d-or-3d} should be one of the symbols @code{2d} or @code{3d},
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
213 indicating whether the area is displayed with shadows (giving it a
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
214 raised, 3-d appearance) or without shadows (giving it a flat
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
215 appearance).
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
216
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
217 @item
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
218 @var{width-or-height} specifies the length, in pixels, of the blank
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
219 area. If omitted, it defaults to a device-specific value (8 pixels for
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
220 X devices).
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
221 @end itemize
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
222
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
223 @defun gutter-make-button-list up &optional down disabled cap-up cap-down cap-disabled
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
224 This function calls @code{make-glyph} on each arg and returns a list of
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
225 the results. This is useful for setting the first argument of a gutter
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
226 button descriptor (typically, the result of this function is assigned
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
227 to a symbol, which is specified as the first argument of the gutter
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
228 button descriptor).
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
229 @end defun
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
230
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
231 @defun check-gutter-button-syntax button &optional noerror
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
232 Verify the syntax of entry @var{button} in a gutter description list.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
233 If you want to verify the syntax of a gutter description list as a
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
234 whole, use @code{check-valid-instantiator} with a specifier type of
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
235 @code{gutter}.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
236 @end defun
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 @node Specifying a Gutter, Other Gutter Variables, Gutter Descriptor Format, Gutter
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
239 @section Specifying a Gutter
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
240
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
241 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
242 variables @code{default-gutter}, @code{top-gutter},
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
243 @code{bottom-gutter}, @code{left-gutter}, or @code{right-gutter}.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
244 These are specifiers, which means you set them with @code{set-specifier}
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
245 and query them with @code{specifier-specs} or @code{specifier-instance}.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
246 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
247 valid instantiators for these specifiers are gutter descriptors, as
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
248 described above. @xref{Specifiers}, for more information.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
249
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
250 Most of the time, you will set @code{default-gutter}, which allows
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
251 the user to choose where the gutter should go.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
252
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
253 @defvr Specifier default-gutter
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
254 The position of this gutter is specified in the function
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
255 @code{default-gutter-position}. If the corresponding
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
256 position-specific gutter (e.g. @code{top-gutter} if
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
257 @code{default-gutter-position} is @code{top}) does not specify a
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
258 gutter in a particular domain, then the value of @code{default-gutter}
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
259 in that domain, of any, will be used instead.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
260 @end defvr
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
261
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
262 Note that the gutter at any particular position will not be displayed
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
263 unless its thickness (width or height, depending on orientation) is
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
264 non-zero and its visibility status is true. The thickness is controlled
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
265 by the specifiers @code{top-gutter-height},
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
266 @code{bottom-gutter-height}, @code{left-gutter-width}, and
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
267 @code{right-gutter-width}, and the visibility status is controlled by
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
268 the specifiers @code{top-gutter-visible-p},
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
269 @code{bottom-gutter-visible-p}, @code{left-gutter-visible-p}, and
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
270 @code{right-gutter-visible-p} (@pxref{Other Gutter Variables}).
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
271
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
272 @defun set-default-gutter-position position
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
273 This function sets the position that the @code{default-gutter} will be
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
274 displayed at. Valid positions are the symbols @code{top},
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
275 @code{bottom}, @code{left} and @code{right}. What this actually does is
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
276 set the fallback specifier for the position-specific specifier
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
277 corresponding to the given position to @code{default-gutter}, and set
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
278 the fallbacks for the other position-specific specifiers to @code{nil}.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
279 It also does the same thing for the position-specific thickness and
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
280 visibility specifiers, which inherit from one of
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
281 @code{default-gutter-height} or @code{default-gutter-width}, and from
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
282 @code{default-gutter-visible-p}, respectively (@pxref{Other Gutter
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
283 Variables}).
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
284 @end defun
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
285
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
286 @defun default-gutter-position
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
287 This function returns the position that the @code{default-gutter} will
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
288 be displayed at.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
289 @end defun
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 You can also explicitly set a gutter at a particular position. When
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
292 redisplay determines what to display at a particular position in a
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
293 particular domain (i.e. window), it first consults the position-specific
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
294 gutter. If that does not yield a gutter descriptor, the
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
295 @code{default-gutter} is consulted if @code{default-gutter-position}
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
296 indicates this position.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
297
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
298 @defvr Specifier top-gutter
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
299 Specifier for the gutter at the top of the frame.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
300 @end defvr
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 @defvr Specifier bottom-gutter
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
303 Specifier for the gutter at the bottom of the frame.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
304 @end defvr
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
305
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
306 @defvr Specifier left-gutter
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
307 Specifier for the gutter at the left edge of the frame.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
308 @end defvr
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
309
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
310 @defvr Specifier right-gutter
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
311 Specifier for the gutter at the right edge of the frame.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
312 @end defvr
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
313
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
314 @defun gutter-specifier-p object
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
315 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
316 Gutter specifiers are the actual objects contained in the gutter
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
317 variables described above, and their valid instantiators are
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
318 gutter descriptors (@pxref{Gutter Descriptor Format}).
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
319 @end defun
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
320
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
321 @node Other Gutter Variables, Common Gutter Widgets, Specifying a Gutter, Gutter
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
322 @section Other Gutter Variables
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
323
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
324 The variables to control the gutter thickness, visibility status, and
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
325 captioned status are all specifiers. @xref{Specifiers}.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
326
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
327 @defvr Specifier default-gutter-height
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
328 This specifies the height of the default gutter, if it's oriented
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
329 horizontally. The position of the default gutter is specified by the
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
330 function @code{set-default-gutter-position}. If the corresponding
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
331 position-specific gutter thickness specifier
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
332 (e.g. @code{top-gutter-height} if @code{default-gutter-position} is
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
333 @code{top}) does not specify a thickness in a particular domain (a
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
334 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
335 @code{default-gutter-width} (depending on the gutter orientation) in
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
336 that domain, if any, will be used instead.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
337 @end defvr
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
338
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
339 @defvr Specifier default-gutter-width
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
340 This specifies the width of the default gutter, if it's oriented
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
341 vertically. This behaves like @code{default-gutter-height}.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
342 @end defvr
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
343
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
344 Note that @code{default-gutter-height} is only used when
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
345 @code{default-gutter-position} is @code{top} or @code{bottom}, and
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
346 @code{default-gutter-width} is only used when
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
347 @code{default-gutter-position} is @code{left} or @code{right}.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
348
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
349 @defvr Specifier top-gutter-height
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
350 This specifies the height of the top gutter.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
351 @end defvr
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
352
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
353 @defvr Specifier bottom-gutter-height
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
354 This specifies the height of the bottom gutter.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
355 @end defvr
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
356
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
357 @defvr Specifier left-gutter-width
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
358 This specifies the width of the left gutter.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
359 @end defvr
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
360
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
361 @defvr Specifier right-gutter-width
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
362 This specifies the width of the right gutter.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
363 @end defvr
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
364
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
365 Note that all of the position-specific gutter thickness specifiers
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
366 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
367 default gutter. Therefore, you will have to set a non-zero thickness
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
368 value if you want a position-specific gutter to be displayed.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
369
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
370 @defvr Specifier default-gutter-visible-p
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
371 This specifies whether the default gutter is visible. The position of
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
372 the default gutter is specified by the function
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
373 @code{set-default-gutter-position}. If the corresponding position-specific
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
374 gutter visibility specifier (e.g. @code{top-gutter-visible-p} if
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
375 @code{default-gutter-position} is @code{top}) does not specify a
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
376 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
377 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
378 be used instead.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
379 @end defvr
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
380
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
381 @defvr Specifier top-gutter-visible-p
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
382 This specifies whether the top gutter is visible.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
383 @end defvr
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
384
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
385 @defvr Specifier bottom-gutter-visible-p
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
386 This specifies whether the bottom gutter is visible.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
387 @end defvr
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
388
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
389 @defvr Specifier left-gutter-visible-p
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
390 This specifies whether the left gutter is visible.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
391 @end defvr
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
392
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
393 @defvr Specifier right-gutter-visible-p
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
394 This specifies whether the right gutter is visible.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
395 @end defvr
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
396
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
397 @code{default-gutter-visible-p} and all of the position-specific
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
398 gutter visibility specifiers have a fallback value of true.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
399
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
400 Internally, gutter thickness and visibility specifiers are instantiated
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
401 in both window and frame domains, for different purposes. The value in
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
402 the domain of a frame's selected window specifies the actual gutter
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
403 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
404 the domain of a frame itself specifies the gutter thickness or
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
405 visibility that is used in frame geometry calculations.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
406
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
407 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
408 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
409 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
410 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
411 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
412 @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
413 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
414 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
415 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
416 expanded to take up the slack.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
417
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
418 @defvr Specifier gutter-buttons-captioned-p
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
419 Whether gutter buttons are captioned. This affects which glyphs from a
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
420 gutter button descriptor are chosen. @xref{Gutter Descriptor Format}.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
421 @end defvr
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
422
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
423 You can also reset the gutter to what it was when XEmacs started up.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
424
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
425 @defvr Constant initial-gutter-spec
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
426 The gutter descriptor used to initialize @code{default-gutter} at
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
427 startup.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
428 @end defvr
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
429
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
430 @node Common Gutter Widgets, , Other Gutter Variables, Gutter
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
431 @section Common Gutter Widgets
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
432
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
433 A gutter can contain arbitrary text. So, for example, in an Info
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
434 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
435 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
436 artificial example, since usually the node name is sufficiently
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
437 descriptive, and Info puts that in the mode line.)
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
438
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
439 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
440 widget. The buffer-tab facility, available in all XEmacs frames,
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
441 creates an array of file-folder-like tabs, which the user can click with
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
442 the mouse to switch buffers. W3 uses a progress-bar widget in the
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
443 bottom gutter to give a visual indication of the progress of
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
444 time-consuming operations like downloading.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
445
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
446 @menu
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
447 * Buffer Tabs:: Tabbed divider index metaphor for switching buffers.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
448 * Progress Bars:: Visual indication of operation progress.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
449 @end menu
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
450
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
451 @node Buffer Tabs, Progress Bars, ,Common Gutter Widgets
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
452 @subsection Buffer Tabs
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
453
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
454 Not documented yet.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
455
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
456 @node Progress Bars, , Buffer Tabs, Common Gutter Widgets
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
457 @subsection Progress Bars
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
458
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
459 Not documented yet.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
460