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)
|
||||
(declare (ignore obj))
|
||||
(when (fire-on-window-can-close win)
|
||||
(remhash (format nil "~A" html-id)
|
||||
(windows app))
|
||||
(remove-from-dom win)
|
||||
(fire-on-window-change nil app)
|
||||
(fire-on-window-close win))))
|
||||
(window-close win))))
|
||||
(cond (client-movement
|
||||
(jquery-execute win
|
||||
(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)))
|
||||
(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 ;;
|
||||
;;;;;;;;;;;;;;;;;;;;;
|
||||
|
|
@ -613,14 +624,15 @@ on-window-resize-done at end of resize."))
|
|||
(setf (left obj) (unit :px 0))
|
||||
(setf (width obj) (unit :vw 100))
|
||||
(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 ;;
|
||||
;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(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))
|
||||
(window-focus obj)
|
||||
|
|
@ -629,14 +641,15 @@ on-window-resize-done at end of resize."))
|
|||
(setf (height obj) (last-height obj))
|
||||
(setf (top obj) (last-y 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 ;;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(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))
|
||||
(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 (width obj) (unit :vw 100))
|
||||
(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 ;;
|
||||
|
|
|
|||
|
|
@ -676,6 +676,7 @@ embedded in a native template application.)"
|
|||
(window-title generic-function)
|
||||
(window-content generic-function)
|
||||
(window-focus generic-function)
|
||||
(window-close generic-function)
|
||||
(window-maximize generic-function)
|
||||
(window-normalize generic-function)
|
||||
(window-toggle-maximize generic-function)
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@
|
|||
(ok (create-button form :content "OK")))
|
||||
(set-on-click ok (lambda (obj)
|
||||
(declare (ignore obj))
|
||||
(remove-from-dom win)
|
||||
(window-close win)
|
||||
(funcall on-file-name (value input))))))
|
||||
|
||||
(defun capture-eval (form)
|
||||
|
|
@ -63,6 +63,9 @@
|
|||
(set-on-window-size win (lambda (obj)
|
||||
(js-execute obj
|
||||
(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
|
||||
(format nil
|
||||
"<script>
|
||||
|
|
@ -174,6 +177,7 @@
|
|||
(file (create-gui-menu-drop-down menu :content "File"))
|
||||
(edit (create-gui-menu-drop-down menu :content "Edit"))
|
||||
(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")))
|
||||
(declare (ignore icon))
|
||||
(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 "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-window-select wind)
|
||||
(create-gui-menu-item help :content "About" :on-click #'do-ide-help-about)
|
||||
(create-gui-menu-full-screen menu))
|
||||
(run body))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue