Update of /project/climacs/cvsroot/climacs In directory common-lisp.net:/tmp/cvs-serv19337
Modified Files: gui.lisp packages.lisp syntax.lisp Log Message: Implemented page-down (C-v).
Date: Sat Jan 1 11:06:22 2005 Author: rstrandh
Index: climacs/gui.lisp diff -u climacs/gui.lisp:1.38 climacs/gui.lisp:1.39 --- climacs/gui.lisp:1.38 Sat Jan 1 10:34:25 2005 +++ climacs/gui.lisp Sat Jan 1 11:06:21 2005 @@ -390,6 +390,10 @@ (define-named-command com-beginning-of-buffer () (beginning-of-buffer (point (win *application-frame*))))
+(define-named-command com-page-down () + (let ((pane (win *application-frame*))) + (page-down pane (syntax pane)))) + (define-named-command com-end-of-buffer () (end-of-buffer (point (win *application-frame*))))
@@ -503,6 +507,7 @@ (global-set-key '(#\x :meta) 'com-extended-command) (global-set-key '(#\y :meta) 'com-kr-rotate) ;currently rotates only (global-set-key '(#\w :meta) 'com-copy-out) +(global-set-key '(#\v :control) 'com-page-down) (global-set-key '(#< :shift :meta) 'com-beginning-of-buffer) (global-set-key '(#> :shift :meta) 'com-end-of-buffer) (global-set-key '(#\u :meta) 'com-browse-url)
Index: climacs/packages.lisp diff -u climacs/packages.lisp:1.17 climacs/packages.lisp:1.18 --- climacs/packages.lisp:1.17 Sat Jan 1 10:34:25 2005 +++ climacs/packages.lisp Sat Jan 1 11:06:21 2005 @@ -60,6 +60,7 @@ (:use :clim-lisp :clim :climacs-buffer :climacs-base :flexichain) (:export #:syntax #:basic-syntax #:texinfo-syntax #:redisplay-pane #:redisplay-with-syntax #:full-redisplay + #:page-down #:url))
(defpackage :climacs-kill-ring
Index: climacs/syntax.lisp diff -u climacs/syntax.lisp:1.14 climacs/syntax.lisp:1.15 --- climacs/syntax.lisp:1.14 Sat Jan 1 10:34:25 2005 +++ climacs/syntax.lisp Sat Jan 1 11:06:21 2005 @@ -199,6 +199,7 @@ (declare (ignore x y w)) (let ((nb-lines-in-pane (max 1 (floor h (+ height (stream-vertical-spacing pane))))) (nb-lines-on-display (1+ (number-of-lines-in-region top bot)))) + (format *query-io* "~a ~a~%" (offset top) (offset bot)) ;; adjust the region on display to fit the pane (loop repeat (- nb-lines-on-display nb-lines-in-pane) do (beginning-of-line bot) @@ -226,6 +227,14 @@ do (incf (offset bot)) (end-of-line bot))))))))
+(defun page-down (pane syntax) + (position-window pane syntax) + (with-slots (top bot cache) syntax + (when (mark> (size (buffer bot)) bot) + (setf (offset top) (offset bot)) + (beginning-of-line top) + (setf (offset (point pane)) (offset top)) + (setf cache nil))))
;;; this one should not be necessary. (defun round-up (x)