1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-12-23 10:34:07 +00:00

(define-button-type): Make sure every user-defined button type has a supertype.

This commit is contained in:
Miles Bader 2001-11-01 07:00:07 +00:00
parent 1c7a4f723f
commit 588c722f22
2 changed files with 13 additions and 5 deletions

View File

@ -1,3 +1,8 @@
2001-11-01 Miles Bader <miles@gnu.org>
* button.el (define-button-type): Make sure every user-defined
button type has a supertype.
2001-10-31 Jason Rumney <jasonr@gnu.org>
* international/mule-cmds.el (locale-language-names): Add chs and

View File

@ -121,12 +121,12 @@ In addition, the keyword argument :supertype may be used to specify a
button-type from which NAME inherits its default property values
\(however, the inheritance happens only when NAME is defined; subsequent
changes to a supertype are not reflected in its subtypes)."
(let* ((catsym (make-symbol (concat (symbol-name name) "-button")))
(supertype
(let ((catsym (make-symbol (concat (symbol-name name) "-button")))
(super-catsym
(button-category-symbol
(or (plist-get properties 'supertype)
(plist-get properties :supertype)))
(super-catsym
(if supertype (button-category-symbol supertype) 'default-button)))
(plist-get properties :supertype)
'button))))
;; Provide a link so that it's easy to find the real symbol.
(put name 'button-category-symbol catsym)
;; Initialize NAME's properties using the global defaults.
@ -142,6 +142,9 @@ changes to a supertype are not reflected in its subtypes)."
(when (eq prop :supertype)
(setq prop 'supertype))
(put catsym prop (pop properties))))
;; Make sure there's a `supertype' property
(unless (get catsym 'supertype)
(put catsym 'supertype 'button))
name))
(defun button-type-put (type prop val)