From: handa Date: Wed, 26 Oct 2005 08:07:00 +0000 (+0000) Subject: New file. X-Git-Tag: REL-1-3-0~78 X-Git-Url: http://git.chise.org/gitweb/?a=commitdiff_plain;h=2a988e2842077dab254cd8be06a257677cf57c17;p=m17n%2Fm17n-db.git New file. --- diff --git a/zh-util.mim b/zh-util.mim new file mode 100644 index 0000000..8c256ee --- /dev/null +++ b/zh-util.mim @@ -0,0 +1,89 @@ +;; zh-util.mim -- Provide utilities for Chinese input methods. +;; Copyright (C) 2005 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H15PRO112 + +;; This file is part of the m17n library. + +;; The m17n library is free software; you can redistribute it and/or +;; modify it under the terms of the GNU Lesser General Public License +;; as published by the Free Software Foundation; either version 2.1 of +;; the License, or (at your option) any later version. + +;; The m17n library is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; Lesser General Public License for more details. + +;; You should have received a copy of the GNU Lesser General Public +;; License along with the m17n library; if not, write to the Free +;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +;; 02111-1307, USA. + +(input-method t nil zh-util) + +(description "Provide utilities for Chinese input methods. +This is acutually not a standalone input method, but is expected +to be included in the other Chinese input method (e.g. zh-py). +") + +(map + ;; Typing 1, 2, ..., 0 selects the 0th, 1st, ..., 9th candidate. + (choose + ("1" (select 0)) + ("2" (select 1)) + ("3" (select 2)) + ("4" (select 3)) + ("5" (select 4)) + ("6" (select 5)) + ("7" (select 6)) + ("8" (select 7)) + ("9" (select 8)) + ("0" (select 9))) + + (change-candidate + ((Left) (select @-)) + ((C-b) (select @-)) + ((Right) (select @+)) + ((C-f) (select @+)) + ((Up) (select @[)) + ((C-p) (select @[)) + ((Down) (select @])) + ((C-n) (select @]))) + + (focus-change + ;; When an input spot is moved, commit the current predit by shifting + ;; to init. + ((input-focus-move) (shift init)) + ;; When an input focus is out or in, keep the current preedit. + ((input-focus-out) (set KK @@) (sub KK 1) (undo KK)) + ((input-focus-in) (set KK @@) (sub KK 1) (undo KK))) + + (backspace + ((BackSpace))) + + (commit-preedit + ((S-\ )))) + +(state + (check-undo + ;; When Backspace is typed, cancel the last input. + (backspace (undo)) + (focus-change) + ;; When anything else is typed, produce the current candidate (if + ;; any), and re-handle the last input in "init" state. + (nil (hide) (shift init))) + + (select + (t (set K @@) (sub K 1)) + ;; When a number is typed, select the corresponding canidate, + ;; produce it, and shift to "init" state. + (focus-change) + (choose (hide) (shift init)) + (change-candidate) + (backspace (undo K)) + ;; When key to force committing, commit the current preedit. + (commit-preedit (shift init)) + ;; When anything else is typed, produce the current candidate, + ;; and re-handle the last input in "init" state. + (nil (hide) (shift init))))