Add all basic events

This commit is contained in:
David Botton 2022-01-25 22:46:17 -05:00
parent 62c2e07bc9
commit 972d14cd9b
3 changed files with 107 additions and 15 deletions

View file

@ -680,7 +680,7 @@ If ON-FOCUS-OUT-HANDLER is nil unbind the event."))
(defgeneric set-on-reset (clog-obj on-reset-handler) (defgeneric set-on-reset (clog-obj on-reset-handler)
(:documentation "Set the ON-RESET-HANDLER for CLOG-OBJ. If ON-RESET-HANDLER (:documentation "Set the ON-RESET-HANDLER for CLOG-OBJ. If ON-RESET-HANDLER
is nil unbind the event. This event is activated by using reset on a form. If is nil unbind the event. This event is activated by using reset on a form. If
this even is bound, you must call the form reset manually.")) this event is bound, you must call the form reset manually."))
(defmethod set-on-reset ((obj clog-obj) handler) (defmethod set-on-reset ((obj clog-obj) handler)
(set-event obj "reset" (set-event obj "reset"

View file

@ -403,7 +403,99 @@
'((:name "on-click" '((:name "on-click"
:parameters "target") :parameters "target")
(:name "on-focus" (:name "on-focus"
:parameters "target"))) :parameters "target")
(:name "on-blur"
:parameters "target")
(:name "on-change"
:parameters "target")
(:name "on-focus-in"
:parameters "target")
(:name "on-focus-out"
:parameters "target")
(:name "on-reset"
:parameters "target")
(:name "on-search"
:parameters "target")
(:name "on-select"
:parameters "target")
(:name "on-submit"
:parameters "target")
(:name "on-context-menu"
:parameters "target")
(:name "on-double-click"
:parameters "target")
(:name "on-mouse-click"
:parameters "target data")
(:name "on-mouse-double-click"
:parameters "target data")
(:name "on-mouse-right-click"
:parameters "target data")
(:name "on-mouse-enter"
:parameters "target")
(:name "on-mouse-leave"
:parameters "target")
(:name "on-mouse-over"
:parameters "target")
(:name "on-mouse-out"
:parameters "target")
(:name "on-mouse-down"
:parameters "target data")
(:name "on-mouse-up"
:parameters "target data")
(:name "on-mouse-move"
:parameters "target data")
(:name "on-pointer-enter"
:parameters "target")
(:name "on-pointer-leave"
:parameters "target")
(:name "on-pointer-over"
:parameters "target")
(:name "on-pointer-out"
:parameters "target")
(:name "on-pointer-down"
:parameters "target data")
(:name "on-pointer-up"
:parameters "target data")
(:name "on-pointer-move"
:parameters "target data")
(:name "on-touch-start"
:parameters "target data")
(:name "on-touch-move"
:parameters "target data")
(:name "on-touch-end"
:parameters "target data")
(:name "on-touch-cancel"
:parameters "target data")
(:name "on-character"
:parameters "target data")
(:name "on-key-down"
:parameters "target data")
(:name "on-key-up"
:parameters "target data")
(:name "on-key-press"
:parameters "target data")
(:name "on-copy"
:parameters "target")
(:name "on-cut"
:parameters "target")
(:name "on-paste"
:parameters "target")
(:name "on-resize"
:parameters "target")
(:name "on-drag-start"
:parameters "target")
(:name "on-drag"
:parameters "target")
(:name "on-drag-end"
:parameters "target")
(:name "on-drag-enter"
:parameters "target")
(:name "on-drag-leave"
:parameters "target")
(:name "on-drag-over"
:parameters "target")
(:name "on-drop"
:parameters "target data")))
(defparameter *supported-controls* (defparameter *supported-controls*
(list (list

View file

@ -776,17 +776,17 @@ of controls and double click to select control."
html-id html-id
(format nil "CLOG:~A" (type-of control))) (format nil "CLOG:~A" (type-of control)))
vars) vars)
(let ((info (control-info (attribute control "data-clog-type"))) (let ((info (control-info (attribute control "data-clog-type"))))
props)
(dolist (event (getf info :events)) (dolist (event (getf info :events))
(let ((handler (attribute control (format nil "data-~A" (getf event :name))))) (let ((handler (attribute control (format nil "data-~A" (getf event :name)))))
(unless (or (equalp handler "undefined") (unless (or (equalp handler "undefined")
(equal handler "")) (equal handler ""))
(push (format nil (push (format nil
"\(set-~A \(~A panel\) \(lambda \(~A\) ~A\)\)~%" "\(set-~A \(~A panel\) \(lambda \(~A\) \(declare \(ignorable ~A\)\) ~A\)\)~%"
(getf event :name) (getf event :name)
vname vname
(getf event :parameters) (getf event :parameters)
(getf event :parameters)
handler) handler)
events)))))))) events))))))))
(get-control-list app panel-id)) (get-control-list app panel-id))