;;; -*- Mode:LISP; Package:USER; Fonts:(MEDFNT MEDFNB); Readtable:CL; Base:10 -*-

(in-package 'user)
(use-package 'obj)

(eval-when(eval compile)
  (mapcar #'unintern '(testthing testthinga)))

(defkind testthing editable-thing)

(defclassvars testthing
  (editlist '((xname "Enter name" :string) (xtype "Type" :choose (a b))))
  (editlabel "Edit test thing"))

(definstancevars testthing
  (xname "<no name>")
  (xtype 'a))

(defobedit testthing)

(defkind testthinga testthing)

(defclassvars testthinga
  (editlist '((xtra "Extra stuff" :string-list :documentation "A string list")))
  (editlabel "Edit test thing a"))

(definstancevars testthinga
  (xtra nil))

(defobedit testthinga)

(defkind testthingb testthing)

(definstancevars testthingb
  (testb nil))

(defclassvars testthingb
  (editlist '((testb "Test b" :sexp))))

(defobedit testthingb)

(defkind testthingc testthinga testthingb)

(defclassvars testthingc editlabel)

(defobedit testthingc)