Changeset main,45 for main/form.lisp
- Timestamp:
- 11/09/2007 12:29:19 AM (19 years ago)
- branch-nick:
- tui-new
- revision id:
- dsowen@fugue88.ws-20071109002919-u3q6f17xwbxvy3b0
- File:
-
- 1 edited
-
main/form.lisp (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
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
Note: See TracChangeset
for help on using the changeset viewer.
