changeset 41506:f2e8fb1e1928

(quail-keyboard-layout-button): Define button type. (quail-keyboard-customize-button): Likewise. (quail-help): Use those button types. Require `help-mode'. Avoid altering the argument `package'.
author Richard M. Stallman <rms@gnu.org>
date Sun, 25 Nov 2001 18:53:04 +0000
parents 77dd7bf4d860
children f883faadb8aa
files lisp/international/quail.el
diffstat 1 files changed, 22 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/international/quail.el	Sun Nov 25 18:49:03 2001 +0000
+++ b/lisp/international/quail.el	Sun Nov 25 18:53:04 2001 +0000
@@ -2395,21 +2395,34 @@
 	(insert ?\n))
       (insert ?\n))))
 
+(define-button-type 'quail-keyboard-layout-button
+  :supertype 'help-xref
+  'help-function '(lambda (layout) 
+		    (help-setup-xref `(quail-keyboard-layout-button ,layout) nil)
+		    (quail-show-keyboard-layout layout))
+  'help-echo (purecopy "mouse-2, RET: show keyboard layout"))
+
+(define-button-type 'quail-keyboard-customize-button
+  :supertype 'help-customize-variable
+  'help-echo (purecopy "mouse-2, RET: customize keyboard layout"))
+
 (defun quail-help (&optional package)
   "Show brief description of the current Quail package.
 Optional arg PACKAGE specifies the name of alternative Quail
 package to describe."
   (interactive)
-  (if package
-      (setq package (assoc package quail-package-alist))
-    (setq package quail-current-package))
+  (require 'help-mode)
   (let ((help-xref-mule-regexp help-xref-mule-regexp-template)
-	(default-enable-multibyte-characters enable-multibyte-characters))
+	(default-enable-multibyte-characters enable-multibyte-characters)
+	(package-def
+	 (if package
+	     (assoc package quail-package-alist)
+	   quail-current-package)))
     ;; At first, make sure that the help buffer has window.
     (help-setup-xref (list #'quail-help package) (interactive-p))
     (with-output-to-temp-buffer (help-buffer)
       (with-current-buffer standard-output
-	(setq quail-current-package package)))
+	(setq quail-current-package package-def)))
     ;; Then, insert text in the help buffer while paying attention to
     ;; the width of the frame in which the buffer displayed.
     (with-current-buffer (help-buffer)
@@ -2445,8 +2458,8 @@
 Assuming that your actual keyboard has the `")
 	  (help-insert-xref-button
 	   quail-keyboard-layout-type
-	   #'quail-show-keyboard-layout quail-keyboard-layout-type
-	   "mouse-2, RET: show this layout")
+	   'quail-keyboard-layout-button
+	   quail-keyboard-layout-type)
 	  (insert "' layout,
 translation results in the following \"virtual\" keyboard layout:
 ")
@@ -2456,8 +2469,7 @@
 `")
 	  (help-insert-xref-button
 	   "standard"
-	   #'quail-show-keyboard-layout "standard"
-	   "mouse-2, RET: show this layout")
+	   'quail-keyboard-layout-button "standard")
 	  (insert "', the \"virtual\" keyboard you get with this input method
 will be rearranged in the same way.
 
@@ -2468,8 +2480,7 @@
 ")
 	  (help-insert-xref-button
 	   "[customize keyboard layout]"
-	   #'customize-variable 'quail-keyboard-layout-type
-	   "mouse-2, RET: set keyboard layout type")
+	   'quail-keyboard-customize-button 'quail-keyboard-layout-type)
 	  (insert "\n"))
 
 	;; Show key sequences.