Mercurial > hg > xemacs-beta
comparison lisp/egg/egg-quail.el @ 70:131b0175ea99 r20-0b30
Import from CVS: tag r20-0b30
author | cvs |
---|---|
date | Mon, 13 Aug 2007 09:02:59 +0200 |
parents | |
children | 360340f9fd5f |
comparison
equal
deleted
inserted
replaced
69:804d1389bcd6 | 70:131b0175ea99 |
---|---|
1 ;;; Quail <-> EGG interface | |
2 | |
3 (require 'quail) | |
4 | |
5 (or (featurep 'egg) | |
6 (error "You don't have EGG feature.")) | |
7 | |
8 (defconst quail-mode-egg-map (make-keymap)) | |
9 (set-keymap-parents quail-mode-egg-map (list quail-mode-map)) | |
10 (define-key quail-mode-egg-map " " 'quail-henkan-region)) | |
11 | |
12 (defvar quail-henkan-start nil) | |
13 (make-variable-buffer-local 'quail-henkan-start) | |
14 | |
15 (defvar quail-henkan-start-char ?◇) | |
16 | |
17 (defconst quail-henkan-mode-map (make-keymap)) | |
18 (set-keymap-parents quail-henkan-mode-map (list henkan-mode-map)) | |
19 | |
20 (substitute-key-definition 'self-insert-command | |
21 'quail-henkan-kakutei-and-self-insert | |
22 quail-henkan-mode-map) | |
23 | |
24 (define-key quail-henkan-mode-map "\C-k" 'quail-henkan-kakutei) | |
25 (define-key quail-henkan-mode-map "\C-l" 'quail-henkan-kakutei) | |
26 (define-key quail-henkan-mode-map "\C-m" 'quail-henkan-kakutei) | |
27 (define-key quail-henkan-mode-map "\C-c" 'quail-henkan-quit) | |
28 (define-key quail-henkan-mode-map "\C-g" 'quail-henkan-quit) | |
29 (define-key quail-henkan-mode-map "\177" 'quail-henkan-quit) | |
30 (define-key quail-henkan-mode-map "\eg" 'quail-henkan-quit)) | |
31 | |
32 (defun quail-henkan-mark () | |
33 "Set mark at the current position to indicate starting point of henkan." | |
34 (interactive) | |
35 (quail-delete-region) | |
36 (quail-init-state) | |
37 (setq quail-henkan-start (point-marker)) | |
38 (insert quail-henkan-start-char)) | |
39 | |
40 (defun quail-henkan-region () | |
41 (interactive) | |
42 (quail-delete-region) | |
43 (quail-init-state) | |
44 (if quail-henkan-start | |
45 (let ((pos (point-marker))) | |
46 (goto-char quail-henkan-start) | |
47 (if (and (= (following-char) quail-henkan-start-char) | |
48 (progn (delete-char 1) | |
49 (< quail-henkan-start pos))) | |
50 (let ((henkan-mode-map quail-henkan-mode-map)) | |
51 (henkan-region quail-henkan-start pos)) | |
52 (goto-char pos)) | |
53 (setq quail-henkan-start nil)))) | |
54 | |
55 (defun quail-henkan-kakutei-and-self-insert () | |
56 (interactive) | |
57 (setq unread-command-events (list last-command-event)) | |
58 (quail-henkan-kakutei)) | |
59 | |
60 (defun quail-henkan-reset () | |
61 (egg:bunsetu-attribute-off bunsetu-number) | |
62 (egg:henkan-attribute-off) | |
63 (goto-char egg:region-start) | |
64 (delete-region (- egg:region-start (length egg:henkan-open)) | |
65 (+ egg:region-end (length egg:henkan-close))) | |
66 (set-marker egg:region-start nil) | |
67 (set-marker egg:region-end nil) | |
68 (setq quail-henkan-start nil) | |
69 (quail-init-state) | |
70 (use-local-map (quail-mode-map)) | |
71 (egg:mode-line-display)) | |
72 | |
73 (defun quail-henkan-kakutei () | |
74 (interactive) | |
75 (quail-henkan-reset) | |
76 (let ((i 0) (max (wnn-server-bunsetu-suu))) | |
77 (while (< i max) | |
78 (insert (car (wnn-server-bunsetu-kanji i ))) | |
79 (if (not overwrite-mode) | |
80 (undo-boundary)) | |
81 (setq i (1+ i)) | |
82 )) | |
83 (wnn-server-hindo-update) | |
84 (egg:mode-line-display)) | |
85 | |
86 (defun quail-henkan-quit () | |
87 (interactive) | |
88 (quail-henkan-reset) | |
89 (insert egg:kanji-kanabuff) | |
90 (wnn-server-henkan-quit) | |
91 (egg:mode-line-display)) |