X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=wl%2Fwl-xmas.el;h=b0bd02c2284531d55b8e48f7136726b199f9232d;hb=ca40ff1485608c6c253dc99e7b58dff0df003d89;hp=e7a4ce569691d339bf3a9149dec1125c837670c8;hpb=51ab2e404b6405ad3deaa11027f3f0a1119a4bd8;p=elisp%2Fwanderlust.git diff --git a/wl/wl-xmas.el b/wl/wl-xmas.el index e7a4ce5..b0bd02c 100644 --- a/wl/wl-xmas.el +++ b/wl/wl-xmas.el @@ -1,7 +1,8 @@ ;;; wl-xmas.el --- Wanderlust modules for XEmacsen. -;; Copyright (C) 1998,1999,2000 Yuuichi Teranishi -;; Copyright (C) 2000 Katsumi Yamaoka +;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 +;; Yuuichi Teranishi +;; Copyright (C) 2000, 2001, 2002, 2003 Katsumi Yamaoka ;; Author: Yuuichi Teranishi ;; Katsumi Yamaoka @@ -69,8 +70,8 @@ wl-folder-sync-current-entity t "Sync Current Folder"] [wl-draft wl-draft t "Write a New Message"] - [wl-write-current-folder - wl-folder-write-current-folder t "Write for Current Folder"] + [wl-folder-goto-draft-folder + wl-folder-goto-draft-folder t "Go to Draft Folder"] [wl-folder-empty-trash wl-folder-empty-trash t "Empty Trash"] [wl-exit @@ -89,13 +90,11 @@ wl-summary-jump-to-current-message t "Jump to Current Message"] [wl-summary-sync-force-update wl-summary-sync-force-update t "Sync Current Folder"] - [wl-summary-delete - wl-summary-delete t "Delete Current Message"] + [wl-summary-dispose + wl-summary-dispose t "Dispose Current Message"] [wl-summary-mark-as-important wl-summary-mark-as-important t "Mark Current Message as Important"] [wl-draft - wl-draft t "Write a New Message"] - [wl-write-current-folder wl-summary-write-current-folder t "Write for Current Folder"] [wl-summary-reply wl-summary-reply t "Reply to Current Message" ] @@ -135,6 +134,8 @@ wl-draft-insert-signature t "Insert Signature"] [wl-draft-kill wl-draft-kill t "Kill Current Draft"] + [wl-draft-save-and-exit + wl-draft-save-and-exit t "Save Draft and Exit"] ) "The Draft buffer toolbar.") @@ -201,13 +202,13 @@ (defsubst wl-xmas-highlight-folder-group-line (glyph text-face numbers) (let ((start (match-beginning 1)) (end (match-end 1))) - (let (extent) - (while (and (setq extent (extent-at start nil nil extent 'at)) - (not (and (eq start (extent-start-position extent)) - (eq end (extent-end-position extent)) - (extent-end-glyph extent))))) - (unless extent - (setq extent (make-extent start end))) + (let ((extent (or (map-extents + (lambda (extent maparg) + (and (eq start (extent-start-position extent)) + (eq end (extent-end-position extent)) + extent)) + nil start start nil nil 'end-glyph) + (make-extent start end)))) (set-extent-properties extent `(end-open t start-closed t invisible t)) (set-extent-end-glyph extent @@ -252,12 +253,14 @@ (let (fld-name) (cond (;; opened folder group - (looking-at wl-highlight-folder-opened-regexp) + (and (wl-folder-buffer-group-p) + (looking-at wl-highlight-folder-opened-regexp)) (wl-xmas-highlight-folder-group-line 'wl-folder-opened-glyph 'wl-highlight-folder-opened-face numbers)) (;; closed folder group - (looking-at wl-highlight-folder-closed-regexp) + (and (wl-folder-buffer-group-p) + (looking-at wl-highlight-folder-closed-regexp)) (wl-xmas-highlight-folder-group-line 'wl-folder-closed-glyph 'wl-highlight-folder-closed-face numbers)) @@ -266,13 +269,13 @@ (get-text-property (point) 'wl-folder-entity-id))) (looking-at "[ \t]+\\([^ \t]+\\)")) (let ((start (match-beginning 1))) - (let (extent) - (while (and (setq extent (extent-at start nil nil extent 'at)) - (not (and (eq start (extent-start-position extent)) - (eq start (extent-end-position extent)) - (extent-begin-glyph extent))))) - (unless extent - (setq extent (make-extent start start))) + (let ((extent (or (map-extents + (lambda (extent maparg) + (and (eq start (extent-start-position extent)) + (eq start (extent-end-position extent)) + extent)) + nil start start nil nil 'begin-glyph) + (make-extent start start)))) (let (type) (set-extent-begin-glyph extent @@ -446,7 +449,10 @@ (defun wl-message-define-keymap () (let ((keymap (make-sparse-keymap))) + (define-key keymap "D" 'wl-message-delete-current-part) (define-key keymap "l" 'wl-message-toggle-disp-summary) + (define-key keymap "\C-c:d" 'wl-message-decrypt-pgp-nonmime) + (define-key keymap "\C-c:v" 'wl-message-verify-pgp-nonmime) (define-key keymap 'button4 'wl-message-wheel-down) (define-key keymap 'button5 'wl-message-wheel-up) (define-key keymap [(shift button4)] 'wl-message-wheel-down) @@ -458,29 +464,35 @@ (defun wl-message-wheel-up (event) (interactive "e") - (let ((cur-buf (current-buffer)) - proceed) - (save-selected-window - (select-window (event-window event)) - (set-buffer cur-buf) - (setq proceed (wl-message-next-page))) - (when proceed - (if (memq 'shift (event-modifiers event)) - (wl-summary-down t) - (wl-summary-next t))))) + (if (string-match (regexp-quote wl-message-buffer-name) + (regexp-quote (buffer-name))) + (wl-message-prev-page) + (let ((cur-buf (current-buffer)) + proceed) + (save-selected-window + (select-window (event-window event)) + (set-buffer cur-buf) + (setq proceed (wl-message-next-page))) + (when proceed + (if (memq 'shift (event-modifiers event)) + (wl-summary-down t) + (wl-summary-next t)))))) (defun wl-message-wheel-down (event) (interactive "e") - (let ((cur-buf (current-buffer)) - proceed) - (save-selected-window - (select-window (event-window event)) - (set-buffer cur-buf) - (setq proceed (wl-message-prev-page))) - (when proceed - (if (memq 'shift (event-modifiers event)) - (wl-summary-up t) - (wl-summary-prev t))))) + (if (string-match (regexp-quote wl-message-buffer-name) + (regexp-quote (buffer-name))) + (wl-message-prev-page) + (let ((cur-buf (current-buffer)) + proceed) + (save-selected-window + (select-window (event-window event)) + (set-buffer cur-buf) + (setq proceed (wl-message-prev-page))) + (when proceed + (if (memq 'shift (event-modifiers event)) + (wl-summary-up t) + (wl-summary-prev t)))))) (defun wl-draft-overload-menubar () (when (featurep 'menubar) @@ -489,7 +501,14 @@ (add-menu-item '("Mail") "Send Message" 'wl-draft-send-and-exit t "Send and Exit") (delete-menu-item '("Mail" "Send Mail")) - (delete-menu-item '("Mail" "Send and Exit")))) + (delete-menu-item '("Mail" "Send and Exit")) + (add-menu-item '("Mail") "Preview Message" + 'wl-draft-preview-message t "Cancel") + (add-menu-item '("Mail") "Save Draft and Exit" + 'wl-draft-save-and-exit t "Cancel") + (add-menu-item '("Mail") "Kill Current Draft" + 'wl-draft-kill t "Cancel") + (delete-menu-item '("Mail" "Cancel")))) (defun wl-draft-mode-setup () (require 'derived) @@ -517,7 +536,8 @@ Special commands: ;; (define-key wl-draft-mode-map "\C-x\C-s" 'wl-draft-save) (define-key wl-draft-mode-map "\C-c\C-a" 'wl-addrmgr) (define-key wl-draft-mode-map "\C-xk" 'wl-draft-mimic-kill-buffer) - (define-key wl-draft-mode-map "\C-c\C-d" 'wl-draft-elide-region)) + (define-key wl-draft-mode-map "\C-c\C-d" 'wl-draft-elide-region) + (define-key wl-draft-mode-map "\C-a" 'wl-draft-beginning-of-line)) (defun wl-draft-overload-functions () (wl-mode-line-buffer-identification)