;;; gnus-win.el --- window configuration functions for Gnus
-;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc.
+
+;; Copyright (C) 1996-2011 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
;; This file is part of GNU Emacs.
-;; GNU Emacs is free software; you can redistribute it and/or modify
+;; GNU Emacs is free software: you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 2, or (at your option)
-;; any later version.
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING. If not, write to the
-;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
+;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
;;; Commentary:
(eval-when-compile (require 'cl))
(require 'gnus)
+(require 'gnus-util)
(defgroup gnus-windows nil
"Window configuration."
:group 'gnus-windows
:type 'boolean)
-(defvar gnus-window-configuration nil
- "Obsolete variable. See `gnus-buffer-configuration'.")
-
(defcustom gnus-window-min-width 2
"*Minimum width of Gnus buffers."
:group 'gnus-windows
:group 'gnus-windows
:type 'boolean)
+(defcustom gnus-use-frames-on-any-display nil
+ "*If non-nil, frames on all displays will be considered usable by Gnus.
+When nil, only frames on the same display as the selected frame will be
+used to display Gnus windows."
+ :version "22.1"
+ :group 'gnus-windows
+ :type 'boolean)
+
(defvar gnus-buffer-configuration
'((group
(vertical 1.0
- (group 1.0 point)
- (if gnus-carpal '(group-carpal 4))))
+ (group 1.0 point)))
(summary
(vertical 1.0
- (summary 1.0 point)
- (if gnus-carpal '(summary-carpal 4))))
+ (summary 1.0 point)))
(article
(cond
- ((and gnus-use-picons
- (eq gnus-picons-display-where 'picons))
- '(frame 1.0
- (vertical 1.0
- (summary 0.25 point)
- (if gnus-carpal '(summary-carpal 4))
- (article 1.0))
- (vertical ((height . 5) (width . 15)
- (user-position . t)
- (left . -1) (top . 1))
- (picons 1.0))))
(gnus-use-trees
'(vertical 1.0
(summary 0.25 point)
(article 1.0)))
(t
'(vertical 1.0
- (summary 0.25 point)
- (if gnus-carpal '(summary-carpal 4))
- (article 1.0)))))
+ (summary 0.25 point)
+ (article 1.0)))))
(server
(vertical 1.0
- (server 1.0 point)
- (if gnus-carpal '(server-carpal 2))))
+ (server 1.0 point)))
(browse
(vertical 1.0
- (browse 1.0 point)
- (if gnus-carpal '(browse-carpal 2))))
+ (browse 1.0 point)))
(message
(vertical 1.0
(message 1.0 point)))
(vertical 1.0
(summary 0.25)
(faq 1.0 point)))
+ (only-article
+ (vertical 1.0
+ (article 1.0 point)))
(edit-article
(vertical 1.0
(article 1.0 point)))
(vertical 1.0
(summary 0.25)
(edit-score 1.0 point)))
+ (edit-server
+ (vertical 1.0
+ (server 0.5)
+ (edit-form 1.0 point)))
(post
(vertical 1.0
(post 1.0 point)))
(reply
(vertical 1.0
- (article-copy 0.5)
+ (article 0.5)
(message 1.0 point)))
(forward
(vertical 1.0
(pipe
(vertical 1.0
(summary 0.25 point)
- (if gnus-carpal '(summary-carpal 4))
("*Shell Command Output*" 1.0)))
(bug
(vertical 1.0
- ("*Gnus Help Bug*" 0.5)
+ (if gnus-bug-create-help-buffer '("*Gnus Help Bug*" 0.5))
("*Gnus Bug*" 1.0 point)))
(score-trace
(vertical 1.0
(compose-bounce
(vertical 1.0
(article 0.5)
- (message 1.0 point))))
+ (message 1.0 point)))
+ (display-term
+ (vertical 1.0
+ ("*display*" 1.0)))
+ (mml-preview
+ (vertical 1.0
+ (message 0.5)
+ (mml-preview 1.0 point))))
"Window configuration for all possible Gnus buffers.
See the Gnus manual for an explanation of the syntax used.")
(edit-group . gnus-group-edit-buffer)
(edit-form . gnus-edit-form-buffer)
(edit-server . gnus-server-edit-buffer)
- (group-carpal . gnus-carpal-group-buffer)
- (summary-carpal . gnus-carpal-summary-buffer)
- (server-carpal . gnus-carpal-server-buffer)
- (browse-carpal . gnus-carpal-browse-buffer)
(edit-score . gnus-score-edit-buffer)
(message . gnus-message-buffer)
(mail . gnus-message-buffer)
(post-news . gnus-message-buffer)
(faq . gnus-faq-buffer)
- (picons . gnus-picons-buffer-name)
(tree . gnus-tree-buffer)
(score-trace . "*Score Trace*")
(split-trace . "*Split Trace*")
(info . gnus-info-buffer)
(category . gnus-category-buffer)
(article-copy . gnus-article-copy)
- (draft . gnus-draft-buffer))
+ (draft . gnus-draft-buffer)
+ (mml-preview . mml-preview-buffer))
"Mapping from short symbols to buffer names or buffer variables.")
+(defcustom gnus-configure-windows-hook nil
+ "*A hook called when configuring windows."
+ :version "22.1"
+ :group 'gnus-windows
+ :type 'hook)
+
;;; Internal variables.
(defvar gnus-current-window-configuration nil
(delete-frame (car gnus-created-frames))))
(pop gnus-created-frames)))
-(defun gnus-window-configuration-element (list)
- (while (and list
- (not (assq (car list) gnus-window-configuration)))
- (pop list))
- (cadr (assq (car list) gnus-window-configuration)))
-
-(defun gnus-windows-old-to-new (setting)
- ;; First we take care of the really, really old Gnus 3 actions.
- (when (symbolp setting)
- (setq setting
- ;; Take care of ooold GNUS 3.x values.
- (cond ((eq setting 'SelectArticle) 'article)
- ((memq setting '(SelectNewsgroup SelectSubject ExpandSubject))
- 'summary)
- ((memq setting '(ExitNewsgroup)) 'group)
- (t setting))))
- (if (or (listp setting)
- (not (and gnus-window-configuration
- (memq setting '(group summary article)))))
- setting
- (let* ((elem
- (cond
- ((eq setting 'group)
- (gnus-window-configuration-element
- '(group newsgroups ExitNewsgroup)))
- ((eq setting 'summary)
- (gnus-window-configuration-element
- '(summary SelectNewsgroup SelectSubject ExpandSubject)))
- ((eq setting 'article)
- (gnus-window-configuration-element
- '(article Sele