comparison lisp/gnus/gnus-salt.el @ 167:85ec50267440 r20-3b10

Import from CVS: tag r20-3b10
author cvs
date Mon, 13 Aug 2007 09:45:46 +0200
parents 43dd3413c7c7
children 8eaf7971accc
comparison
equal deleted inserted replaced
166:7a77eb660975 167:85ec50267440
32 ;;; 32 ;;;
33 33
34 (defvar gnus-pick-mode nil 34 (defvar gnus-pick-mode nil
35 "Minor mode for providing a pick-and-read interface in Gnus summary buffers.") 35 "Minor mode for providing a pick-and-read interface in Gnus summary buffers.")
36 36
37 (defvar gnus-pick-display-summary nil 37 (defcustom gnus-pick-display-summary nil
38 "*Display summary while reading.") 38 "*Display summary while reading."
39 39 :type 'boolean
40 (defvar gnus-pick-mode-hook nil 40 :group 'gnus-summary-pick)
41 "Hook run in summary pick mode buffers.") 41
42 42 (defcustom gnus-pick-mode-hook nil
43 (defvar gnus-mark-unpicked-articles-as-read nil 43 "Hook run in summary pick mode buffers."
44 "*If non-nil, mark all unpicked articles as read.") 44 :type 'hook
45 45 :group 'gnus-summary-pick)
46 (defvar gnus-pick-elegant-flow t 46
47 "If non-nil, gnus-pick-start-reading will run gnus-summary-next-group when no articles have been picked.") 47 (defcustom gnus-mark-unpicked-articles-as-read nil
48 48 "*If non-nil, mark all unpicked articles as read."
49 (defvar gnus-summary-pick-line-format 49 :type 'boolean
50 :group 'gnus-summary-pick)
51
52 (defcustom gnus-pick-elegant-flow t
53 "If non-nil, gnus-pick-start-reading will run gnus-summary-next-group when no articles have been picked."
54 :type 'boolean
55 :group 'gnus-summary-pick)
56
57 (defcustom gnus-summary-pick-line-format
50 "%-5P %U\%R\%z\%I\%(%[%4L: %-20,20n%]%) %s\n" 58 "%-5P %U\%R\%z\%I\%(%[%4L: %-20,20n%]%) %s\n"
51 "*The format specification of the lines in pick buffers. 59 "*The format specification of the lines in pick buffers.
52 It accepts the same format specs that `gnus-summary-line-format' does.") 60 It accepts the same format specs that `gnus-summary-line-format' does."
61 :type 'string
62 :group 'gnus-summary-pick)
53 63
54 ;;; Internal variables. 64 ;;; Internal variables.
55 65
56 (defvar gnus-pick-mode-map nil) 66 (defvar gnus-pick-mode-map nil)
57 67
348 358
349 ;;; 359 ;;;
350 ;;; gnus-tree-mode 360 ;;; gnus-tree-mode
351 ;;; 361 ;;;
352 362
353 (defvar gnus-tree-line-format "%(%[%3,3n%]%)" 363 (defcustom gnus-tree-line-format "%(%[%3,3n%]%)"
354 "Format of tree elements.") 364 "Format of tree elements."
355 365 :type 'string
356 (defvar gnus-tree-minimize-window t 366 :group 'gnus-summary-tree)
367
368 (defcustom gnus-tree-minimize-window t
357 "If non-nil, minimize the tree buffer window. 369 "If non-nil, minimize the tree buffer window.
358 If a number, never let the tree buffer grow taller than that number of 370 If a number, never let the tree buffer grow taller than that number of
359 lines.") 371 lines."
360 372 :type 'boolean
361 (defvar gnus-selected-tree-face 'modeline 373 :group 'gnus-summary-tree)
362 "*Face used for highlighting selected articles in the thread tree.") 374
375 (defcustom gnus-selected-tree-face 'modeline
376 "*Face used for highlighting selected articles in the thread tree."
377 :type 'face
378 :group 'gnus-summary-tree)
363 379
364 (defvar gnus-tree-brackets '((?\[ . ?\]) (?\( . ?\)) 380 (defvar gnus-tree-brackets '((?\[ . ?\]) (?\( . ?\))
365 (?\{ . ?\}) (?< . ?>)) 381 (?\{ . ?\}) (?< . ?>))
366 "Brackets used in tree nodes.") 382 "Brackets used in tree nodes.")
367 383
368 (defvar gnus-tree-parent-child-edges '(?- ?\\ ?|) 384 (defvar gnus-tree-parent-child-edges '(?- ?\\ ?|)
369 "Characters used to connect parents with children.") 385 "Characters used to connect parents with children.")
370 386
371 (defvar gnus-tree-mode-line-format "Gnus: %%b %S %Z" 387 (defcustom gnus-tree-mode-line-format "Gnus: %%b %S %Z"
372 "*The format specification for the tree mode line.") 388 "*The format specification for the tree mode line."
373 389 :type 'string
374 (defvar gnus-generate-tree-function 'gnus-generate-vertical-tree 390 :group 'gnus-summary-tree)
391
392 (defcustom gnus-generate-tree-function 'gnus-generate-vertical-tree
375 "*Function for generating a thread tree. 393 "*Function for generating a thread tree.
376 Two predefined functions are available: 394 Two predefined functions are available:
377 `gnus-generate-horizontal-tree' and `gnus-generate-vertical-tree'.") 395 `gnus-generate-horizontal-tree' and `gnus-generate-vertical-tree'."
378 396 :type '(radio (function-item gnus-generate-vertical-tree)
379 (defvar gnus-tree-mode-hook nil 397 (function-item gnus-generate-horizontal-tree)
380 "*Hook run in tree mode buffers.") 398 (function :tag "Other" nil))
399 :group 'gnus-summary-tree)
400
401 (defcustom gnus-tree-mode-hook nil
402 "*Hook run in tree mode buffers."
403 :type 'hook
404 :group 'gnus-summary-tree)
381 405
382 ;;; Internal variables. 406 ;;; Internal variables.
383 407
384 (defvar gnus-tree-line-format-alist 408 (defvar gnus-tree-line-format-alist
385 `((?n gnus-tmp-name ?s) 409 `((?n gnus-tmp-name ?s)
408 (gnus-define-keys 432 (gnus-define-keys
409 gnus-tree-mode-map 433 gnus-tree-mode-map
410 "\r" gnus-tree-select-article 434 "\r" gnus-tree-select-article
411 gnus-mouse-2 gnus-tree-pick-article 435 gnus-mouse-2 gnus-tree-pick-article
412 "\C-?" gnus-tree-read-summary-keys 436 "\C-?" gnus-tree-read-summary-keys
437 "h" gnus-tree-show-summary
413 438
414 "\C-c\C-i" gnus-info-find-node) 439 "\C-c\C-i" gnus-info-find-node)
415 440
416 (substitute-key-definition 441 (substitute-key-definition
417 'undefined 'gnus-tree-read-summary-keys gnus-tree-mode-map)) 442 'undefined 'gnus-tree-read-summary-keys gnus-tree-mode-map))
457 (when (setq win (get-buffer-window buf)) 482 (when (setq win (get-buffer-window buf))
458 (select-window win) 483 (select-window win)
459 (when gnus-selected-tree-overlay 484 (when gnus-selected-tree-overlay
460 (goto-char (or (gnus-overlay-end gnus-selected-tree-overlay) 1))) 485 (goto-char (or (gnus-overlay-end gnus-selected-tree-overlay) 1)))
461 (gnus-tree-minimize)))) 486 (gnus-tree-minimize))))
487
488 (defun gnus-tree-show-summary ()
489 "Reconfigure windows to show summary buffer."
490 (interactive)
491 (if (not (gnus-buffer-live-p gnus-summary-buffer))
492 (error "There is no summary buffer for this tree buffer")
493 (gnus-configure-windows 'article)
494 (gnus-summary-goto-subject gnus-current-article)))
462 495
463 (defun gnus-tree-select-article (article) 496 (defun gnus-tree-select-article (article)
464 "Select the article under point, if any." 497 "Select the article under point, if any."
465 (interactive (list (gnus-tree-article-number))) 498 (interactive (list (gnus-tree-article-number)))
466 (let ((buf (current-buffer))) 499 (let ((buf (current-buffer)))
644 677
645 (defun gnus-generate-horizontal-tree (thread level &optional dummyp adopted) 678 (defun gnus-generate-horizontal-tree (thread level &optional dummyp adopted)
646 "Generate a horizontal tree." 679 "Generate a horizontal tree."
647 (let* ((dummy (stringp (car thread))) 680 (let* ((dummy (stringp (car thread)))
648 (do (or dummy 681 (do (or dummy
649 (memq (mail-header-number (car thread)) gnus-tmp-limit))) 682 (and (car thread)
683 (memq (mail-header-number (car thread))
684 gnus-tmp-limit))))
650 col beg) 685 col beg)
651 (if (not do) 686 (if (not do)
652 ;; We don't want this article. 687 ;; We don't want this article.
653 (setq thread (cdr thread)) 688 (setq thread (cdr thread))
654 (if (not (bolp)) 689 (if (not (bolp))
716 (gnus-tree-forward-line (1- (* 2 level))) 751 (gnus-tree-forward-line (1- (* 2 level)))
717 (gnus-tree-indent-vertical) 752 (gnus-tree-indent-vertical)
718 (delete-char -1) 753 (delete-char -1)
719 (insert (cadr gnus-tree-parent-child-edges)) 754 (insert (cadr gnus-tree-parent-child-edges))
720 (setq beg (point)) 755 (setq beg (point))
756 (forward-char -1)
721 ;; Draw "-" lines leftwards. 757 ;; Draw "-" lines leftwards.
722 (while (progn 758 (while (= (char-after (1- (point))) ? )
723 (unless (bolp) 759 (delete-char -1)
724 (forward-char -2)) 760 (insert (car gnus-tree-parent-child-edges))
725 (= (following-char) ? )) 761 (forward-char -1))
726 (delete-char 1)
727 (insert (car gnus-tree-parent-child-edges)))
728 (goto-char beg) 762 (goto-char beg)
729 (gnus-tree-forward-line 1))) 763 (gnus-tree-forward-line 1)))
730 (setq dummyp nil) 764 (setq dummyp nil)
731 ;; Insert the article node. 765 ;; Insert the article node.
732 (gnus-tree-indent-vertical) 766 (gnus-tree-indent-vertical)