Goal: Introduce and demonstrate Clouseau, mainly from a user's perspective.
Wikipedia entry for "Inspector Window" (emphasis mine)
The graphical control element inspector window is a type of dialog window that shows a list of the current attributes of a selected object and allows these parameters to be changed on the fly.
For "Inspector" instead of "Inspector Window", I would amend:
Source: http://www.ifis.uni-luebeck.de/~moeller/symbolics-info/development-environment/index.html
cl:inspect
* (inspect climi::*all-ports*) The object is a CONS. 0. CAR: #<MCCLIM-TRUETYPE::CLX-TTF-PORT :HOST "" :DISPLAY-ID 1 {1006ED6E13}> 1. CDR: NIL > 0 The object is a STANDARD-OBJECT of type MCCLIM-TRUETYPE::CLX-TTF-PORT. 0. SERVER-PATH: (:CLX-TTF :HOST "" :DISPLAY-ID 1 :SCREEN-ID 0 :PROTOCOL :LOCAL) 1. PROPERTIES: NIL 2. GRAFTS: (#<CLIM-CLX:CLX-GRAFT {100AE29743}>) 3. FRAME-MANAGERS: (#<CLIM-CLX::CLX-FRAME-MANAGER {1006EDC6C3}>) 4. SHEET->MIRROR: #<HASH-TABLE :TEST EQ :COUNT 1 {1004EC7283}> 5. MIRROR->SHEET: #<HASH-TABLE :TEST EQ :COUNT 1 {1004EC7313}> 6. PIXMAP->MIRROR: #<HASH-TABLE :TEST EQ :COUNT 0 {1004EC73A3}> 7. MIRROR->PIXMAP: #<HASH-TABLE :TEST EQ :COUNT 0 {1004EC7433}> 8. EVENT-PROCESS: #<SB-THREAD:THREAD "#<MCCLIM-TRUETYPE::CLX-TTF-PORT :HOST \"\" :DIS… 9. LOCK: #<SB-THREAD:MUTEX "port lock" (free)> 10. TEXT-STYLE-MAPPINGS: #<HASH-TABLE :TEST EQ :COUNT 4 {1004EC74E3}> 11. POINTER-SHEET: #<CLIM-CLX::CLX-784-TOP-LEVEL-SHEET-PANE CLOUSEAU:INSPECTOR {100B7… 12. GRABBED-SHEET: NIL 13. MIRRORED-SHEET->CURRENT-POINTER-CURSOR: #<HASH-TABLE :TEST EQ :COUNT 0 {1004EC757… 14. SELECTIONS: #<HASH-TABLE :TEST EQL :COUNT 0 {1004EC7603}> ⋮
More details in Apps/Clouseau/DESIGN.org
.
Documentation https://common-lisp.net/project/mcclim/static/manual/mcclim.html#Inspector
(defvar *inspector* (nth-value 1 (clouseau:inspect #C(1 2) :new-process t))) (loop :for i :from 0 :to (* 2 pi) :by .1 :do (setf (clouseau:root-object *inspector* :run-hook-p t) (complex (cos i) (sin i))) (sleep .1))
(defmethod clouseau:inspect-object-using-state ((object asdf:system) (state clouseau:inspected-instance) (style (eql :expanded-body)) (stream clim:extended-output-stream)) (clim:format-graph-from-root object (lambda (node stream) (clouseau:formatting-place (object 'clouseau:pseudo-place node nil present) (present stream))) (lambda (object) (map 'list #'asdf:find-system (remove-if-not #'atom (asdf:system-depends-on object)))) :stream stream :merge-duplicates t :maximize-generations t) (call-next-method))
More details in https://common-lisp.net/project/mcclim/static/manual/mcclim.html#Extending-Clouseau
Disadvantages compared to SLIME's Inspector
Future Work
Thank you for your attention!
#clim
on freenodeClouseau