X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/6d528fc505f6be1e67f87834bdde19cf4bbe05ff..90b571567345bf2d2cd7a7b22f27b02adc4ef168:/lisp/widget.el?ds=sidebyside diff --git a/lisp/widget.el b/lisp/widget.el index 4905c06b70..6acfdfd48d 100644 --- a/lisp/widget.el +++ b/lisp/widget.el @@ -1,10 +1,11 @@ -;;; widget.el --- a library of user interface components. +;;; widget.el --- a library of user interface components ;; -;; Copyright (C) 1996, 1997 Free Software Foundation, Inc. +;; Copyright (C) 1996, 1997, 2002, 2003, 2004, +;; 2005, 2006 Free Software Foundation, Inc. ;; ;; Author: Per Abrahamsen ;; Keywords: help, extensions, faces, hypermedia -;; Version: 1.90 +;; Version: 1.9920 ;; X-URL: http://www.dina.kvl.dk/~abraham/custom/ ;; This file is part of GNU Emacs. @@ -21,57 +22,56 @@ ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the -;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, -;; Boston, MA 02111-1307, USA. +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. ;;; Commentary: ;; -;; If you want to use this code, please visit the URL above. +;; The widget library is partially documented in the `widget' Info +;; file. ;; -;; This file only contain the code needed to define new widget types. +;; This file only contains the code needed to define new widget types. ;; Everything else is autoloaded from `wid-edit.el'. ;;; Code: -(eval-when-compile (require 'cl)) - +;; Doing this is unnecessary in Emacs 20. Kept as dummy in case +;; external libraries call it. We save a kb or two of purespace by +;; dummying-out such definitions generally. (defmacro define-widget-keywords (&rest keys) - (` - (eval-and-compile - (let ((keywords (quote (, keys)))) - (while keywords - (or (boundp (car keywords)) - (set (car keywords) (car keywords))) - (setq keywords (cdr keywords))))))) - -(define-widget-keywords :prompt-value :text-format :deactivate :active - :inactive :activate :sibling-args :delete-button-args - :insert-button-args :append-button-args :button-args - :tag-glyph :off-glyph :on-glyph :valid-regexp - :secret :sample-face :sample-face-get :case-fold :widget-doc - :create :convert-widget :format :value-create :offset :extra-offset - :tag :doc :from :to :args :value :value-from :value-to :action - :value-set :value-delete :match :parent :delete :menu-tag-get - :value-get :choice :void :menu-tag :on :off :on-type :off-type - :notify :entry-format :button :children :buttons :insert-before - :delete-at :format-handler :widget :value-pos :value-to-internal - :indent :size :value-to-external :validate :error :directory - :must-match :type-error :value-inline :inline :match-inline :greedy - :button-face-get :button-face :value-face :keymap :entry-from - :entry-to :help-echo :documentation-property :hide-front-space - :hide-rear-space :tab-order) - -;; These autoloads should be deleted when the file is added to Emacs. -(unless (fboundp 'load-gc) - (autoload 'widget-apply "wid-edit") - (autoload 'widget-create "wid-edit") - (autoload 'widget-insert "wid-edit") - (autoload 'widget-prompt-value "wid-edit") - (autoload 'widget-browse "wid-browse" nil t) - (autoload 'widget-browse-other-window "wid-browse" nil t) - (autoload 'widget-browse-at "wid-browse" nil t) - (autoload 'widget-minor-mode "wid-browse" nil t)) - + ;; ;; Don't use backquote, since that makes trouble trying to + ;; ;; re-bootstrap from just the .el files. + ;; (list 'eval-and-compile + ;; (list 'let (list (list 'keywords (list 'quote keys))) + ;; (list 'while 'keywords + ;; (list 'or (list 'boundp (list 'car 'keywords)) + ;; (list 'set (list 'car 'keywords) (list 'car 'keywords))) + ;; (list 'setq 'keywords (list 'cdr 'keywords))))) + ) + +;;(define-widget-keywords :documentation-indent +;; :complete-function :complete :button-overlay +;; :field-overlay +;; :documentation-shown :button-prefix +;; :button-suffix :mouse-down-action :glyph-up :glyph-down :glyph-inactive +;; :prompt-internal :prompt-history :prompt-match +;; :prompt-value :deactivate :active +;; :inactive :activate :sibling-args :delete-button-args +;; :insert-button-args :append-button-args :button-args +;; :tag-glyph :off-glyph :on-glyph :valid-regexp +;; :secret :sample-face :sample-face-get :case-fold +;; :create :convert-widget :format :value-create :offset :extra-offset +;; :tag :doc :from :to :args :value :action +;; :value-set :value-delete :match :parent :delete :menu-tag-get +;; :value-get :choice :void :menu-tag :on :off :on-type :off-type +;; :notify :entry-format :button :children :buttons :insert-before +;; :delete-at :format-handler :widget :value-pos :value-to-internal +;; :indent :size :value-to-external :validate :error :directory +;; :must-match :type-error :value-inline :inline :match-inline :greedy +;; :button-face-get :button-face :value-face :keymap :entry-from +;; :entry-to :help-echo :documentation-property :tab-order) + +(put 'define-widget 'doc-string-elt 3) ;`declare' doesn't work in functions. (defun define-widget (name class doc &rest args) "Define a new widget type named NAME from CLASS. @@ -90,8 +90,12 @@ The third argument DOC is a documentation string for the widget." (put name 'widget-documentation doc) name) +;; This is used by external widget code (in W3, at least). +(defalias 'widget-plist-member 'plist-member) + ;;; The End. (provide 'widget) -;; widget.el ends here +;; arch-tag: 932c71a3-9aeb-4827-a293-8b88b26d5c58 +;;; widget.el ends here