diff lisp/w3/w3-forms.el @ 22:8fc7fe29b841 r19-15b94

Import from CVS: tag r19-15b94
author cvs
date Mon, 13 Aug 2007 08:50:29 +0200
parents 859a2309aef8
children 441bb1e64a06
line wrap: on
line diff
--- a/lisp/w3/w3-forms.el	Mon Aug 13 08:50:06 2007 +0200
+++ b/lisp/w3/w3-forms.el	Mon Aug 13 08:50:29 2007 +0200
@@ -1,7 +1,7 @@
 ;;; w3-forms.el --- Emacs-w3 forms parsing code for new display engine
 ;; Author: wmperry
-;; Created: 1997/02/09 06:39:43
-;; Version: 1.65
+;; Created: 1997/02/13 23:10:23
+;; Version: 1.70
 ;; Keywords: faces, help, comm, data, languages
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -45,24 +45,28 @@
 
 (define-widget-keywords :emacspeak-help :w3-form-data)
 
-(defvar w3-form-keymap (copy-keymap global-map))
-(if (and w3-form-keymap widget-keymap)
-    (cl-map-keymap (function
-		    (lambda (key binding)
-		      (define-key w3-form-keymap
-			(if (vectorp key) key (vector key))
-			(case binding
-			  (widget-backward 'w3-widget-backward)
-			  (widget-forward  'w3-widget-forward)
-			  (otherwise binding)))))
-		   widget-keymap))
-(define-key w3-form-keymap [return]      'w3-form-maybe-submit-by-keypress)
-(define-key w3-form-keymap "\r"          'w3-form-maybe-submit-by-keypress)
-(define-key w3-form-keymap "\n"          'w3-form-maybe-submit-by-keypress)
-(define-key w3-form-keymap "\t"          'w3-widget-forward)
-(define-key w3-form-keymap "\C-k"        'widget-kill-line)
-(define-key w3-form-keymap "\C-a"        'widget-beginning-of-line)
-(define-key w3-form-keymap "\C-e"        'widget-end-of-line)
+(defvar w3-form-keymap
+  (let ((map (copy-keymap global-map))
+	(eol-loc (where-is-internal 'end-of-line nil t)))
+    (if widget-keymap
+	(cl-map-keymap (function
+			(lambda (key binding)
+			  (define-key map
+			    (if (vectorp key) key (vector key))
+			    (case binding
+				  (widget-backward 'w3-widget-backward)
+				  (widget-forward  'w3-widget-forward)
+				  (otherwise binding)))))
+		       widget-keymap))
+    (define-key map [return]      'w3-form-maybe-submit-by-keypress)
+    (define-key map "\r"          'w3-form-maybe-submit-by-keypress)
+    (define-key map "\n"          'w3-form-maybe-submit-by-keypress)
+    (define-key map "\t"          'w3-widget-forward)
+    (define-key map "\C-k"        'widget-kill-line)
+    (define-key map "\C-a"        'widget-beginning-of-line)
+    (if eol-loc
+	(define-key map eol-loc   'widget-end-of-line))
+    map))
 
 ;; A form entry area is a vector
 ;; [ type name default-value value maxlength options widget plist]
@@ -152,6 +156,8 @@
 
 (defun w3-form-resurrect-widgets ()
   (let ((st (point-min))
+	;; FIXME! For some reason this loses on long lines right now.
+	(widget-push-button-gui nil)
 	info nd node action face)
     (while st
       (if (setq info (get-text-property st 'w3-form-info))
@@ -382,6 +388,7 @@
 			 (lambda (x)
 			   (list 'choice-item :format "%[%t%]"
 				 :emacspeak-help 'w3-form-summarize-field
+				 :menu-tag-get (` (lambda (zed) (, (car x))))
 				 :tag (mule-truncate-string (car x) size ? )
 				 :button-face face
 				 :value-face face