Changeset main,43
- Timestamp:
- 11/08/2007 07:13:21 PM (19 years ago)
- branch-nick:
- tui-new
- revision id:
- dsowen@fugue88.ws-20071108191321-hjhsnqe3pkp72kl8
- Location:
- main
- Files:
-
- 2 edited
-
form-test.lisp (modified) (1 diff)
-
form.lisp (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
main/form-test.lisp
r42 r43 46 46 (unwind-protect 47 47 (progn 48 (setf (scroll form) 4) 48 49 (tui-input:read-key w)) 49 50 (destroy-form form)))))) -
main/form.lisp
r42 r43 3 3 (defpackage #:tui-form 4 4 (:use #:cl #:dso-util #:tui-input #:tui-widget #:tui-window) 5 (:export #:form-value #:defform #:create-form #:destroy-form ))5 (:export #:form-value #:defform #:create-form #:destroy-form #:scroll)) 6 6 7 7 (in-package #:tui-form) … … 94 94 (:method ((tbd textbox-def) form) 95 95 (with-slots (row column name display-width) tbd 96 (with-slots (data window ) form96 (with-slots (data window scroll) form 97 97 (let ((r (make-instance 'reflector :data data :name name))) 98 (create-textbox window rowcolumn r display-width))))))98 (create-textbox window (- row scroll) column r display-width)))))) 99 99 100 100 … … 112 112 (let ((lowest (reduce #'max (map 'list #'slot-value widget-defs (inflist 'row)))) 113 113 (max (1- (size window)))) 114 (m in0 (- lowest max)))))114 (max 0 (- lowest max))))) 115 115 116 116 (defun percent-scroll (form) … … 123 123 (setf widget (aref widgets widget))) 124 124 (with-slots (row) widget 125 (<= scroll row(1- (size window))))))125 (<= 0 (- row scroll) (1- (size window)))))) 126 126 127 127 (defmethod (setf scroll) :around (i (form form)) 128 (with-slots (widget-defs peers) form128 (with-slots (widget-defs window peers) form 129 129 (let ((r (call-next-method (bound i 0 (max-scroll form)) form))) 130 130 (dotimes (i (length widget-defs)) 131 (let ((widget (aref widget-defs i)) 132 (peer (aref peers i))) 133 (when (and peer (not (widget-visible-p form widget))) 131 (let ((peer (aref peers i))) 132 (when peer 134 133 (destroy peer) 135 (setf (aref peers i) nil)) 136 (when (and (not peer) (widget-visible-p form widget)) 137 (setf (aref peers i) (create-peer widget form))))) 134 (setf (aref peers i) nil)))) 135 (erase window) 136 (dotimes (i (length widget-defs)) 137 (let ((widget-def (aref widget-defs i))) 138 (when (widget-visible-p form widget-def) 139 (setf (aref peers i) (create-peer widget-def form))))) 138 140 r))) 139 141
Note: See TracChangeset
for help on using the changeset viewer.
