;;; -*- Mode:LISP; Package:USER; Fonts:(MEDFNT MEDFNB); Readtable:CL; Base:10 -*- (in-package 'user) (use-package 'obj) ;;; Test cases (eval-when (eval compile) (mapcar #'unintern '(*high-class* *low-class* *low-class2* *low-class3* *low-class3a* *low-class3b*))) (defkind *high-class* editable-thing) (definstancevars *high-class* (name "") (type 'high-class)) (defclassvars *high-class* (editlist '((name "Name" :string)(type "Type" :choose (a b)))) (editlabel "Edit high-class thing")) (defobedit *high-class*) (defkind *low-class* *high-class*) (definstancevars *low-class* nicknames) (defclassvars *low-class* (editlist '((nicknames "Nicknames" :string-list)))) (defobedit *low-class*) (defkind *low-class2* *high-class*) (definstancevars *low-class2* truenames) (defclassvars *low-class2* (editlist '((truenames "True names" :string-list))) (editlabel "Edit low-class type 2 object")) (defobedit *low-class2*) (defkind *low-class3* *high-class*) (definstancevars *low-class3* mynames) (defclassvars *low-class3* (editlist '((name "Class 3 name" :string) (mynames "My names" :string-list))) (editlabel "Edit low-class type 3 object")) (defobedit *low-class3*) (defkind *low-class3a* *low-class3*) (definstancevars *low-class3a* (myvar "myvar")) (defkind *low-class3b* *low-class3a*) (defclassvars *low-class3b* (editlist '((myvar "My var" :string)))) (defobedit *low-class3b*)