diff --git a/emacs/mu4e-speedbar.el b/emacs/mu4e-speedbar.el index 3b8f6d7c..9d806c3b 100644 --- a/emacs/mu4e-speedbar.el +++ b/emacs/mu4e-speedbar.el @@ -40,27 +40,41 @@ ;;; Code: (require 'speedbar) +(require 'mu4e-vars) (defvar mu4e-main-speedbar-key-map nil "Keymap used when in mu4e display mode.") +(defvar mu4e-headers-speedbar-key-map nil + "Keymap used when in mu4e display mode.") +(defvar mu4e-view-speedbar-key-map nil + "Keymap used when in mu4e display mode.") (defvar mu4e-main-speedbar-menu-items nil "Additional menu-items to add to speedbar frame.") +(defvar mu4e-headers-speedbar-menu-items nil + "Additional menu-items to add to speedbar frame.") +(defvar mu4e-view-speedbar-menu-items nil + "Additional menu-items to add to speedbar frame.") -(defun mu4e-install-speedbar-variables () + +(defun mu4e-speedbar-install-variables () "Install those variables used by speedbar to enhance mu4e." - (unless mu4e-main-speedbar-key-map - (setq mu4e-main-speedbar-key-map (speedbar-make-specialized-keymap)) - (define-key mu4e-main-speedbar-key-map "RET" 'speedbar-edit-line) - (define-key mu4e-main-speedbar-key-map "e" 'speedbar-edit-line) - (define-key mu4e-main-speedbar-key-map "e" 'speedbar-edit-line))) + (dolist (keymap + '( mu4e-main-speedbar-key-map + mu4e-headers-speedbar-key-map + mu4e-view-speedbar-key-map)) + (unless keymap + (setq keymap (speedbar-make-specialized-keymap)) + (define-key keymap "RET" 'speedbar-edit-line) + (define-key keymap "e" 'speedbar-edit-line)))) + ;; Make sure our special speedbar major mode is loaded (if (featurep 'speedbar) - (mu4e-install-speedbar-variables) - (add-hook 'speedbar-load-hook 'mu4e-install-speedbar-variables)) + (mu4e-speedbar-install-variables) + (add-hook 'speedbar-load-hook 'mu4e-speedbar-install-variables)) -(defun mu4e-render-maildir-list () +(defun mu4e~speedbar-render-maildir-list () "Insert the list of maildirs in the speedbar." (interactive) (mapcar (lambda (maildir-name) @@ -68,12 +82,16 @@ (concat " " maildir-name) 'mu4e-highlight-face 'highlight - 'mu4e-main-speedbar-maildir + 'mu4e~speedbar-maildir maildir-name)) (mu4e-get-maildirs mu4e-maildir))) +(defun mu4e~speedbar-maildir (&optional text token ident) + "Load in the mu4e file TEXT. TOKEN and INDENT are not used." + (speedbar-with-attached-buffer + (mu4e-search (concat "\"maildir:" token "\"")))) -(defun mu4e-render-bookmark-list () +(defun mu4e~speedbar-render-bookmark-list () "Insert the list of bookmarks in the speedbar" (interactive) (mapcar (lambda (bookmark) @@ -81,34 +99,32 @@ (concat " " (nth 1 bookmark)) 'mu4e-highlight-face 'highlight - 'mu4e-main-speedbar-bookmark + 'mu4e~speedbar-bookmark (nth 0 bookmark))) mu4e-bookmarks)) - -(defun mu4e-main-speedbar-maildir (&optional text token ident) - "Load in the mu4e file TEXT. TOKEN and INDENT are not used." - (speedbar-with-attached-buffer - (mu4e-search (concat "\"maildir:" token "\"")))) - -(defun mu4e-main-speedbar-bookmark (&optional text token ident) +(defun mu4e~speedbar-bookmark (&optional text token ident) "Load in the mu4e file TEXT. TOKEN and INDENT are not used." (speedbar-with-attached-buffer (mu4e-search token))) - ;;;###autoload -(defun mu4e-main-speedbar-buttons (buffer) +(defun mu4e-speedbar-buttons (buffer) "Create buttons for any mu4e BUFFER." (interactive) (erase-buffer) (insert (propertize "* mu4e\n\n" 'face 'mu4e-title-face)) (insert (propertize " Bookmarks\n" 'face 'mu4e-title-face)) - (mu4e-render-bookmark-list) + (mu4e~speedbar-render-bookmark-list) (insert "\n") (insert (propertize " Maildirs\n" 'face 'mu4e-title-face)) - (mu4e-render-maildir-list)) + (mu4e~speedbar-render-maildir-list)) + +(defun mu4e-main-speedbar-buttons (buffer) (mu4e-speedbar-buttons buffer)) +(defun mu4e-headers-speedbar-buttons (buffer) (mu4e-speedbar-buttons buffer)) +(defun mu4e-view-speedbar-buttons (buffer) (mu4e-speedbar-buttons buffer)) + (provide 'mu4e-speedbar) ;;; mu4e-speedbar.el ends here