Changeset main,45
- Timestamp:
- 11/09/2007 12:29:19 AM (19 years ago)
- branch-nick:
- tui-new
- revision id:
- dsowen@fugue88.ws-20071109002919-u3q6f17xwbxvy3b0
- Location:
- main
- Files:
-
- 4 edited
-
form-test.lisp (modified) (2 diffs)
-
form.lisp (modified) (5 diffs)
-
widget/generic.lisp (modified) (1 diff)
-
widget/label.lisp (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
main/form-test.lisp
r44 r45 7 7 8 8 9 (defform test 10 ((:textbox 0 0 tb0 8) 11 (:textbox 1 0 tb1 8) 12 (:textbox 2 0 tb2 8) 13 (:textbox 3 0 tb3 8) 14 (:textbox 4 0 tb4 8) 15 (:textbox 5 0 tb5 8) 16 (:textbox 6 0 tb6 8) 17 (:textbox 7 0 tb7 8))) 9 (defform test ((:label 0 0 "Family name:") 10 (:textbox 0 13 family-name 16) 11 (:label 1 0 " Given name:") 12 (:textbox 1 13 given-name 16) 13 (:label 2 0 " Age:") 14 (:numberbox 2 13 age 2))) 18 15 19 16 (defclass test () 20 17 ((table :type hash-table :initform (make-hash-table :test #'equal)))) 21 18 22 (defmethod initialize-instance :after ((test test) &key &allow-other-keys)23 (with-slots (table) test24 (setf (gethash 'tb0 table) "Now")25 (setf (gethash 'tb1 table) "is")26 (setf (gethash 'tb2 table) "the")27 (setf (gethash 'tb3 table) "time")28 (setf (gethash 'tb4 table) "for")29 (setf (gethash 'tb5 table) "all")30 (setf (gethash 'tb6 table) "good")31 (setf (gethash 'tb7 table) "men!")))32 19 33 20 … … 39 26 (with-slots (table) test 40 27 (setf (gethash name table) value))) 28 29 41 30 42 31 (defun test () -
main/form.lisp
r44 r45 70 70 (defvar *form-definitions* (make-hash-table :test #'eq )) 71 71 72 (defmacro defform (name (&rest widgets)) 72 (defmacro defform (name (&body widgets)) 73 "Each widget is one of: 74 - (:label row column text) 75 - (:textbox row column name display-width &key data-width read-only) 76 - (:numberbox row column name display-width &key data-width precision read-only)" 73 77 (with-gensyms (elements) 74 78 `(let ((,elements (list ,@(mapcar 'parse-widget-form widgets)))) … … 82 86 (name :initarg :name))) 83 87 88 (defun make-reflector (data name) 89 (make-instance 'reflector :data data :name name)) 90 84 91 (defmethod text ((r reflector)) 85 92 (with-slots (data name) r … … 93 100 94 101 (defgeneric create-peer (widget-def form) 102 (:method ((ld label-def) form) 103 (with-slots (row column text) ld 104 (with-slots (window) form 105 (create-label window row column text)))) 95 106 (:method ((tbd textbox-def) form) 96 107 (with-slots (row column name display-width) tbd 97 108 (with-slots (data window scroll) form 98 (let ((r (make-instance 'reflector :data data :name name))) 99 (create-textbox window (- row scroll) column r display-width)))))) 109 (let ((r (make-reflector data name))) 110 (create-textbox window (- row scroll) column r display-width))))) 111 (:method ((nbd numberbox-def) form) 112 (with-slots (row column name display-width) nbd 113 (with-slots (data window scroll) form 114 (let ((r (make-reflector data name))) 115 (create-numberbox window (- row scroll) column r display-width)))))) 100 116 101 117 … … 108 124 (peers :type vector :initarg :peers) 109 125 (scroll :type (integer 0) :accessor scroll))) 126 127 (defmethod refresh ((form form)) 128 (with-slots (window) form 129 (refresh window))) 110 130 111 131 (defun max-scroll (form) … … 189 209 (loop 190 210 (ensure-widget-visible form focus) 211 (refresh form) 191 212 (let ((key (activate (aref peers focus) #'callback))) 192 213 (case key -
main/widget/generic.lisp
r40 r45 1 1 (defpackage #:tui-widget-generic 2 2 (:use #:cl) 3 (:export #:text #:widget #: scroll #:insertion-point #:destroy #:draw4 #: activate))3 (:export #:text #:widget #:parent-window #:column #:row #:scroll 4 #:insertion-point #:destroy #:draw #:activate)) 5 5 6 6 (in-package #:tui-widget-generic) -
main/widget/label.lisp
r40 r45 19 19 (when raw-text 20 20 (setf text (enquote text))) 21 (make-instance 'label 22 :parent-window parent-window :row row :column column 23 :text text)) 21 (let ((inst (make-instance 'label 22 :parent-window parent-window 23 :row row 24 :column column 25 :text text))) 26 (draw inst) 27 inst)) 24 28 25 29 (defmethod destroy ((label label))) 26 30 27 (defmethod activate ((label label) &optional callback)) 31 (defmethod activate ((label label) &optional callback) 32 #\Tab)
Note: See TracChangeset
for help on using the changeset viewer.
