(require ’outline)
(defvar oz-outline-mode nil)
(make-variable-buffer-local ’oz-outline-mode)
(defun oz-outline-mode (&optional arg)
(interactive “P”)
(setq oz-outline-mode
(if (null arg) (not oz-outline-mode)
(> (prefix-numeric-value arg) 0)))
(if (and oz-outline-mode
(eq major-mode ’outline-mode))
(hide-other)))
(setq minor-mode-alist
(cons ’(oz-outline-mode “ Click”) minor-mode-alist))
(defvar oz-outline-map (make-sparse-keymap))
(define-key oz-outline-map [mouse-2] ’oz-outline-toggle-subtree)
(define-key oz-outline-map [mouse-3] ’oz-outline-reveal-headings)
(setq minor-mode-map-alist
(cons (cons ’oz-outline-mode oz-outline-map)
minor-mode-map-alist))
(defun oz-outline-toggle-subtree (e)
(interactive “e”)
(mouse-set-point e)
(save-excursion
(end-of-line)
(if (outline-visible)
(hide-subtree)
(show-subtree))))
(defun oz-outline-reveal-headings (e)
(interactive “e”)
(mouse-set-point e)
(show-branches))
(provide ’oz-extra)
;;; Local Variables: ***
;;; mode: emacs-lisp ***
;;; byte-compile-dynamic-docstrings: nil ***
;;; byte-compile-compatibility: t ***
;;; End: ***