diff --git a/source/clog-base.lisp b/source/clog-base.lisp index 7740e27..baf9b95 100644 --- a/source/clog-base.lisp +++ b/source/clog-base.lisp @@ -180,8 +180,8 @@ result or if time out DEFAULT-ANSWER (Private)")) ;;;;;;;;;;;;;;;;;;;;;;; (defparameter mouse-event-script - "+ (e.clientX - e.currentTarget.getBoundingClientRect().left + e.currentTarget.scrollLeft) + ':' + - (e.clientY - e.currentTarget.getBoundingClientRect().top + e.currentTarget.scrollTop) + ':' + + "+ (e.clientX - e.currentTarget.getBoundingClientRect().left + e.currentTarget.scrollLeft) + ':' + + (e.clientY - e.currentTarget.getBoundingClientRect().top + e.currentTarget.scrollTop) + ':' + e.screenX + ':' + e.screenY + ':' + e.which + ':' + e.altKey + ':' + e.ctrlKey + ':' + e.shiftKey + ':' + e.metaKey + ':' + e.clientX + ':' + e.clientY + ':' + e.pageX + ':' + e.pageY" @@ -216,10 +216,10 @@ result or if time out DEFAULT-ANSWER (Private)")) (defparameter touch-event-script "+ (e.touches[0].clientX - e.touches[0].currentTarget.getBoundingClientRect().left + - e.touches[0].currentTarget.scrollLeft) + ':' + + e.touches[0].currentTarget.scrollLeft) + ':' + (e.touches[0].clientY - e.touches[0].currentTarget.getBoundingClientRect().top + - e.touches[0].currentTarget.scrollTop) + ':' + + e.touches[0].currentTarget.scrollTop) + ':' + e.touches[0].screenX + ':' + e.touches[0].screenY + ':' + e.touches.length + ':' + e.altKey + ':' + e.ctrlKey + ':' + @@ -252,8 +252,8 @@ result or if time out DEFAULT-ANSWER (Private)")) ;;;;;;;;;;;;;;;;;;;;;;;;; (defparameter pointer-event-script - "+ (e.clientX - e.currentTarget.getBoundingClientRect().left + e.currentTarget.scrollLeft) + ':' + - (e.clientY - e.currentTarget.getBoundingClientRect().top + e.currentTarget.scrollTop) + ':' + + "+ (e.clientX - e.currentTarget.getBoundingClientRect().left + e.currentTarget.scrollLeft) + ':' + + (e.clientY - e.currentTarget.getBoundingClientRect().top + e.currentTarget.scrollTop) + ':' + e.screenX + ':' + e.screenY + ':' + e.which + ':' + e.altKey + ':' + e.ctrlKey + ':' + e.shiftKey + ':' + e.metaKey + ':' + e.clientX + ':' + e.clientY + ':' + e.pageX + ':' + e.pageY" @@ -306,7 +306,7 @@ result or if time out DEFAULT-ANSWER (Private)")) ;;;;;;;;;;;;;;;;;;;;;; (defparameter drop-event-script - "+ (e.clientX - e.currentTarget.getBoundingClientRect().left + e.currentTarget.scrollLeft) + ':' + + "+ (e.clientX - e.currentTarget.getBoundingClientRect().left + e.currentTarget.scrollLeft) + ':' + (e.clientY - e.currentTarget.getBoundingClientRect().top + e.currentTarget.scrollTop) + ':' + e.which + ':' + e.altKey + ':' + e.ctrlKey + ':' + e.shiftKey + ':' + e.metaKey + ':' + encodeURIComponent(e.originalEvent.dataTransfer.getData('~A'))" @@ -680,7 +680,7 @@ If ON-FOCUS-OUT-HANDLER is nil unbind the event.")) (defgeneric set-on-reset (clog-obj 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 -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) (set-event obj "reset" @@ -1133,7 +1133,7 @@ If ON-KEY-DOWN-HANDLER is nil unbind the event.")) (funcall handler obj (parse-keyboard-event data)))) :one-time one-time :cancel-event disable-default - :call-back-script keyboard-event-script)) + :call-back-script keyboard-event-script)) ;;;;;;;;;;;;;;;;;;; ;; set-on-key-up ;; @@ -1149,7 +1149,7 @@ ON-KEY-UP-HANDLER is nil unbind the event.")) (lambda (data) (funcall handler obj (parse-keyboard-event data)))) :one-time one-time - :call-back-script keyboard-event-script)) + :call-back-script keyboard-event-script)) ;;;;;;;;;;;;;;;;;;;;;; ;; set-on-key-press ;; diff --git a/tools/clog-builder-settings.lisp b/tools/clog-builder-settings.lisp index 6a84c82..ebf6532 100644 --- a/tools/clog-builder-settings.lisp +++ b/tools/clog-builder-settings.lisp @@ -403,7 +403,99 @@ '((:name "on-click" :parameters "target") (: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* (list diff --git a/tools/clog-builder.lisp b/tools/clog-builder.lisp index 9a4418d..d75fbe2 100644 --- a/tools/clog-builder.lisp +++ b/tools/clog-builder.lisp @@ -360,7 +360,7 @@ not a temporary attached one when using select-control." events) (dolist (event (reverse (getf info :events))) (let ((attr (format nil "data-~A" (getf event :name)))) - (push `(,(getf event :name) ,(attribute control attr) ,(getf event :parameters) + (push `(,(getf event :name) ,(attribute control attr) ,(getf event :parameters) ,(getf event :setup) ,(lambda (obj) (let ((txt (text obj))) @@ -776,17 +776,17 @@ of controls and double click to select control." html-id (format nil "CLOG:~A" (type-of control))) vars) - (let ((info (control-info (attribute control "data-clog-type"))) - props) + (let ((info (control-info (attribute control "data-clog-type")))) (dolist (event (getf info :events)) (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\) ~A\)\)~%" + "\(set-~A \(~A panel\) \(lambda \(~A\) \(declare \(ignorable ~A\)\) ~A\)\)~%" (getf event :name) vname (getf event :parameters) + (getf event :parameters) handler) events)))))))) (get-control-list app panel-id))