Revision: 6532
Author: deton.kih
Date: Sun Jul 18 17:46:13 2010
Log: * Add latin conversion (SKK abbrev conversion) to tutcode.
* scm/tutcode-key-custom.scm
  - (tutcode-latin-conv-start-sequence): New.
* scm/tutcode.scm
  - (tutcode-context-rec-spec): Add latin-conv flag.
  - (tutcode-flush): Add reset of latin-conv flag.
  - (tutcode-check-stroke-help-window-begin): Add mark for latin-conv.
  - (tutcode-proc-state-on):
    Add check of tutcode-latin-conv-start key sequence.
  - (tutcode-proc-state-yomi): Change to support latin conversion.
  - (tutcode-proc-state-bushu): Ditto.
  - (tutcode-custom-set-mazegaki/bushu-start-sequence!):
    Add tutcode-latin-conv-start key sequence.

http://code.google.com/p/uim/source/detail?r=6532

Modified:
 /trunk/scm/tutcode-key-custom.scm
 /trunk/scm/tutcode.scm

=======================================
--- /trunk/scm/tutcode-key-custom.scm   Sun Jul 18 13:34:09 2010
+++ /trunk/scm/tutcode-key-custom.scm   Sun Jul 18 17:46:13 2010
@@ -77,6 +77,12 @@
               (N_ "[TUT-Code] bushu conversion mode")
               (N_ "long description will be here"))

+(define-custom 'tutcode-latin-conv-start-sequence "al/"
+               '(tutcode-keys1 mode-transition)
+              '(string ".*")
+              (N_ "[TUT-Code] latin conversion mode")
+              (N_ "long description will be here"))
+
 (define-custom 'tutcode-stroke-help-toggle-key '("<Control>/")
                '(tutcode-keys1)
                '(key)
=======================================
--- /trunk/scm/tutcode.scm      Sun Jul 18 13:34:09 2010
+++ /trunk/scm/tutcode.scm      Sun Jul 18 17:46:13 2010
@@ -314,6 +314,8 @@
      (editor ())
      ;;; ºï½ü³Îǧ¥À¥¤¥¢¥í¥°
      (dialog ())
+     ;;; ±Ñ»úÊÑ´¹(SKK abbrev)¥â¡¼¥É¤«¤É¤¦¤«
+     (latin-conv #f)
      )))
 (define-record 'tutcode-context tutcode-context-rec-spec)
 (define tutcode-context-new-internal tutcode-context-new)
@@ -413,6 +415,7 @@
     (tutcode-context-set-head! pc ())
     (tutcode-context-set-nr-candidates! pc 0)
     (tutcode-reset-candidate-window pc)
+    (tutcode-context-set-latin-conv! pc #f)
     (tutcode-context-set-child-context! pc ())
     (tutcode-context-set-child-type! pc ())
     (if (not (null? cpc))
@@ -681,6 +684,7 @@
                  (candstr
                    (case cand
                     ((tutcode-mazegaki-start) "¡þ")
+                    ((tutcode-latin-conv-start) "/")
                     ((tutcode-bushu-start) "¢¡")
                     (else cand))))
                 (set! label-cand-alist
@@ -950,7 +954,11 @@
          (if res
            (case res
             ((tutcode-mazegaki-start)
+              (tutcode-context-set-latin-conv! pc #f)
               (tutcode-context-set-state! pc 'tutcode-state-yomi))
+            ((tutcode-latin-conv-start)
+              (tutcode-context-set-latin-conv! pc #t)
+              (tutcode-context-set-state! pc 'tutcode-state-yomi))
             ((tutcode-bushu-start)
               (tutcode-context-set-state! pc 'tutcode-state-bushu)
               (tutcode-append-string pc "¢¥"))
@@ -1084,6 +1092,8 @@
              (tutcode-begin-conversion pc)
              (tutcode-flush pc))
            (set! res (charcode->string key)))))
+      ((tutcode-context-latin-conv pc)
+       (set! res (charcode->string key)))
       (else
        (set! res (tutcode-push-key! pc (charcode->string key)))
        (if (not res)
@@ -1160,6 +1170,8 @@
        (case res
((tutcode-mazegaki-start) ;XXX Éô¼ó¹çÀ®ÊÑ´¹Ãæ¤Ï¸ò¤¼½ñ¤­ÊÑ´¹¤Ï̵¸ú¤Ë¤¹¤ë
           (set! res #f))
+        ((tutcode-latin-conv-start)
+          (set! res #f))
         ((tutcode-bushu-start) ; ºÆµ¢Åª¤ÊÉô¼ó¹çÀ®ÊÑ´¹
           (tutcode-append-string pc "¢¥")
           (set! res #f))
@@ -1893,7 +1905,7 @@
;;; tutcode-key-custom¤ÇÀßÄꤵ¤ì¤¿¸ò¤¼½ñ¤­/Éô¼ó¹çÀ®ÊÑ´¹³«»Ï¤Î¥­¡¼¥·¡¼¥±¥ó¥¹¤ò
 ;;; ¥³¡¼¥Éɽ¤ËÈ¿±Ç¤¹¤ë
 (define (tutcode-custom-set-mazegaki/bushu-start-sequence!)
-  (let*
+  (let
     ((make-subrule
       (lambda (keyseq cmd)
         (if
@@ -1901,15 +1913,16 @@
             keyseq
             (> (string-length keyseq) 0))
           (let ((keys (reverse (string-to-list keyseq))))
-            (list (list (list keys) cmd)))
-          #f)))
-     (subrule ()))
-    (set! subrule
- (make-subrule tutcode-mazegaki-start-sequence '(tutcode-mazegaki-start)))
-    (set! subrule
-      (append subrule
- (make-subrule tutcode-bushu-start-sequence '(tutcode-bushu-start))))
-    (tutcode-rule-set-sequences! subrule)))
+            (list (list keys) cmd))
+          #f))))
+    (tutcode-rule-set-sequences!
+      (list
+        (make-subrule tutcode-mazegaki-start-sequence
+          '(tutcode-mazegaki-start))
+        (make-subrule tutcode-latin-conv-start-sequence
+          '(tutcode-latin-conv-start))
+        (make-subrule tutcode-bushu-start-sequence
+          '(tutcode-bushu-start))))))

 ;;; ¥³¡¼¥Éɽ¤Î°ìÉô¤ÎÄêµÁ¤ò¾å½ñ¤­Êѹ¹/Äɲ乤롣~/.uim¤«¤é¤Î»ÈÍѤòÁÛÄê¡£
 ;;; ¸Æ¤Ó½Ð¤·»þ¤Ë¤Ïtutcode-rule-userconfig¤ËÅÐÏ¿¤·¤Æ¤ª¤¯¤À¤±¤Ç¡¢

Reply via email to