Index: main/form-test.lisp
===================================================================
--- main/form-test.lisp	(revision main,42)
+++ main/form-test.lisp	(revision main,42)
@@ -0,0 +1,49 @@
+(defpackage #:tui-form-test
+  (:use #:cl #:tui-form #:tui-window)
+  (:export #:test))
+
+(in-package #:tui-form-test)
+
+
+
+(defform test
+    ((:textbox 0 0 tb0 8)
+     (:textbox 1 0 tb1 8)
+     (:textbox 2 0 tb2 8)
+     (:textbox 3 0 tb3 8)
+     (:textbox 4 0 tb4 8)
+     (:textbox 5 0 tb5 8)
+     (:textbox 6 0 tb6 8)
+     (:textbox 7 0 tb7 8)))
+
+(defclass test ()
+  ((table :type hash-table :initform (make-hash-table :test #'equal))))
+
+(defmethod initialize-instance :after ((test test) &key &allow-other-keys)
+  (with-slots (table) test
+    (setf (gethash 'tb0 table) "Now")
+    (setf (gethash 'tb1 table) "is")
+    (setf (gethash 'tb2 table) "the")
+    (setf (gethash 'tb3 table) "time")
+    (setf (gethash 'tb4 table) "for")
+    (setf (gethash 'tb5 table) "all")
+    (setf (gethash 'tb6 table) "good")
+    (setf (gethash 'tb7 table) "men!")))
+
+
+(defmethod form-value ((test test) name)
+  (with-slots (table) test
+    (gethash name table)))
+
+(defmethod (setf form-value) (value (test test) name)
+  (with-slots (table) test
+    (setf (gethash name table) value)))
+
+(defun test ()
+  (with-screen (s)
+    (with-subwindow (w s 5 80 0 0)
+      (let ((form (create-form 'test (make-instance 'test) w)))
+        (unwind-protect
+             (progn
+               (tui-input:read-key w))
+          (destroy-form form))))))
