X-Git-Url: https://code.consxy.com/gitweb/gitweb.cgi?a=blobdiff_plain;f=src%2Fmain%2Fmodel.lisp;h=022a658625af2db43e384fb9c797db9e33a50e26;hb=762ab38881c8870c9a61ca6857a28159f9fef9fc;hp=8aa37159b3e70ddec0cd4b228f264a0eec2f8af7;hpb=72aabe56a7bfdb598d48c16c5095a0eac2420595;p=clnl diff --git a/src/main/model.lisp b/src/main/model.lisp index 8aa3715..022a658 100644 --- a/src/main/model.lisp +++ b/src/main/model.lisp @@ -27,6 +27,7 @@ DESCRIPTION: Returns the default startup model." (make-model + :code "" :interface (list (make-view :min-pxcor -5 :max-pxcor 5 :min-pycor -5 :max-pycor 5)))) @@ -54,7 +55,7 @@ DESCRIPTION: (read-sections (append section (list line)))))))) (read-sections)))) (make-model - :code (nth 0 sections) + :code (format nil "~{~A~^~%~}" (nth 0 sections)) :interface (parse-interface (nth 1 sections)) :info (nth 2 sections) :turtle-shapes (nth 3 sections) @@ -221,3 +222,41 @@ DESCRIPTION: :xmax (view-max-pxcor view) :ymin (view-min-pycor view) :ymax (view-max-pycor view)))) + +(defun widget-globals (model) + "WIDGET-GLOBALS MODEL => GLOBALS + + GLOBALS: GLOBAL* + GLOBAL: (NAME DEFAULT) + +ARGUMENTS AND VALUES: + + MODEL: A valid model + NAME: A symbol interned in the keyworkd package + DEFAULT: The widget default value + +DESCRIPTION: + + Returns the globals that get declared in the model from widgets. + They are interned in the keyword package package set for clnl, so + that they can later be used for multiple purposes." + (remove nil + (mapcar + (lambda (widget) + (typecase widget + (slider (list (intern (string-upcase (slider-varname widget)) :keyword) (slider-default widget))) + (switch (list (intern (string-upcase (switch-varname widget)) :keyword) (switch-on widget))))) + (model-interface model)))) + +(defun code (model) + "CODE MODEL => CODE + +ARGUMENTS AND VALUES: + + MODEL: A valid model + CODE: The string representing the netlogo code in this model + +DESCRIPTION: + + Returns the code from the model." + (model-code model))