Earlier today I sent out this:
>>>>> "Michael" == Michael D Carney <[EMAIL PROTECTED]> writes:
Michael> When I invoke bbdb vial
Michael> M-x bbdb
Michael> I'd like the matching records to come up on a separate screen, rather
Michael> than splitting the current screen into 2 windows.
Michael> Has anyone written some advice for bbdb that implements this sort of
Michael> functionality?
Michael> Thanks for any info.
Michael> Mike
Well, I did some hacking on another unrelated package that used advice
to do something similar for vm and I came up with the following. It
seems to behave the way I want. To use it, save it to bbdb-screen.el
and byte compile it. Then in your .emacs add
(require 'bbdb-screen)
to your bbdb-load-hook.
>From then on, whenever a bbdb record (or list of records) is
displayed, it will be in its own screen. This includes typing a ':' in
VM or GNUS.
Note that this is for XEmacs only.
Let me know what you think.
8<---------------8<---------------8<---------------8<---------------
;;
;; Author: Michael D. Carney
;; Module: bbdb-screen.el
;; Created: Jan 19, 1995
;; Description:
;;
(require 'advice)
(defvar bbdb-screen-parameter-alist nil
"*Alist of screen parameters used for creating the BBDB screen.")
(defvar bbdb-screen nil)
(defun bbdb-resolve (var arg)
(if (or (and (symbolp var) (fboundp var))
(and (listp var) (eq (car var) 'lambda)))
(funcall var arg)
var))
(defun bbdb-select-screen ()
"Create and/or select and raise the VM screen for the VM folder FOLDER.
Default is the primary inbox."
(interactive)
(let* ((fname (expand-file-name bbdb-file))
(new-screen (not (screen-live-p bbdb-screen))))
(if new-screen
(setq bbdb-screen (make-screen
(append (bbdb-resolve bbdb-screen-parameter-alist
(file-name-nondirectory fname))
(list (cons 'name "BBDB"))))))
(select-screen bbdb-screen)
(make-screen-visible bbdb-screen)
(switch-to-buffer "*BBDB*")
(raise-screen bbdb-screen)
))
(defadvice bbdb-display-records-1 (before
screen-bbdb-activate
first
activate)
"BBDB is started inside its own screen (bbdb-screen)."
(bbdb-select-screen))
(defun bbdb-iconify ()
"Saves the current folder and iconifies the current frame."
(interactive)
;(vm-save-and-expunge-folder)
(bbdb-save-db)
(and (screen-live-p (selected-screen))
(iconify-screen (selected-screen))))
(define-key bbdb-mode-map "q" 'bbdb-iconify)
(setq bbdb-screen-parameter-alist '((width . 83)
(height . 50)
(left . 239)
(top . 38)))
(provide 'bbdb-screen)
;; end bbdb-xtras.el
8<---------------8<---------------8<---------------8<---------------
Mike