4 (defvar its-current-language "Japanese")
6 (defvar its-zhuyin nil)
7 (make-variable-buffer-local 'its-zhuyin)
9 (eval-when (eval compile)
10 (defun its-make-select-func (key1 key2 name file map &optional lang zhuyin)
11 (setq name (intern (concat "its-select-" (symbol-name name)))
12 file (intern (concat "its/" (symbol-name file)))
13 map (intern (concat "its-" (symbol-name map) "-map"))
14 lang (symbol-name lang))
16 `(defun ,name (&optional mode-line-unchange)
22 ((egg-get-bunsetsu-info (point))
23 (egg-exit-conversion)))
24 ,(if lang `(egg-check-language ,lang))
26 (setq its-current-map ,map)
27 ,(if lang `(setq its-current-language ,lang))
28 ,(if zhuyin `(setq its-zhuyin ,(eq zhuyin 'T)))
29 (if (null mode-line-unchange)
30 (egg-set-mode-line-title)))
33 ,(concat "\e" (vector key2))
34 ,(concat "\C-x\C-m" (vector key1)))
38 (defmacro its-do-list-make-select-func (list)
39 (eval-when (eval compile)
40 (let (funcs keydefs pair)
42 (setq pair (apply 'its-make-select-func (car list)))
43 (setq funcs (cons (car pair) funcs)
44 keydefs (cons (cdr pair) keydefs))
45 (setq list (cdr list)))
48 (defun its-define-select-keys (map &optional fence)
51 (its-do-list-make-select-func
52 ((?Q ?Q upcase ascii up)
53 (?q ?q downcase ascii down)
54 (?h ?\C-h hiragana hira hira Japanese)
55 (?k ?\C-k katakana kata kata Japanese)
56 (?x ?\C-x hankaku-katakana hankata han-kata Japanese)
57 (?Z ?Z zenkaku-upcase zenkaku zenkaku-up Japanese)
58 (?z ?z zenkaku-downcase zenkaku zenkaku-down Japanese)
59 (?\C-e ?\C-e erpin-cn erpin erpin-cn Chinese-GB NIL)
60 (?\C-p ?\C-p pinyin-cn pinyin pinyin-cn Chinese-GB NIL)
61 (?\C-z ?\C-z zhuyin-cn zhuyin zhuyin-cn Chinese-GB T)
62 (?\C-u ?\C-u quanjiao-upcase-cn quanjiao quanjiao-up-cn Chinese-GB)
63 (?\C-d ?\C-d quanjiao-downcase-cn quanjiao quanjiao-down-cn Chinese-GB)
64 (?E ?E erpin-tw erpin erpin-tw Chinese-CNS NIL)
65 (?P ?P pinyin-tw pinyin pinyin-tw Chinese-CNS NIL)
66 (?Z ?Z zhuyin-tw zhuyin zhuyin-tw Chinese-CNS T)
67 (?U ?U quanjiao-upcase-tw quanjiao quanjiao-up-tw Chinese-CNS)
68 (?C ?C quanjiao-downcase-tw quanjiao quanjiao-down-tw Chinese-CNS)
69 (?H ?H hangul hangul hangul Korean)
70 (?J ?J jeonkak-upcase jeonkak jeonkak-up Korean)
71 (?j ?j jeonkak-downcase jeonkak jeonkak-down Korean)))