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¤ËÅÐÏ¿¤·¤Æ¤ª¤¯¤À¤±¤Ç¡¢