[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[patch] convert footnote.el to use define-minor-mode
From: |
Eduard Wiebe |
Subject: |
[patch] convert footnote.el to use define-minor-mode |
Date: |
Fri, 12 Dec 2008 23:13:58 +0100 |
User-agent: |
Gnus/5.11 (Gnus v5.11) Emacs/22.3 (berkeley-unix) |
2008-12-12 Eduard Wiebe <address@hidden>
* mail/footnote.el (footnote-mode): Use define-minor-mode
(footnote-prefix): Use defcustom
diff --git a/lisp/mail/footnote.el b/lisp/mail/footnote.el
index 506f6e7..137b07c 100644
--- a/lisp/mail/footnote.el
+++ b/lisp/mail/footnote.el
@@ -84,8 +84,12 @@ displaying footnotes."
:type 'integer
:group 'footnote)
-(defvar footnote-prefix [(control ?c) ?!]
- "*When not using `message-mode', the prefix to bind in `mode-specific-map'")
+(defcustom footnote-mode-prefix "\C-c!"
+ "Prefix key to use for Footnote command in Footnote minor mode.
+The value of this variable is checked as part of loading Footnote mode.
+After that, changing the prefix key requires manipulating keymaps."
+ :type 'string
+ :group 'footnote)
;;; Interface variables that probably shouldn't be changed
@@ -143,10 +147,6 @@ has no effect on buffers already displaying footnotes."
(defvar footnote-mouse-highlight 'highlight
"Text property name to enable mouse over highlight.")
-(defvar footnote-mode nil
- "Variable indicating whether footnote minor mode is active.")
-(make-variable-buffer-local 'footnote-mode)
-
;;; Default styles
;;; NUMERIC
(defconst footnote-numeric-regexp "[0-9]+"
@@ -743,47 +743,32 @@ being set it is automatically widened."
(widen))
(goto-char (cadr (assq note footnote-pointer-marker-alist))))))
-(defvar footnote-mode-map nil
- "Keymap used for footnote minor mode.")
-
-;; Set up our keys
-(unless footnote-mode-map
- (setq footnote-mode-map (make-sparse-keymap))
- (define-key footnote-mode-map "a" 'Footnote-add-footnote)
- (define-key footnote-mode-map "b" 'Footnote-back-to-message)
- (define-key footnote-mode-map "c" 'Footnote-cycle-style)
- (define-key footnote-mode-map "d" 'Footnote-delete-footnote)
- (define-key footnote-mode-map "g" 'Footnote-goto-footnote)
- (define-key footnote-mode-map "r" 'Footnote-renumber-footnotes)
- (define-key footnote-mode-map "s" 'Footnote-set-style))
-
-(defvar footnote-minor-mode-map nil
- "Keymap used for binding footnote minor mode.")
-
-(unless footnote-minor-mode-map
- (define-key global-map footnote-prefix footnote-mode-map))
+(defvar footnote-mode-map
+ (let ((map (make-sparse-keymap))
+ (prefix-map (make-sparse-keymap)))
+ (define-key map footnote-mode-prefix prefix-map)
+ (define-key prefix-map "a" 'Footnote-add-footnote)
+ (define-key prefix-map "b" 'Footnote-back-to-message)
+ (define-key prefix-map "c" 'Footnote-cycle-style)
+ (define-key prefix-map "d" 'Footnote-delete-footnote)
+ (define-key prefix-map "g" 'Footnote-goto-footnote)
+ (define-key prefix-map "r" 'Footnote-renumber-footnotes)
+ (define-key prefix-map "s" 'Footnote-set-style)
+ map))
;;;###autoload
-(defun footnote-mode (&optional arg)
+(define-minor-mode footnote-mode
"Toggle footnote minor mode.
\\<message-mode-map>
This minor mode provides footnote support for `message-mode'. To get
started, play around with the following keys:
-key binding
---- -------
-\\[Footnote-add-footnote] Footnote-add-footnote
-\\[Footnote-back-to-message] Footnote-back-to-message
-\\[Footnote-delete-footnote] Footnote-delete-footnote
-\\[Footnote-goto-footnote] Footnote-goto-footnote
-\\[Footnote-renumber-footnotes] Footnote-renumber-footnotes
-\\[Footnote-cycle-style] Footnote-cycle-style
-\\[Footnote-set-style] Footnote-set-style
+\\{footnote-mode-map}
"
- (interactive "*P")
+ :init-value nil
+ :lighter " FN"
+ :keymap footnote-mode-map
+ :group 'footnote
;; (filladapt-mode t)
- (setq footnote-mode
- (if (null arg) (not footnote-mode)
- (> (prefix-numeric-value arg) 0)))
(when footnote-mode
;; (Footnote-setup-keybindings)
(make-local-variable 'footnote-style)
@@ -808,14 +793,7 @@ key binding
(unless (assoc bullet-regexp filladapt-token-table)
(setq filladapt-token-table
(append filladapt-token-table
- (list (list bullet-regexp 'bullet)))))))
-
- (run-hooks 'footnote-mode-hook)))
-
-(unless (assq 'footnote-mode minor-mode-alist)
- (setq minor-mode-alist
- (cons '(footnote-mode footnote-mode-line-string)
- minor-mode-alist)))
+ (list (list bullet-regexp 'bullet)))))))))
(provide 'footnote)
--
Eduard Wiebe
- [patch] convert footnote.el to use define-minor-mode,
Eduard Wiebe <=