|
Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
;; This file:
;; http://angg.twu.net/elisp/frames.el.html
;; http://angg.twu.net/elisp/frames.el
;; (find-angg "elisp/frames.el")
;; Author: Eduardo Ochs <eduardoochs@gmail.com>
;; Version: 2021nov15
;;
;; (defun e () (interactive) (find-angg "elisp/frames.el"))
;; https://lists.gnu.org/archive/html/eev/2021-10/msg00000.html
;; https://lists.gnu.org/archive/html/eev/2021-11/msg00016.html
;; (load (buffer-file-name))
;; (find-elnode "Creating Frames")
;; (find-elgrep "grep --color=auto -nH --null -e make-frame *.el */*.el")
;; (find-elnode "Parameter Access")
;; (find-elnode "Frame Titles")
;; (find-elnode "Raising and Lowering")
;;
;; (make-frame '((title . "Foo")))
;; (make-frame '((title . "Bar")))
;; (frame-list)
;; (nth 0 (frame-list))
;; (frame-parameter (nth 0 (frame-list)) 'title)
;; (frame-parameter (nth 1 (frame-list)) 'title)
;; (find-epp (frame-parameters (nth 0 (frame-list))))
;; (find-epp (frame-parameters (nth 1 (frame-list))))
;; 2021dec17:
(defun ee-first-frame-with-title (title)
"Return the first frame with title TITLE or nil if none exists."
(let ((frameswiththattitle
(cl-loop for frame in (frame-list)
if (equal title (frame-parameter frame 'title))
collect frame)))
(car frameswiththattitle)))
(defun ee-select-frame (title)
"Like `select-frame-set-input-focus', but on a frame with title TITLE.
Use the first frame with that title if several exist. If there isn't a
frame with that title, create one."
(let ((frame (ee-first-frame-with-title title)))
(if frame
(select-frame-set-input-focus frame)
(let ((newframe (make-frame `((title . ,title)))))
(select-frame-set-input-focus newframe)))))
(defun find-wset-F () (ee-select-frame (car sexps)) (setq sexps (cdr sexps)))
;; (find-clnode "Loop Facility")
;; (find-clnode "Loop Examples")
;; (find-clnode "Other Clauses" "if CONDITION CLAUSE")
(defun ee-frames-with-title (title)
(cl-loop for fr in (frame-list)
if (equal title (frame-parameter fr 'title))
collect fr))
(defun ee-frame-with-title (title)
(car (ee-frames-with-title title)))
;; (make-frame '((title . "Foo")))
;; (ee-frames-with-title "Foo")
;; (ee-frame-with-title "Foo")
;; (ee-frames-with-title "SpXlY")
;; (ee-frame-with-title "SpXlY")
;; (find-elnode "Input Focus")
;; (find-elnode "Input Focus" "Function: select-frame-set-input-focus")
;; (ee-use-frame "Foo")
;; (ee-use-frame "Bar")
;;
(defun ee-use-frame (title)
(let ((fr (ee-frame-with-title title)))
(if fr
(select-frame-set-input-focus fr)
(let ((newfr (make-frame `((title . ,title)))))
(select-frame-set-input-focus newfr)))))
;; (find-multiwindow-intro)
;; (find-multiwindow-intro "2. `find-wset'")
;; (find-multiwindow-intro "8. Adding support for new characters in `find-wset'")
;; (find-efunction 'find-wset-o)
(defun find-wset-F () (ee-use-frame (car sexps)) (setq sexps (cdr sexps)))
;; (find-wset "13o_" '(find-ebuffer "Fff"))
;; (find-wset "F_" "Foo" '(find-ebuffer "Fff"))
;; (find-wset "F_" "Bar" '(find-ebuffer "Bbb"))