annotate lisp/custom/widget.el @ 202:61eefc8fc970

Added tag r20-3b27 for changeset eb5470882647
author cvs
date Mon, 13 Aug 2007 10:01:24 +0200
parents acd284d43ca1
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
98
0d2f883870bc Import from CVS: tag r20-1b1
cvs
parents:
diff changeset
1 ;;; widget.el --- a library of user interface components.
0d2f883870bc Import from CVS: tag r20-1b1
cvs
parents:
diff changeset
2 ;;
0d2f883870bc Import from CVS: tag r20-1b1
cvs
parents:
diff changeset
3 ;; Copyright (C) 1996, 1997 Free Software Foundation, Inc.
0d2f883870bc Import from CVS: tag r20-1b1
cvs
parents:
diff changeset
4 ;;
0d2f883870bc Import from CVS: tag r20-1b1
cvs
parents:
diff changeset
5 ;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
195
a2f645c6b9f8 Import from CVS: tag r20-3b24
cvs
parents: 193
diff changeset
6 ;; Maintainer: Hrvoje Niksic <hniksic@srce.hr>
98
0d2f883870bc Import from CVS: tag r20-1b1
cvs
parents:
diff changeset
7 ;; Keywords: help, extensions, faces, hypermedia
195
a2f645c6b9f8 Import from CVS: tag r20-3b24
cvs
parents: 193
diff changeset
8 ;; Version: 1.9960-x
98
0d2f883870bc Import from CVS: tag r20-1b1
cvs
parents:
diff changeset
9 ;; X-URL: http://www.dina.kvl.dk/~abraham/custom/
0d2f883870bc Import from CVS: tag r20-1b1
cvs
parents:
diff changeset
10
195
a2f645c6b9f8 Import from CVS: tag r20-3b24
cvs
parents: 193
diff changeset
11 ;; This file is part of XEmacs.
149
538048ae2ab8 Import from CVS: tag r20-3b1
cvs
parents: 136
diff changeset
12
195
a2f645c6b9f8 Import from CVS: tag r20-3b24
cvs
parents: 193
diff changeset
13 ;; XEmacs is free software; you can redistribute it and/or modify
149
538048ae2ab8 Import from CVS: tag r20-3b1
cvs
parents: 136
diff changeset
14 ;; it under the terms of the GNU General Public License as published by
538048ae2ab8 Import from CVS: tag r20-3b1
cvs
parents: 136
diff changeset
15 ;; the Free Software Foundation; either version 2, or (at your option)
538048ae2ab8 Import from CVS: tag r20-3b1
cvs
parents: 136
diff changeset
16 ;; any later version.
538048ae2ab8 Import from CVS: tag r20-3b1
cvs
parents: 136
diff changeset
17
195
a2f645c6b9f8 Import from CVS: tag r20-3b24
cvs
parents: 193
diff changeset
18 ;; XEmacs is distributed in the hope that it will be useful,
149
538048ae2ab8 Import from CVS: tag r20-3b1
cvs
parents: 136
diff changeset
19 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
538048ae2ab8 Import from CVS: tag r20-3b1
cvs
parents: 136
diff changeset
20 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
538048ae2ab8 Import from CVS: tag r20-3b1
cvs
parents: 136
diff changeset
21 ;; GNU General Public License for more details.
538048ae2ab8 Import from CVS: tag r20-3b1
cvs
parents: 136
diff changeset
22
538048ae2ab8 Import from CVS: tag r20-3b1
cvs
parents: 136
diff changeset
23 ;; You should have received a copy of the GNU General Public License
195
a2f645c6b9f8 Import from CVS: tag r20-3b24
cvs
parents: 193
diff changeset
24 ;; along with XEmacs; see the file COPYING. If not, write to the
149
538048ae2ab8 Import from CVS: tag r20-3b1
cvs
parents: 136
diff changeset
25 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
538048ae2ab8 Import from CVS: tag r20-3b1
cvs
parents: 136
diff changeset
26 ;; Boston, MA 02111-1307, USA.
538048ae2ab8 Import from CVS: tag r20-3b1
cvs
parents: 136
diff changeset
27
98
0d2f883870bc Import from CVS: tag r20-1b1
cvs
parents:
diff changeset
28 ;;; Commentary:
0d2f883870bc Import from CVS: tag r20-1b1
cvs
parents:
diff changeset
29 ;;
0d2f883870bc Import from CVS: tag r20-1b1
cvs
parents:
diff changeset
30 ;; If you want to use this code, please visit the URL above.
0d2f883870bc Import from CVS: tag r20-1b1
cvs
parents:
diff changeset
31 ;;
0d2f883870bc Import from CVS: tag r20-1b1
cvs
parents:
diff changeset
32 ;; This file only contain the code needed to define new widget types.
106
8ff55ebd4be9 Import from CVS: tag r20-1b5
cvs
parents: 102
diff changeset
33 ;; Everything else is autoloaded from `wid-edit.el'.
98
0d2f883870bc Import from CVS: tag r20-1b1
cvs
parents:
diff changeset
34
0d2f883870bc Import from CVS: tag r20-1b1
cvs
parents:
diff changeset
35 ;;; Code:
0d2f883870bc Import from CVS: tag r20-1b1
cvs
parents:
diff changeset
36
197
acd284d43ca1 Import from CVS: tag r20-3b25
cvs
parents: 195
diff changeset
37 ;; Neither XEmacs, nor latest GNU Emacs need this -- provided for
acd284d43ca1 Import from CVS: tag r20-3b25
cvs
parents: 195
diff changeset
38 ;; compatibility.
acd284d43ca1 Import from CVS: tag r20-3b25
cvs
parents: 195
diff changeset
39 ;; (defalias 'define-widget-keywords 'ignore)
acd284d43ca1 Import from CVS: tag r20-3b25
cvs
parents: 195
diff changeset
40
acd284d43ca1 Import from CVS: tag r20-3b25
cvs
parents: 195
diff changeset
41 (defmacro define-widget-keywords (&rest keys)
acd284d43ca1 Import from CVS: tag r20-3b25
cvs
parents: 195
diff changeset
42 "This doesn't do anything in Emacs 20 or XEmacs."
acd284d43ca1 Import from CVS: tag r20-3b25
cvs
parents: 195
diff changeset
43 (`
acd284d43ca1 Import from CVS: tag r20-3b25
cvs
parents: 195
diff changeset
44 (eval-and-compile
acd284d43ca1 Import from CVS: tag r20-3b25
cvs
parents: 195
diff changeset
45 (let ((keywords (quote (, keys))))
acd284d43ca1 Import from CVS: tag r20-3b25
cvs
parents: 195
diff changeset
46 (while keywords
acd284d43ca1 Import from CVS: tag r20-3b25
cvs
parents: 195
diff changeset
47 (or (boundp (car keywords))
acd284d43ca1 Import from CVS: tag r20-3b25
cvs
parents: 195
diff changeset
48 (set (car keywords) (car keywords)))
acd284d43ca1 Import from CVS: tag r20-3b25
cvs
parents: 195
diff changeset
49 (setq keywords (cdr keywords)))))))
98
0d2f883870bc Import from CVS: tag r20-1b1
cvs
parents:
diff changeset
50
0d2f883870bc Import from CVS: tag r20-1b1
cvs
parents:
diff changeset
51 (defun define-widget (name class doc &rest args)
0d2f883870bc Import from CVS: tag r20-1b1
cvs
parents:
diff changeset
52 "Define a new widget type named NAME from CLASS.
0d2f883870bc Import from CVS: tag r20-1b1
cvs
parents:
diff changeset
53
0d2f883870bc Import from CVS: tag r20-1b1
cvs
parents:
diff changeset
54 NAME and CLASS should both be symbols, CLASS should be one of the
0d2f883870bc Import from CVS: tag r20-1b1
cvs
parents:
diff changeset
55 existing widget types, or nil to create the widget from scratch.
0d2f883870bc Import from CVS: tag r20-1b1
cvs
parents:
diff changeset
56
0d2f883870bc Import from CVS: tag r20-1b1
cvs
parents:
diff changeset
57 After the new widget has been defined, the following two calls will
0d2f883870bc Import from CVS: tag r20-1b1
cvs
parents:
diff changeset
58 create identical widgets:
0d2f883870bc Import from CVS: tag r20-1b1
cvs
parents:
diff changeset
59
0d2f883870bc Import from CVS: tag r20-1b1
cvs
parents:
diff changeset
60 * (widget-create NAME)
0d2f883870bc Import from CVS: tag r20-1b1
cvs
parents:
diff changeset
61
0d2f883870bc Import from CVS: tag r20-1b1
cvs
parents:
diff changeset
62 * (apply 'widget-create CLASS ARGS)
0d2f883870bc Import from CVS: tag r20-1b1
cvs
parents:
diff changeset
63
0d2f883870bc Import from CVS: tag r20-1b1
cvs
parents:
diff changeset
64 The third argument DOC is a documentation string for the widget."
0d2f883870bc Import from CVS: tag r20-1b1
cvs
parents:
diff changeset
65 (put name 'widget-type (cons class args))
149
538048ae2ab8 Import from CVS: tag r20-3b1
cvs
parents: 136
diff changeset
66 (put name 'widget-documentation doc)
538048ae2ab8 Import from CVS: tag r20-3b1
cvs
parents: 136
diff changeset
67 name)
98
0d2f883870bc Import from CVS: tag r20-1b1
cvs
parents:
diff changeset
68
0d2f883870bc Import from CVS: tag r20-1b1
cvs
parents:
diff changeset
69 ;;; The End.
0d2f883870bc Import from CVS: tag r20-1b1
cvs
parents:
diff changeset
70
0d2f883870bc Import from CVS: tag r20-1b1
cvs
parents:
diff changeset
71 (provide 'widget)
0d2f883870bc Import from CVS: tag r20-1b1
cvs
parents:
diff changeset
72
0d2f883870bc Import from CVS: tag r20-1b1
cvs
parents:
diff changeset
73 ;; widget.el ends here