diff --git a/tools/clog-builder-probe.lisp b/tools/clog-builder-probe.lisp index 4e1bcaa..e6a6c1b 100644 --- a/tools/clog-builder-probe.lisp +++ b/tools/clog-builder-probe.lisp @@ -40,9 +40,26 @@ :width 300 :has-pinner t :keep-on-top t - :client-movement *client-side-movement*))) - (create-div (window-content win) :style "left:0px;right:0px" :class "w3-tiny w3-center" - :content "use CLOG-TOOL:CLOG-BUILDER-PROBE to add probes") + :client-movement *client-side-movement*)) + (npanel (create-div (window-content win) :class "w3-small")) + (evaltxt (create-form-element npanel :text)) + (pac-line (create-form-element npanel :text :value "clog-user"))) + (setf (positioning evaltxt) :absolute) + (setf (positioning pac-line) :absolute) + (setf (height npanel) "57px") + (set-geometry evaltxt :height 27 :width "100%" :top 0 :left 0 :right 0) + (set-geometry pac-line :height 27 :width "100%" :top 27 :left 0 :right 0) + (setf (place-holder evaltxt) "Enter a form to evaluate to a probe") + (set-on-change evaltxt (lambda (obj) + (declare (ignore obj)) + (let ((txt (text-value evaltxt))) + (when (not (equal txt "")) + (let* ((*package* (find-package (string-upcase (text-value pac-line)))) + (aprobe (format nil "(clog-builder-probe ~A :title \"~A\")" + txt txt))) + (eval (read-from-string aprobe))))))) + (create-div (window-content win) :class "w3-tiny w3-center" + :content "or use CLOG-TOOL:CLOG-BUILDER-PROBE to add probes") (setf (probe-win app) win) (set-geometry win :top (menu-bar-height win) :left 0 :height "" :bottom 5 :right "") (set-on-window-move win (lambda (obj) diff --git a/tools/clog-builder-scope.lisp b/tools/clog-builder-scope.lisp index 011a764..17e2be1 100644 --- a/tools/clog-builder-scope.lisp +++ b/tools/clog-builder-scope.lisp @@ -10,11 +10,12 @@ :keep-on-top t :client-movement *client-side-movement*)) (root-obj (create-form-element (window-content win) :text)) + (pac-line (create-form-element (window-content win) :text :value "clog-user")) class (tree (create-panel (window-content win) :class "w3-small" :overflow :scroll - :top 30 :bottom 0 :left 0 :right 0))) + :top 60 :bottom 0 :left 0 :right 0))) (set-on-click (create-span (window-icon-area win) :content (format nil "~A " (code-char #x26F6)) :auto-place :top) @@ -29,11 +30,15 @@ (set-on-window-move win (lambda (obj) (setf (width obj) (width obj)) (setf (height obj) (height obj)))))) - (if title - (setf (text-value root-obj) title) - (setf (text-value root-obj) (format nil "~a" object))) + (setf (place-holder root-obj) "Enter a form to evaluate") + (when object + (if title + (setf (text-value root-obj) title) + (setf (text-value root-obj) (format nil "~a" object)))) (setf (positioning root-obj) :absolute) + (setf (positioning pac-line) :absolute) (set-geometry root-obj :height 27 :width "100%" :top 0 :left 0 :right 0) + (set-geometry pac-line :height 27 :width "100%" :top 27 :left 0 :right 0) (labels ((escape-lisp (object) (let ((value (format nil "~A" object))) (setf value (ppcre:regex-replace-all "<" value "<")) @@ -150,13 +155,12 @@ :on-context-menu (lambda (obj) (on-new-sys-browser obj :search (get-name (closer-mop:slot-definition-name slot)))) - :fill-function (lambda (obj) - (let* ((object (slot-value object (closer-mop:slot-definition-name slot))) - (class (class-of object))) - (add-class obj class object))) :content (format nil "~A Object Value = ~A" (get-name (closer-mop:slot-definition-name slot)) (escape-lisp (slot-value object (closer-mop:slot-definition-name slot))))))) + (let* ((object (slot-value object (closer-mop:slot-definition-name slot))) + (class (class-of object))) + (add-class sltt class object)) (create-clog-tree-item (tree-root sltt) :content (format nil "slot-definition-initargs = ~A" (escape-lisp (closer-mop:slot-definition-initargs slot)))) @@ -186,5 +190,7 @@ (add-class tree class object))) (set-on-change root-obj (lambda (obj) (declare (ignore obj)) - (on-change (eval (read-from-string (text-value root-obj)))))) - (on-change object)))) \ No newline at end of file + (on-change (let ((*package* (find-package (string-upcase (text-value pac-line))))) + (eval (read-from-string (text-value root-obj))))))) + (when object + (on-change object))))) \ No newline at end of file