From da9ad8c83c80cfccde0c57a19efe62e67162ef17 Mon Sep 17 00:00:00 2001 From: David Botton Date: Wed, 27 Mar 2024 17:15:38 -0400 Subject: [PATCH] move builder external api to another file --- clog.asd | 1 + tools/clog-builder-api.lisp | 45 +++++++++++++++++++++++++++++++++++++ tools/clog-builder.lisp | 43 ----------------------------------- 3 files changed, 46 insertions(+), 43 deletions(-) create mode 100644 tools/clog-builder-api.lisp diff --git a/clog.asd b/clog.asd index 5607b8e..dc190a8 100644 --- a/clog.asd +++ b/clog.asd @@ -74,6 +74,7 @@ :components (;; clog-db-admin app (:file "clog-db-admin") ;; clog-builder code + (:file "clog-builder-api") (:file "clog-builder-settings") (:file "clog-builder-settings-controls") (:file "clog-builder") diff --git a/tools/clog-builder-api.lisp b/tools/clog-builder-api.lisp new file mode 100644 index 0000000..78e6931 --- /dev/null +++ b/tools/clog-builder-api.lisp @@ -0,0 +1,45 @@ +(in-package :clog-tools) + +;; Control Record Utilities / Plugin API for controls + +(defun control-info (control-type-name) + "Return the control-record for CONTROL-TYPE-NAME from supported controls. (Exported)" + (if (equal control-type-name "clog-data") + `(:name "clog-data" + :description "Panel Properties" + :events nil + :properties ((:name "panel name" + :attr "data-clog-name") + (:name "in-package" + :attr "data-in-package") + (:name "custom slots" + :attr "data-custom-slots") + (:name "width" + :get ,(lambda (control) (width control)) + :setup :read-only) + (:name "height" + :setup :read-only + :get ,(lambda (control) (height control))))) + (find-if (lambda (x) (equal (getf x :name) control-type-name)) *supported-controls*))) + +(defun add-supported-controls (control-records) + "Add a list of control-records to builder's supported controls. If control exists it is +replaced. (Exported)" + (dolist (r control-records) + (setf *supported-controls* + (append (remove-if (lambda (x) + (unless (equalp (getf x :name) "group") + (equal (getf x :name) (getf r :name)))) + *supported-controls*) + (list r))))) + +(defun reset-control-pallete (panel) + (let* ((app (connection-data-item panel "builder-app-data")) + (pallete (select-tool app))) + (when pallete + (setf (inner-html pallete) "") + (dolist (control *supported-controls*) + (if (equal (getf control :name) "group") + (add-select-optgroup pallete (getf control :description)) + (add-select-option pallete (getf control :name) (getf control :description))))))) + diff --git a/tools/clog-builder.lisp b/tools/clog-builder.lisp index 49a399a..ffedb14 100644 --- a/tools/clog-builder.lisp +++ b/tools/clog-builder.lisp @@ -8,49 +8,6 @@ (in-package :clog-tools) -;; Control Record Utilities / Plugin API for controls - -(defun control-info (control-type-name) - "Return the control-record for CONTROL-TYPE-NAME from supported controls. (Exported)" - (if (equal control-type-name "clog-data") - `(:name "clog-data" - :description "Panel Properties" - :events nil - :properties ((:name "panel name" - :attr "data-clog-name") - (:name "in-package" - :attr "data-in-package") - (:name "custom slots" - :attr "data-custom-slots") - (:name "width" - :get ,(lambda (control) (width control)) - :setup :read-only) - (:name "height" - :setup :read-only - :get ,(lambda (control) (height control))))) - (find-if (lambda (x) (equal (getf x :name) control-type-name)) *supported-controls*))) - -(defun add-supported-controls (control-records) - "Add a list of control-records to builder's supported controls. If control exists it is -replaced. (Exported)" - (dolist (r control-records) - (setf *supported-controls* - (append (remove-if (lambda (x) - (unless (equalp (getf x :name) "group") - (equal (getf x :name) (getf r :name)))) - *supported-controls*) - (list r))))) - -(defun reset-control-pallete (panel) - (let* ((app (connection-data-item panel "builder-app-data")) - (pallete (select-tool app))) - (when pallete - (setf (inner-html pallete) "") - (dolist (control *supported-controls*) - (if (equal (getf control :name) "group") - (add-select-optgroup pallete (getf control :description)) - (add-select-option pallete (getf control :name) (getf control :description))))))) - ;; Global Internal Config (defparameter *app-mode* nil