From 896db6fffa29b35bb9bc375f38021d6c9437c847 Mon Sep 17 00:00:00 2001 From: David Botton Date: Thu, 20 Jan 2022 13:51:42 -0500 Subject: [PATCH] Color pickers and better drop down --- tools/clog-builder-settings.lisp | 47 ++++++++++++++++++++++++++------ 1 file changed, 39 insertions(+), 8 deletions(-) diff --git a/tools/clog-builder-settings.lisp b/tools/clog-builder-settings.lisp index 02b68e2..653508b 100644 --- a/tools/clog-builder-settings.lisp +++ b/tools/clog-builder-settings.lisp @@ -28,10 +28,11 @@ (:name "positioning" :setup ,(lambda (control td1 td2) (declare (ignore td1)) - (let ((dd (create-form-element td2 :text :value (positioning control)))) - (make-data-list dd '("absolute" - "static")) - (set-on-blur dd (lambda (obj) + (let ((dd (create-select td2))) + (add-select-options dd '("absolute" + "static")) + (setf (value dd) (positioning control)) + (set-on-change dd (lambda (obj) (declare (ignore obj)) (setf (positioning control) (value dd)) (set-geometry (get-placer control) @@ -54,10 +55,40 @@ :setf clog:value))) (defparameter *props-colors* - '((:name "color" - :style "color") - (:name "background-color" - :style "background-color"))) + `((:name "color" + :setup ,(lambda (control td1 td2) + (declare (ignore td1)) + (let ((d1 (create-form-element td2 :text :value (color control))) + (dd (create-form-element td2 :color :value (color control)))) + (make-data-list dd '("#ffffff" + "#ff0000" + "#00ff00" + "#0000ff" + "#ff00ff")) + (set-on-change dd (lambda (obj) + (declare (ignore obj)) + (setf (value d1) (value dd)) + (setf (color control) (value d1)))) + (set-on-change d1 (lambda (obj) + (declare (ignore obj)) + (setf (color control) (value d1))))))) + (:name "background color" + :setup ,(lambda (control td1 td2) + (declare (ignore td1)) + (let ((d1 (create-form-element td2 :text :value (background-color control))) + (dd (create-form-element td2 :color :value (background-color control)))) + (make-data-list dd '("#ffffff" + "#ff0000" + "#00ff00" + "#0000ff" + "#ff00ff")) + (set-on-change dd (lambda (obj) + (declare (ignore obj)) + (setf (value d1) (value dd)) + (setf (background-color control) (value d1)))) + (set-on-change d1 (lambda (obj) + (declare (ignore obj)) + (setf (background-color control) (value d1))))))))) (defparameter *props-element* `(,@*props-location*