diff --git a/source/clog-base.lisp b/source/clog-base.lisp index 20faa63..9c65df6 100644 --- a/source/clog-base.lisp +++ b/source/clog-base.lisp @@ -625,10 +625,11 @@ option passed from javascript calling the jQuery custom event mechanism (defgeneric set-on-resize (clog-obj on-resize-handler) (:documentation "Set the ON-RESIZE-HANDLER for CLOG-OBJ. If ON-RESIZE-HANDLER is nil unbind the event. In most modern browser this only works on the clog-window -object")) +object. One can set-on-resize and then re-trigger this event on any clog-obj +using (jquery-trigger obj \"resize\").")) (defmethod set-on-resize ((obj clog-obj) handler) - (set-on-event obj "resize" handler)) + (set-on-event obj "resize" handler :cancel-event t)) ;;;;;;;;;;;;;;;;;; ;; set-on-focus ;; diff --git a/source/clog-jquery.lisp b/source/clog-jquery.lisp index b27f54f..55247ed 100644 --- a/source/clog-jquery.lisp +++ b/source/clog-jquery.lisp @@ -70,3 +70,14 @@ result or DEFAULT-ANSWER on time out.")) (defmethod jquery-query ((obj clog-obj) method &key (default-answer nil)) (js-query obj (format nil "~A.~A" (jquery obj) method) :default-answer default-answer)) + +;;;;;;;;;;;;;;;;;;;; +;; jquery-trigger ;; +;;;;;;;;;;;;;;;;;;;; + +(defgeneric jquery-trigger (clog-obj event) +(:documentation "Trigger EVENT on CLOG-OBJ. Result is discarded, +returns CLOG-OBJ.")) + +(defmethod jquery-trigger ((obj clog-obj) event) + (js-execute obj (format nil "~A.trigger('~A')" (jquery obj) event))) diff --git a/source/clog.lisp b/source/clog.lisp index 718d233..fec98b6 100644 --- a/source/clog.lisp +++ b/source/clog.lisp @@ -413,7 +413,8 @@ embedded in a native template application.)" "CLOG-jQuery methods" (jquery generic-function) (jquery-execute generic-function) - (jquery-query generic-function)) + (jquery-query generic-function) + (jquery-trigger generic-function)) (defsection @clog-element-common (:title "Common CLOG Elements") "CLOG-A - Class for CLOG Anchors" diff --git a/tools/clog-builder-render.lisp b/tools/clog-builder-render.lisp index 1d7946e..b8a9575 100644 --- a/tools/clog-builder-render.lisp +++ b/tools/clog-builder-render.lisp @@ -111,14 +111,25 @@ handler) events)))))) ;; Set on-create (from user in builder) and on-setup (from control-record) - (let ((handler (attribute control "data-on-create"))) + (let ((resizeh (attribute control "data-on-resize")) + (handler (attribute control "data-on-create"))) (when (equalp handler "undefined") (setf handler "")) + (when (equalp resizeh "undefined") + (setf resizeh "")) (when (getf control-record :on-setup) (setf handler (format nil "~A~A" (funcall (getf control-record :on-setup) control control-record) handler))) + (unless (equal resizeh "") + (push (format nil + " \(set-on-resize \(window \(connection-body panel\)\) + \(lambda \(obj\) + \(declare \(ignore obj\)\) + \(jquery-trigger \(~A panel\) \"resize\"\)\)\)" + vname) + creates)) (unless (equal handler "") (push (format nil " \(let \(\(target \(~A panel\)\)\) ~ diff --git a/tools/clog-builder-settings-controls.lisp b/tools/clog-builder-settings-controls.lisp index b743315..615fbdb 100644 --- a/tools/clog-builder-settings-controls.lisp +++ b/tools/clog-builder-settings-controls.lisp @@ -1052,7 +1052,7 @@ :properties (,@*props-grid* ,@*props-element*)) `(:name "flex-row" - :description "Row Align" + :description "Flex Row Align Container" :clog-type clog:clog-div :create clog:create-div :create-type :element @@ -1066,7 +1066,7 @@ :properties (,@*props-flex* ,@*props-element*)) `(:name "flex-row-rev" - :description "Row Reverse Align" + :description "Flex Row Reverse Align Container" :clog-type clog:clog-div :create clog:create-div :create-type :element @@ -1080,7 +1080,7 @@ :properties (,@*props-flex* ,@*props-element*)) `(:name "flex-col" - :description "Column Align" + :description "Flex Column Align Container" :clog-type clog:clog-div :create clog:create-div :create-type :element @@ -1094,7 +1094,7 @@ :properties (,@*props-flex* ,@*props-element*)) `(:name "flex-col-rev" - :description "Column Reverse Align" + :description "Flow Column Reverse Align Container" :clog-type clog:clog-div :create clog:create-div :create-type :element @@ -1108,7 +1108,7 @@ :properties (,@*props-flex* ,@*props-element*)) `(:name "flex-center" - :description "Center Align" + :description "Flow Center Align Container" :clog-type clog:clog-div :create clog:create-div :create-type :element