[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [XWEM]: registers
From: |
Zajcev Evgeny |
Subject: |
Re: [XWEM]: registers |
Date: |
Sun, 28 Nov 2004 02:59:59 +0300 |
User-agent: |
Gnus/5.1002 (Gnus v5.10.2) XEmacs/21.4 (Reasonable Discussion, berkeley-unix) |
Steve Youngs <address@hidden> writes:
> Is there any way to start an xwem client and assign it to a register
> automatically?
>
> Currently I start...
>
> Mozilla and H-x / m
> Gnus and H-x / g
> BitchX and H-x / b
>
> and put x (H-x / x) on my main XEmacs frame
>
> I have to do it manually, can it be automated?
Here is example how it can be done:
;; Atomatically put new client in register
(defvar my-xwem-autoregister-alist
'((?x (application "xemacs"))
(?m (application "mozilla"))))
(defun my-xwem-autoregister-client (cl)
(let ((r (car (xwem-manda-find-match-1 cl my-xwem-autoregister-alist
'cdr))))
(when (and r (not (xwem-register-get r)))
(xwem-register-set r (list 'XWEM-CLIENT cl)))))
(add-hook 'xwem-cl-create-hook 'my-xwem-autoregister-client)
Another advantage you probably would like is to show client's register
in tab, here it is:
;; Show register(if any) in client's tab
(defun my-xwem-check-register (cl)
"Return xwem register where CL stored.
If no register return \"-\"."
(let ((rs xwem-registers))
(while (and rs
(or (not (eq (cadr (car rs)) 'XWEM-CLIENT))
(not (eq (caddr (car rs)) cl))))
(setq rs (cdr rs)))
(if rs
(char-to-string (car (car rs)))
"")))
(defadvice xwem-register-client (around call-client-change activate)
"Call client change hook."
(let ((rval (xwem-register-get (event-key (ad-get-arg 0)))))
ad-do-it
(when (and (xwem-cl-p rval)
(not (eq rval (xwem-cl-selected))))
(run-hook-with-args 'xwem-cl-change-hook rval))
(run-hook-with-args 'xwem-cl-change-hook (xwem-cl-selected))))
;; Additional tabber face, will be used in `xwem-tab-default-format'
(define-xwem-face xwem-tabber-face1
`(((frame-selected tab-selected)
(:foreground "red" :bold t))
((frame-selected tab-nonselected)
(:foreground "red2"))
((frame-nonselected tab-selected)
(:foreground "red3" :bold t))
((frame-nonselected tab-nonselected)
(:foreground "red4"))
(t (:foreground "red")))
"Additional face for tabber.")
(setq xwem-tab-default-format " %i %*%#%I%1%{(my-xwem-check-register
cl)%}%0 %n")
Thanks!
--
lg