Hi Jim,
Am 17.04.2012 um 19:18 schrieb Jim Prewett:
Hello,
I've recently stumbled across Cells and it sounds pretty interesting. I'm wondering how to get started learning about how to use Cells. In general, I've got several Lisp projects that could use a GUI and the various Cells-based GUI projects look interesting to me. I think I should probably learn how to use Cells (at some basic level) before trying to dive into one of the GUI packages. Is there a Cells-based GUI package that is currently preferred?
Celtk is running fine here, also Cells-Gtk is still in use AFAIK.
In general, I learn best by first following a simple example, then modifying it to do my bidding. Can someone show me how to get started?
https://github.com/kennytilton/cells/wiki
I'm also wondering if someone can explain the difference between DEFMODEL and DEFMD to me.
defmodel is like defclass - with just a few more slot options to declare a cell. defmd is a convenience macro that helps in writing less boilerplate code:
With defmodel a cellsified class might look like this:
(DEFMODEL CAT (MODEL) ((NAME :INITFORM NIL :INITARG :NAME) (FUR-COLOR :INITFORM NIL :INITARG :FUR-COLOR) (TITLE :INITARG :TITLE :INITFORM (C? (UTILS-KT::CONC$ (^NAME) " with " (^FUR-COLOR) " fur.")))) (:DEFAULT-INITARGS :NAME (C-IN "") :FUR-COLOR (C-IN "black")))
the same could be written as:
(defmd cat () name fur-color (title (c? (utils-kt::conc$ (^name) " with " (^fur-color) " fur."))) :name (c-in "") :fur-color (c-in "black"))
... the above is just part of the macroexpansion of this short form ...
A very short demo with the above:
CL-USER: (defvar *the-cat*) *THE-CAT*
CL-USER: (setq *the-cat* (make-instance 'cat :name (c-in "Susi"))) CAT0
CL-USER: (title *the-cat*) "Susi with black fur."
Thanks so much!, Jim
Hope that helps ;-)
Cheers Frank