[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]

Re: display-time on title bar



From: yagi@xxxxxxxxxxxxxxx <yagi@xxxxxxxxxxxxxxx> さん曰く
Subject: display-time on title bar
Message-ID: <wkk87xv4lw.fsf@xxxxxxxxxxxxxxxxxxxxxx>
Date: 15 Jan 2001 13:09:15 +0900

yagi> 矢木です。

yagi> ふと思い立って、こんなことを .emacs に書いてみたのですが、
yagi> タイトルバーの更新はいつ行われるのでしょうか?

結構以前からやっています。タイトルバーの更新は
modify-frame-parameters() を動かさないとだめだと(前に調べたとき
は)思いました。

yagi> (if (eq window-system 'w32)
yagi>     (let (global-mode-string)
yagi>       (display-time)
yagi>       (if (not (and (listp frame-title-format)
yagi>                     (memq 'display-time-string frame-title-format)))
yagi>           (setq frame-title-format 
yagi>                 (list "" frame-title-format " " 'display-time-string)))
yagi>       ))

今、必要なものをそこいら辺から抜き書きしたので、このままでは不具
合があるかもしれないのですが、こうやって、display-time-hook で
modify-frame-parameters() を動かしてしまっています。buffer が変
わったときは必要ないかな?

(defvar display-time-string-tmp nil)
(add-hook 'display-time-hook 'frame-title-line-updater)
(add-hook 'display-time-hook
	  (lambda ()
	    (setq display-time-string-tmp display-time-string)
	    (setq display-time-string "")) t)

;; ccc.el より
(defvar display-time-string-update
  '(bury-buffer
    delete-frame
    delete-window
    execute-extended-command 
    kill-buffer
    other-window
    overwrite-mode
    pop-to-buffer
    select-frame
    select-window
    switch-to-buffer))

(let ((funcs display-time-string-update))
  (while funcs
    (eval
     (` (defadvice (, (intern (symbol-name (car funcs))))
	  (after change-title activate)
	  (let ((display-time-string display-time-string-tmp))
	    (frame-title-line-updater))
	  )))
    (setq funcs (cdr funcs))))

(defvar frame-title-emacs "Meadow")
(defun frame-title-line-updater ()
  (modify-frame-parameters
   nil
   (list
    (cons 'name
	  (concat
	   (format "%s" frame-title-emacs)
	   ": "
	   (buffer-name)
	   (format " <%s>"
		   display-time-string))))))


# しかも (setq display-time-interval 1) だったりする。^^;

-- 
白井秀行 (mailto:shirai@xxxxxxxxxxxxxxxxxxx)