Mercurial > hg > xemacs-beta
comparison 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 |
comparison
equal
deleted
inserted
replaced
21:b88636d63495 | 22:8fc7fe29b841 |
---|---|
1 ;;; w3-forms.el --- Emacs-w3 forms parsing code for new display engine | 1 ;;; w3-forms.el --- Emacs-w3 forms parsing code for new display engine |
2 ;; Author: wmperry | 2 ;; Author: wmperry |
3 ;; Created: 1997/02/09 06:39:43 | 3 ;; Created: 1997/02/13 23:10:23 |
4 ;; Version: 1.65 | 4 ;; Version: 1.70 |
5 ;; Keywords: faces, help, comm, data, languages | 5 ;; Keywords: faces, help, comm, data, languages |
6 | 6 |
7 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | 7 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
8 ;;; Copyright (c) 1996 by William M. Perry (wmperry@cs.indiana.edu) | 8 ;;; Copyright (c) 1996 by William M. Perry (wmperry@cs.indiana.edu) |
9 ;;; Copyright (c) 1996, 1997 Free Software Foundation, Inc. | 9 ;;; Copyright (c) 1996, 1997 Free Software Foundation, Inc. |
43 (defvar w3-form-use-old-style nil | 43 (defvar w3-form-use-old-style nil |
44 "*Non-nil means use the old way of interacting for form fields.") | 44 "*Non-nil means use the old way of interacting for form fields.") |
45 | 45 |
46 (define-widget-keywords :emacspeak-help :w3-form-data) | 46 (define-widget-keywords :emacspeak-help :w3-form-data) |
47 | 47 |
48 (defvar w3-form-keymap (copy-keymap global-map)) | 48 (defvar w3-form-keymap |
49 (if (and w3-form-keymap widget-keymap) | 49 (let ((map (copy-keymap global-map)) |
50 (cl-map-keymap (function | 50 (eol-loc (where-is-internal 'end-of-line nil t))) |
51 (lambda (key binding) | 51 (if widget-keymap |
52 (define-key w3-form-keymap | 52 (cl-map-keymap (function |
53 (if (vectorp key) key (vector key)) | 53 (lambda (key binding) |
54 (case binding | 54 (define-key map |
55 (widget-backward 'w3-widget-backward) | 55 (if (vectorp key) key (vector key)) |
56 (widget-forward 'w3-widget-forward) | 56 (case binding |
57 (otherwise binding))))) | 57 (widget-backward 'w3-widget-backward) |
58 widget-keymap)) | 58 (widget-forward 'w3-widget-forward) |
59 (define-key w3-form-keymap [return] 'w3-form-maybe-submit-by-keypress) | 59 (otherwise binding))))) |
60 (define-key w3-form-keymap "\r" 'w3-form-maybe-submit-by-keypress) | 60 widget-keymap)) |
61 (define-key w3-form-keymap "\n" 'w3-form-maybe-submit-by-keypress) | 61 (define-key map [return] 'w3-form-maybe-submit-by-keypress) |
62 (define-key w3-form-keymap "\t" 'w3-widget-forward) | 62 (define-key map "\r" 'w3-form-maybe-submit-by-keypress) |
63 (define-key w3-form-keymap "\C-k" 'widget-kill-line) | 63 (define-key map "\n" 'w3-form-maybe-submit-by-keypress) |
64 (define-key w3-form-keymap "\C-a" 'widget-beginning-of-line) | 64 (define-key map "\t" 'w3-widget-forward) |
65 (define-key w3-form-keymap "\C-e" 'widget-end-of-line) | 65 (define-key map "\C-k" 'widget-kill-line) |
66 (define-key map "\C-a" 'widget-beginning-of-line) | |
67 (if eol-loc | |
68 (define-key map eol-loc 'widget-end-of-line)) | |
69 map)) | |
66 | 70 |
67 ;; A form entry area is a vector | 71 ;; A form entry area is a vector |
68 ;; [ type name default-value value maxlength options widget plist] | 72 ;; [ type name default-value value maxlength options widget plist] |
69 ;; Where: | 73 ;; Where: |
70 ;; type = symbol defining what type of form entry area it is | 74 ;; type = symbol defining what type of form entry area it is |
150 'end-open t | 154 'end-open t |
151 'rear-nonsticky t))))) | 155 'rear-nonsticky t))))) |
152 | 156 |
153 (defun w3-form-resurrect-widgets () | 157 (defun w3-form-resurrect-widgets () |
154 (let ((st (point-min)) | 158 (let ((st (point-min)) |
159 ;; FIXME! For some reason this loses on long lines right now. | |
160 (widget-push-button-gui nil) | |
155 info nd node action face) | 161 info nd node action face) |
156 (while st | 162 (while st |
157 (if (setq info (get-text-property st 'w3-form-info)) | 163 (if (setq info (get-text-property st 'w3-form-info)) |
158 (progn | 164 (progn |
159 (setq nd (or (next-single-property-change st 'w3-form-info) | 165 (setq nd (or (next-single-property-change st 'w3-form-info) |
380 (mapcar | 386 (mapcar |
381 (function | 387 (function |
382 (lambda (x) | 388 (lambda (x) |
383 (list 'choice-item :format "%[%t%]" | 389 (list 'choice-item :format "%[%t%]" |
384 :emacspeak-help 'w3-form-summarize-field | 390 :emacspeak-help 'w3-form-summarize-field |
391 :menu-tag-get (` (lambda (zed) (, (car x)))) | |
385 :tag (mule-truncate-string (car x) size ? ) | 392 :tag (mule-truncate-string (car x) size ? ) |
386 :button-face face | 393 :button-face face |
387 :value-face face | 394 :value-face face |
388 :value (car x)))) | 395 :value (car x)))) |
389 (w3-form-element-options el))))) | 396 (w3-form-element-options el))))) |