Mercurial > hg > xemacs-beta
comparison lisp/tm/tm-vm.el @ 8:4b173ad71786 r19-15b5
Import from CVS: tag r19-15b5
author | cvs |
---|---|
date | Mon, 13 Aug 2007 08:47:35 +0200 |
parents | b82b59fe008d |
children | 0293115a14e9 |
comparison
equal
deleted
inserted
replaced
7:c153ca296910 | 8:4b173ad71786 |
---|---|
7 ;; MORIOKA Tomohiko <morioka@jaist.ac.jp> | 7 ;; MORIOKA Tomohiko <morioka@jaist.ac.jp> |
8 ;; Shuhei KOBAYASHI <shuhei-k@jaist.ac.jp> | 8 ;; Shuhei KOBAYASHI <shuhei-k@jaist.ac.jp> |
9 ;; Oscar Figueiredo <Oscar.Figueiredo@di.epfl.ch> | 9 ;; Oscar Figueiredo <Oscar.Figueiredo@di.epfl.ch> |
10 ;; Maintainer: Oscar Figueiredo <Oscar.Figueiredo@di.epfl.ch> | 10 ;; Maintainer: Oscar Figueiredo <Oscar.Figueiredo@di.epfl.ch> |
11 ;; Created: 1994/10/29 | 11 ;; Created: 1994/10/29 |
12 ;; Version: $Revision: 1.1.1.1 $ | 12 ;; Version: $Revision: 1.2 $ |
13 ;; Keywords: mail, MIME, multimedia, multilingual, encoded-word | 13 ;; Keywords: mail, MIME, multimedia, multilingual, encoded-word |
14 | 14 |
15 ;; This file is part of tm (Tools for MIME). | 15 ;; This file is part of tm (Tools for MIME). |
16 | 16 |
17 ;; This program is free software; you can redistribute it and/or | 17 ;; This program is free software; you can redistribute it and/or |
33 | 33 |
34 ;; Plese insert `(require 'tm-vm)' in your ~/.vm file. | 34 ;; Plese insert `(require 'tm-vm)' in your ~/.vm file. |
35 | 35 |
36 ;;; Code: | 36 ;;; Code: |
37 | 37 |
38 (eval-when-compile | |
39 (require 'tm-edit) | |
40 (require 'tm-mail) | |
41 (require 'vm) | |
42 (require 'vm-window)) | |
43 | |
38 (require 'tm-view) | 44 (require 'tm-view) |
39 (require 'vm) | |
40 (eval-when-compile | |
41 (require 'ps-print)) | |
42 | 45 |
43 (defconst tm-vm/RCS-ID | 46 (defconst tm-vm/RCS-ID |
44 "$Id: tm-vm.el,v 1.1.1.1 1996/12/18 03:55:32 steve Exp $") | 47 "$Id: tm-vm.el,v 1.2 1996/12/22 00:29:43 steve Exp $") |
45 (defconst tm-vm/version (get-version-string tm-vm/RCS-ID)) | 48 (defconst tm-vm/version (get-version-string tm-vm/RCS-ID)) |
46 | 49 |
47 (define-key vm-mode-map "Z" 'tm-vm/view-message) | 50 (define-key vm-mode-map "Z" 'tm-vm/view-message) |
48 (define-key vm-mode-map "T" 'tm-vm/decode-message-header) | 51 (define-key vm-mode-map "T" 'tm-vm/decode-message-header) |
49 (define-key vm-mode-map "\et" 'tm-vm/toggle-preview-mode) | 52 (define-key vm-mode-map "\et" 'tm-vm/toggle-preview-mode) |
313 (defun tm-vm/show-current-message () | 316 (defun tm-vm/show-current-message () |
314 "Update current message display and summary. Remove 'unread' and 'new' flags. " | 317 "Update current message display and summary. Remove 'unread' and 'new' flags. " |
315 (if mime::preview/article-buffer | 318 (if mime::preview/article-buffer |
316 (set-buffer mime::preview/article-buffer) | 319 (set-buffer mime::preview/article-buffer) |
317 (vm-select-folder-buffer)) | 320 (vm-select-folder-buffer)) |
318 (if mime::article/preview-buffer | 321 (if (and mime::article/preview-buffer |
322 (get-buffer mime::article/preview-buffer)) | |
319 (save-excursion | 323 (save-excursion |
320 (set-buffer mime::article/preview-buffer) | 324 (set-buffer mime::article/preview-buffer) |
321 (goto-char (point-min)) | 325 (goto-char (point-min)) |
322 (widen))) | 326 (widen))) |
323 (if (or (and mime::article/preview-buffer | 327 (if (or (and mime::article/preview-buffer |
328 (get-buffer mime::article/preview-buffer) | |
324 (vm-get-visible-buffer-window mime::article/preview-buffer)) | 329 (vm-get-visible-buffer-window mime::article/preview-buffer)) |
325 (vm-get-visible-buffer-window (current-buffer))) | 330 (vm-get-visible-buffer-window (current-buffer))) |
326 (progn | 331 (progn |
327 (setq tm-vm/system-state 'reading) | 332 (setq tm-vm/system-state 'reading) |
328 (if (vm-new-flag (car vm-message-pointer)) | 333 (if (vm-new-flag (car vm-message-pointer)) |
378 (get-buffer mime::article/preview-buffer))) | 383 (get-buffer mime::article/preview-buffer))) |
379 (pwin (and pbuf (vm-get-buffer-window pbuf))) | 384 (pwin (and pbuf (vm-get-buffer-window pbuf))) |
380 (was-invisible (and (null mwin) (null pwin))) | 385 (was-invisible (and (null mwin) (null pwin))) |
381 ) | 386 ) |
382 ;; now current buffer is folder buffer. | 387 ;; now current buffer is folder buffer. |
383 (tm-vm/save-window-excursion | 388 (if (or mp-changed was-invisible) |
384 (if (or mp-changed was-invisible) | 389 (vm-display mbuf t '(vm-scroll-forward vm-scroll-backward) |
385 (vm-display mbuf t '(vm-scroll-forward vm-scroll-backward) | 390 (list this-command 'reading-message))) |
386 (list this-command 'reading-message))) | 391 (tm-vm/display-preview-buffer) |
387 (tm-vm/display-preview-buffer) | 392 (setq mwin (vm-get-buffer-window mbuf) |
388 (setq mwin (vm-get-buffer-window mbuf) | 393 pwin (and pbuf (vm-get-buffer-window pbuf))) |
389 pwin (and pbuf (vm-get-buffer-window pbuf))) | 394 (cond |
390 (cond | 395 ((or mp-changed was-invisible) |
391 ((or mp-changed was-invisible) | 396 nil) |
392 nil | 397 ((null pbuf) |
393 ) | 398 ;; preview buffer is killed. |
394 ((null pbuf) | 399 (tm-vm/preview-current-message) |
395 ;; preview buffer is killed. | 400 (vm-update-summary-and-mode-line)) |
396 (tm-vm/preview-current-message) | 401 ((eq (tm-vm/system-state) 'previewing) |
397 (vm-update-summary-and-mode-line)) | 402 (tm-vm/show-current-message)) |
398 ((eq (tm-vm/system-state) 'previewing) | 403 (t |
399 (tm-vm/show-current-message)) | 404 (tm-vm/save-window-excursion |
400 (t | 405 (select-window pwin) |
401 (select-window pwin) | 406 (set-buffer pbuf) |
402 (set-buffer pbuf) | 407 (if (pos-visible-in-window-p (point-max) pwin) |
403 (if (pos-visible-in-window-p (point-max) pwin) | 408 (tm-vm/next-message) |
404 (tm-vm/next-message) | 409 ;; not end of message. scroll preview buffer only. |
405 ;; not end of message. scroll preview buffer only. | 410 (scroll-up) |
406 (scroll-up) | 411 (tm-vm/howl-if-eom) |
407 (tm-vm/howl-if-eom) | 412 (set-buffer mbuf)) |
408 (set-buffer mbuf)) | 413 )))) |
409 )))) | |
410 ))) | 414 ))) |
411 | 415 |
412 ;;; based on vm-scroll-backward [vm-page.el] | 416 ;;; based on vm-scroll-backward [vm-page.el] |
413 (defun tm-vm/scroll-backward (&optional arg) | 417 (defun tm-vm/scroll-backward (&optional arg) |
414 (interactive "P") | 418 (interactive "P") |
425 ) | 429 ) |
426 ;; now current buffer is folder buffer. | 430 ;; now current buffer is folder buffer. |
427 (if (or mp-changed was-invisible) | 431 (if (or mp-changed was-invisible) |
428 (vm-display mbuf t '(vm-scroll-forward vm-scroll-backward) | 432 (vm-display mbuf t '(vm-scroll-forward vm-scroll-backward) |
429 (list this-command 'reading-message))) | 433 (list this-command 'reading-message))) |
430 (tm-vm/save-window-excursion | 434 (tm-vm/display-preview-buffer) |
431 (tm-vm/display-preview-buffer) | 435 (setq mwin (vm-get-buffer-window mbuf) |
432 (setq mwin (vm-get-buffer-window mbuf) | 436 pwin (and pbuf (vm-get-buffer-window pbuf))) |
433 pwin (and pbuf (vm-get-buffer-window pbuf))) | 437 (cond |
434 (cond | 438 (was-invisible |
435 (was-invisible | 439 nil |
436 nil | 440 ) |
437 ) | 441 ((null pbuf) |
438 ((null pbuf) | 442 ;; preview buffer is killed. |
439 ;; preview buffer is killed. | 443 (tm-vm/preview-current-message) |
440 (tm-vm/preview-current-message) | 444 (vm-update-summary-and-mode-line)) |
441 (vm-update-summary-and-mode-line)) | 445 ((eq (tm-vm/system-state) 'previewing) |
442 ((eq (tm-vm/system-state) 'previewing) | 446 (tm-vm/show-current-message)) |
443 (tm-vm/show-current-message)) | 447 (t |
444 (t | 448 (tm-vm/save-window-excursion |
445 (select-window pwin) | 449 (select-window pwin) |
446 (set-buffer pbuf) | 450 (set-buffer pbuf) |
447 (if (pos-visible-in-window-p (point-min) pwin) | 451 (if (pos-visible-in-window-p (point-min) pwin) |
448 nil | 452 nil |
449 ;; scroll preview buffer only. | 453 ;; scroll preview buffer only. |
450 (scroll-down) | 454 (scroll-down) |
451 (set-buffer mbuf)) | 455 (set-buffer mbuf)) |
452 )))) | 456 )))) |
453 ))) | 457 ))) |
454 | 458 |
455 ;;; based on vm-beginning-of-message [vm-page.el] | 459 ;;; based on vm-beginning-of-message [vm-page.el] |
456 (defun tm-vm/beginning-of-message () | 460 (defun tm-vm/beginning-of-message () |
457 "Moves to the beginning of the current message." | 461 "Moves to the beginning of the current message." |
1057 'mail-mode (function tm-mail/insert-message)) | 1061 'mail-mode (function tm-mail/insert-message)) |
1058 (set-alist 'mime-editor/split-message-sender-alist | 1062 (set-alist 'mime-editor/split-message-sender-alist |
1059 'mail-mode (function | 1063 'mail-mode (function |
1060 (lambda () | 1064 (lambda () |
1061 (interactive) | 1065 (interactive) |
1062 (sendmail-send-it) | 1066 (funcall send-mail-function) |
1063 ))) | 1067 ))) |
1064 (if (and (string-match "XEmacs\\|Lucid" emacs-version) | 1068 (if (and (string-match "XEmacs\\|Lucid" emacs-version) |
1065 tm-vm/use-xemacs-popup-menu) | 1069 tm-vm/use-xemacs-popup-menu) |
1066 (add-hook 'vm-mail-mode-hook 'mime-editor/attach-to-vm-mode-menu) | 1070 (add-hook 'vm-mail-mode-hook 'mime-editor/attach-to-vm-mode-menu) |
1067 ) | 1071 ) |
1101 ))) | 1105 ))) |
1102 | 1106 |
1103 ;;; @ for ps-print (Suggestted by Anders Stenman <stenman@isy.liu.se>) | 1107 ;;; @ for ps-print (Suggestted by Anders Stenman <stenman@isy.liu.se>) |
1104 ;;; | 1108 ;;; |
1105 | 1109 |
1106 (defvar tm-vm/use-ps-print (not (or running-mule-merged-emacs | 1110 (defvar tm-vm/use-ps-print (not (featurep 'mule)) |
1107 running-xemacs-with-mule)) | |
1108 "*Use Postscript printing (ps-print) to print MIME messages.") | 1111 "*Use Postscript printing (ps-print) to print MIME messages.") |
1109 | 1112 |
1110 (if tm-vm/use-ps-print | 1113 (if tm-vm/use-ps-print |
1111 (progn | 1114 (progn |
1112 (require 'ps-print) | 1115 (autoload 'ps-print-buffer-with-faces "ps-print" "Postscript Print" t) |
1113 (add-hook 'vm-mode-hook 'tm-vm/ps-print-setup) | 1116 (add-hook 'vm-mode-hook 'tm-vm/ps-print-setup) |
1114 (add-hook 'mime-viewer/define-keymap-hook 'tm-vm/ps-print-setup) | 1117 (add-hook 'mime-viewer/define-keymap-hook 'tm-vm/ps-print-setup) |
1115 (fset 'vm-toolbar-print-command 'tm-vm/print-message))) | 1118 (fset 'vm-toolbar-print-command 'tm-vm/print-message))) |
1116 | 1119 |
1117 (defun tm-vm/ps-print-setup () | 1120 (defun tm-vm/ps-print-setup () |
1118 "Set things up for printing MIME messages with ps-print. Set binding to | 1121 "Set things up for printing MIME messages with ps-print. Set binding to |
1119 the [Print Screen] key." | 1122 the [Print Screen] key." |
1120 (local-set-key (ps-prsc) 'tm-vm/print-message) | 1123 (local-set-key (if running-xemacs |
1124 'f22 | |
1125 [f22]) | |
1126 'tm-vm/print-message) | |
1121 (setq ps-header-lines 3) | 1127 (setq ps-header-lines 3) |
1122 (setq ps-left-header | 1128 (setq ps-left-header |
1123 (list 'ps-article-subject 'ps-article-author 'buffer-name))) | 1129 (list 'ps-article-subject 'ps-article-author 'buffer-name))) |
1124 | 1130 |
1125 (defun tm-vm/print-message () | 1131 (defun tm-vm/print-message () |