Commit 987cee97 authored by Richard M. Stallman's avatar Richard M. Stallman
Browse files

(key-sequence): New widget type.

parent f6b8e4e7
...@@ -3116,7 +3116,7 @@ It will read a directory name from the minibuffer when invoked." ...@@ -3116,7 +3116,7 @@ It will read a directory name from the minibuffer when invoked."
(interactive) (interactive)
(lisp-complete-symbol 'boundp)) (lisp-complete-symbol 'boundp))
:tag "Variable") :tag "Variable")
(defvar widget-coding-system-prompt-value-history nil (defvar widget-coding-system-prompt-value-history nil
"History of input to `widget-coding-system-prompt-value'.") "History of input to `widget-coding-system-prompt-value'.")
...@@ -3159,6 +3159,29 @@ It will read a directory name from the minibuffer when invoked." ...@@ -3159,6 +3159,29 @@ It will read a directory name from the minibuffer when invoked."
(widget-apply widget :notify widget event) (widget-apply widget :notify widget event)
(widget-setup))) (widget-setup)))
(defvar widget-key-sequence-prompt-value-history nil
"History of input to `widget-key-sequence-prompt-value'.")
;; This mostly works, but I am pretty sure it needs more change
;; to be 100% correct. I don't know what the change should be -- rms.
(define-widget 'key-sequence 'restricted-sexp
"A Lisp function."
:prompt-value 'widget-field-prompt-value
:prompt-internal 'widget-symbol-prompt-internal
:prompt-match 'fboundp
:prompt-history 'widget-key-sequence-prompt-value-history
:action 'widget-field-action
:match-alternatives '(stringp vectorp)
:validate (lambda (widget)
(unless (or (stringp (widget-value widget))
(vectorp (widget-value widget)))
(widget-put widget :error (format "Invalid key sequence: %S"
(widget-value widget)))
widget))
:value 'ignore
:tag "Key sequence")
(define-widget 'sexp 'editable-field (define-widget 'sexp 'editable-field
"An arbitrary Lisp expression." "An arbitrary Lisp expression."
:tag "Lisp expression" :tag "Lisp expression"
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment