• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.10/emacs-93/emacs/lisp/gnus/

Lines Matching defs:tree

380 ;;; gnus-tree-mode
383 (defcustom gnus-tree-line-format "%(%[%3,3n%]%)"
384 "Format of tree elements."
386 :group 'gnus-summary-tree)
388 (defcustom gnus-tree-minimize-window t
389 "If non-nil, minimize the tree buffer window.
390 If a number, never let the tree buffer grow taller than that number of
394 :group 'gnus-summary-tree)
396 (defcustom gnus-selected-tree-face 'modeline
397 "*Face used for highlighting selected articles in the thread tree."
399 :group 'gnus-summary-tree)
401 (defvar gnus-tree-brackets '((?\[ . ?\]) (?\( . ?\))
403 "Brackets used in tree nodes.")
405 (defvar gnus-tree-parent-child-edges '(?- ?\\ ?|)
408 (defcustom gnus-tree-mode-line-format "Gnus: %%b %S %Z"
409 "*The format specification for the tree mode line."
411 :group 'gnus-summary-tree)
413 (defcustom gnus-generate-tree-function 'gnus-generate-vertical-tree
414 "*Function for generating a thread tree.
416 `gnus-generate-horizontal-tree' and `gnus-generate-vertical-tree'."
417 :type '(radio (function-item gnus-generate-vertical-tree)
418 (function-item gnus-generate-horizontal-tree)
420 :group 'gnus-summary-tree)
422 (defcustom gnus-tree-mode-hook nil
423 "*Hook run in tree mode buffers."
425 :group 'gnus-summary-tree)
428 (add-hook 'gnus-tree-mode-hook 'gnus-xmas-tree-menu-add)
429 (add-hook 'gnus-tree-mode-hook 'gnus-xmas-switch-horizontal-scrollbar-off))
434 (defvar gnus-tree-line-format-alist
442 (defvar gnus-tree-mode-line-format-alist gnus-summary-mode-line-format-alist)
444 (defvar gnus-tree-mode-line-format-spec nil)
445 (defvar gnus-tree-line-format-spec nil)
447 (defvar gnus-tree-node-length nil)
448 (defvar gnus-selected-tree-overlay nil)
450 (defvar gnus-tree-displayed-thread nil)
451 (defvar gnus-tree-inhibit nil)
453 (defvar gnus-tree-mode-map nil)
454 (put 'gnus-tree-mode 'mode-class 'special)
456 (unless gnus-tree-mode-map
457 (setq gnus-tree-mode-map (make-keymap))
458 (suppress-keymap gnus-tree-mode-map)
460 gnus-tree-mode-map
461 "\r" gnus-tree-select-article
462 gnus-mouse-2 gnus-tree-pick-article
463 "\C-?" gnus-tree-read-summary-keys
464 "h" gnus-tree-show-summary
469 'undefined 'gnus-tree-read-summary-keys gnus-tree-mode-map))
471 (defun gnus-tree-make-menu-bar ()
472 (unless (boundp 'gnus-tree-menu)
474 gnus-tree-menu gnus-tree-mode-map ""
476 ["Select article" gnus-tree-select-article t]))))
478 (defun gnus-tree-mode ()
481 (gnus-set-format 'tree-mode)
482 (gnus-set-format 'tree t)
483 (when (gnus-visual-p 'tree-menu 'menu)
484 (gnus-tree-make-menu-bar))
488 (setq major-mode 'gnus-tree-mode)
489 (use-local-map gnus-tree-mode-map)
495 (gnus-tree-node-insert (make-mail-header "") nil)
496 (setq gnus-tree-node-length (1- (point))))
497 (gnus-run-mode-hooks 'gnus-tree-mode-hook))
499 (defun gnus-tree-read-summary-keys (&optional arg)
502 (unless gnus-tree-inhibit
504 (gnus-tree-inhibit t)
510 (when gnus-selected-tree-overlay
511 (goto-char (or (gnus-overlay-end gnus-selected-tree-overlay) 1)))
512 (gnus-tree-minimize)))))
514 (defun gnus-tree-show-summary ()
518 (error "There is no summary buffer for this tree buffer")
522 (defun gnus-tree-select-article (article)
524 (interactive (list (gnus-tree-article-number)))
532 (defun gnus-tree-pick-article (e)
536 (gnus-tree-select-article (gnus-tree-article-number)))
538 (defun gnus-tree-article-number ()
541 (defun gnus-tree-article-region (article)
548 (defun gnus-tree-goto-article (article)
554 (defun gnus-tree-recenter ()
555 "Center point in the tree window."
557 (tree-window (gnus-get-buffer-window gnus-tree-buffer t)))
558 (when tree-window
559 (select-window tree-window)
560 (when gnus-selected-tree-overlay
561 (goto-char (or (gnus-overlay-end gnus-selected-tree-overlay) 1)))
573 tree-window (min bottom (save-excursion
577 (defun gnus-get-tree-buffer ()
578 "Return the tree buffer properly initialized."
580 (set-buffer (gnus-get-buffer-create gnus-tree-buffer))
581 (unless (eq major-mode 'gnus-tree-mode)
582 (gnus-tree-mode))
585 (defun gnus-tree-minimize ()
586 (when (and gnus-tree-minimize-window
598 (tot (if (numberp gnus-tree-minimize-window)
599 (min gnus-tree-minimize-window min)
611 ;;; Generating the tree.
613 (defun gnus-tree-node-insert (header sparse &optional adopted)
641 (caadr gnus-tree-brackets))
642 (dummy (caaddr gnus-tree-brackets))
643 (adopted (car (nth 3 gnus-tree-brackets)))
644 (t (caar gnus-tree-brackets))))
647 (cdadr gnus-tree-brackets))
648 (adopted (cdr (nth 3 gnus-tree-brackets)))
650 (cdaddr gnus-tree-brackets))
651 (t (cdar gnus-tree-brackets))))
656 (setq end (progn (eval gnus-tree-line-format-spec) (point)))
658 (when (or t (gnus-visual-p 'tree-highlight 'highlight))
659 (gnus-tree-highlight-node gnus-tmp-number beg end))))
661 (defun gnus-tree-highlight-node (article beg end)
684 (defun gnus-tree-indent (level)
685 (insert (make-string (1- (* (1+ gnus-tree-node-length) level)) ? )))
691 (defun gnus-generate-tree (thread)
692 "Generate a thread tree for THREAD."
694 (set-buffer (gnus-get-tree-buffer))
698 (funcall gnus-generate-tree-function thread 0)
699 (gnus-set-mode-line 'tree)
701 (gnus-tree-minimize)
702 (gnus-tree-recenter)
704 (when (gnus-get-buffer-window (set-buffer gnus-tree-buffer) t)
705 (select-window (gnus-get-buffer-window (set-buffer gnus-tree-buffer) t))
709 (defun gnus-generate-horizontal-tree (thread level &optional dummyp adopted)
710 "Generate a horizontal tree."
722 (insert (car gnus-tree-parent-child-edges))
725 (gnus-tree-indent level)
726 (insert (cadr gnus-tree-parent-child-edges))
734 (insert (caddr gnus-tree-parent-child-edges)))
738 (gnus-tree-node-insert (pop thread) gnus-tmp-sparse adopted))
745 (gnus-generate-horizontal-tree
749 (defsubst gnus-tree-indent-vertical ()
750 (let ((len (- (* (1+ gnus-tree-node-length) gnus-tmp-indent)
755 (defsubst gnus-tree-forward-line (n)
762 (defun gnus-generate-vertical-tree (thread level &optional dummyp adopted)
763 "Generate a vertical tree."
776 (gnus-tree-indent-vertical)
777 (insert (make-string (/ gnus-tree-node-length 2) ? ))
778 (insert (caddr gnus-tree-parent-child-edges))
779 (gnus-tree-forward-line 1))
782 (gnus-tree-forward-line (1- (* 2 level)))
783 (gnus-tree-indent-vertical)
785 (insert (cadr gnus-tree-parent-child-edges))
792 (insert (car gnus-tree-parent-child-edges))
795 (gnus-tree-forward-line 1)))
798 (gnus-tree-indent-vertical)
799 (gnus-tree-node-insert (pop thread) gnus-tmp-sparse adopted)
800 (gnus-tree-forward-line 1))
809 (gnus-generate-vertical-tree
815 (defun gnus-possibly-generate-tree (article &optional force)
816 "Generate the thread tree for ARTICLE if it isn't displayed already."
833 (not (eq top gnus-tree-displayed-thread)))
834 (gnus-generate-tree top)
835 (setq gnus-tree-displayed-thread top))))))
837 (defun gnus-tree-open (group)
838 (gnus-get-tree-buffer))
840 (defun gnus-tree-close (group)
841 (gnus-kill-buffer gnus-tree-buffer))
843 (defun gnus-tree-perhaps-minimize ()
844 (when (and gnus-tree-minimize-window
845 (get-buffer gnus-tree-buffer))
847 (set-buffer gnus-tree-buffer)
848 (gnus-tree-minimize))))
850 (defun gnus-highlight-selected-tree (article)
851 "Highlight the selected article in the tree."
854 (set-buffer gnus-tree-buffer)
855 (when (setq region (gnus-tree-article-region article))
856 (when (or (not gnus-selected-tree-overlay)
857 (gnus-extent-detached-p gnus-selected-tree-overlay))
860 (setq gnus-selected-tree-overlay
862 'face gnus-selected-tree-face))
865 gnus-selected-tree-overlay (goto-char (car region)) (cdr region))
866 (gnus-tree-minimize)
867 (gnus-tree-recenter)
869 (when (gnus-get-buffer-window (set-buffer gnus-tree-buffer) t)
870 (select-window (gnus-get-buffer-window (set-buffer gnus-tree-buffer) t))
875 (set-buffer gnus-tree-buffer)
876 (gnus-set-mode-line 'tree))
879 (defun gnus-tree-highlight-article (article face)
881 (set-buffer (gnus-get-tree-buffer))
883 (when (setq region (gnus-tree-article-region article))