From 9b4ed6f74e441cba7081418b3ded77a1f90b9f67 Mon Sep 17 00:00:00 2001 From: David Botton Date: Thu, 17 Feb 2022 15:08:09 -0500 Subject: [PATCH] on-create event --- tools/clog-builder-settings.lisp | 4 +++- tools/clog-builder.lisp | 25 +++++++++++++++++-------- 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/tools/clog-builder-settings.lisp b/tools/clog-builder-settings.lisp index 75c81ed..e07912e 100644 --- a/tools/clog-builder-settings.lisp +++ b/tools/clog-builder-settings.lisp @@ -472,7 +472,9 @@ :parameters "target"))) (defparameter *events-element* - '((:name "on-click" + '((:name "on-create" + :parameters "target") + (:name "on-click" :parameters "target") (:name "on-focus" :parameters "target") diff --git a/tools/clog-builder.lisp b/tools/clog-builder.lisp index 02cf072..ac56d98 100644 --- a/tools/clog-builder.lisp +++ b/tools/clog-builder.lisp @@ -553,14 +553,23 @@ not a temporary attached one when using select-control." (let ((handler (attribute control (format nil "data-~A" (getf event :name))))) (unless (or (equalp handler "undefined") (equal handler "")) - (push (format nil - " \(set-~A \(~A panel\) \(lambda \(~A\) \(declare \(ignorable ~A\)\) ~A\)\)~%" - (getf event :name) - vname - (getf event :parameters) - (getf event :parameters) - handler) - events)))))))) + (unless (equalp (getf event :name) "on-create") + (push (format nil + " \(set-~A \(~A panel\) \(lambda \(~A\) \(declare \(ignorable ~A\)\) ~A\)\)~%" + (getf event :name) + vname + (getf event :parameters) + (getf event :parameters) + handler) + events)))))) + (let ((handler (attribute control "data-on-create"))) + (unless (or (equalp handler "undefined") + (equal handler "")) + (push (format nil + " \(let \(\(target \(~A panel\)\)\) \(declare \(ignorable target\)\) ~A\)~%" + vname + handler) + events)))))) (get-control-list app panel-id)) (let ((result (format nil "\(in-package \"~A\"\)