X-Git-Url: https://code.consxy.com/gitweb/gitweb.cgi?p=clnl;a=blobdiff_plain;f=src%2Fmain%2Fmodel.lisp;h=83179a0bb4f2e6abaae54724c1287af73e5eeaa9;hp=8aa37159b3e70ddec0cd4b228f264a0eec2f8af7;hb=b4f2bfd8e590105c4ea65e6a5751edf0dc422aa2;hpb=72aabe56a7bfdb598d48c16c5095a0eac2420595 diff --git a/src/main/model.lisp b/src/main/model.lisp index 8aa3715..83179a0 100644 --- a/src/main/model.lisp +++ b/src/main/model.lisp @@ -221,3 +221,31 @@ DESCRIPTION: :xmax (view-max-pxcor view) :ymin (view-min-pycor view) :ymax (view-max-pycor view)))) + +(defun globals (model) + "GLOBALS MODEL => GLOBALS + + GLOBALS: GLOBAL* + +ARGUMENTS AND VALUES: + + MODEL: A valid model + GLOBAL: A symbol interned in clnl:*model-package* + +DESCRIPTION: + + Returns the globals that get declared in the model, from widgets or + from code. They are interned in the package set for clnl, so + that they can later be used by functions in that package." + (mapcar + (lambda (pair) + (list + (intern (string-upcase (car pair)) clnl:*model-package*) + (cadr pair))) + (remove nil + (mapcar + (lambda (widget) + (typecase widget + (slider (list (slider-varname widget) (slider-default widget))) + (switch (list (switch-varname widget) (switch-on widget))))) + (model-interface model)))))