mirror of
https://github.com/rabbibotton/clog.git
synced 2025-12-06 02:30:42 -08:00
Window close and window menu improvements
This commit is contained in:
parent
84559b57c5
commit
43c4f7adf8
3 changed files with 31 additions and 12 deletions
|
|
@ -516,11 +516,7 @@ on-window-resize-done at end of resize."))
|
||||||
(set-on-click (closer win) (lambda (obj)
|
(set-on-click (closer win) (lambda (obj)
|
||||||
(declare (ignore obj))
|
(declare (ignore obj))
|
||||||
(when (fire-on-window-can-close win)
|
(when (fire-on-window-can-close win)
|
||||||
(remhash (format nil "~A" html-id)
|
(window-close win))))
|
||||||
(windows app))
|
|
||||||
(remove-from-dom win)
|
|
||||||
(fire-on-window-change nil app)
|
|
||||||
(fire-on-window-close win))))
|
|
||||||
(cond (client-movement
|
(cond (client-movement
|
||||||
(jquery-execute win
|
(jquery-execute win
|
||||||
(format nil "draggable({handle:'#~A-title-bar'})" html-id))
|
(format nil "draggable({handle:'#~A-title-bar'})" html-id))
|
||||||
|
|
@ -594,6 +590,21 @@ on-window-resize-done at end of resize."))
|
||||||
(setf (z-index obj) (incf (last-z app)))
|
(setf (z-index obj) (incf (last-z app)))
|
||||||
(fire-on-window-change obj app)))
|
(fire-on-window-change obj app)))
|
||||||
|
|
||||||
|
;;;;;;;;;;;;;;;;;;
|
||||||
|
;; window-close ;;
|
||||||
|
;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
|
(defgeneric window-close (clog-gui-window)
|
||||||
|
(:documentation "Close CLOG-GUI-WINDOW. on-window-can-close is not called."))
|
||||||
|
|
||||||
|
(defmethod window-close ((obj clog-gui-window))
|
||||||
|
(let ((app (connection-data-item obj "clog-gui")))
|
||||||
|
(remhash (format nil "~A" (html-id obj)) (windows app))
|
||||||
|
(remove-from-dom (window-select-item obj))
|
||||||
|
(remove-from-dom obj)
|
||||||
|
(fire-on-window-change nil app)
|
||||||
|
(fire-on-window-close obj)))
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;
|
||||||
;; window-maximize ;;
|
;; window-maximize ;;
|
||||||
;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
@ -613,14 +624,15 @@ on-window-resize-done at end of resize."))
|
||||||
(setf (left obj) (unit :px 0))
|
(setf (left obj) (unit :px 0))
|
||||||
(setf (width obj) (unit :vw 100))
|
(setf (width obj) (unit :vw 100))
|
||||||
(setf (height obj)
|
(setf (height obj)
|
||||||
(- (inner-height (window (body app))) menu-bar-height)))))
|
(- (inner-height (window (body app))) menu-bar-height))
|
||||||
|
(fire-on-window-size-done obj))))
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;; window-normalize ;;
|
;; window-normalize ;;
|
||||||
;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
(defgeneric window-normalize (clog-gui-window)
|
(defgeneric window-normalize (clog-gui-window)
|
||||||
(:documentation "Set CLOG-GUI-WINDOW as maximize window."))
|
(:documentation "Set CLOG-GUI-WINDOW as normalized window."))
|
||||||
|
|
||||||
(defmethod window-normalize ((obj clog-gui-window))
|
(defmethod window-normalize ((obj clog-gui-window))
|
||||||
(window-focus obj)
|
(window-focus obj)
|
||||||
|
|
@ -629,14 +641,15 @@ on-window-resize-done at end of resize."))
|
||||||
(setf (height obj) (last-height obj))
|
(setf (height obj) (last-height obj))
|
||||||
(setf (top obj) (last-y obj))
|
(setf (top obj) (last-y obj))
|
||||||
(setf (left obj) (last-x obj))
|
(setf (left obj) (last-x obj))
|
||||||
(setf (last-width obj) nil)))
|
(setf (last-width obj) nil)
|
||||||
|
(fire-on-window-size-done obj)))
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;; window-toggle-maximize ;;
|
;; window-toggle-maximize ;;
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
(defgeneric window-toggle-maximize (clog-gui-window)
|
(defgeneric window-toggle-maximize (clog-gui-window)
|
||||||
(:documentation "Set CLOG-GUI-WINDOW as maximize window."))
|
(:documentation "Toggle CLOG-GUI-WINDOW as maximize window."))
|
||||||
|
|
||||||
(defmethod window-toggle-maximize ((obj clog-gui-window))
|
(defmethod window-toggle-maximize ((obj clog-gui-window))
|
||||||
(let ((app (connection-data-item obj "clog-gui")))
|
(let ((app (connection-data-item obj "clog-gui")))
|
||||||
|
|
@ -656,8 +669,8 @@ on-window-resize-done at end of resize."))
|
||||||
(setf (left obj) (unit :px 0))
|
(setf (left obj) (unit :px 0))
|
||||||
(setf (width obj) (unit :vw 100))
|
(setf (width obj) (unit :vw 100))
|
||||||
(setf (height obj)
|
(setf (height obj)
|
||||||
(- (inner-height (window (body app))) menu-bar-height))))))
|
(- (inner-height (window (body app))) menu-bar-height))))
|
||||||
|
(fire-on-window-size-done obj)))
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;; set-on-window-can-close ;;
|
;; set-on-window-can-close ;;
|
||||||
|
|
|
||||||
|
|
@ -676,6 +676,7 @@ embedded in a native template application.)"
|
||||||
(window-title generic-function)
|
(window-title generic-function)
|
||||||
(window-content generic-function)
|
(window-content generic-function)
|
||||||
(window-focus generic-function)
|
(window-focus generic-function)
|
||||||
|
(window-close generic-function)
|
||||||
(window-maximize generic-function)
|
(window-maximize generic-function)
|
||||||
(window-normalize generic-function)
|
(window-normalize generic-function)
|
||||||
(window-toggle-maximize generic-function)
|
(window-toggle-maximize generic-function)
|
||||||
|
|
|
||||||
|
|
@ -42,7 +42,7 @@
|
||||||
(ok (create-button form :content "OK")))
|
(ok (create-button form :content "OK")))
|
||||||
(set-on-click ok (lambda (obj)
|
(set-on-click ok (lambda (obj)
|
||||||
(declare (ignore obj))
|
(declare (ignore obj))
|
||||||
(remove-from-dom win)
|
(window-close win)
|
||||||
(funcall on-file-name (value input))))))
|
(funcall on-file-name (value input))))))
|
||||||
|
|
||||||
(defun capture-eval (form)
|
(defun capture-eval (form)
|
||||||
|
|
@ -63,6 +63,9 @@
|
||||||
(set-on-window-size win (lambda (obj)
|
(set-on-window-size win (lambda (obj)
|
||||||
(js-execute obj
|
(js-execute obj
|
||||||
(format nil "editor_~A.resize()" (html-id win)))))
|
(format nil "editor_~A.resize()" (html-id win)))))
|
||||||
|
(set-on-window-size-done win (lambda (obj)
|
||||||
|
(js-execute obj
|
||||||
|
(format nil "editor_~A.resize()" (html-id win)))))
|
||||||
(create-child win
|
(create-child win
|
||||||
(format nil
|
(format nil
|
||||||
"<script>
|
"<script>
|
||||||
|
|
@ -174,6 +177,7 @@
|
||||||
(file (create-gui-menu-drop-down menu :content "File"))
|
(file (create-gui-menu-drop-down menu :content "File"))
|
||||||
(edit (create-gui-menu-drop-down menu :content "Edit"))
|
(edit (create-gui-menu-drop-down menu :content "Edit"))
|
||||||
(lisp (create-gui-menu-drop-down menu :content "Lisp"))
|
(lisp (create-gui-menu-drop-down menu :content "Lisp"))
|
||||||
|
(wind (create-gui-menu-drop-down menu :content "Window"))
|
||||||
(help (create-gui-menu-drop-down menu :content "Help")))
|
(help (create-gui-menu-drop-down menu :content "Help")))
|
||||||
(declare (ignore icon))
|
(declare (ignore icon))
|
||||||
(create-gui-menu-item file :content "New" :on-click #'do-ide-file-new)
|
(create-gui-menu-item file :content "New" :on-click #'do-ide-file-new)
|
||||||
|
|
@ -184,6 +188,7 @@
|
||||||
(create-gui-menu-item edit :content "Cut" :on-click #'do-ide-edit-cut)
|
(create-gui-menu-item edit :content "Cut" :on-click #'do-ide-edit-cut)
|
||||||
(create-gui-menu-item edit :content "Paste" :on-click #'do-ide-edit-paste)
|
(create-gui-menu-item edit :content "Paste" :on-click #'do-ide-edit-paste)
|
||||||
(create-gui-menu-item lisp :content "Eval File" :on-click #'do-ide-lisp-eval-file)
|
(create-gui-menu-item lisp :content "Eval File" :on-click #'do-ide-lisp-eval-file)
|
||||||
|
(create-gui-menu-window-select wind)
|
||||||
(create-gui-menu-item help :content "About" :on-click #'do-ide-help-about)
|
(create-gui-menu-item help :content "About" :on-click #'do-ide-help-about)
|
||||||
(create-gui-menu-full-screen menu))
|
(create-gui-menu-full-screen menu))
|
||||||
(run body))
|
(run body))
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue