diff --git a/tools/clog-builder-project-tree.lisp b/tools/clog-builder-project-tree.lisp index d17fa37..0a68b03 100644 --- a/tools/clog-builder-project-tree.lisp +++ b/tools/clog-builder-project-tree.lisp @@ -52,6 +52,7 @@ :class "w3-tiny" :height 27 :top 30 :left 0 :right 0)) (load-btn (create-button panel :content "no project" :style "height:27px;width:72px")) + (load-np (background-color load-btn)) (run-btn (create-button panel :content "run" :style "height:27px;width:67px")) (filter-btn (create-button panel :content "filter" :style "height:27px;width:67px")) (asd-btn (create-button panel :content "asd edit" :style "height:27px;width:67px")) @@ -203,11 +204,14 @@ (project-tree-select obj (format nil "~A" item))) :content (file-namestring item)))))) (load-proj (sel) + (setf (text-value load-btn) "loading") + (setf (background-color load-btn) :yellow) (handler-case (projects-load (format nil "~A/tools" sel)) (error () (projects-load sel))) (setf (text-value load-btn) "loaded") + (setf (background-color load-btn) load-np) (window-focus win)) (on-change (obj) (declare (ignore obj)) @@ -215,14 +219,17 @@ (let* ((sel (value projects))) (setf entry-point "") (cond ((equal sel "") - (setf (text-value load-btn) "no project") + (setf (text-value load-btn) "no project") + (setf (background-color load-btn) load-np) (setf (current-project app) nil)) (t (setf (text-value load-btn) "loading") + (setf (background-color load-btn) :yellow) (let* ((root (quicklisp:where-is-system sel)) (dir (directory-namestring (uiop:truename* root)))) (cond (root (setf (text-value load-btn) "not loaded") + (setf (background-color load-btn) :tomato) (setf (current-project app) sel) (create-clog-tree tree :fill-function (lambda (obj) @@ -272,25 +279,20 @@ (set-on-mouse-leave menu (lambda (obj) (destroy obj)))))) (let ((already (asdf:already-loaded-systems))) (if (member sel already :test #'equalp) - (setf (text-value load-btn) "loaded") - (let* ((*default-title-class* *builder-title-class*) - (*default-border-class* *builder-border-class*)) - (setf (text-value load-btn) "loading") - (let* ((*default-title-class* *builder-title-class*) - (*default-border-class* *builder-border-class*)) - (confirm-dialog win "Load project?" - (lambda (answer) - (if answer - (load-proj sel) - (setf (text-value load-btn) "not loaded"))) - :title "System not loaded"))))) + (progn + (setf (text-value load-btn) "loaded") + (setf (background-color load-btn) load-np)) + (progn + (setf (text-value load-btn) "not loaded") + (setf (background-color load-btn) :tomato)))) (setf entry-point (format nil "(~A)" (or (asdf/system:component-entry-point (asdf:find-system sel)) "")))) (t (setf entry-point "") (setf (current-project app) nil) - (setf (text-value load-btn) "no project")))))))) + (setf (text-value load-btn) "no project") + (setf (background-color load-btn) :load-np)))))))) (fill-projects () (setf (text projects) "") (dolist (n (sort (quicklisp:list-local-systems) #'string-lessp)) @@ -302,7 +304,8 @@ (declare (ignore obj)) (cond ((equalp (text-value load-btn) "loaded") (asdf:clear-system (value projects)) - (setf (text-value load-btn) "not loaded")) + (setf (text-value load-btn) "not loaded") + (setf (background-color load-btn) :tomato)) ((equalp (text-value load-btn) "not loaded") (load-proj (value projects)))))) (set-on-click refresh-btn (lambda (obj)