Hiroyuki Komatsu
komat****@users*****
2005年 3月 30日 (水) 00:56:31 JST
Index: prime/uim/ChangeLog diff -u prime/uim/ChangeLog:1.2.2.2 prime/uim/ChangeLog:1.2.2.3 --- prime/uim/ChangeLog:1.2.2.2 Tue Mar 8 20:51:04 2005 +++ prime/uim/ChangeLog Wed Mar 30 00:56:31 2005 @@ -1,3 +1,14 @@ +2005-03-30 Hiroyuki Komatsu <komat****@taiya*****> + + * Makefile.am: + - Fixed the installation bug that uim files will be installed with + the command 'make install'. + Thanks for the notice from UTUMI Hirosi. + + * prime.scm: + - Allowed to select a candidate with a number key in a segment state. + Thanks for the notice from UTUMI Hirosi. + 2005-03-08 Hiroyuki Komatsu <komat****@taiya*****> * prime.scm: Index: prime/uim/Makefile.am diff -u prime/uim/Makefile.am:1.1.2.3 prime/uim/Makefile.am:1.1.2.4 --- prime/uim/Makefile.am:1.1.2.3 Tue Mar 8 21:39:41 2005 +++ prime/uim/Makefile.am Wed Mar 30 00:56:31 2005 @@ -1,5 +1,5 @@ # Makefile.am: Template of Automake for uim/prime. -# $Id: Makefile.am,v 1.1.2.3 2005/03/08 12:39:41 komatsu Exp $ +# $Id: Makefile.am,v 1.1.2.4 2005/03/29 15:56:31 komatsu Exp $ # # Copyright (C) 2005 Hiroyuki Komatsu <komat****@taiya*****> # All rights reserved. @@ -9,7 +9,7 @@ # the GNU General Public License version 2. -uimscmfilesdir = $(uim_scheme_dir) +uimscmfilesdir = @PRIME_DOC_DIR@/uim uimscmfiles_DATA = prime.scm prime-custom.scm prime-key-custom.scm EXTRA_DIST = ChangeLog $(uimscmfiles_DATA) Index: prime/uim/prime.scm diff -u prime/uim/prime.scm:1.2.2.2 prime/uim/prime.scm:1.2.2.3 --- prime/uim/prime.scm:1.2.2.2 Tue Mar 8 20:51:04 2005 +++ prime/uim/prime.scm Wed Mar 30 00:56:31 2005 @@ -353,6 +353,7 @@ (prime-commit-key? . prime-command-modify-commit) (prime-next-candidate-key? . prime-command-segment-next) (prime-prev-candidate-key? . prime-command-segment-prev) + (prime-cand-select-key? . prime-command-segment-select) (prime-go-left-edge-key? . prime-command-modify-cursor-left-edge) (prime-go-right-edge-key? . prime-command-modify-cursor-right-edge) (prime-go-left-key? . prime-command-modify-cursor-left) @@ -657,6 +658,29 @@ (prime-context-set-nth! context 0) )) +(define prime-candidates-get-nth + (lambda (context index-no) + (if (>= index-no (prime-candidates-get-length context)) + #f + (let ((state (prime-context-state context))) + (if (= state 'prime-state-segment) + (car (nth index-no (prime-context-segment-candidates context))) + (car (nth index-no (prime-context-candidates context)))))))) + +(define prime-candidates-get-length + (lambda (context) + (let ((state (prime-context-state context))) + (if (= state 'prime-state-segment) + (length (prime-context-segment-candidates context)) + (length (prime-context-candidates context)))))) + +(define prime-candidates-get-index + (lambda (context) + (let ((state (prime-context-state context))) + (if (= state 'prime-state-segment) + (prime-context-segment-nth context) + (prime-context-nth context))))) + (define prime-get-nth-candidate (lambda (context n) (if (>= n (prime-get-nr-candidates context)) @@ -735,12 +759,15 @@ ;;;; prime-uim: ;;;; ------------------------------------------------------------ +;; This returns a pair of the beginning index and the end index of displayed +;; candidates. (define prime-uim-candwin-get-range (lambda (context) - (let* ((beginning (* (/ (prime-context-nth context) prime-nr-candidate-max) + (let* ((beginning (* (/ (prime-candidates-get-index context) + prime-nr-candidate-max) prime-nr-candidate-max)) (end (min (+ beginning prime-nr-candidate-max) - (prime-get-nr-candidates context)))) + (prime-candidates-get-length context)))) (cons beginning end)))) ;;;; ------------------------------------------------------------ @@ -1096,11 +1123,24 @@ (let* ((nth0 (number->candidate-index (numeral-char->number key))) (cand-range (prime-uim-candwin-get-range context)) (nth (min (+ (car cand-range) nth0) (cdr cand-range))) - (cand (prime-get-nth-candidate context nth))) + (cand (prime-candidates-get-nth context nth))) (if cand (prime-commit-candidate context nth)) ))) +;; FIXME: Integrate into the above prime-command-conv-select. +;; FIXME: <Hiroyuki Komatsu> (2005-03-30) +(define prime-command-segment-select + (lambda (context key key-state) + (let* ((nth0 (number->candidate-index (numeral-char->number key))) + (cand-range (prime-uim-candwin-get-range context)) + (nth (min (+ (car cand-range) nth0) (cdr cand-range))) + (cand (prime-candidates-get-nth context nth))) + (print cand-range) + (if cand + (prime-commit-segment-nth context nth)) + ))) + (define prime-command-conv-input (lambda (context key key-state) (prime-commit-candidate context (prime-context-nth context))