comparison man/widget.texi @ 5741:d11efddf3617

Fix texinfo constructs that are rejected by texinfo 5.x. See xemacs-patches message <CAHCOHQngK6wyLhBtP9i5ngMyGTV9GFh3qU9tq8XebYTdVOYU2w@mail.gmail.com>.
author Jerry James <james@xemacs.org>
date Fri, 21 Jun 2013 08:44:33 -0600
parents 64be8a494bdc
children
comparison
equal deleted inserted replaced
5740:00a421d2b2ba 5741:d11efddf3617
4 @settitle The Emacs Widget Library 4 @settitle The Emacs Widget Library
5 @syncodeindex fn cp 5 @syncodeindex fn cp
6 @syncodeindex vr cp 6 @syncodeindex vr cp
7 @syncodeindex ky cp 7 @syncodeindex ky cp
8 @c %**end of header 8 @c %**end of header
9 @c Synced up with: FSF 23.1.92. 9 @c Synced up with: FSF 24.3
10 @c Synced by: Ben Wing, 2-17-10. 10 @c Synced by: Jerry James, 19-Jun-2013.
11 11
12 @copying 12 @copying
13 Copyright @copyright{} 2000, 2001, 2002, 2003, 2004, 2005, 13 Copyright @copyright{} 2000--2013 Free Software Foundation, Inc.
14 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
15 14
16 @quotation 15 @quotation
17 Permission is granted to copy, distribute and/or modify this document 16 Permission is granted to copy, distribute and/or modify this document
18 under the terms of the GNU Free Documentation License, Version 1.3 or 17 under the terms of the GNU Free Documentation License, Version 1.3 or
19 any later version published by the Free Software Foundation; with no 18 any later version published by the Free Software Foundation; with no
106 * composite:: 105 * composite::
107 106
108 @end detailmenu 107 @end detailmenu
109 @end menu 108 @end menu
110 109
111
112
113
114
115
116
117
118
119
120
121 @node Introduction, User Interface, Top, Top 110 @node Introduction, User Interface, Top, Top
122 @comment node-name, next, previous, up 111 @comment node-name, next, previous, up
123 @section Introduction 112 @chapter Introduction
124 113
125 @c XEmacs changes to reflect history, native widgets, and GTK 114 @c XEmacs changes to reflect history, native widgets, and GTK
126 Most graphical user interface toolkits provide 115 Most graphical user interface toolkits provide
127 a number of standard user interface controls (sometimes known as 116 a number of standard user interface controls (sometimes known as
128 `widgets' or `gadgets'). Historically, Emacs didn't support anything like 117 `widgets' or `gadgets'). Historically, Emacs didn't support anything like
129 this, except for its incredible powerful text ``widget''. However, 118 this, except for its incredibly powerful text ``widget''. However,
130 since XEmacs 21.4, XEmacs has supported ``native'' widgets (GUI controls 119 since XEmacs 21.4, XEmacs has supported ``native'' widgets (GUI controls
131 implemented as Lisp APIs in C for the MS Windows, Motif, Athena, and GTK 120 implemented as Lisp APIs in C for the MS Windows, Motif, Athena, and GTK
132 toolkits) and libglade (GUI controls with an XML API for the GTK 121 toolkits) and libglade (GUI controls with an XML API for the GTK
133 toolkit). On the other hand, Emacs does provide the necessary 122 toolkit). On the other hand, Emacs does provide the necessary
134 primitives to implement many other widgets within a text buffer, and of 123 primitives to implement many other widgets within a text buffer, and of
191 text field, and sometimes prevent entering invalid data. 180 text field, and sometimes prevent entering invalid data.
192 @item 181 @item
193 You can have fixed sized fields, thus allowing multiple fields to be 182 You can have fixed sized fields, thus allowing multiple fields to be
194 lined up in columns. 183 lined up in columns.
195 @item 184 @item
196 It is simple to query or set the value of a field. 185 It is simple to query or set the value of a field.
197 @item 186 @item
198 Editing happens in a normal buffer, not in the mini-buffer. 187 Editing happens in a normal buffer, not in the mini-buffer.
199 @item 188 @item
200 Packages using the library get a uniform look-and-feel, making them easier for 189 Packages using the library get a uniform look-and-feel, making them easier for
201 the user to learn. 190 the user to learn.
202 @item 191 @item
203 As support for embedded graphics improve, the widget library will be 192 As support for embedded graphics improve, the widget library will be
204 extended to use the GUI features. This means that your code using the 193 extended to use the GUI features. This means that your code using the
205 widget library will also use the new graphic features automatically. 194 widget library will also use the new graphic features automatically.
206 @item 195 @item
207 A widget specification is implemented as a class, and new subclasses can 196 A widget specification is implemented as a class, and new subclasses can
232 it will be autoloaded when needed. 221 it will be autoloaded when needed.
233 @end table 222 @end table
234 223
235 @node User Interface, Programming Example, Introduction, Top 224 @node User Interface, Programming Example, Introduction, Top
236 @comment node-name, next, previous, up 225 @comment node-name, next, previous, up
237 @section User Interface 226 @chapter User Interface
238 227
239 A form consists of read only text for documentation and some fields, 228 A form consists of read only text for documentation and some fields,
240 where each field contains two parts, a tag and a value. The tags are 229 where each field contains two parts, a tag and a value. The tags are
241 used to identify the fields, so the documentation can refer to the 230 used to identify the fields, so the documentation can refer to the
242 @samp{foo field}, meaning the field tagged with @samp{Foo}. Here is an 231 @samp{foo field}, meaning the field tagged with @samp{Foo}. Here is an
278 @samp{Select multiple}, @samp{Select one}, @samp{[Apply Form]}, and 267 @samp{Select multiple}, @samp{Select one}, @samp{[Apply Form]}, and
279 @samp{[Reset Form]}. There are basically two things the user can do 268 @samp{[Reset Form]}. There are basically two things the user can do
280 within a form, namely editing the editable text fields and activating 269 within a form, namely editing the editable text fields and activating
281 the buttons. 270 the buttons.
282 271
283 @subsection Editable Text Fields 272 @section Editable Text Fields
284 273
285 In the example, the value for the @samp{Name} is most likely displayed 274 In the example, the value for the @samp{Name} is most likely displayed
286 in an editable text field, and so are values for each of the members of 275 in an editable text field, and so are values for each of the members of
287 the @samp{Numbers} list. All the normal Emacs editing operations are 276 the @samp{Numbers} list. All the normal Emacs editing operations are
288 available for editing these fields. The only restriction is that each 277 available for editing these fields. The only restriction is that each
315 304
316 @deffn Face widget-field-face 305 @deffn Face widget-field-face
317 Face used for other editing fields. 306 Face used for other editing fields.
318 @end deffn 307 @end deffn
319 308
320 @subsection Buttons 309 @section Buttons
321 310
322 @cindex widget buttons 311 @cindex widget buttons
323 @cindex button widgets 312 @cindex button widgets
324 Some portions of the buffer have an associated @dfn{action}, which can 313 Some portions of the buffer have an associated @dfn{action}, which can
325 be @dfn{invoked} by a standard key or mouse command. These portions 314 be @dfn{invoked} by a standard key or mouse command. These portions
386 @defopt widget-mouse-face 375 @defopt widget-mouse-face
387 Face used for highlighting a button when the mouse pointer moves across 376 Face used for highlighting a button when the mouse pointer moves across
388 it. 377 it.
389 @end defopt 378 @end defopt
390 379
391 @subsection Navigation 380 @section Navigation
392 381
393 You can use all the normal Emacs commands to move around in a form 382 You can use all the normal Emacs commands to move around in a form
394 buffer, plus you will have these additional commands: 383 buffer, plus you will have these additional commands:
395 384
396 @table @kbd 385 @table @kbd
405 @end deffn 394 @end deffn
406 @end table 395 @end table
407 396
408 @node Programming Example, Setting Up the Buffer, User Interface, Top 397 @node Programming Example, Setting Up the Buffer, User Interface, Top
409 @comment node-name, next, previous, up 398 @comment node-name, next, previous, up
410 @section Programming Example 399 @chapter Programming Example
411 400
412 @cindex widgets, programming example 401 @cindex widgets, programming example
413 @cindex example of using widgets 402 @cindex example of using widgets
414 Here is the code to implement the user interface example (@pxref{User 403 Here is the code to implement the user interface example (@pxref{User
415 Interface}). 404 Interface}).
501 (widget-setup)) 490 (widget-setup))
502 @end lisp 491 @end lisp
503 492
504 @node Setting Up the Buffer, Basic Types, Programming Example, Top 493 @node Setting Up the Buffer, Basic Types, Programming Example, Top
505 @comment node-name, next, previous, up 494 @comment node-name, next, previous, up
506 @section Setting Up the Buffer 495 @chapter Setting Up the Buffer
507 496
508 Widgets are created with @code{widget-create}, which returns a 497 Widgets are created with @code{widget-create}, which returns a
509 @dfn{widget} object. This object can be queried and manipulated by 498 @dfn{widget} object. This object can be queried and manipulated by
510 other widget functions, until it is deleted with @code{widget-delete}. 499 other widget functions, until it is deleted with @code{widget-delete}.
511 After the widgets have been created, @code{widget-setup} must be called 500 After the widgets have been created, @code{widget-setup} must be called
556 when not on a button. By default this is @code{global-map}. 545 when not on a button. By default this is @code{global-map}.
557 @end defvar 546 @end defvar
558 547
559 @node Basic Types, Sexp Types, Setting Up the Buffer, Top 548 @node Basic Types, Sexp Types, Setting Up the Buffer, Top
560 @comment node-name, next, previous, up 549 @comment node-name, next, previous, up
561 @section Basic Types 550 @chapter Basic Types
562 551
563 This is the general syntax of a type specification: 552 This is the general syntax of a type specification:
564 553
565 @example 554 @example
566 @var{name} ::= (@var{name} [@var{keyword} @var{argument}]... @var{args}) 555 @var{name} ::= (@var{name} [@var{keyword} @var{argument}]... @var{args})
801 * group:: 790 * group::
802 @end menu 791 @end menu
803 792
804 @node link, url-link, Basic Types, Basic Types 793 @node link, url-link, Basic Types, Basic Types
805 @comment node-name, next, previous, up 794 @comment node-name, next, previous, up
806 @subsection The @code{link} Widget 795 @section The @code{link} Widget
807 @findex link@r{ widget} 796 @findex link@r{ widget}
808 797
809 Syntax: 798 Syntax:
810 799
811 @example 800 @example
826 String to suffix links. 815 String to suffix links.
827 @end defopt 816 @end defopt
828 817
829 @node url-link, info-link, link, Basic Types 818 @node url-link, info-link, link, Basic Types
830 @comment node-name, next, previous, up 819 @comment node-name, next, previous, up
831 @subsection The @code{url-link} Widget 820 @section The @code{url-link} Widget
832 @findex url-link@r{ widget} 821 @findex url-link@r{ widget}
833 822
834 Syntax: 823 Syntax:
835 824
836 @example 825 @example
841 When this link is invoked, the @acronym{WWW} browser specified by 830 When this link is invoked, the @acronym{WWW} browser specified by
842 @code{browse-url-browser-function} will be called with @var{url}. 831 @code{browse-url-browser-function} will be called with @var{url}.
843 832
844 @node info-link, push-button, url-link, Basic Types 833 @node info-link, push-button, url-link, Basic Types
845 @comment node-name, next, previous, up 834 @comment node-name, next, previous, up
846 @subsection The @code{info-link} Widget 835 @section The @code{info-link} Widget
847 @findex info-link@r{ widget} 836 @findex info-link@r{ widget}
848 837
849 Syntax: 838 Syntax:
850 839
851 @example 840 @example
855 When this link is invoked, the built-in Info reader is started on 844 When this link is invoked, the built-in Info reader is started on
856 @var{address}. 845 @var{address}.
857 846
858 @node push-button, editable-field, info-link, Basic Types 847 @node push-button, editable-field, info-link, Basic Types
859 @comment node-name, next, previous, up 848 @comment node-name, next, previous, up
860 @subsection The @code{push-button} Widget 849 @section The @code{push-button} Widget
861 @findex push-button@r{ widget} 850 @findex push-button@r{ widget}
862 851
863 Syntax: 852 Syntax:
864 853
865 @example 854 @example
880 String to suffix push buttons. 869 String to suffix push buttons.
881 @end defopt 870 @end defopt
882 871
883 @node editable-field, text, push-button, Basic Types 872 @node editable-field, text, push-button, Basic Types
884 @comment node-name, next, previous, up 873 @comment node-name, next, previous, up
885 @subsection The @code{editable-field} Widget 874 @section The @code{editable-field} Widget
886 @findex editable-field@r{ widget} 875 @findex editable-field@r{ widget}
887 876
888 Syntax: 877 Syntax:
889 878
890 @example 879 @example
932 @code{:action}. 921 @code{:action}.
933 @end table 922 @end table
934 923
935 @node text, menu-choice, editable-field, Basic Types 924 @node text, menu-choice, editable-field, Basic Types
936 @comment node-name, next, previous, up 925 @comment node-name, next, previous, up
937 @subsection The @code{text} Widget 926 @section The @code{text} Widget
938 @findex text@r{ widget} 927 @findex text@r{ widget}
939 928
940 @vindex widget-text-keymap 929 @vindex widget-text-keymap
941 This is just like @code{editable-field}, but intended for multiline text 930 This is just like @code{editable-field}, but intended for multiline text
942 fields. The default @code{:keymap} is @code{widget-text-keymap}, which 931 fields. The default @code{:keymap} is @code{widget-text-keymap}, which
943 does not rebind the @key{RET} key. 932 does not rebind the @key{RET} key.
944 933
945 @node menu-choice, radio-button-choice, text, Basic Types 934 @node menu-choice, radio-button-choice, text, Basic Types
946 @comment node-name, next, previous, up 935 @comment node-name, next, previous, up
947 @subsection The @code{menu-choice} Widget 936 @section The @code{menu-choice} Widget
948 @findex menu-choice@r{ widget} 937 @findex menu-choice@r{ widget}
949 938
950 Syntax: 939 Syntax:
951 940
952 @example 941 @example
983 The list of types. 972 The list of types.
984 @end table 973 @end table
985 974
986 @node radio-button-choice, item, menu-choice, Basic Types 975 @node radio-button-choice, item, menu-choice, Basic Types
987 @comment node-name, next, previous, up 976 @comment node-name, next, previous, up
988 @subsection The @code{radio-button-choice} Widget 977 @section The @code{radio-button-choice} Widget
989 @findex radio-button-choice@r{ widget} 978 @findex radio-button-choice@r{ widget}
990 979
991 Syntax: 980 Syntax:
992 981
993 @example 982 @example
1050 widget has been created will @strong{not} be properly destructed when 1039 widget has been created will @strong{not} be properly destructed when
1051 you call @code{widget-delete}. 1040 you call @code{widget-delete}.
1052 1041
1053 @node item, choice-item, radio-button-choice, Basic Types 1042 @node item, choice-item, radio-button-choice, Basic Types
1054 @comment node-name, next, previous, up 1043 @comment node-name, next, previous, up
1055 @subsection The @code{item} Widget 1044 @section The @code{item} Widget
1056 @findex item@r{ widget} 1045 @findex item@r{ widget}
1057 1046
1058 Syntax: 1047 Syntax:
1059 1048
1060 @example 1049 @example
1065 property. The value should be a string, which will be inserted in the 1054 property. The value should be a string, which will be inserted in the
1066 buffer. This widget will only match the specified value. 1055 buffer. This widget will only match the specified value.
1067 1056
1068 @node choice-item, toggle, item, Basic Types 1057 @node choice-item, toggle, item, Basic Types
1069 @comment node-name, next, previous, up 1058 @comment node-name, next, previous, up
1070 @subsection The @code{choice-item} Widget 1059 @section The @code{choice-item} Widget
1071 @findex choice-item@r{ widget} 1060 @findex choice-item@r{ widget}
1072 1061
1073 Syntax: 1062 Syntax:
1074 1063
1075 @example 1064 @example
1082 equivalent to activating the parent widget. This widget will only match 1071 equivalent to activating the parent widget. This widget will only match
1083 the specified value. 1072 the specified value.
1084 1073
1085 @node toggle, checkbox, choice-item, Basic Types 1074 @node toggle, checkbox, choice-item, Basic Types
1086 @comment node-name, next, previous, up 1075 @comment node-name, next, previous, up
1087 @subsection The @code{toggle} Widget 1076 @section The @code{toggle} Widget
1088 @findex toggle@r{ widget} 1077 @findex toggle@r{ widget}
1089 1078
1090 Syntax: 1079 Syntax:
1091 1080
1092 @example 1081 @example
1115 emacsen that supports this. 1104 emacsen that supports this.
1116 @end table 1105 @end table
1117 1106
1118 @node checkbox, checklist, toggle, Basic Types 1107 @node checkbox, checklist, toggle, Basic Types
1119 @comment node-name, next, previous, up 1108 @comment node-name, next, previous, up
1120 @subsection The @code{checkbox} Widget 1109 @section The @code{checkbox} Widget
1121 @findex checkbox@r{ widget} 1110 @findex checkbox@r{ widget}
1122 1111
1123 This widget has two possible states, @samp{selected} and 1112 This widget has two possible states, @samp{selected} and
1124 @samp{unselected}, which corresponds to a @code{t} or @code{nil} value. 1113 @samp{unselected}, which corresponds to a @code{t} or @code{nil} value.
1125 1114
1129 @var{type} ::= (checkbox [@var{keyword} @var{argument}]...) 1118 @var{type} ::= (checkbox [@var{keyword} @var{argument}]...)
1130 @end example 1119 @end example
1131 1120
1132 @node checklist, editable-list, checkbox, Basic Types 1121 @node checklist, editable-list, checkbox, Basic Types
1133 @comment node-name, next, previous, up 1122 @comment node-name, next, previous, up
1134 @subsection The @code{checklist} Widget 1123 @section The @code{checklist} Widget
1135 @findex checklist@r{ widget} 1124 @findex checklist@r{ widget}
1136 1125
1137 Syntax: 1126 Syntax:
1138 1127
1139 @example 1128 @example
1187 The list of types. 1176 The list of types.
1188 @end table 1177 @end table
1189 1178
1190 @node editable-list, group, checklist, Basic Types 1179 @node editable-list, group, checklist, Basic Types
1191 @comment node-name, next, previous, up 1180 @comment node-name, next, previous, up
1192 @subsection The @code{editable-list} Widget 1181 @section The @code{editable-list} Widget
1193 @findex editable-list@r{ widget} 1182 @findex editable-list@r{ widget}
1194 1183
1195 Syntax: 1184 Syntax:
1196 1185
1197 @example 1186 @example
1245 List whose @sc{car} is the type of the list elements. 1234 List whose @sc{car} is the type of the list elements.
1246 @end table 1235 @end table
1247 1236
1248 @node group, , editable-list, Basic Types 1237 @node group, , editable-list, Basic Types
1249 @comment node-name, next, previous, up 1238 @comment node-name, next, previous, up
1250 @subsection The @code{group} Widget 1239 @section The @code{group} Widget
1251 @findex group@r{ widget} 1240 @findex group@r{ widget}
1252 1241
1253 This widget simply groups other widgets together. 1242 This widget simply groups other widgets together.
1254 1243
1255 Syntax: 1244 Syntax:
1260 1249
1261 The value is a list, with one member for each @var{type}. 1250 The value is a list, with one member for each @var{type}.
1262 1251
1263 @node Sexp Types, Widget Properties, Basic Types, Top 1252 @node Sexp Types, Widget Properties, Basic Types, Top
1264 @comment 1253 @comment
1265 @section Sexp Types 1254 @chapter Sexp Types
1266 @cindex sexp types 1255 @cindex sexp types
1267 1256
1268 A number of widgets for editing @dfn{s-expressions} (Lisp types), sexp 1257 A number of widgets for editing @dfn{s-expressions} (Lisp types), sexp
1269 for short, are also available. These basically fall in several 1258 for short, are also available. These basically fall in several
1270 categories described in this section. 1259 categories described in this section.
1276 * composite:: 1265 * composite::
1277 @end menu 1266 @end menu
1278 1267
1279 @node constants, generic, Sexp Types, Sexp Types 1268 @node constants, generic, Sexp Types, Sexp Types
1280 @comment node-name, next, previous, up 1269 @comment node-name, next, previous, up
1281 @subsection The Constant Widgets 1270 @section The Constant Widgets
1282 @cindex constant widgets 1271 @cindex constant widgets
1283 1272
1284 The @code{const} widget can contain any Lisp expression, but the user is 1273 The @code{const} widget can contain any Lisp expression, but the user is
1285 prohibited from editing it, which is mainly useful as a component of one 1274 prohibited from editing it, which is mainly useful as a component of one
1286 of the composite widgets. 1275 of the composite widgets.
1313 An immutable symbol that is bound as a function. 1302 An immutable symbol that is bound as a function.
1314 @end deffn 1303 @end deffn
1315 1304
1316 @node generic, atoms, constants, Sexp Types 1305 @node generic, atoms, constants, Sexp Types
1317 @comment node-name, next, previous, up 1306 @comment node-name, next, previous, up
1318 @subsection Generic Sexp Widget 1307 @section Generic Sexp Widget
1319 @cindex generic sexp widget 1308 @cindex generic sexp widget
1320 1309
1321 The @code{sexp} widget can contain any Lisp expression, and allows the 1310 The @code{sexp} widget can contain any Lisp expression, and allows the
1322 user to edit it inline in the buffer. 1311 user to edit it inline in the buffer.
1323 1312
1335 @code{editable-field} widget. @xref{editable-field}. 1324 @code{editable-field} widget. @xref{editable-field}.
1336 @end deffn 1325 @end deffn
1337 1326
1338 @node atoms, composite, generic, Sexp Types 1327 @node atoms, composite, generic, Sexp Types
1339 @comment node-name, next, previous, up 1328 @comment node-name, next, previous, up
1340 @subsection Atomic Sexp Widgets 1329 @section Atomic Sexp Widgets
1341 @cindex atomic sexp widget 1330 @cindex atomic sexp widget
1342 1331
1343 The atoms are s-expressions that do not consist of other s-expressions. 1332 The atoms are s-expressions that do not consist of other s-expressions.
1344 For example, a string, a file name, or a symbol are atoms, while a list 1333 For example, a string, a file name, or a symbol are atoms, while a list
1345 is a composite type. You can edit the value of an atom with the 1334 is a composite type. You can edit the value of an atom with the
1413 @end deffn 1402 @end deffn
1414 1403
1415 1404
1416 @node composite, , atoms, Sexp Types 1405 @node composite, , atoms, Sexp Types
1417 @comment node-name, next, previous, up 1406 @comment node-name, next, previous, up
1418 @subsection Composite Sexp Widgets 1407 @section Composite Sexp Widgets
1419 @cindex composite sexp widgets 1408 @cindex composite sexp widgets
1420 1409
1421 The syntax for the composite widget construct is: 1410 The syntax for the composite widget construct is:
1422 1411
1423 @example 1412 @example
1515 @end example 1504 @end example
1516 @end deffn 1505 @end deffn
1517 1506
1518 @node Widget Properties, Defining New Widgets, Sexp Types, Top 1507 @node Widget Properties, Defining New Widgets, Sexp Types, Top
1519 @comment node-name, next, previous, up 1508 @comment node-name, next, previous, up
1520 @section Properties 1509 @chapter Properties
1521 @cindex properties of widgets 1510 @cindex properties of widgets
1522 @cindex widget properties 1511 @cindex widget properties
1523 1512
1524 You can examine or set the value of a widget by using the widget object 1513 You can examine or set the value of a widget by using the widget object
1525 that was returned by @code{widget-create}. 1514 that was returned by @code{widget-create}.
1610 @code{:deactivate} keywords instead. 1599 @code{:deactivate} keywords instead.
1611 1600
1612 1601
1613 @node Defining New Widgets, Widget Browser, Widget Properties, Top 1602 @node Defining New Widgets, Widget Browser, Widget Properties, Top
1614 @comment node-name, next, previous, up 1603 @comment node-name, next, previous, up
1615 @section Defining New Widgets 1604 @chapter Defining New Widgets
1616 @cindex new widgets 1605 @cindex new widgets
1617 @cindex defining new widgets 1606 @cindex defining new widgets
1618 1607
1619 You can define specialized widgets with @code{define-widget}. It allows 1608 You can define specialized widgets with @code{define-widget}. It allows
1620 you to create a shorthand for more complex widgets, including specifying 1609 you to create a shorthand for more complex widgets, including specifying
1627 @var{name} and class should both be symbols, @code{class} should be one 1616 @var{name} and class should both be symbols, @code{class} should be one
1628 of the existing widget types. 1617 of the existing widget types.
1629 1618
1630 The third argument @var{doc} is a documentation string for the widget. 1619 The third argument @var{doc} is a documentation string for the widget.
1631 1620
1632 After the new widget has been defined the following two calls will 1621 After the new widget has been defined, the following two calls will
1633 create identical widgets: 1622 create identical widgets:
1634 1623
1635 @itemize @bullet 1624 @itemize @bullet
1636 @item 1625 @item
1637 @lisp 1626 @lisp
1854 @code{widget-convert} is typically not called from user code; rather it 1843 @code{widget-convert} is typically not called from user code; rather it
1855 is called implicitly through the @samp{widget-create*} functions. 1844 is called implicitly through the @samp{widget-create*} functions.
1856 1845
1857 @node Widget Browser, Widget Minor Mode, Defining New Widgets, Top 1846 @node Widget Browser, Widget Minor Mode, Defining New Widgets, Top
1858 @comment node-name, next, previous, up 1847 @comment node-name, next, previous, up
1859 @section Widget Browser 1848 @chapter Widget Browser
1860 @cindex widget browser 1849 @cindex widget browser
1861 1850
1862 There is a separate package to browse widgets. This is intended to help 1851 There is a separate package to browse widgets. This is intended to help
1863 programmers who want to examine the content of a widget. The browser 1852 programmers who want to examine the content of a widget. The browser
1864 shows the value of each keyword, but uses links for certain keywords 1853 shows the value of each keyword, but uses links for certain keywords
1879 When called interactively, use the position of point. 1868 When called interactively, use the position of point.
1880 @end deffn 1869 @end deffn
1881 1870
1882 @node Widget Minor Mode, Utilities, Widget Browser, Top 1871 @node Widget Minor Mode, Utilities, Widget Browser, Top
1883 @comment node-name, next, previous, up 1872 @comment node-name, next, previous, up
1884 @section Widget Minor Mode 1873 @chapter Widget Minor Mode
1885 @cindex widget minor mode 1874 @cindex widget minor mode
1886 1875
1887 There is a minor mode for manipulating widgets in major modes that 1876 There is a minor mode for manipulating widgets in major modes that
1888 don't provide any support for widgets themselves. This is mostly 1877 don't provide any support for widgets themselves. This is mostly
1889 intended to be useful for programmers doing experiments. 1878 intended to be useful for programmers doing experiments.
1897 Keymap used in @code{widget-minor-mode}. 1886 Keymap used in @code{widget-minor-mode}.
1898 @end defvar 1887 @end defvar
1899 1888
1900 @node Utilities, Widget Wishlist, Widget Minor Mode, Top 1889 @node Utilities, Widget Wishlist, Widget Minor Mode, Top
1901 @comment node-name, next, previous, up 1890 @comment node-name, next, previous, up
1902 @section Utilities. 1891 @chapter Utilities
1903 @cindex utility functions for widgets 1892 @cindex utility functions for widgets
1904 1893
1905 @defun widget-prompt-value widget prompt [ value unbound ] 1894 @defun widget-prompt-value widget prompt [ value unbound ]
1906 Prompt for a value matching @var{widget}, using @var{prompt}.@* 1895 Prompt for a value matching @var{widget}, using @var{prompt}.@*
1907 The current value is assumed to be @var{value}, unless @var{unbound} is 1896 The current value is assumed to be @var{value}, unless @var{unbound} is
1913 This is only meaningful for radio buttons or checkboxes in a list. 1902 This is only meaningful for radio buttons or checkboxes in a list.
1914 @end defun 1903 @end defun
1915 1904
1916 @node Widget Wishlist, Widget Internals, Utilities, Top 1905 @node Widget Wishlist, Widget Internals, Utilities, Top
1917 @comment node-name, next, previous, up 1906 @comment node-name, next, previous, up
1918 @section Wishlist 1907 @chapter Wishlist
1919 @cindex todo 1908 @cindex todo
1920 1909
1921 @itemize @bullet 1910 @itemize @bullet
1922 @item 1911 @item
1923 It should be possible to add or remove items from a list with @kbd{C-k} 1912 It should be possible to add or remove items from a list with @kbd{C-k}
2027 This is an alphabetical listing of all concepts, functions, commands, 2016 This is an alphabetical listing of all concepts, functions, commands,
2028 variables, and widgets described in this manual. 2017 variables, and widgets described in this manual.
2029 @printindex cp 2018 @printindex cp
2030 2019
2031 @bye 2020 @bye
2032
2033 @ignore
2034 arch-tag: 2b427731-4c61-4e72-85de-5ccec9c623f0
2035 @end ignore