5 |
|
|
6 |
;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br> |
;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br> |
7 |
;; Maintainer: Vinicius Jose Latorre <viniciusjl@ig.com.br> |
;; Maintainer: Vinicius Jose Latorre <viniciusjl@ig.com.br> |
8 |
;; Time-stamp: <2004/11/11 23:54:13 vinicius> |
;; Time-stamp: <2004/11/17 19:27:57 vinicius> |
9 |
;; Keywords: wp, print, PostScript |
;; Keywords: wp, print, PostScript |
10 |
;; Version: 6.8.2 |
;; Version: 6.8.3 |
11 |
;; X-URL: http://www.cpqd.com.br/~vinicius/emacs/ |
;; X-URL: http://www.cpqd.com.br/~vinicius/emacs/ |
12 |
|
|
13 |
(defconst pr-version "6.8.2" |
(defconst pr-version "6.8.3" |
14 |
"printing.el, v 6.8.2 <2004/11/11 vinicius> |
"printing.el, v 6.8.3 <2004/11/17 vinicius> |
15 |
|
|
16 |
Please send all bug fixes and enhancements to |
Please send all bug fixes and enhancements to |
17 |
Vinicius Jose Latorre <viniciusjl@ig.com.br> |
Vinicius Jose Latorre <viniciusjl@ig.com.br> |
440 |
;; |
;; |
441 |
;; Current global keyboard mapping for GNU Emacs is: |
;; Current global keyboard mapping for GNU Emacs is: |
442 |
;; |
;; |
443 |
;; (global-set-key [print] 'pr-ps-fast-fire) |
;; (global-set-key [print] 'pr-ps-fast-fire) |
444 |
;; (global-set-key [M-print] 'pr-ps-mode-using-ghostscript) |
;; (global-set-key [M-print] 'pr-ps-mode-using-ghostscript) |
445 |
;; (global-set-key [C-print] 'pr-txt-fast-fire) |
;; (global-set-key [S-print] 'pr-ps-mode-using-ghostscript) |
446 |
|
;; (global-set-key [C-print] 'pr-txt-fast-fire) |
447 |
|
;; (global-set-key [C-M-print] 'pr-txt-fast-fire) |
448 |
;; |
;; |
449 |
;; And for XEmacs is: |
;; And for XEmacs is: |
450 |
;; |
;; |
451 |
;; (global-set-key 'f22 'pr-ps-fast-fire) |
;; (global-set-key 'f22 'pr-ps-fast-fire) |
452 |
;; (global-set-key '(meta f22) 'pr-ps-mode-using-ghostscript) |
;; (global-set-key '(meta f22) 'pr-ps-mode-using-ghostscript) |
453 |
;; (global-set-key '(control f22) 'pr-txt-fast-fire) |
;; (global-set-key '(shift f22) 'pr-ps-mode-using-ghostscript) |
454 |
|
;; (global-set-key '(control f22) 'pr-txt-fast-fire) |
455 |
|
;; (global-set-key '(control meta f22) 'pr-txt-fast-fire) |
456 |
;; |
;; |
457 |
;; As a suggestion of global keyboard mapping for some `printing' commands: |
;; As a suggestion of global keyboard mapping for some `printing' commands: |
458 |
;; |
;; |
488 |
;; `pr-temp-dir' Specify a directory for temporary files during |
;; `pr-temp-dir' Specify a directory for temporary files during |
489 |
;; printing. |
;; printing. |
490 |
;; |
;; |
491 |
;; `pr-ps-temp-file' Specify PostScript temporary file name. |
;; `pr-ps-temp-file' Specify PostScript temporary file name prefix. |
492 |
|
;; |
493 |
|
;; `pr-file-modes' Specify the file permission bits for newly |
494 |
|
;; created files. |
495 |
;; |
;; |
496 |
;; `pr-gv-command' Specify path and name of the gsview/gv |
;; `pr-gv-command' Specify path and name of the gsview/gv |
497 |
;; utility. |
;; utility. |
950 |
;; Acknowledgments |
;; Acknowledgments |
951 |
;; --------------- |
;; --------------- |
952 |
;; |
;; |
953 |
|
;; Thanks to Stefan Monnier <monnier@iro.umontreal.ca> for GNU Emacs and XEmacs |
954 |
|
;; printing menu (in `pr-menu-spec') merging suggestion. |
955 |
|
;; |
956 |
;; Thanks to Lennart Borgman <lennart.borgman.073@student.lu.se> for gsprint |
;; Thanks to Lennart Borgman <lennart.borgman.073@student.lu.se> for gsprint |
957 |
;; suggestion (see tip 5 in section Tips). |
;; suggestion (see tip 5 in section Tips). |
958 |
;; |
;; |
1003 |
(error "`printing' requires `ps-print' package version 6.6.4 or later")) |
(error "`printing' requires `ps-print' package version 6.6.4 or later")) |
1004 |
|
|
1005 |
|
|
1006 |
(eval-and-compile |
(defconst pr-cygwin-system |
1007 |
(defconst pr-cygwin-system |
(and ps-windows-system (getenv "OSTYPE") |
1008 |
(and ps-windows-system (getenv "OSTYPE") |
(string-match "cygwin" (getenv "OSTYPE")))) |
|
(string-match "cygwin" (getenv "OSTYPE"))))) |
|
1009 |
|
|
1010 |
|
|
1011 |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
1012 |
;; To avoid compilation gripes |
;; To avoid compilation gripes |
1013 |
|
|
1014 |
|
|
1015 |
(eval-and-compile |
(or (fboundp 'easy-menu-intern) ; hacked from easymenu.el |
1016 |
|
(defsubst easy-menu-intern (s) |
1017 |
|
(if (stringp s) (intern s) s))) |
1018 |
|
|
1019 |
|
|
1020 |
|
|
1021 |
(or (fboundp 'subst-char-in-string) |
(or (fboundp 'subst-char-in-string) ; hacked from subr.el |
1022 |
(defun subst-char-in-string (fromchar tochar string &optional inplace) |
(defun subst-char-in-string (fromchar tochar string &optional inplace) |
1023 |
"Replace FROMCHAR with TOCHAR in STRING each time it occurs. |
"Replace FROMCHAR with TOCHAR in STRING each time it occurs. |
1024 |
Unless optional argument INPLACE is non-nil, return a new string." |
Unless optional argument INPLACE is non-nil, return a new string." |
1025 |
(let ((i (length string)) |
(let ((i (length string)) |
1026 |
(newstr (if inplace string (copy-sequence string)))) |
(newstr (if inplace string (copy-sequence string)))) |
1027 |
(while (> (setq i (1- i)) 0) |
(while (> (setq i (1- i)) 0) |
1028 |
(if (eq (aref newstr i) fromchar) |
(if (eq (aref newstr i) fromchar) |
1029 |
(aset newstr i tochar))) |
(aset newstr i tochar))) |
1030 |
newstr))) |
newstr))) |
1031 |
|
|
1032 |
|
|
1033 |
|
(or (fboundp 'make-temp-file) ; hacked from subr.el |
1034 |
|
(defun make-temp-file (prefix &optional dir-flag suffix) |
1035 |
|
"Create a temporary file. |
1036 |
|
The returned file name (created by appending some random characters at the end |
1037 |
|
of PREFIX, and expanding against `temporary-file-directory' if necessary), |
1038 |
|
is guaranteed to point to a newly created empty file. |
1039 |
|
You can then use `write-region' to write new data into the file. |
1040 |
|
|
1041 |
|
If DIR-FLAG is non-nil, create a new empty directory instead of a file. |
1042 |
|
|
1043 |
|
If SUFFIX is non-nil, add that at the end of the file name." |
1044 |
|
(let ((umask (default-file-modes)) |
1045 |
|
file) |
1046 |
|
(unwind-protect |
1047 |
|
(progn |
1048 |
|
;; Create temp files with strict access rights. It's easy to |
1049 |
|
;; loosen them later, whereas it's impossible to close the |
1050 |
|
;; time-window of loose permissions otherwise. |
1051 |
|
(set-default-file-modes ?\700) |
1052 |
|
(while (condition-case () |
1053 |
|
(progn |
1054 |
|
(setq file |
1055 |
|
(make-temp-name |
1056 |
|
(expand-file-name prefix temporary-file-directory))) |
1057 |
|
(if suffix |
1058 |
|
(setq file (concat file suffix))) |
1059 |
|
(if dir-flag |
1060 |
|
(make-directory file) |
1061 |
|
(write-region "" nil file nil 'silent nil 'excl)) |
1062 |
|
nil) |
1063 |
|
(file-already-exists t)) |
1064 |
|
;; the file was somehow created by someone else between |
1065 |
|
;; `make-temp-name' and `write-region', let's try again. |
1066 |
|
nil) |
1067 |
|
file) |
1068 |
|
;; Reset the umask. |
1069 |
|
(set-default-file-modes umask))))) |
1070 |
|
|
|
;; GNU Emacs |
|
|
(defalias 'pr-e-frame-char-height 'frame-char-height) |
|
|
(defalias 'pr-e-frame-char-width 'frame-char-width) |
|
|
(defalias 'pr-e-mouse-pixel-position 'mouse-pixel-position) |
|
|
;; XEmacs |
|
|
(defalias 'pr-x-add-submenu 'add-submenu) |
|
|
(defalias 'pr-x-event-function 'event-function) |
|
|
(defalias 'pr-x-event-object 'event-object) |
|
|
(defalias 'pr-x-find-menu-item 'find-menu-item) |
|
|
(defalias 'pr-x-font-height 'font-height) |
|
|
(defalias 'pr-x-font-width 'font-width) |
|
|
(defalias 'pr-x-get-popup-menu-response 'get-popup-menu-response) |
|
|
(defalias 'pr-x-make-event 'make-event) |
|
|
(defalias 'pr-x-misc-user-event-p 'misc-user-event-p) |
|
|
(defalias 'pr-x-relabel-menu-item 'relabel-menu-item) |
|
|
(defalias 'pr-x-event-x-pixel 'event-x-pixel) |
|
|
(defalias 'pr-x-event-y-pixel 'event-y-pixel) |
|
1071 |
|
|
1072 |
(cond |
;; GNU Emacs |
1073 |
((eq ps-print-emacs-type 'emacs) ; GNU Emacs |
(defalias 'pr-e-frame-char-height 'frame-char-height) |
1074 |
(defvar deactivate-mark nil) |
(defalias 'pr-e-frame-char-width 'frame-char-width) |
1075 |
(defalias 'pr-f-set-keymap-parents 'set-keymap-parent) |
(defalias 'pr-e-mouse-pixel-position 'mouse-pixel-position) |
1076 |
(defalias 'pr-f-set-keymap-name 'ignore) |
;; XEmacs |
1077 |
(defalias 'pr-f-read-string 'read-string) |
(defalias 'pr-x-add-submenu 'add-submenu) |
1078 |
(defun pr-keep-region-active () |
(defalias 'pr-x-event-function 'event-function) |
1079 |
(setq deactivate-mark nil))) |
(defalias 'pr-x-event-object 'event-object) |
1080 |
|
(defalias 'pr-x-find-menu-item 'find-menu-item) |
1081 |
((eq ps-print-emacs-type 'xemacs) ; XEmacs |
(defalias 'pr-x-font-height 'font-height) |
1082 |
(defvar current-menubar nil) |
(defalias 'pr-x-font-width 'font-width) |
1083 |
(defvar current-mouse-event nil) |
(defalias 'pr-x-get-popup-menu-response 'get-popup-menu-response) |
1084 |
(defvar zmacs-region-stays nil) |
(defalias 'pr-x-make-event 'make-event) |
1085 |
(defalias 'pr-f-set-keymap-parents 'set-keymap-parents) |
(defalias 'pr-x-misc-user-event-p 'misc-user-event-p) |
1086 |
(defalias 'pr-f-set-keymap-name 'set-keymap-name) |
(defalias 'pr-x-relabel-menu-item 'relabel-menu-item) |
1087 |
(defun pr-f-read-string (prompt initial history default) |
(defalias 'pr-x-event-x-pixel 'event-x-pixel) |
1088 |
(let ((str (read-string prompt initial))) |
(defalias 'pr-x-event-y-pixel 'event-y-pixel) |
1089 |
(if (and str (not (string= str ""))) |
|
1090 |
str |
(cond |
1091 |
default))) |
((featurep 'xemacs) ; XEmacs |
1092 |
(defun pr-keep-region-active () |
(defvar current-menubar nil) |
1093 |
(setq zmacs-region-stays t))))) |
(defvar current-mouse-event nil) |
1094 |
|
(defvar zmacs-region-stays nil) |
1095 |
|
(defalias 'pr-f-set-keymap-parents 'set-keymap-parents) |
1096 |
|
(defalias 'pr-f-set-keymap-name 'set-keymap-name) |
1097 |
|
(defun pr-f-read-string (prompt initial history default) |
1098 |
|
(let ((str (read-string prompt initial))) |
1099 |
|
(if (and str (not (string= str ""))) |
1100 |
|
str |
1101 |
|
default))) |
1102 |
|
(defun pr-keep-region-active () |
1103 |
|
(setq zmacs-region-stays t))) |
1104 |
|
|
1105 |
|
(t ; GNU Emacs |
1106 |
|
(defvar deactivate-mark nil) |
1107 |
|
(defalias 'pr-f-set-keymap-parents 'set-keymap-parent) |
1108 |
|
(defalias 'pr-f-set-keymap-name 'ignore) |
1109 |
|
(defalias 'pr-f-read-string 'read-string) |
1110 |
|
(defun pr-keep-region-active () |
1111 |
|
(setq deactivate-mark nil)))) |
1112 |
|
|
1113 |
|
|
1114 |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
1172 |
:type '(choice :tag "Path style" |
:type '(choice :tag "Path style" |
1173 |
(const :tag "Windows 9x/NT Style (\\)" :value windows) |
(const :tag "Windows 9x/NT Style (\\)" :value windows) |
1174 |
(const :tag "Unix Style (/)" :value unix)) |
(const :tag "Unix Style (/)" :value unix)) |
1175 |
|
:version "20" |
1176 |
:group 'printing) |
:group 'printing) |
1177 |
|
|
1178 |
|
|
1284 |
:tag "Directory" |
:tag "Directory" |
1285 |
(string :value "") |
(string :value "") |
1286 |
(symbol :value symbol))))) |
(symbol :value symbol))))) |
1287 |
|
:version "20" |
1288 |
:group 'printing) |
:group 'printing) |
1289 |
|
|
1290 |
|
|
1299 |
function (see it for documentation) to update text printer menu." |
function (see it for documentation) to update text printer menu." |
1300 |
:type 'symbol |
:type 'symbol |
1301 |
:set 'pr-txt-name-custom-set |
:set 'pr-txt-name-custom-set |
1302 |
|
:version "20" |
1303 |
:group 'printing) |
:group 'printing) |
1304 |
|
|
1305 |
|
|
1412 |
(const :tag "None" nil) |
(const :tag "None" nil) |
1413 |
string))) |
string))) |
1414 |
:set 'pr-alist-custom-set |
:set 'pr-alist-custom-set |
1415 |
|
:version "20" |
1416 |
:group 'printing) |
:group 'printing) |
1417 |
|
|
1418 |
|
|
1427 |
function (see it for documentation) to update PostScript printer menu." |
function (see it for documentation) to update PostScript printer menu." |
1428 |
:type 'symbol |
:type 'symbol |
1429 |
:set 'pr-ps-name-custom-set |
:set 'pr-ps-name-custom-set |
1430 |
|
:version "20" |
1431 |
:group 'printing) |
:group 'printing) |
1432 |
|
|
1433 |
|
|
1622 |
(sexp :tag "Value"))) |
(sexp :tag "Value"))) |
1623 |
)) |
)) |
1624 |
:set 'pr-alist-custom-set |
:set 'pr-alist-custom-set |
1625 |
|
:version "20" |
1626 |
:group 'printing) |
:group 'printing) |
1627 |
|
|
1628 |
|
|
1637 |
((memq system-type '(vax-vms axp-vms)) "SYS$SCRATCH:") |
((memq system-type '(vax-vms axp-vms)) "SYS$SCRATCH:") |
1638 |
(t "/tmp") |
(t "/tmp") |
1639 |
))))) |
))))) |
1640 |
"*Specify a directory for temporary files during printing." |
"*Specify a directory for temporary files during printing. |
1641 |
|
|
1642 |
|
See also `pr-ps-temp-file' and `pr-file-modes'." |
1643 |
:type '(directory :tag "Temporary Directory") |
:type '(directory :tag "Temporary Directory") |
1644 |
|
:version "20" |
1645 |
:group 'printing) |
:group 'printing) |
1646 |
|
|
1647 |
|
|
1648 |
(defcustom pr-ps-temp-file "prspool.ps" |
(defcustom pr-ps-temp-file "prspool-" |
1649 |
"*Specify PostScript temporary file name." |
"*Specify PostScript temporary file name prefix. |
1650 |
|
|
1651 |
|
See also `pr-temp-dir' and `pr-file-modes'." |
1652 |
:type '(file :tag "PostScript Temporary File Name") |
:type '(file :tag "PostScript Temporary File Name") |
1653 |
|
:version "21" |
1654 |
|
:group 'printing) |
1655 |
|
|
1656 |
|
|
1657 |
|
;; It uses 0600 as default instead of (default-file-modes). |
1658 |
|
;; So, by default, only the session owner have permission to deal with files |
1659 |
|
;; generated by `printing'. |
1660 |
|
(defcustom pr-file-modes ?\600 |
1661 |
|
"*Specify the file permission bits for newly created files. |
1662 |
|
|
1663 |
|
It should be an integer; only the low 9 bits are used. |
1664 |
|
|
1665 |
|
See also `pr-temp-dir' and `pr-ps-temp-file'." |
1666 |
|
:type '(integer :tag "File Permission Bits") |
1667 |
|
:version "21.3" |
1668 |
:group 'printing) |
:group 'printing) |
1669 |
|
|
1670 |
|
|
1676 |
|
|
1677 |
See also `pr-path-alist'." |
See also `pr-path-alist'." |
1678 |
:type '(string :tag "Ghostview Utility") |
:type '(string :tag "Ghostview Utility") |
1679 |
|
:version "20" |
1680 |
:group 'printing) |
:group 'printing) |
1681 |
|
|
1682 |
|
|
1688 |
|
|
1689 |
See also `pr-path-alist'." |
See also `pr-path-alist'." |
1690 |
:type '(string :tag "Ghostscript Utility") |
:type '(string :tag "Ghostscript Utility") |
1691 |
|
:version "20" |
1692 |
:group 'printing) |
:group 'printing) |
1693 |
|
|
1694 |
|
|
1719 |
located in the same directory as gswin32.exe. |
located in the same directory as gswin32.exe. |
1720 |
- for brief documentation, type: gswin32.exe -h" |
- for brief documentation, type: gswin32.exe -h" |
1721 |
:type '(repeat (string :tag "Ghostscript Switch")) |
:type '(repeat (string :tag "Ghostscript Switch")) |
1722 |
|
:version "20" |
1723 |
:group 'printing) |
:group 'printing) |
1724 |
|
|
1725 |
|
|
1736 |
See `pr-gs-switches' for documentation. |
See `pr-gs-switches' for documentation. |
1737 |
See also `pr-ps-printer-alist'." |
See also `pr-ps-printer-alist'." |
1738 |
:type '(string :tag "Ghostscript Device") |
:type '(string :tag "Ghostscript Device") |
1739 |
|
:version "20" |
1740 |
:group 'printing) |
:group 'printing) |
1741 |
|
|
1742 |
|
|
1750 |
See `pr-gs-switches' for documentation. |
See `pr-gs-switches' for documentation. |
1751 |
See also `pr-ps-printer-alist'." |
See also `pr-ps-printer-alist'." |
1752 |
:type '(integer :tag "Ghostscript Resolution") |
:type '(integer :tag "Ghostscript Resolution") |
1753 |
|
:version "20" |
1754 |
:group 'printing) |
:group 'printing) |
1755 |
|
|
1756 |
|
|
1763 |
In GNU or Unix system, if ghostscript is set as a PostScript filter, this |
In GNU or Unix system, if ghostscript is set as a PostScript filter, this |
1764 |
variable should be nil." |
variable should be nil." |
1765 |
:type 'boolean |
:type 'boolean |
1766 |
|
:version "20" |
1767 |
:group 'printing) |
:group 'printing) |
1768 |
|
|
1769 |
|
|
1770 |
(defcustom pr-faces-p nil |
(defcustom pr-faces-p nil |
1771 |
"*Non-nil means print with face attributes." |
"*Non-nil means print with face attributes." |
1772 |
:type 'boolean |
:type 'boolean |
1773 |
|
:version "20" |
1774 |
:group 'printing) |
:group 'printing) |
1775 |
|
|
1776 |
|
|
1777 |
(defcustom pr-spool-p nil |
(defcustom pr-spool-p nil |
1778 |
"*Non-nil means spool printing in a buffer." |
"*Non-nil means spool printing in a buffer." |
1779 |
:type 'boolean |
:type 'boolean |
1780 |
|
:version "20" |
1781 |
:group 'printing) |
:group 'printing) |
1782 |
|
|
1783 |
|
|
1784 |
(defcustom pr-file-landscape nil |
(defcustom pr-file-landscape nil |
1785 |
"*Non-nil means print PostScript file in landscape orientation." |
"*Non-nil means print PostScript file in landscape orientation." |
1786 |
:type 'boolean |
:type 'boolean |
1787 |
|
:version "20" |
1788 |
:group 'printing) |
:group 'printing) |
1789 |
|
|
1790 |
|
|
1791 |
(defcustom pr-file-duplex nil |
(defcustom pr-file-duplex nil |
1792 |
"*Non-nil means print PostScript file in duplex mode." |
"*Non-nil means print PostScript file in duplex mode." |
1793 |
:type 'boolean |
:type 'boolean |
1794 |
|
:version "20" |
1795 |
:group 'printing) |
:group 'printing) |
1796 |
|
|
1797 |
|
|
1803 |
If tumble is on, produces a printing suitable for binding at the top or |
If tumble is on, produces a printing suitable for binding at the top or |
1804 |
bottom." |
bottom." |
1805 |
:type 'boolean |
:type 'boolean |
1806 |
|
:version "20" |
1807 |
:group 'printing) |
:group 'printing) |
1808 |
|
|
1809 |
|
|
1816 |
`*-region*' commands, that is, `*-buffer*' commands will print only the region |
`*-region*' commands, that is, `*-buffer*' commands will print only the region |
1817 |
marked instead of all buffer." |
marked instead of all buffer." |
1818 |
:type 'boolean |
:type 'boolean |
1819 |
|
:version "20" |
1820 |
:group 'printing) |
:group 'printing) |
1821 |
|
|
1822 |
|
|
1828 |
`*-buffer*' commands will print the current buffer and `*-region*' commands |
`*-buffer*' commands will print the current buffer and `*-region*' commands |
1829 |
will print the current region." |
will print the current region." |
1830 |
:type 'boolean |
:type 'boolean |
1831 |
|
:version "20" |
1832 |
:group 'printing) |
:group 'printing) |
1833 |
|
|
1834 |
|
|
2029 |
(variable :tag "Other")) |
(variable :tag "Other")) |
2030 |
(sexp :tag "Value"))) |
(sexp :tag "Value"))) |
2031 |
)) |
)) |
2032 |
|
:version "20" |
2033 |
:group 'printing) |
:group 'printing) |
2034 |
|
|
2035 |
|
|
2047 |
`pr-ps-utility-alist'." |
`pr-ps-utility-alist'." |
2048 |
:type '(symbol :tag "PS File Utility") |
:type '(symbol :tag "PS File Utility") |
2049 |
:set 'pr-ps-utility-custom-set |
:set 'pr-ps-utility-custom-set |
2050 |
|
:version "20" |
2051 |
:group 'printing) |
:group 'printing) |
2052 |
|
|
2053 |
|
|
2232 |
(sexp :tag "Value"))) |
(sexp :tag "Value"))) |
2233 |
)) |
)) |
2234 |
:set 'pr-alist-custom-set |
:set 'pr-alist-custom-set |
2235 |
|
:version "20" |
2236 |
:group 'printing) |
:group 'printing) |
2237 |
|
|
2238 |
|
|
2241 |
|
|
2242 |
See also `pr-menu-char-height' and `pr-menu-char-width'." |
See also `pr-menu-char-height' and `pr-menu-char-width'." |
2243 |
:type 'boolean |
:type 'boolean |
2244 |
|
:version "20" |
2245 |
:group 'printing) |
:group 'printing) |
2246 |
|
|
2247 |
|
|
2248 |
(defcustom pr-menu-char-height |
(defcustom pr-menu-char-height |
2249 |
(cond ((eq ps-print-emacs-type 'emacs) ; GNU Emacs |
(cond ((featurep 'xemacs) ; XEmacs |
2250 |
(pr-e-frame-char-height)) |
(pr-x-font-height (face-font 'default))) |
2251 |
((eq ps-print-emacs-type 'xemacs) ; XEmacs |
(t ; GNU Emacs |
2252 |
(pr-x-font-height (face-font 'default)))) |
(pr-e-frame-char-height))) |
2253 |
"*Specify menu char height in pixels. |
"*Specify menu char height in pixels. |
2254 |
|
|
2255 |
This variable is used to guess which vertical position should be locked the |
This variable is used to guess which vertical position should be locked the |
2257 |
|
|
2258 |
See also `pr-menu-lock' and `pr-menu-char-width'." |
See also `pr-menu-lock' and `pr-menu-char-width'." |
2259 |
:type 'integer |
:type 'integer |
2260 |
|
:version "20" |
2261 |
:group 'printing) |
:group 'printing) |
2262 |
|
|
2263 |
|
|
2264 |
(defcustom pr-menu-char-width |
(defcustom pr-menu-char-width |
2265 |
(cond ((eq ps-print-emacs-type 'emacs) ; GNU Emacs |
(cond ((featurep 'xemacs) ; XEmacs |
2266 |
(pr-e-frame-char-width)) |
(pr-x-font-width (face-font 'default))) |
2267 |
((eq ps-print-emacs-type 'xemacs) ; XEmacs |
(t ; GNU Emacs |
2268 |
(pr-x-font-width (face-font 'default)))) |
(pr-e-frame-char-width))) |
2269 |
"*Specify menu char width in pixels. |
"*Specify menu char width in pixels. |
2270 |
|
|
2271 |
This variable is used to guess which horizontal position should be locked the |
This variable is used to guess which horizontal position should be locked the |
2273 |
|
|
2274 |
See also `pr-menu-lock' and `pr-menu-char-height'." |
See also `pr-menu-lock' and `pr-menu-char-height'." |
2275 |
:type 'integer |
:type 'integer |
2276 |
|
:version "20" |
2277 |
:group 'printing) |
:group 'printing) |
2278 |
|
|
2279 |
|
|
2390 |
(variable :tag "Other")) |
(variable :tag "Other")) |
2391 |
(sexp :tag "Value"))) |
(sexp :tag "Value"))) |
2392 |
)) |
)) |
2393 |
|
:version "20" |
2394 |
:group 'printing) |
:group 'printing) |
2395 |
|
|
2396 |
|
|
2444 |
(const postscript-process) |
(const postscript-process) |
2445 |
(const printing) |
(const printing) |
2446 |
(const help))) |
(const help))) |
2447 |
|
:version "20" |
2448 |
:group 'printing) |
:group 'printing) |
2449 |
|
|
2450 |
|
|
2456 |
|
|
2457 |
Error: could not open \"c:\\temp\\prspool.ps\" for reading." |
Error: could not open \"c:\\temp\\prspool.ps\" for reading." |
2458 |
:type 'boolean |
:type 'boolean |
2459 |
|
:version "20" |
2460 |
:group 'printing) |
:group 'printing) |
2461 |
|
|
2462 |
|
|
2470 |
`pr-ps-directory-print', `pr-ps-directory-ps-print', `pr-printify-directory' |
`pr-ps-directory-print', `pr-ps-directory-ps-print', `pr-printify-directory' |
2471 |
and `pr-txt-directory'." |
and `pr-txt-directory'." |
2472 |
:type 'boolean |
:type 'boolean |
2473 |
|
:version "20" |
2474 |
:group 'printing) |
:group 'printing) |
2475 |
|
|
2476 |
|
|
2479 |
|
|
2480 |
It's used by `pr-interface'." |
It's used by `pr-interface'." |
2481 |
:type 'string |
:type 'string |
2482 |
|
:version "20" |
2483 |
:group 'printing) |
:group 'printing) |
2484 |
|
|
2485 |
|
|
2493 |
|
|
2494 |
It's used by `pr-interface'." |
It's used by `pr-interface'." |
2495 |
:type '(repeat (regexp :tag "Buffer Name Regexp")) |
:type '(repeat (regexp :tag "Buffer Name Regexp")) |
2496 |
|
:version "20" |
2497 |
:group 'printing) |
:group 'printing) |
2498 |
|
|
2499 |
|
|
2502 |
|
|
2503 |
It's used by `pr-interface'." |
It's used by `pr-interface'." |
2504 |
:type 'boolean |
:type 'boolean |
2505 |
|
:version "20" |
2506 |
:group 'printing) |
:group 'printing) |
2507 |
|
|
2508 |
|
|
2550 |
|
|
2551 |
|
|
2552 |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
2553 |
|
;; Macros |
2554 |
|
|
2555 |
|
|
2556 |
|
(defmacro pr-save-file-modes (&rest body) |
2557 |
|
"Set temporally file modes to `pr-file-modes'." |
2558 |
|
`(let ((pr--default-file-modes (default-file-modes))) ; save default |
2559 |
|
(set-default-file-modes pr-file-modes) |
2560 |
|
,@body |
2561 |
|
(set-default-file-modes pr--default-file-modes))) ; restore default |
2562 |
|
|
2563 |
|
|
2564 |
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
2565 |
;; Keys & Menus |
;; Keys & Menus |
2566 |
|
|
2567 |
|
|
2590 |
(and pr-print-using-ghostscript (not pr-spool-p))) |
(and pr-print-using-ghostscript (not pr-spool-p))) |
2591 |
|
|
2592 |
|
|
2593 |
(eval-and-compile |
(defun pr-get-symbol (name) |
2594 |
(defun pr-get-symbol (name) |
(easy-menu-intern name)) |
|
(easy-menu-intern name)) |
|
2595 |
|
|
2596 |
(cond |
(cond |
2597 |
((eq ps-print-emacs-type 'emacs) ; GNU Emacs |
((featurep 'xemacs) ; XEmacs |
2598 |
(defun pr-region-active-p () |
(defvar zmacs-region-stays nil) ; to avoid compilation gripes |
2599 |
(and pr-auto-region transient-mark-mode mark-active))) |
(defun pr-region-active-p () |
2600 |
|
(and pr-auto-region (not zmacs-region-stays) (ps-mark-active-p)))) |
2601 |
((eq ps-print-emacs-type 'xemacs) ; XEmacs |
|
2602 |
(defvar zmacs-region-stays nil) ; to avoid compilation gripes |
(t ; GNU Emacs |
2603 |
(defun pr-region-active-p () |
(defun pr-region-active-p () |
2604 |
(and pr-auto-region (not zmacs-region-stays) (ps-mark-active-p))))) |
(and pr-auto-region transient-mark-mode mark-active)))) |
2605 |
|
|
2606 |
|
|
2607 |
(defconst pr-menu-spec |
(defconst pr-menu-spec |
2608 |
(cond |
;; Menu mapping: |
2609 |
((eq ps-print-emacs-type 'emacs) ; GNU Emacs |
;; unfortunately XEmacs doesn't support :active for submenus, |
2610 |
'( |
;; only for items. |
2611 |
["Printing Interface" pr-interface |
;; So, it uses :included instead of :active. |
2612 |
:help "Use buffer interface instead of menu interface"] |
;; Also, XEmacs doesn't support :help tag. |
2613 |
"--" |
(let ((pr-:active (if (featurep 'xemacs) |
2614 |
("PostScript Preview" :visible (pr-visible-p 'postscript) |
:included ; XEmacs |
2615 |
:help "Preview PostScript instead of sending to printer" |
:active)) ; GNU Emacs |
2616 |
("Directory" :active (not pr-spool-p) |
(pr-:help (if (featurep 'xemacs) |
2617 |
["1-up" (pr-ps-directory-preview 1 nil nil t) t] |
'ignore ; XEmacs |
2618 |
["2-up" (pr-ps-directory-preview 2 nil nil t) t] |
#'(lambda (text) (list :help text))))) ; GNU Emacs |
2619 |
["4-up" (pr-ps-directory-preview 4 nil nil t) t] |
`( |
2620 |
["Other..." (pr-ps-directory-preview nil nil nil t) |
["Printing Interface" pr-interface |
2621 |
:keys "\\[pr-ps-buffer-preview]"]) |
,@(funcall |
2622 |
("Buffer" :active (not pr-spool-p) |
pr-:help "Use buffer interface instead of menu interface")] |
2623 |
["1-up" (pr-ps-buffer-preview 1 t) t] |
"--" |
2624 |
["2-up" (pr-ps-buffer-preview 2 t) t] |
("PostScript Preview" :included (pr-visible-p 'postscript) |
2625 |
["4-up" (pr-ps-buffer-preview 4 t) t] |
,@(funcall |
2626 |
["Other..." (pr-ps-buffer-preview nil t) |
pr-:help "Preview PostScript instead of sending to printer") |
2627 |
:keys "\\[pr-ps-buffer-preview]"]) |
("Directory" ,pr-:active (not pr-spool-p) |
2628 |
("Region" :active (and (not pr-spool-p) (ps-mark-active-p)) |
["1-up" (pr-ps-directory-preview 1 nil nil t) t] |
2629 |
["1-up" (pr-ps-region-preview 1 t) t] |
["2-up" (pr-ps-directory-preview 2 nil nil t) t] |
2630 |
["2-up" (pr-ps-region-preview 2 t) t] |
["4-up" (pr-ps-directory-preview 4 nil nil t) t] |
2631 |
["4-up" (pr-ps-region-preview 4 t) t] |
["Other..." (pr-ps-directory-preview nil nil nil t) |
2632 |
["Other..." (pr-ps-region-preview nil t) |
:keys "\\[pr-ps-buffer-preview]"]) |
2633 |
:keys "\\[pr-ps-region-preview]"]) |
("Buffer" ,pr-:active (not pr-spool-p) |
2634 |
("Mode" :active (and (not pr-spool-p) (pr-mode-alist-p)) |
["1-up" (pr-ps-buffer-preview 1 t) t] |
2635 |
["1-up" (pr-ps-mode-preview 1 t) t] |
["2-up" (pr-ps-buffer-preview 2 t) t] |
2636 |
["2-up" (pr-ps-mode-preview 2 t) t] |
["4-up" (pr-ps-buffer-preview 4 t) t] |
2637 |
["4-up" (pr-ps-mode-preview 4 t) t] |
["Other..." (pr-ps-buffer-preview nil t) |
2638 |
["Other..." (pr-ps-mode-preview nil t) |
:keys "\\[pr-ps-buffer-preview]"]) |
2639 |
:keys "\\[pr-ps-mode-preview]"]) |
("Region" ,pr-:active (and (not pr-spool-p) (ps-mark-active-p)) |
2640 |
("File" |
["1-up" (pr-ps-region-preview 1 t) t] |
2641 |
["No Preprocessing..." (call-interactively 'pr-ps-file-preview) |
["2-up" (pr-ps-region-preview 2 t) t] |
2642 |
:keys "\\[pr-ps-file-preview]" |
["4-up" (pr-ps-region-preview 4 t) t] |
2643 |
:help "Preview PostScript file"] |
["Other..." (pr-ps-region-preview nil t) |
2644 |
"--" |
:keys "\\[pr-ps-region-preview]"]) |
2645 |
["PostScript Utility" pr-update-menus :active pr-ps-utility-alist |
("Mode" ,pr-:active (and (not pr-spool-p) (pr-mode-alist-p)) |
2646 |
:help "Select PostScript utility"] |
["1-up" (pr-ps-mode-preview 1 t) t] |
2647 |
"--" |
["2-up" (pr-ps-mode-preview 2 t) t] |
2648 |
["1-up..." (pr-ps-file-up-preview 1 t t) pr-ps-utility-alist] |
["4-up" (pr-ps-mode-preview 4 t) t] |
2649 |
["2-up..." (pr-ps-file-up-preview 2 t t) pr-ps-utility-alist] |
["Other..." (pr-ps-mode-preview nil t) |
2650 |
["4-up..." (pr-ps-file-up-preview 4 t t) pr-ps-utility-alist] |
:keys "\\[pr-ps-mode-preview]"]) |
2651 |
["Other..." (pr-ps-file-up-preview nil t t) |
("File" |
2652 |
:keys "\\[pr-ps-file-up-preview]" :active pr-ps-utility-alist] |
["No Preprocessing..." (call-interactively 'pr-ps-file-preview) |
2653 |
"--" |
:keys "\\[pr-ps-file-preview]" |
2654 |
["Landscape" pr-toggle-file-landscape |
,@(funcall |
2655 |
:style toggle :selected pr-file-landscape |
pr-:help "Preview PostScript file")] |
|
:help "Toggle landscape for PostScript file" |
|
|
:active pr-ps-utility-alist] |
|
|
["Duplex" pr-toggle-file-duplex |
|
|
:style toggle :selected pr-file-duplex |
|
|
:help "Toggle duplex for PostScript file" |
|
|
:active pr-ps-utility-alist] |
|
|
["Tumble" pr-toggle-file-tumble |
|
|
:style toggle :selected pr-file-tumble |
|
|
:help "Toggle tumble for PostScript file" |
|
|
:active (and pr-file-duplex pr-ps-utility-alist)]) |
|
|
["Despool..." (call-interactively 'pr-despool-preview) |
|
|
:active pr-spool-p :keys "\\[pr-despool-preview]" |
|
|
:help "Despool PostScript buffer to printer or file (C-u)"]) |
|
|
("PostScript Print" :visible (pr-visible-p 'postscript) |
|
|
:help "Send PostScript to printer or file (C-u)" |
|
|
("Directory" |
|
|
["1-up" (pr-ps-directory-ps-print 1 nil nil t) t] |
|
|
["2-up" (pr-ps-directory-ps-print 2 nil nil t) t] |
|
|
["4-up" (pr-ps-directory-ps-print 4 nil nil t) t] |
|
|
["Other..." (pr-ps-directory-ps-print nil nil nil t) |
|
|
:keys "\\[pr-ps-buffer-ps-print]"]) |
|
|
("Buffer" |
|
|
["1-up" (pr-ps-buffer-ps-print 1 t) t] |
|
|
["2-up" (pr-ps-buffer-ps-print 2 t) t] |
|
|
["4-up" (pr-ps-buffer-ps-print 4 t) t] |
|
|
["Other..." (pr-ps-buffer-ps-print nil t) |
|
|
:keys "\\[pr-ps-buffer-ps-print]"]) |
|
|
("Region" :active (ps-mark-active-p) |
|
|
["1-up" (pr-ps-region-ps-print 1 t) t] |
|
|
["2-up" (pr-ps-region-ps-print 2 t) t] |
|
|
["4-up" (pr-ps-region-ps-print 4 t) t] |
|
|
["Other..." (pr-ps-region-ps-print nil t) |
|
|
:keys "\\[pr-ps-region-ps-print]"]) |
|
|
("Mode" :active (pr-mode-alist-p) |
|
|
["1-up" (pr-ps-mode-ps-print 1 t) t] |
|
|
["2-up" (pr-ps-mode-ps-print 2 t) t] |
|
|
["4-up" (pr-ps-mode-ps-print 4 t) t] |
|
|
["Other..." (pr-ps-mode-ps-print nil t) |
|
|
:keys "\\[pr-ps-mode-ps-print]"]) |
|
|
("File" |
|
|
["No Preprocessing..." (call-interactively 'pr-ps-file-ps-print) |
|
|
:keys "\\[pr-ps-file-ps-print]" |
|
|
:help "Send PostScript file to printer"] |
|
|
"--" |
|
|
["PostScript Utility" pr-update-menus :active pr-ps-utility-alist |
|
|
:help "Select PostScript utility"] |
|
|
"--" |
|
|
["1-up..." (pr-ps-file-up-ps-print 1 t t) pr-ps-utility-alist] |
|
|
["2-up..." (pr-ps-file-up-ps-print 2 t t) pr-ps-utility-alist] |
|
|
["4-up..." (pr-ps-file-up-ps-print 4 t t) pr-ps-utility-alist] |
|
|
["Other..." (pr-ps-file-up-ps-print nil t t) |
|
|
:keys "\\[pr-ps-file-up-ps-print]" :active pr-ps-utility-alist] |
|
|
"--" |
|
|
["Landscape" pr-toggle-file-landscape |
|
|
:style toggle :selected pr-file-landscape |
|
|
:help "Toggle landscape for PostScript file" |
|
|
:active pr-ps-utility-alist] |
|
|
["Duplex" pr-toggle-file-duplex |
|
|
:style toggle :selected pr-file-duplex |
|
|
:help "Toggle duplex for PostScript file" |
|
|
:active pr-ps-utility-alist] |
|
|
["Tumble" pr-toggle-file-tumble |
|
|
:style toggle :selected pr-file-tumble |
|
|
:help "Toggle tumble for PostScript file" |
|
|
:active (and pr-file-duplex pr-ps-utility-alist)]) |
|
|
["Despool..." (call-interactively 'pr-despool-ps-print) |
|
|
:active pr-spool-p :keys "\\[pr-despool-ps-print]" |
|
|
:help "Despool PostScript buffer to printer or file (C-u)"]) |
|
|
["PostScript Printers" pr-update-menus |
|
|
:active pr-ps-printer-alist :included (pr-visible-p 'postscript) |
|
|
:help "Select PostScript printer"] |
|
|
"--" |
|
|
("Printify" :visible (pr-visible-p 'text) |
|
|
:help "Replace non-printing chars with printable representations." |
|
|
["Directory" pr-printify-directory t] |
|
|
["Buffer" pr-printify-buffer t] |
|
|
["Region" pr-printify-region (ps-mark-active-p)]) |
|
|
("Print" :visible (pr-visible-p 'text) |
|
|
:help "Send text to printer" |
|
|
["Directory" pr-txt-directory t] |
|
|
["Buffer" pr-txt-buffer t] |
|
|
["Region" pr-txt-region (ps-mark-active-p)] |
|
|
["Mode" pr-txt-mode (pr-mode-alist-p)]) |
|
|
["Text Printers" pr-update-menus |
|
|
:active pr-txt-printer-alist :included (pr-visible-p 'text) |
|
|
:help "Select text printer"] |
|
2656 |
"--" |
"--" |
2657 |
["Landscape" pr-toggle-landscape |
["PostScript Utility" pr-update-menus :active pr-ps-utility-alist |
2658 |
:style toggle :selected ps-landscape-mode |
,@(funcall |
2659 |
:included (pr-visible-p 'postscript-options)] |
pr-:help "Select PostScript utility")] |
|
["Print Header" pr-toggle-header |
|
|
:style toggle :selected ps-print-header |
|
|
:included (pr-visible-p 'postscript-options)] |
|
|
["Print Header Frame" pr-toggle-header-frame |
|
|
:style toggle :selected ps-print-header-frame :active ps-print-header |
|
|
:included (pr-visible-p 'postscript-options)] |
|
|
["Line Number" pr-toggle-line |
|
|
:style toggle :selected ps-line-number |
|
|
:included (pr-visible-p 'postscript-options)] |
|
|
["Zebra Stripes" pr-toggle-zebra |
|
|
:style toggle :selected ps-zebra-stripes |
|
|
:included (pr-visible-p 'postscript-options)] |
|
|
["Duplex" pr-toggle-duplex |
|
|
:style toggle :selected ps-spool-duplex |
|
|
:included (pr-visible-p 'postscript-options)] |
|
|
["Tumble" pr-toggle-tumble |
|
|
:style toggle :selected ps-spool-tumble :active ps-spool-duplex |
|
|
:included (pr-visible-p 'postscript-options)] |
|
|
["Upside-Down" pr-toggle-upside-down |
|
|
:style toggle :selected ps-print-upside-down |
|
|
:included (pr-visible-p 'postscript-options)] |
|
|
("Print All Pages" :visible (pr-visible-p 'postscript-options) |
|
|
:help "Select odd/even pages/sheets to print" |
|
|
["All Pages" (pr-even-or-odd-pages nil) |
|
|
:style radio :selected (eq ps-even-or-odd-pages nil)] |
|
|
["Even Pages" (pr-even-or-odd-pages 'even-page) |
|
|
:style radio :selected (eq ps-even-or-odd-pages 'even-page)] |
|
|
["Odd Pages" (pr-even-or-odd-pages 'odd-page) |
|
|
:style radio :selected (eq ps-even-or-odd-pages 'odd-page)] |
|
|
["Even Sheets" (pr-even-or-odd-pages 'even-sheet) |
|
|
:style radio :selected (eq ps-even-or-odd-pages 'even-sheet)] |
|
|
["Odd Sheets" (pr-even-or-odd-pages 'odd-sheet) |
|
|
:style radio :selected (eq ps-even-or-odd-pages 'odd-sheet)]) |
|
2660 |
"--" |
"--" |
2661 |
["Spool Buffer" pr-toggle-spool |
["1-up..." (pr-ps-file-up-preview 1 t t) pr-ps-utility-alist] |
2662 |
:style toggle :selected pr-spool-p |
["2-up..." (pr-ps-file-up-preview 2 t t) pr-ps-utility-alist] |
2663 |
:included (pr-visible-p 'postscript-process) |
["4-up..." (pr-ps-file-up-preview 4 t t) pr-ps-utility-alist] |
2664 |
:help "Toggle PostScript spooling"] |
["Other..." (pr-ps-file-up-preview nil t t) |
2665 |
["Print with faces" pr-toggle-faces |
:keys "\\[pr-ps-file-up-preview]" :active pr-ps-utility-alist] |
|
:style toggle :selected pr-faces-p |
|
|
:included (pr-visible-p 'postscript-process) |
|
|
:help "Toggle PostScript printing with faces"] |
|
|
["Print via Ghostscript" pr-toggle-ghostscript |
|
|
:style toggle :selected pr-print-using-ghostscript |
|
|
:included (pr-visible-p 'postscript-process) |
|
|
:help "Toggle PostScript generation using ghostscript"] |
|
2666 |
"--" |
"--" |
2667 |
["Auto Region" pr-toggle-region |
["Landscape" pr-toggle-file-landscape-menu |
2668 |
:style toggle :selected pr-auto-region |
:style toggle :selected pr-file-landscape |
2669 |
:included (pr-visible-p 'printing)] |
,@(funcall |
2670 |
["Auto Mode" pr-toggle-mode |
pr-:help "Toggle landscape for PostScript file") |
2671 |
:style toggle :selected pr-auto-mode |
:active pr-ps-utility-alist] |
2672 |
:included (pr-visible-p 'printing)] |
["Duplex" pr-toggle-file-duplex-menu |
2673 |
["Menu Lock" pr-toggle-lock |
:style toggle :selected pr-file-duplex |
2674 |
:style toggle :selected pr-menu-lock |
,@(funcall |
2675 |
:included (pr-visible-p 'printing)] |
pr-:help "Toggle duplex for PostScript file") |
2676 |
|
:active pr-ps-utility-alist] |
2677 |
|
["Tumble" pr-toggle-file-tumble-menu |
2678 |
|
:style toggle :selected pr-file-tumble |
2679 |
|
,@(funcall |
2680 |
|
pr-:help "Toggle tumble for PostScript file") |
2681 |
|
:active (and pr-file-duplex pr-ps-utility-alist)]) |
2682 |
|
["Despool..." (call-interactively 'pr-despool-preview) |
2683 |
|
:active pr-spool-p :keys "\\[pr-despool-preview]" |
2684 |
|
,@(funcall |
2685 |
|
pr-:help "Despool PostScript buffer to printer or file (C-u)")]) |
2686 |
|
("PostScript Print" :included (pr-visible-p 'postscript) |
2687 |
|
,@(funcall |
2688 |
|
pr-:help "Send PostScript to printer or file (C-u)") |
2689 |
|
("Directory" |
2690 |
|
["1-up" (pr-ps-directory-ps-print 1 nil nil t) t] |
2691 |
|
["2-up" (pr-ps-directory-ps-print 2 nil nil t) t] |
2692 |
|
["4-up" (pr-ps-directory-ps-print 4 nil nil t) t] |
2693 |
|
["Other..." (pr-ps-directory-ps-print nil nil nil t) |
2694 |
|
:keys "\\[pr-ps-buffer-ps-print]"]) |
2695 |
|
("Buffer" |
2696 |
|
["1-up" (pr-ps-buffer-ps-print 1 t) t] |
2697 |
|
["2-up" (pr-ps-buffer-ps-print 2 t) t] |
2698 |
|
["4-up" (pr-ps-buffer-ps-print 4 t) t] |
2699 |
|
["Other..." (pr-ps-buffer-ps-print nil t) |
2700 |
|
:keys "\\[pr-ps-buffer-ps-print]"]) |
2701 |
|
("Region" ,pr-:active (ps-mark-active-p) |
2702 |
|
["1-up" (pr-ps-region-ps-print 1 t) t] |
2703 |
|
["2-up" (pr-ps-region-ps-print 2 t) t] |
2704 |
|
["4-up" (pr-ps-region-ps-print 4 t) t] |
2705 |
|
["Other..." (pr-ps-region-ps-print nil t) |
2706 |
|
:keys "\\[pr-ps-region-ps-print]"]) |
2707 |
|
("Mode" ,pr-:active (pr-mode-alist-p) |
2708 |
|
["1-up" (pr-ps-mode-ps-print 1 t) t] |
2709 |
|
["2-up" (pr-ps-mode-ps-print 2 t) t] |
2710 |
|
["4-up" (pr-ps-mode-ps-print 4 t) t] |
2711 |
|
["Other..." (pr-ps-mode-ps-print nil t) |
2712 |
|
:keys "\\[pr-ps-mode-ps-print]"]) |
2713 |
|
("File" |
2714 |
|
["No Preprocessing..." (call-interactively 'pr-ps-file-ps-print) |
2715 |
|
:keys "\\[pr-ps-file-ps-print]" |
2716 |
|
,@(funcall |
2717 |
|
pr-:help "Send PostScript file to printer")] |
2718 |
"--" |
"--" |
2719 |
("Customize" :visible (pr-visible-p 'help) |
["PostScript Utility" pr-update-menus :active pr-ps-utility-alist |
2720 |
["printing" pr-customize t] |
,@(funcall |
2721 |
["ps-print" ps-print-customize t] |
pr-:help "Select PostScript utility")] |
|
["lpr" lpr-customize t]) |
|
|
("Show Settings" :visible (pr-visible-p 'help) |
|
|
["printing" pr-show-pr-setup t] |
|
|
["ps-print" pr-show-ps-setup t] |
|
|
["lpr" pr-show-lpr-setup t]) |
|
|
["Help" pr-help :active t :included (pr-visible-p 'help)] |
|
|
)) |
|
|
|
|
|
|
|
|
((eq ps-print-emacs-type 'xemacs) ; XEmacs |
|
|
;; Menu mapping: |
|
|
;; unfortunately XEmacs doesn't support :active or :visible |
|
|
;; for submenus, only for items. |
|
|
;; It uses :included instead of :active or :visible. |
|
|
;; Also, XEmacs doesn't support :help tag. |
|
|
'( |
|
|
["Printing Interface" pr-interface] |
|
2722 |
"--" |
"--" |
2723 |
("PostScript Preview" :included (pr-visible-p 'postscript) |
["1-up..." (pr-ps-file-up-ps-print 1 t t) pr-ps-utility-alist] |
2724 |
("Directory" :included (not pr-spool-p) |
["2-up..." (pr-ps-file-up-ps-print 2 t t) pr-ps-utility-alist] |
2725 |
["1-up" (pr-ps-directory-preview 1 nil nil t) t] |
["4-up..." (pr-ps-file-up-ps-print 4 t t) pr-ps-utility-alist] |
2726 |
["2-up" (pr-ps-directory-preview 2 nil nil t) t] |
["Other..." (pr-ps-file-up-ps-print nil t t) |
2727 |
["4-up" (pr-ps-directory-preview 4 nil nil t) t] |
:keys "\\[pr-ps-file-up-ps-print]" :active pr-ps-utility-alist] |
|
["Other..." (pr-ps-directory-preview nil nil nil t) |
|
|
:keys "\\[pr-ps-buffer-preview]"]) |
|
|
("Buffer" :included (not pr-spool-p) |
|
|
["1-up" (pr-ps-buffer-preview 1 t) t] |
|
|
["2-up" (pr-ps-buffer-preview 2 t) t] |
|
|
["4-up" (pr-ps-buffer-preview 4 t) t] |
|
|
["Other..." (pr-ps-buffer-preview nil t) |
|
|
:keys "\\[pr-ps-buffer-preview]"]) |
|
|
("Region" :included (and (not pr-spool-p) (ps-mark-active-p)) |
|
|
["1-up" (pr-ps-region-preview 1 t) t] |
|
|
["2-up" (pr-ps-region-preview 2 t) t] |
|
|
["4-up" (pr-ps-region-preview 4 t) t] |
|
|
["Other..." (pr-ps-region-preview nil t) |
|
|
:keys "\\[pr-ps-region-preview]"]) |
|
|
("Mode" :included (and (not pr-spool-p) (pr-mode-alist-p)) |
|
|
["1-up" (pr-ps-mode-preview 1 t) t] |
|
|
["2-up" (pr-ps-mode-preview 2 t) t] |
|
|
["4-up" (pr-ps-mode-preview 4 t) t] |
|
|
["Other..." (pr-ps-mode-preview nil t) |
|
|
:keys "\\[pr-ps-mode-preview]"]) |
|
|
("File" |
|
|
["No Preprocessing..." (call-interactively 'pr-ps-file-preview) |
|
|
:keys "\\[pr-ps-file-preview]"] |
|
|
"--" |
|
|
["PostScript Utility" pr-update-menus :active pr-ps-utility-alist] |
|
|
"--" |
|
|
["1-up..." (pr-ps-file-up-preview 1 t t) pr-ps-utility-alist] |
|
|
["2-up..." (pr-ps-file-up-preview 2 t t) pr-ps-utility-alist] |
|
|
["4-up..." (pr-ps-file-up-preview 4 t t) pr-ps-utility-alist] |
|
|
["Other..." (pr-ps-file-up-preview nil t t) |
|
|
:keys "\\[pr-ps-file-up-preview]" :active pr-ps-utility-alist] |
|
|
"--" |
|
|
["Landscape" pr-toggle-file-landscape |
|
|
:style toggle :selected pr-file-landscape |
|
|
:active pr-ps-utility-alist] |
|
|
["Duplex" pr-toggle-file-duplex |
|
|
:style toggle :selected pr-file-duplex |
|
|
:active pr-ps-utility-alist] |
|
|
["Tumble" pr-toggle-file-tumble |
|
|
:style toggle :selected pr-file-tumble |
|
|
:active (and pr-file-duplex pr-ps-utility-alist)]) |
|
|
["Despool..." (call-interactively 'pr-despool-preview) |
|
|
:active pr-spool-p :keys "\\[pr-despool-preview]"]) |
|
|
("PostScript Print" :included (pr-visible-p 'postscript) |
|
|
("Directory" |
|
|
["1-up" (pr-ps-directory-ps-print 1 nil nil t) t] |
|
|
["2-up" (pr-ps-directory-ps-print 2 nil nil t) t] |
|
|
["4-up" (pr-ps-directory-ps-print 4 nil nil t) t] |
|
|
["Other..." (pr-ps-directory-ps-print nil nil nil t) |
|
|
:keys "\\[pr-ps-buffer-ps-print]"]) |
|
|
("Buffer" |
|
|
["1-up" (pr-ps-buffer-ps-print 1 t) t] |
|
|
["2-up" (pr-ps-buffer-ps-print 2 t) t] |
|
|
["4-up" (pr-ps-buffer-ps-print 4 t) t] |
|
|
["Other..." (pr-ps-buffer-ps-print nil t) |
|
|
:keys "\\[pr-ps-buffer-ps-print]"]) |
|
|
("Region" :included (ps-mark-active-p) |
|
|
["1-up" (pr-ps-region-ps-print 1 t) t] |
|
|
["2-up" (pr-ps-region-ps-print 2 t) t] |
|
|
["4-up" (pr-ps-region-ps-print 4 t) t] |
|
|
["Other..." (pr-ps-region-ps-print nil t) |
|
|
:keys "\\[pr-ps-region-ps-print]"]) |
|
|
("Mode" :included (pr-mode-alist-p) |
|
|
["1-up" (pr-ps-mode-ps-print 1 t) t] |
|
|
["2-up" (pr-ps-mode-ps-print 2 t) t] |
|
|
["4-up" (pr-ps-mode-ps-print 4 t) t] |
|
|
["Other..." (pr-ps-mode-ps-print nil t) |
|
|
:keys "\\[pr-ps-mode-ps-print]"]) |
|
|
("File" |
|
|
["No Preprocessing..." (call-interactively 'pr-ps-file-ps-print) |
|
|
:keys "\\[pr-ps-file-ps-print]"] |
|
|
"--" |
|
|
["PostScript Utility" pr-update-menus :active pr-ps-utility-alist] |
|
|
"--" |
|
|
["1-up..." (pr-ps-file-up-ps-print 1 t t) pr-ps-utility-alist] |
|
|
["2-up..." (pr-ps-file-up-ps-print 2 t t) pr-ps-utility-alist] |
|
|
["4-up..." (pr-ps-file-up-ps-print 4 t t) pr-ps-utility-alist] |
|
|
["Other..." (pr-ps-file-up-ps-print nil t t) |
|
|
:keys "\\[pr-ps-file-up-ps-print]" :active pr-ps-utility-alist] |
|
|
"--" |
|
|
["Landscape" pr-toggle-file-landscape |
|
|
:style toggle :selected pr-file-landscape |
|
|
:active pr-ps-utility-alist] |
|
|
["Duplex" pr-toggle-file-duplex |
|
|
:style toggle :selected pr-file-duplex |
|
|
:active pr-ps-utility-alist] |
|
|
["Tumble" pr-toggle-file-tumble |
|
|
:style toggle :selected pr-file-tumble |
|
|
:active (and pr-file-duplex pr-ps-utility-alist)]) |
|
|
["Despool..." (call-interactively 'pr-despool-ps-print) |
|
|
:active pr-spool-p :keys "\\[pr-despool-ps-print]"]) |
|
|
["PostScript Printers" pr-update-menus |
|
|
:active pr-ps-printer-alist :included (pr-visible-p 'postscript)] |
|
2728 |
"--" |
"--" |
2729 |
("Printify" :included (pr-visible-p 'text) |
["Landscape" pr-toggle-file-landscape-menu |
2730 |
["Directory" pr-printify-directory t] |
:style toggle :selected pr-file-landscape |
2731 |
["Buffer" pr-printify-buffer t] |
,@(funcall |
2732 |
["Region" pr-printify-region (ps-mark-active-p)]) |
pr-:help "Toggle landscape for PostScript file") |
2733 |
("Print" :included (pr-visible-p 'text) |
:active pr-ps-utility-alist] |
2734 |
["Directory" pr-txt-directory t] |
["Duplex" pr-toggle-file-duplex-menu |
2735 |
["Buffer" pr-txt-buffer t] |
:style toggle :selected pr-file-duplex |
2736 |
["Region" pr-txt-region (ps-mark-active-p)] |
,@(funcall |
2737 |
["Mode" pr-txt-mode (pr-mode-alist-p)]) |
pr-:help "Toggle duplex for PostScript file") |
2738 |
["Text Printers" pr-update-menus |
:active pr-ps-utility-alist] |
2739 |
:active pr-txt-printer-alist :included (pr-visible-p 'text)] |
["Tumble" pr-toggle-file-tumble-menu |
2740 |
"--" |
:style toggle :selected pr-file-tumble |
2741 |
["Landscape" pr-toggle-landscape |
,@(funcall |
2742 |
:style toggle :selected ps-landscape-mode |
pr-:help "Toggle tumble for PostScript file") |
2743 |
:included (pr-visible-p 'postscript-options)] |
:active (and pr-file-duplex pr-ps-utility-alist)]) |
2744 |
["Print Header" pr-toggle-header |
["Despool..." (call-interactively 'pr-despool-ps-print) |
2745 |
:style toggle :selected ps-print-header |
:active pr-spool-p :keys "\\[pr-despool-ps-print]" |
2746 |
:included (pr-visible-p 'postscript-options)] |
,@(funcall |
2747 |
["Print Header Frame" pr-toggle-header-frame |
pr-:help "Despool PostScript buffer to printer or file (C-u)")]) |
2748 |
:style toggle :selected ps-print-header-frame :active ps-print-header |
["PostScript Printers" pr-update-menus |
2749 |
:included (pr-visible-p 'postscript-options)] |
:active pr-ps-printer-alist :included (pr-visible-p 'postscript) |
2750 |
["Line Number" pr-toggle-line |
,@(funcall |
2751 |
:style toggle :selected ps-line-number |
pr-:help "Select PostScript printer")] |
2752 |
:included (pr-visible-p 'postscript-options)] |
"--" |
2753 |
["Zebra Stripes" pr-toggle-zebra |
("Printify" :included (pr-visible-p 'text) |
2754 |
:style toggle :selected ps-zebra-stripes |
,@(funcall |
2755 |
:included (pr-visible-p 'postscript-options)] |
pr-:help |
2756 |
["Duplex" pr-toggle-duplex |
"Replace non-printing chars with printable representations.") |
2757 |
:style toggle :selected ps-spool-duplex |
["Directory" pr-printify-directory t] |
2758 |
:included (pr-visible-p 'postscript-options)] |
["Buffer" pr-printify-buffer t] |
2759 |
["Tumble" pr-toggle-tumble |
["Region" pr-printify-region (ps-mark-active-p)]) |
2760 |
:style toggle :selected ps-spool-tumble :active ps-spool-duplex |
("Print" :included (pr-visible-p 'text) |
2761 |
:included (pr-visible-p 'postscript-options)] |
,@(funcall |
2762 |
["Upside-Down" pr-toggle-upside-down |
pr-:help "Send text to printer") |
2763 |
:style toggle :selected ps-print-upside-down |
["Directory" pr-txt-directory t] |
2764 |
:included (pr-visible-p 'postscript-options)] |
["Buffer" pr-txt-buffer t] |
2765 |
("Print All Pages" :included (pr-visible-p 'postscript-options) |
["Region" pr-txt-region (ps-mark-active-p)] |
2766 |
["All Pages" (pr-even-or-odd-pages nil) |
["Mode" pr-txt-mode (pr-mode-alist-p)]) |
2767 |
:style radio :selected (eq ps-even-or-odd-pages nil)] |
["Text Printers" pr-update-menus |
2768 |
["Even Pages" (pr-even-or-odd-pages 'even-page) |
:active pr-txt-printer-alist :included (pr-visible-p 'text) |
2769 |
:style radio :selected (eq ps-even-or-odd-pages 'even-page)] |
,@(funcall |
2770 |
["Odd Pages" (pr-even-or-odd-pages 'odd-page) |
pr-:help "Select text printer")] |
2771 |
:style radio :selected (eq ps-even-or-odd-pages 'odd-page)] |
"--" |
2772 |
["Even Sheets" (pr-even-or-odd-pages 'even-sheet) |
["Landscape" pr-toggle-landscape-menu |
2773 |
:style radio :selected (eq ps-even-or-odd-pages 'even-sheet)] |
:style toggle :selected ps-landscape-mode |
2774 |
["Odd Sheets" (pr-even-or-odd-pages 'odd-sheet) |
:included (pr-visible-p 'postscript-options)] |
2775 |
:style radio :selected (eq ps-even-or-odd-pages 'odd-sheet)]) |
["Print Header" pr-toggle-header-menu |
2776 |
"--" |
:style toggle :selected ps-print-header |
2777 |
["Spool Buffer" pr-toggle-spool |
:included (pr-visible-p 'postscript-options)] |
2778 |
:style toggle :selected pr-spool-p |
["Print Header Frame" pr-toggle-header-frame-menu |
2779 |
:included (pr-visible-p 'postscript-process)] |
:style toggle :selected ps-print-header-frame :active ps-print-header |
2780 |
["Print with faces" pr-toggle-faces |
:included (pr-visible-p 'postscript-options)] |
2781 |
:style toggle :selected pr-faces-p |
["Line Number" pr-toggle-line-menu |
2782 |
:included (pr-visible-p 'postscript-process)] |
:style toggle :selected ps-line-number |
2783 |
["Print via Ghostscript" pr-toggle-ghostscript |
:included (pr-visible-p 'postscript-options)] |
2784 |
:style toggle :selected pr-print-using-ghostscript |
["Zebra Stripes" pr-toggle-zebra-menu |
2785 |
:included (pr-visible-p 'postscript-process)] |
:style toggle :selected ps-zebra-stripes |
2786 |
"--" |
:included (pr-visible-p 'postscript-options)] |
2787 |
["Auto Region" pr-toggle-region |
["Duplex" pr-toggle-duplex-menu |
2788 |
:style toggle :selected pr-auto-region |
:style toggle :selected ps-spool-duplex |
2789 |
:included (pr-visible-p 'printing)] |
:included (pr-visible-p 'postscript-options)] |
2790 |
["Auto Mode" pr-toggle-mode |
["Tumble" pr-toggle-tumble-menu |
2791 |
:style toggle :selected pr-auto-mode |
:style toggle :selected ps-spool-tumble :active ps-spool-duplex |
2792 |
:included (pr-visible-p 'printing)] |
:included (pr-visible-p 'postscript-options)] |
2793 |
["Menu Lock" pr-toggle-lock |
["Upside-Down" pr-toggle-upside-down-menu |
2794 |
:style toggle :selected pr-menu-lock |
:style toggle :selected ps-print-upside-down |
2795 |
:included (pr-visible-p 'printing)] |
:included (pr-visible-p 'postscript-options)] |
2796 |
"--" |
("Print All Pages" :included (pr-visible-p 'postscript-options) |
2797 |
("Customize" :included (pr-visible-p 'help) |
,@(funcall |
2798 |
["printing" pr-customize t] |
pr-:help "Select odd/even pages/sheets to print") |
2799 |
["ps-print" ps-print-customize t] |
["All Pages" (pr-even-or-odd-pages nil) |
2800 |
["lpr" lpr-customize t]) |
:style radio :selected (eq ps-even-or-odd-pages nil)] |
2801 |
("Show Settings" :included (pr-visible-p 'help) |
["Even Pages" (pr-even-or-odd-pages 'even-page) |
2802 |
["printing" pr-show-pr-setup t] |
:style radio :selected (eq ps-even-or-odd-pages 'even-page)] |
2803 |
["ps-print" pr-show-ps-setup t] |
["Odd Pages" (pr-even-or-odd-pages 'odd-page) |
2804 |
["lpr" pr-show-lpr-setup t]) |
:style radio :selected (eq ps-even-or-odd-pages 'odd-page)] |
2805 |
["Help" pr-help :active t :included (pr-visible-p 'help)] |
["Even Sheets" (pr-even-or-odd-pages 'even-sheet) |
2806 |
)) |
:style radio :selected (eq ps-even-or-odd-pages 'even-sheet)] |
2807 |
)) |
["Odd Sheets" (pr-even-or-odd-pages 'odd-sheet) |
2808 |
|
:style radio :selected (eq ps-even-or-odd-pages 'odd-sheet)]) |
2809 |
|
"--" |
2810 |
|
["Spool Buffer" pr-toggle-spool-menu |
2811 |
|
:style toggle :selected pr-spool-p |
2812 |
|
:included (pr-visible-p 'postscript-process) |
2813 |
|
,@(funcall |
2814 |
|
pr-:help "Toggle PostScript spooling")] |
2815 |
|
["Print with faces" pr-toggle-faces-menu |
2816 |
|
:style toggle :selected pr-faces-p |
2817 |
|
:included (pr-visible-p 'postscript-process) |
2818 |
|
,@(funcall |
2819 |
|
pr-:help "Toggle PostScript printing with faces")] |
2820 |
|
["Print via Ghostscript" pr-toggle-ghostscript-menu |
2821 |
|
:style toggle :selected pr-print-using-ghostscript |
2822 |
|
:included (pr-visible-p 'postscript-process) |
2823 |
|
,@(funcall |
2824 |
|
pr-:help "Toggle PostScript generation using ghostscript")] |
2825 |
|
"--" |
2826 |
|
["Auto Region" pr-toggle-region-menu |
2827 |
|
:style toggle :selected pr-auto-region |
2828 |
|
:included (pr-visible-p 'printing)] |
2829 |
|
["Auto Mode" pr-toggle-mode-menu |
2830 |
|
:style toggle :selected pr-auto-mode |
2831 |
|
:included (pr-visible-p 'printing)] |
2832 |
|
["Menu Lock" pr-toggle-lock-menu |
2833 |
|
:style toggle :selected pr-menu-lock |
2834 |
|
:included (pr-visible-p 'printing)] |
2835 |
|
"--" |
2836 |
|
("Customize" :included (pr-visible-p 'help) |
2837 |
|
["printing" pr-customize t] |
2838 |
|
["ps-print" ps-print-customize t] |
2839 |
|
["lpr" lpr-customize t]) |
2840 |
|
("Show Settings" :included (pr-visible-p 'help) |
2841 |
|
["printing" pr-show-pr-setup t] |
2842 |
|
["ps-print" pr-show-ps-setup t] |
2843 |
|
["lpr" pr-show-lpr-setup t]) |
2844 |
|
["Help" pr-help :active t :included (pr-visible-p 'help)] |
2845 |
|
))) |
2846 |
|
|
2847 |
|
|
2848 |
|
(cond |
2849 |
|
((featurep 'xemacs) ; XEmacs |
2850 |
|
;; Menu binding |
2851 |
|
(pr-xemacs-global-menubar |
2852 |
|
(pr-x-add-submenu nil (cons "Printing" pr-menu-spec) "Apps"))) |
2853 |
|
|
2854 |
|
|
2855 |
|
(t ; GNU Emacs |
2856 |
|
;; Menu binding |
2857 |
|
(require 'easymenu) |
2858 |
|
;; Replace existing "print" item by "Printing" item. |
2859 |
|
;; If you're changing this file, you'll load it a second, |
2860 |
|
;; third... time, but "print" item exists only in the first load. |
2861 |
|
(defvar pr-menu-print-item "print") |
2862 |
(cond |
(cond |
2863 |
((eq ps-print-emacs-type 'emacs) ; GNU Emacs |
;; Emacs 20 |
2864 |
;; Menu binding |
((string< emacs-version "21.") |
2865 |
(require 'easymenu) |
(easy-menu-change '("tools") "Printing" pr-menu-spec pr-menu-print-item) |
2866 |
;; Replace existing "print" item by "Printing" item. |
(when pr-menu-print-item |
2867 |
;; If you're changing this file, you'll load it a second, |
(easy-menu-remove-item nil '("tools") pr-menu-print-item) |
2868 |
;; third... time, but "print" item exists only in the first load. |
(setq pr-menu-print-item nil |
2869 |
(defvar pr-menu-print-item "print") |
pr-menu-bar (vector 'menu-bar 'tools |
2870 |
(cond |
(pr-get-symbol "Printing"))))) |
2871 |
;; Emacs 20 |
;; Emacs 21 |
2872 |
((string< emacs-version "21.") |
(pr-menu-print-item |
2873 |
(easy-menu-change '("tools") "Printing" pr-menu-spec pr-menu-print-item) |
(easy-menu-change '("file") "Print" pr-menu-spec "print-buffer") |
2874 |
(when pr-menu-print-item |
(let ((items '("print-buffer" "print-region" |
2875 |
(easy-menu-remove-item nil '("tools") pr-menu-print-item) |
"ps-print-buffer-faces" "ps-print-region-faces" |
2876 |
(setq pr-menu-print-item nil |
"ps-print-buffer" "ps-print-region"))) |
2877 |
pr-menu-bar (vector 'menu-bar 'tools |
(while items |
2878 |
(pr-get-symbol "Printing"))))) |
(easy-menu-remove-item nil '("file") (car items)) |
2879 |
;; Emacs 21 |
(setq items (cdr items))) |
2880 |
(pr-menu-print-item |
(setq pr-menu-print-item nil |
2881 |
(easy-menu-change '("file") "Print" pr-menu-spec "print-buffer") |
pr-menu-bar (vector 'menu-bar 'file |
2882 |
(let ((items '("print-buffer" "print-region" |
(pr-get-symbol "Print"))))) |
2883 |
"ps-print-buffer-faces" "ps-print-region-faces" |
(t |
2884 |
"ps-print-buffer" "ps-print-region"))) |
(easy-menu-change '("file") "Print" pr-menu-spec))))) |
|
(while items |
|
|
(easy-menu-remove-item nil '("file") (car items)) |
|
|
(setq items (cdr items))) |
|
|
(setq pr-menu-print-item nil |
|
|
pr-menu-bar (vector 'menu-bar 'file |
|
|
(pr-get-symbol "Print"))))) |
|
|
(t |
|
|
(easy-menu-change '("file") "Print" pr-menu-spec))) |
|
|
|
|
|
;; Key binding |
|
|
(global-set-key [print] 'pr-ps-fast-fire) |
|
|
(global-set-key [M-print] 'pr-ps-mode-using-ghostscript) |
|
|
(global-set-key [C-print] 'pr-txt-fast-fire)) |
|
|
|
|
2885 |
|
|
|
((eq ps-print-emacs-type 'xemacs) ; XEmacs |
|
|
;; Menu binding |
|
|
(pr-xemacs-global-menubar |
|
|
(pr-x-add-submenu nil (cons "Printing" pr-menu-spec) "Apps")) |
|
2886 |
|
|
2887 |
;; Key binding |
;; Key binding |
2888 |
(global-set-key 'f22 'pr-ps-fast-fire) |
(let ((pr-print-key (if (featurep 'xemacs) |
2889 |
(global-set-key '(meta f22) 'pr-ps-mode-using-ghostscript) |
'f22 ; XEmacs |
2890 |
(global-set-key '(control f22) 'pr-txt-fast-fire)))) |
'print))) ; GNU Emacs |
2891 |
|
(global-set-key `[,pr-print-key] 'pr-ps-fast-fire) |
2892 |
|
;; Well, M-print and S-print are used because in my keyboard S-print works |
2893 |
|
;; and M-print doesn't. But M-print can work in other keyboard. |
2894 |
|
(global-set-key `[(meta ,pr-print-key)] 'pr-ps-mode-using-ghostscript) |
2895 |
|
(global-set-key `[(shift ,pr-print-key)] 'pr-ps-mode-using-ghostscript) |
2896 |
|
;; Well, C-print and C-M-print are used because in my keyboard C-M-print works |
2897 |
|
;; and C-print doesn't. But C-print can work in other keyboard. |
2898 |
|
(global-set-key `[(control ,pr-print-key)] 'pr-txt-fast-fire) |
2899 |
|
(global-set-key `[(control meta ,pr-print-key)] 'pr-txt-fast-fire)) |
2900 |
|
|
2901 |
|
|
2902 |
;;; You can also use something like: |
;;; You can also use something like: |
3802 |
send the image to the printer. If FILENAME is a string, save the PostScript |
send the image to the printer. If FILENAME is a string, save the PostScript |
3803 |
image in a file with that name." |
image in a file with that name." |
3804 |
(interactive (list (ps-print-preprint current-prefix-arg))) |
(interactive (list (ps-print-preprint current-prefix-arg))) |
3805 |
(let ((ps-lpr-command (pr-command pr-ps-command)) |
(pr-save-file-modes |
3806 |
(ps-lpr-switches pr-ps-switches) |
(let ((ps-lpr-command (pr-command pr-ps-command)) |
3807 |
(ps-printer-name-option pr-ps-printer-switch) |
(ps-lpr-switches pr-ps-switches) |
3808 |
(ps-printer-name pr-ps-printer)) |
(ps-printer-name-option pr-ps-printer-switch) |
3809 |
(ps-despool filename))) |
(ps-printer-name pr-ps-printer)) |
3810 |
|
(ps-despool filename)))) |
3811 |
|
|
3812 |
|
|
3813 |
;;;###autoload |
;;;###autoload |
3874 |
;; printing |
;; printing |
3875 |
(let ((file (pr-expand-file-name filename))) |
(let ((file (pr-expand-file-name filename))) |
3876 |
(if (string= pr-ps-command "") |
(if (string= pr-ps-command "") |
3877 |
|
;; default action |
3878 |
(let ((ps-spool-buffer (get-buffer-create ps-spool-buffer-name))) |
(let ((ps-spool-buffer (get-buffer-create ps-spool-buffer-name))) |
3879 |
(save-excursion |
(save-excursion |
3880 |
(set-buffer ps-spool-buffer) |
(set-buffer ps-spool-buffer) |
3881 |
(erase-buffer) |
(erase-buffer) |
3882 |
(insert-file-contents-literally file)) |
(insert-file-contents-literally file)) |
3883 |
(pr-despool-print)) |
(pr-despool-print)) |
3884 |
|
;; use `pr-ps-command' to print |
3885 |
(apply 'pr-call-process |
(apply 'pr-call-process |
3886 |
pr-ps-command |
pr-ps-command |
3887 |
(pr-switches-string pr-ps-switches "pr-gs-switches") |
(pr-switches-string pr-ps-switches "pr-ps-switches") |
3888 |
(if (string-match "cp" pr-ps-command) |
(if (string-match "cp" pr-ps-command) |
3889 |
;; for "cp" (cmd in out) |
;; for "cp" (cmd in out) |
3890 |
(list file |
(list file |
3940 |
(defun pr-toggle-file-duplex () |
(defun pr-toggle-file-duplex () |
3941 |
"Toggle duplex for PostScript file." |
"Toggle duplex for PostScript file." |
3942 |
(interactive) |
(interactive) |
3943 |
(pr-toggle 'pr-file-duplex "PS file duplex" nil 7 5 nil |
(pr-toggle-file-duplex-menu t)) |
|
'("PostScript Print" "File"))) |
|
3944 |
|
|
3945 |
|
|
3946 |
;;;###autoload |
;;;###autoload |
3952 |
If tumble is on, produces a printing suitable for binding at the top or |
If tumble is on, produces a printing suitable for binding at the top or |
3953 |
bottom." |
bottom." |
3954 |
(interactive) |
(interactive) |
3955 |
(pr-toggle 'pr-file-tumble "PS file tumble" nil 8 5 nil |
(pr-toggle-file-tumble-menu t)) |
|
'("PostScript Print" "File"))) |
|
3956 |
|
|
3957 |
|
|
3958 |
;;;###autoload |
;;;###autoload |
3959 |
(defun pr-toggle-file-landscape () |
(defun pr-toggle-file-landscape () |
3960 |
"Toggle landscape for PostScript file." |
"Toggle landscape for PostScript file." |
3961 |
(interactive) |
(interactive) |
3962 |
(pr-toggle 'pr-file-landscape "PS file landscape" nil 6 5 nil |
(pr-toggle-file-landscape-menu t)) |
|
'("PostScript Print" "File"))) |
|
3963 |
|
|
3964 |
|
|
3965 |
;;;###autoload |
;;;###autoload |
3966 |
(defun pr-toggle-ghostscript () |
(defun pr-toggle-ghostscript () |
3967 |
"Toggle printing using ghostscript." |
"Toggle printing using ghostscript." |
3968 |
(interactive) |
(interactive) |
3969 |
(pr-toggle 'pr-print-using-ghostscript "Printing using ghostscript" |
(pr-toggle-ghostscript-menu t)) |
|
'postscript-process 2 12 'toggle)) |
|
3970 |
|
|
3971 |
|
|
3972 |
;;;###autoload |
;;;###autoload |
3973 |
(defun pr-toggle-faces () |
(defun pr-toggle-faces () |
3974 |
"Toggle printing with faces." |
"Toggle printing with faces." |
3975 |
(interactive) |
(interactive) |
3976 |
(pr-toggle 'pr-faces-p "Printing with faces" |
(pr-toggle-faces-menu t)) |
|
'postscript-process 1 12 'toggle)) |
|
3977 |
|
|
3978 |
|
|
3979 |
;;;###autoload |
;;;###autoload |
3980 |
(defun pr-toggle-spool () |
(defun pr-toggle-spool () |
3981 |
"Toggle spooling." |
"Toggle spooling." |
3982 |
(interactive) |
(interactive) |
3983 |
(pr-toggle 'pr-spool-p "Spooling printing" |
(pr-toggle-spool-menu t)) |
|
'postscript-process 0 12 'toggle)) |
|
3984 |
|
|
3985 |
|
|
3986 |
;;;###autoload |
;;;###autoload |
3987 |
(defun pr-toggle-duplex () |
(defun pr-toggle-duplex () |
3988 |
"Toggle duplex." |
"Toggle duplex." |
3989 |
(interactive) |
(interactive) |
3990 |
(pr-toggle 'ps-spool-duplex "Printing duplex" |
(pr-toggle-duplex-menu t)) |
|
'postcsript-options 5 12 'toggle)) |
|
3991 |
|
|
3992 |
|
|
3993 |
;;;###autoload |
;;;###autoload |
3999 |
If tumble is on, produces a printing suitable for binding at the top or |
If tumble is on, produces a printing suitable for binding at the top or |
4000 |
bottom." |
bottom." |
4001 |
(interactive) |
(interactive) |
4002 |
(pr-toggle 'ps-spool-tumble "Tumble" |
(pr-toggle-tumble-menu t)) |
|
'postscript-options 6 12 'toggle)) |
|
4003 |
|
|
4004 |
|
|
4005 |
;;;###autoload |
;;;###autoload |
4006 |
(defun pr-toggle-landscape () |
(defun pr-toggle-landscape () |
4007 |
"Toggle landscape." |
"Toggle landscape." |
4008 |
(interactive) |
(interactive) |
4009 |
(pr-toggle 'ps-landscape-mode "Landscape" |
(pr-toggle-landscape-menu t)) |
|
'postscript-options 0 12 'toggle)) |
|
4010 |
|
|
4011 |
|
|
4012 |
;;;###autoload |
;;;###autoload |
4013 |
(defun pr-toggle-upside-down () |
(defun pr-toggle-upside-down () |
4014 |
"Toggle upside-down." |
"Toggle upside-down." |
4015 |
(interactive) |
(interactive) |
4016 |
(pr-toggle 'ps-print-upside-down "Upside-Down" |
(pr-toggle-upside-down-menu t)) |
|
'postscript-options 7 12 'toggle)) |
|
4017 |
|
|
4018 |
|
|
4019 |
;;;###autoload |
;;;###autoload |
4020 |
(defun pr-toggle-line () |
(defun pr-toggle-line () |
4021 |
"Toggle line number." |
"Toggle line number." |
4022 |
(interactive) |
(interactive) |
4023 |
(pr-toggle 'ps-line-number "Line number" |
(pr-toggle-line-menu t)) |
|
'postscript-options 3 12 'toggle)) |
|
4024 |
|
|
4025 |
|
|
4026 |
;;;###autoload |
;;;###autoload |
4027 |
(defun pr-toggle-zebra () |
(defun pr-toggle-zebra () |
4028 |
"Toggle zebra stripes." |
"Toggle zebra stripes." |
4029 |
(interactive) |
(interactive) |
4030 |
(pr-toggle 'ps-zebra-stripes "Zebra stripe" |
(pr-toggle-zebra-menu t)) |
|
'postscript-options 4 12 'toggle)) |
|
4031 |
|
|
4032 |
|
|
4033 |
;;;###autoload |
;;;###autoload |
4034 |
(defun pr-toggle-header () |
(defun pr-toggle-header () |
4035 |
"Toggle printing header." |
"Toggle printing header." |
4036 |
(interactive) |
(interactive) |
4037 |
(pr-toggle 'ps-print-header "Print header" |
(pr-toggle-header-menu t)) |
|
'postscript-options 1 12 'toggle)) |
|
4038 |
|
|
4039 |
|
|
4040 |
;;;###autoload |
;;;###autoload |
4041 |
(defun pr-toggle-header-frame () |
(defun pr-toggle-header-frame () |
4042 |
"Toggle printing header frame." |
"Toggle printing header frame." |
4043 |
(interactive) |
(interactive) |
4044 |
(pr-toggle 'ps-print-header-frame "Print header frame" |
(pr-toggle-header-frame-menu t)) |
|
'postscript-options 2 12 'toggle)) |
|
4045 |
|
|
4046 |
|
|
4047 |
;;;###autoload |
;;;###autoload |
4048 |
(defun pr-toggle-lock () |
(defun pr-toggle-lock () |
4049 |
"Toggle menu lock." |
"Toggle menu lock." |
4050 |
(interactive) |
(interactive) |
4051 |
(pr-toggle 'pr-menu-lock "Menu lock" |
(pr-toggle-lock-menu t)) |
|
'printing 2 12 'toggle)) |
|
4052 |
|
|
4053 |
|
|
4054 |
;;;###autoload |
;;;###autoload |
4055 |
(defun pr-toggle-region () |
(defun pr-toggle-region () |
4056 |
"Toggle auto region." |
"Toggle auto region." |
4057 |
(interactive) |
(interactive) |
4058 |
(pr-toggle 'pr-auto-region "Auto region" |
(pr-toggle-region-menu t)) |
|
'printing 0 12 'toggle)) |
|
4059 |
|
|
4060 |
|
|
4061 |
;;;###autoload |
;;;###autoload |
4062 |
(defun pr-toggle-mode () |
(defun pr-toggle-mode () |
4063 |
"Toggle auto mode." |
"Toggle auto mode." |
4064 |
(interactive) |
(interactive) |
4065 |
(pr-toggle 'pr-auto-mode "Auto mode" |
(pr-toggle-mode-menu t)) |
|
'printing 1 12 'toggle)) |
|
4066 |
|
|
4067 |
|
|
4068 |
;;;###autoload |
;;;###autoload |
4091 |
"Interactively select a PostScript printer." |
"Interactively select a PostScript printer." |
4092 |
(interactive) |
(interactive) |
4093 |
(pr-menu-set-ps-title |
(pr-menu-set-ps-title |
4094 |
(pr-complete-alist "PostScript printer" pr-ps-printer-alist pr-ps-name))) |
(pr-complete-alist "PostScript printer" |
4095 |
|
pr-ps-printer-alist pr-ps-name))) |
4096 |
|
|
4097 |
|
|
4098 |
;;;###autoload |
;;;###autoload |
4100 |
"Interactively select a text printer." |
"Interactively select a text printer." |
4101 |
(interactive) |
(interactive) |
4102 |
(pr-menu-set-txt-title |
(pr-menu-set-txt-title |
4103 |
(pr-complete-alist "Text printer" pr-txt-printer-alist pr-txt-name))) |
(pr-complete-alist "Text printer" |
4104 |
|
pr-txt-printer-alist pr-txt-name))) |
4105 |
|
|
4106 |
|
|
4107 |
;;;###autoload |
;;;###autoload |
4109 |
"Interactively select a PostScript utility." |
"Interactively select a PostScript utility." |
4110 |
(interactive) |
(interactive) |
4111 |
(pr-menu-set-utility-title |
(pr-menu-set-utility-title |
4112 |
(pr-complete-alist "Postscript utility" pr-ps-utility-alist pr-ps-utility))) |
(pr-complete-alist "Postscript utility" |
4113 |
|
pr-ps-utility-alist pr-ps-utility))) |
4114 |
|
|
4115 |
|
|
4116 |
;;;###autoload |
;;;###autoload |
4304 |
nil |
nil |
4305 |
'(20 . pr-temp-dir) |
'(20 . pr-temp-dir) |
4306 |
'(20 . pr-ps-temp-file) |
'(20 . pr-ps-temp-file) |
4307 |
|
'(20 . pr-file-modes) |
4308 |
'(20 . pr-delete-temp-file) |
'(20 . pr-delete-temp-file) |
4309 |
'(20 . pr-list-directory) |
'(20 . pr-list-directory) |
4310 |
nil |
nil |
4607 |
(defvar pr-menu-state nil) |
(defvar pr-menu-state nil) |
4608 |
|
|
4609 |
|
|
4610 |
(eval-and-compile |
(cond |
4611 |
(cond |
((featurep 'xemacs) |
4612 |
((eq ps-print-emacs-type 'xemacs) |
;; XEmacs |
4613 |
;; XEmacs |
(defvar current-mouse-event nil) ; to avoid compilation gripes |
4614 |
(defvar current-mouse-event nil) ; to avoid compilation gripes |
(defun pr-menu-position (entry index horizontal) |
4615 |
(defun pr-menu-position (entry index horizontal) |
(pr-x-make-event |
4616 |
(pr-x-make-event |
'button-release |
4617 |
'button-release |
(list 'button 1 |
4618 |
(list 'button 1 |
'x (- (pr-x-event-x-pixel current-mouse-event) ; X |
4619 |
'x (- (pr-x-event-x-pixel current-mouse-event) ; X |
(* horizontal pr-menu-char-width)) |
4620 |
(* horizontal pr-menu-char-width)) |
'y (- (pr-x-event-y-pixel current-mouse-event) ; Y |
4621 |
'y (- (pr-x-event-y-pixel current-mouse-event) ; Y |
(* (pr-menu-index entry index) pr-menu-char-height))))) |
4622 |
(* (pr-menu-index entry index) pr-menu-char-height))))) |
) |
4623 |
) |
(ps-windows-system |
4624 |
(ps-windows-system |
;; GNU Emacs for Windows 9x/NT |
4625 |
;; GNU Emacs for Windows 9x/NT |
(defun pr-menu-position (entry index horizontal) |
4626 |
(defun pr-menu-position (entry index horizontal) |
(let ((pos (cdr (pr-e-mouse-pixel-position)))) |
4627 |
(let ((pos (cdr (pr-e-mouse-pixel-position)))) |
(list |
4628 |
(list |
(list (or (car pos) 0) ; X |
4629 |
(list (or (car pos) 0) ; X |
(- (or (cdr pos) 0) ; Y |
4630 |
(- (or (cdr pos) 0) ; Y |
(* (pr-menu-index entry index) pr-menu-char-height))) |
4631 |
(* (pr-menu-index entry index) pr-menu-char-height))) |
(selected-frame)))) ; frame |
4632 |
(selected-frame)))) ; frame |
) |
4633 |
) |
(t |
4634 |
(t |
;; GNU Emacs |
4635 |
;; GNU Emacs |
(defun pr-menu-position (entry index horizontal) |
4636 |
(defun pr-menu-position (entry index horizontal) |
(let ((pos (cdr (pr-e-mouse-pixel-position)))) |
4637 |
(let ((pos (cdr (pr-e-mouse-pixel-position)))) |
(list |
4638 |
(list |
(list (- (or (car pos) 0) ; X |
4639 |
(list (- (or (car pos) 0) ; X |
(* horizontal pr-menu-char-width)) |
4640 |
(* horizontal pr-menu-char-width)) |
(- (or (cdr pos) 0) ; Y |
4641 |
(- (or (cdr pos) 0) ; Y |
(* (pr-menu-index entry index) pr-menu-char-height))) |
4642 |
(* (pr-menu-index entry index) pr-menu-char-height))) |
(selected-frame)))) ; frame |
4643 |
(selected-frame)))) ; frame |
)) |
|
)) |
|
4644 |
|
|
4645 |
(cond |
(cond |
4646 |
((eq ps-print-emacs-type 'emacs) |
((featurep 'xemacs) |
4647 |
;; GNU Emacs |
;; XEmacs |
4648 |
(defun pr-menu-lookup (path) |
(defvar current-menubar nil) ; to avoid compilation gripes |
4649 |
(let ((ipath pr-menu-bar)) |
(defun pr-menu-lookup (path) |
4650 |
(lookup-key global-map |
(car (pr-x-find-menu-item current-menubar (cons "Printing" path)))) |
4651 |
(if path |
|
4652 |
(vconcat ipath |
;; XEmacs |
4653 |
(mapcar 'pr-get-symbol |
(defun pr-menu-lock (entry index horizontal state path) |
4654 |
(if (listp path) |
(when pr-menu-lock |
4655 |
path |
(or (and pr-menu-position (eq state pr-menu-state)) |
4656 |
(list path)))) |
(setq pr-menu-position (pr-menu-position entry index horizontal) |
4657 |
ipath)))) |
pr-menu-state state)) |
4658 |
|
(let* ((menu (pr-menu-lookup path)) |
4659 |
;; GNU Emacs |
(result (pr-x-get-popup-menu-response menu pr-menu-position))) |
4660 |
(defun pr-menu-lock (entry index horizontal state path) |
(and (pr-x-misc-user-event-p result) |
4661 |
(when (and (not (interactive-p)) pr-menu-lock) |
(funcall (pr-x-event-function result) |
4662 |
(or (and pr-menu-position (eq state pr-menu-state)) |
(pr-x-event-object result)))) |
4663 |
(setq pr-menu-position (pr-menu-position entry index horizontal) |
(setq pr-menu-position nil)))) |
4664 |
pr-menu-state state)) |
|
4665 |
(let* ((menu (pr-menu-lookup path)) |
|
4666 |
(result (x-popup-menu pr-menu-position menu))) |
(t |
4667 |
(and result |
;; GNU Emacs |
4668 |
(let ((command (lookup-key menu (vconcat result)))) |
(defun pr-menu-lookup (path) |
4669 |
(if (fboundp command) |
(lookup-key global-map |
4670 |
(funcall command) |
(if path |
4671 |
(eval command))))) |
(vconcat pr-menu-bar |
4672 |
(setq pr-menu-position nil)))) |
(mapcar 'pr-get-symbol |
4673 |
|
(if (listp path) |
4674 |
|
path |
4675 |
((eq ps-print-emacs-type 'xemacs) |
(list path)))) |
4676 |
;; XEmacs |
pr-menu-bar))) |
4677 |
(defvar current-menubar nil) ; to avoid compilation gripes |
|
4678 |
(defun pr-menu-lookup (path) |
;; GNU Emacs |
4679 |
(car (pr-x-find-menu-item current-menubar (cons "Printing" path)))) |
(defun pr-menu-lock (entry index horizontal state path) |
4680 |
|
(when pr-menu-lock |
4681 |
;; XEmacs |
(or (and pr-menu-position (eq state pr-menu-state)) |
4682 |
(defun pr-menu-lock (entry index horizontal state path) |
(setq pr-menu-position (pr-menu-position entry index horizontal) |
4683 |
(when (and (not (interactive-p)) pr-menu-lock) |
pr-menu-state state)) |
4684 |
(or (and pr-menu-position (eq state pr-menu-state)) |
(let* ((menu (pr-menu-lookup path)) |
4685 |
(setq pr-menu-position (pr-menu-position entry index horizontal) |
(result (x-popup-menu pr-menu-position menu))) |
4686 |
pr-menu-state state)) |
(and result |
4687 |
(let* ((menu (pr-menu-lookup path)) |
(let ((command (lookup-key menu (vconcat result)))) |
4688 |
(result (pr-x-get-popup-menu-response menu pr-menu-position))) |
(if (fboundp command) |
4689 |
(and (pr-x-misc-user-event-p result) |
(funcall command) |
4690 |
(funcall (pr-x-event-function result) |
(eval command))))) |
4691 |
(pr-x-event-object result)))) |
(setq pr-menu-position nil))))) |
|
(setq pr-menu-position nil)))))) |
|
4692 |
|
|
4693 |
|
|
4694 |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
4745 |
alist))) |
alist))) |
4746 |
|
|
4747 |
|
|
4748 |
(eval-and-compile |
(cond |
4749 |
(cond |
((featurep 'xemacs) |
4750 |
((eq ps-print-emacs-type 'emacs) |
;; XEmacs |
4751 |
;; GNU Emacs |
(defalias 'pr-update-mode-line 'set-menubar-dirty-flag) |
4752 |
(defalias 'pr-update-mode-line 'force-mode-line-update) |
|
4753 |
|
;; XEmacs |
4754 |
;; GNU Emacs |
(defvar pr-ps-name-old "PostScript Printers") |
4755 |
(defun pr-do-update-menus (&optional force) |
(defvar pr-txt-name-old "Text Printers") |
4756 |
(pr-menu-alist pr-ps-printer-alist |
(defvar pr-ps-utility-old "PostScript Utility") |
4757 |
'pr-ps-name |
(defvar pr-even-or-odd-old "Print All Pages") |
4758 |
'pr-menu-set-ps-title |
|
4759 |
"PostScript Printers" |
;; XEmacs |
4760 |
'pr-ps-printer-menu-modified |
(defun pr-do-update-menus (&optional force) |
4761 |
force |
(pr-menu-alist pr-ps-printer-alist |
4762 |
"PostScript Printers" |
'pr-ps-name |
4763 |
'postscript 2) |
'pr-menu-set-ps-title |
4764 |
(pr-menu-alist pr-txt-printer-alist |
'("Printing") |
4765 |
'pr-txt-name |
'pr-ps-printer-menu-modified |
4766 |
'pr-menu-set-txt-title |
force |
4767 |
"Text Printers" |
pr-ps-name-old |
4768 |
'pr-txt-printer-menu-modified |
'postscript 2) |
4769 |
force |
(pr-menu-alist pr-txt-printer-alist |
4770 |
"Text Printers" |
'pr-txt-name |
4771 |
'text 2) |
'pr-menu-set-txt-title |
4772 |
(let ((save-var pr-ps-utility-menu-modified)) |
'("Printing") |
4773 |
(pr-menu-alist pr-ps-utility-alist |
'pr-txt-printer-menu-modified |
4774 |
'pr-ps-utility |
force |
4775 |
'pr-menu-set-utility-title |
pr-txt-name-old |
4776 |
'("PostScript Print" "File" "PostScript Utility") |
'text 2) |
4777 |
'save-var |
(let ((save-var pr-ps-utility-menu-modified)) |
|
force |
|
|
"PostScript Utility" |
|
|
nil 1)) |
|
4778 |
(pr-menu-alist pr-ps-utility-alist |
(pr-menu-alist pr-ps-utility-alist |
4779 |
'pr-ps-utility |
'pr-ps-utility |
4780 |
'pr-menu-set-utility-title |
'pr-menu-set-utility-title |
4781 |
'("PostScript Preview" "File" "PostScript Utility") |
'("Printing" "PostScript Print" "File") |
4782 |
'pr-ps-utility-menu-modified |
'save-var |
4783 |
force |
force |
4784 |
"PostScript Utility" |
pr-ps-utility-old |
4785 |
nil 1) |
nil 1)) |
4786 |
(pr-even-or-odd-pages ps-even-or-odd-pages force)) |
(pr-menu-alist pr-ps-utility-alist |
4787 |
|
'pr-ps-utility |
4788 |
|
'pr-menu-set-utility-title |
4789 |
|
'("Printing" "PostScript Preview" "File") |
4790 |
|
'pr-ps-utility-menu-modified |
4791 |
|
force |
4792 |
|
pr-ps-utility-old |
4793 |
|
nil 1) |
4794 |
|
(pr-even-or-odd-pages ps-even-or-odd-pages force)) |
4795 |
|
|
4796 |
;; GNU Emacs |
;; XEmacs |
4797 |
(defvar pr-temp-menu nil) |
(defun pr-menu-alist (alist var-sym fun menu-path modified-sym force name |
4798 |
|
entry index) |
4799 |
|
(when (and alist (or force (symbol-value modified-sym))) |
4800 |
|
(pr-xemacs-global-menubar |
4801 |
|
(pr-x-add-submenu menu-path |
4802 |
|
(pr-menu-create name alist var-sym |
4803 |
|
fun entry index))) |
4804 |
|
(funcall fun (symbol-value var-sym)) |
4805 |
|
(set modified-sym nil))) |
4806 |
|
|
4807 |
;; GNU Emacs |
;; XEmacs |
4808 |
(defun pr-menu-alist (alist var-sym fun menu-path modified-sym force name |
(defun pr-relabel-menu-item (newname var-sym) |
4809 |
entry index) |
(pr-xemacs-global-menubar |
4810 |
(when (and alist (or force (symbol-value modified-sym))) |
(pr-x-relabel-menu-item |
4811 |
(easy-menu-define pr-temp-menu nil "" |
(list "Printing" (symbol-value var-sym)) |
4812 |
(pr-menu-create name alist var-sym fun entry index)) |
newname) |
4813 |
(let ((item (pr-menu-get-item menu-path))) |
(set var-sym newname))) |
4814 |
(and item |
|
4815 |
(let* ((binding (nthcdr 3 item)) |
;; XEmacs |
4816 |
(key-binding (cdr binding))) |
(defun pr-menu-set-ps-title (value &optional item entry index) |
4817 |
(setcar binding pr-temp-menu) |
(pr-relabel-menu-item (format "PostScript Printer: %s" value) |
4818 |
(and key-binding (listp (car key-binding)) |
'pr-ps-name-old) |
4819 |
(setcdr binding (cdr key-binding))) ; skip KEY-BINDING |
(pr-ps-set-printer value) |
4820 |
(funcall fun (symbol-value var-sym) item)))) |
(and index |
4821 |
(set modified-sym nil))) |
(pr-menu-lock entry index 12 'toggle nil))) |
4822 |
|
|
4823 |
;; GNU Emacs |
;; XEmacs |
4824 |
(defun pr-menu-set-ps-title (value &optional item entry index) |
(defun pr-menu-set-txt-title (value &optional item entry index) |
4825 |
(pr-menu-set-item-name (or item |
(pr-relabel-menu-item (format "Text Printer: %s" value) |
4826 |
(pr-menu-get-item "PostScript Printers")) |
'pr-txt-name-old) |
4827 |
(format "PostScript Printer: %s" value)) |
(pr-txt-set-printer value) |
4828 |
(pr-ps-set-printer value) |
(and index |
4829 |
(and index |
(pr-menu-lock entry index 12 'toggle nil))) |
4830 |
(pr-menu-lock entry index 12 'toggle nil))) |
|
4831 |
|
;; XEmacs |
4832 |
;; GNU Emacs |
(defun pr-menu-set-utility-title (value &optional item entry index) |
4833 |
(defun pr-menu-set-txt-title (value &optional item entry index) |
(pr-xemacs-global-menubar |
4834 |
(pr-menu-set-item-name (or item |
(let ((newname (format "%s" value))) |
4835 |
(pr-menu-get-item "Text Printers")) |
(pr-x-relabel-menu-item |
4836 |
(format "Text Printer: %s" value)) |
(list "Printing" "PostScript Print" "File" pr-ps-utility-old) |
4837 |
(pr-txt-set-printer value) |
newname) |
4838 |
(and index |
(pr-x-relabel-menu-item |
4839 |
(pr-menu-lock entry index 12 'toggle nil))) |
(list "Printing" "PostScript Preview" "File" pr-ps-utility-old) |
4840 |
|
newname) |
4841 |
;; GNU Emacs |
(setq pr-ps-utility-old newname))) |
4842 |
(defun pr-menu-set-utility-title (value &optional item entry index) |
(pr-ps-set-utility value) |
4843 |
(let ((name (symbol-name value))) |
(and index |
4844 |
(if item |
(pr-menu-lock entry index 5 nil '("PostScript Print" "File")))) |
4845 |
(pr-menu-set-item-name item name) |
|
4846 |
(pr-menu-set-item-name |
;; XEmacs |
4847 |
(pr-menu-get-item |
(defun pr-even-or-odd-pages (value &optional no-lock) |
4848 |
'("PostScript Print" "File" "PostScript Utility")) |
(pr-relabel-menu-item (cdr (assq value pr-even-or-odd-alist)) |
4849 |
name) |
'pr-even-or-odd-old) |
4850 |
(pr-menu-set-item-name |
(setq ps-even-or-odd-pages value) |
4851 |
(pr-menu-get-item |
(or no-lock |
4852 |
'("PostScript Preview" "File" "PostScript Utility")) |
(pr-menu-lock 'postscript-options 8 12 'toggle nil)))) |
4853 |
name))) |
|
4854 |
(pr-ps-set-utility value) |
|
4855 |
(and index |
(t |
4856 |
(pr-menu-lock entry index 5 nil '("PostScript Print" "File")))) |
;; GNU Emacs |
4857 |
|
(defalias 'pr-update-mode-line 'force-mode-line-update) |
4858 |
;; GNU Emacs |
|
4859 |
(defun pr-even-or-odd-pages (value &optional no-lock) |
;; GNU Emacs |
4860 |
(pr-menu-set-item-name (pr-menu-get-item "Print All Pages") |
(defun pr-do-update-menus (&optional force) |
4861 |
(cdr (assq value pr-even-or-odd-alist))) |
(pr-menu-alist pr-ps-printer-alist |
4862 |
(setq ps-even-or-odd-pages value) |
'pr-ps-name |
4863 |
(or no-lock |
'pr-menu-set-ps-title |
4864 |
(pr-menu-lock 'postscript-options 8 12 'toggle nil)))) |
"PostScript Printers" |
4865 |
|
'pr-ps-printer-menu-modified |
4866 |
|
force |
4867 |
((eq ps-print-emacs-type 'xemacs) |
"PostScript Printers" |
4868 |
;; XEmacs |
'postscript 2) |
4869 |
(defalias 'pr-update-mode-line 'set-menubar-dirty-flag) |
(pr-menu-alist pr-txt-printer-alist |
4870 |
|
'pr-txt-name |
4871 |
;; XEmacs |
'pr-menu-set-txt-title |
4872 |
(defvar pr-ps-name-old "PostScript Printers") |
"Text Printers" |
4873 |
(defvar pr-txt-name-old "Text Printers") |
'pr-txt-printer-menu-modified |
4874 |
(defvar pr-ps-utility-old "PostScript Utility") |
force |
4875 |
(defvar pr-even-or-odd-old "Print All Pages") |
"Text Printers" |
4876 |
|
'text 2) |
4877 |
;; XEmacs |
(let ((save-var pr-ps-utility-menu-modified)) |
|
(defun pr-do-update-menus (&optional force) |
|
|
(pr-menu-alist pr-ps-printer-alist |
|
|
'pr-ps-name |
|
|
'pr-menu-set-ps-title |
|
|
'("Printing") |
|
|
'pr-ps-printer-menu-modified |
|
|
force |
|
|
pr-ps-name-old |
|
|
'postscript 2) |
|
|
(pr-menu-alist pr-txt-printer-alist |
|
|
'pr-txt-name |
|
|
'pr-menu-set-txt-title |
|
|
'("Printing") |
|
|
'pr-txt-printer-menu-modified |
|
|
force |
|
|
pr-txt-name-old |
|
|
'text 2) |
|
|
(let ((save-var pr-ps-utility-menu-modified)) |
|
|
(pr-menu-alist pr-ps-utility-alist |
|
|
'pr-ps-utility |
|
|
'pr-menu-set-utility-title |
|
|
'("Printing" "PostScript Print" "File") |
|
|
'save-var |
|
|
force |
|
|
pr-ps-utility-old |
|
|
nil 1)) |
|
4878 |
(pr-menu-alist pr-ps-utility-alist |
(pr-menu-alist pr-ps-utility-alist |
4879 |
'pr-ps-utility |
'pr-ps-utility |
4880 |
'pr-menu-set-utility-title |
'pr-menu-set-utility-title |
4881 |
'("Printing" "PostScript Preview" "File") |
'("PostScript Print" "File" "PostScript Utility") |
4882 |
'pr-ps-utility-menu-modified |
'save-var |
4883 |
force |
force |
4884 |
pr-ps-utility-old |
"PostScript Utility" |
4885 |
nil 1) |
nil 1)) |
4886 |
(pr-even-or-odd-pages ps-even-or-odd-pages force)) |
(pr-menu-alist pr-ps-utility-alist |
4887 |
|
'pr-ps-utility |
4888 |
|
'pr-menu-set-utility-title |
4889 |
|
'("PostScript Preview" "File" "PostScript Utility") |
4890 |
|
'pr-ps-utility-menu-modified |
4891 |
|
force |
4892 |
|
"PostScript Utility" |
4893 |
|
nil 1) |
4894 |
|
(pr-even-or-odd-pages ps-even-or-odd-pages force)) |
4895 |
|
|
4896 |
;; XEmacs |
;; GNU Emacs |
4897 |
(defun pr-menu-alist (alist var-sym fun menu-path modified-sym force name |
(defun pr-menu-get-item (name-list) |
4898 |
entry index) |
;; NAME-LIST is a string or a list of strings. |
4899 |
(when (and alist (or force (symbol-value modified-sym))) |
(or (listp name-list) |
4900 |
(pr-xemacs-global-menubar |
(setq name-list (list name-list))) |
4901 |
(pr-x-add-submenu menu-path |
(and name-list |
4902 |
(pr-menu-create name alist var-sym |
(let* ((reversed (reverse name-list)) |
4903 |
fun entry index))) |
(name (pr-get-symbol (car reversed))) |
4904 |
(funcall fun (symbol-value var-sym)) |
(path (nreverse (cdr reversed))) |
4905 |
(set modified-sym nil))) |
(menu (lookup-key |
4906 |
|
global-map |
4907 |
;; XEmacs |
(vconcat pr-menu-bar |
4908 |
(defun pr-menu-set-ps-title (value &optional item entry index) |
(mapcar 'pr-get-symbol path))))) |
4909 |
(pr-relabel-menu-item (format "PostScript Printer: %s" value) |
(assq name (nthcdr 2 menu))))) |
|
'pr-ps-name-old) |
|
|
(pr-ps-set-printer value) |
|
|
(and index |
|
|
(pr-menu-lock entry index 12 'toggle nil))) |
|
|
|
|
|
;; XEmacs |
|
|
(defun pr-menu-set-txt-title (value &optional item entry index) |
|
|
(pr-relabel-menu-item (format "Text Printer: %s" value) |
|
|
'pr-txt-name-old) |
|
|
(pr-txt-set-printer value) |
|
|
(and index |
|
|
(pr-menu-lock entry index 12 'toggle nil))) |
|
4910 |
|
|
4911 |
;; XEmacs |
;; GNU Emacs |
4912 |
(defun pr-menu-set-utility-title (value &optional item entry index) |
(defvar pr-temp-menu nil) |
|
(pr-xemacs-global-menubar |
|
|
(let ((newname (format "%s" value))) |
|
|
(pr-x-relabel-menu-item |
|
|
(list "Printing" "PostScript Print" "File" pr-ps-utility-old) |
|
|
newname) |
|
|
(pr-x-relabel-menu-item |
|
|
(list "Printing" "PostScript Preview" "File" pr-ps-utility-old) |
|
|
newname) |
|
|
(setq pr-ps-utility-old newname))) |
|
|
(pr-ps-set-utility value) |
|
|
(and index |
|
|
(pr-menu-lock entry index 5 nil '("PostScript Print" "File")))) |
|
|
|
|
|
;; XEmacs |
|
|
(defun pr-even-or-odd-pages (value &optional no-lock) |
|
|
(pr-relabel-menu-item (cdr (assq value pr-even-or-odd-alist)) |
|
|
'pr-even-or-odd-old) |
|
|
(setq ps-even-or-odd-pages value) |
|
|
(or no-lock |
|
|
(pr-menu-lock 'postscript-options 8 12 'toggle nil)))))) |
|
4913 |
|
|
4914 |
;; XEmacs |
;; GNU Emacs |
4915 |
(defun pr-relabel-menu-item (newname var-sym) |
(defun pr-menu-alist (alist var-sym fun menu-path modified-sym force name |
4916 |
(pr-xemacs-global-menubar |
entry index) |
4917 |
(pr-x-relabel-menu-item |
(when (and alist (or force (symbol-value modified-sym))) |
4918 |
(list "Printing" (symbol-value var-sym)) |
(easy-menu-define pr-temp-menu nil "" |
4919 |
newname) |
(pr-menu-create name alist var-sym fun entry index)) |
4920 |
(set var-sym newname))) |
(let ((item (pr-menu-get-item menu-path))) |
4921 |
|
(and item |
4922 |
|
(let* ((binding (nthcdr 3 item)) |
4923 |
|
(key-binding (cdr binding))) |
4924 |
|
(setcar binding pr-temp-menu) |
4925 |
|
(and key-binding (listp (car key-binding)) |
4926 |
|
(setcdr binding (cdr key-binding))) ; skip KEY-BINDING |
4927 |
|
(funcall fun (symbol-value var-sym) item)))) |
4928 |
|
(set modified-sym nil))) |
4929 |
|
|
4930 |
;; GNU Emacs |
;; GNU Emacs |
4931 |
(defun pr-menu-set-item-name (item name) |
(defun pr-menu-set-item-name (item name) |
4932 |
(and item |
(and item |
4933 |
(setcar (nthcdr 2 item) name))) ; ITEM-NAME |
(setcar (nthcdr 2 item) name))) ; ITEM-NAME |
4934 |
|
|
4935 |
;; GNU Emacs |
;; GNU Emacs |
4936 |
(defun pr-menu-get-item (name-list) |
(defun pr-menu-set-ps-title (value &optional item entry index) |
4937 |
;; NAME-LIST is a string or a list of strings. |
(pr-menu-set-item-name (or item |
4938 |
(let ((ipath pr-menu-bar) |
(pr-menu-get-item "PostScript Printers")) |
4939 |
(len (and (listp name-list) (length name-list)))) |
(format "PostScript Printer: %s" value)) |
4940 |
(and len (= len 1) |
(pr-ps-set-printer value) |
4941 |
(setq name-list (car name-list))) |
(and index |
4942 |
(cond |
(pr-menu-lock entry index 12 'toggle nil))) |
4943 |
((null name-list) |
|
4944 |
;; nil |
;; GNU Emacs |
4945 |
nil) |
(defun pr-menu-set-txt-title (value &optional item entry index) |
4946 |
((listp name-list) |
(pr-menu-set-item-name (or item |
4947 |
;; list and (length list) > 1 |
(pr-menu-get-item "Text Printers")) |
4948 |
(let* ((copy (copy-sequence name-list)) |
(format "Text Printer: %s" value)) |
4949 |
(name (pr-get-symbol (nth (1- len) copy))) |
(pr-txt-set-printer value) |
4950 |
(path (progn |
(and index |
4951 |
(setcdr (nthcdr (- len 2) copy) nil) |
(pr-menu-lock entry index 12 'toggle nil))) |
4952 |
copy)) |
|
4953 |
(menu (lookup-key |
;; GNU Emacs |
4954 |
global-map |
(defun pr-menu-set-utility-title (value &optional item entry index) |
4955 |
(if path |
(let ((name (symbol-name value))) |
4956 |
(vconcat ipath |
(if item |
4957 |
(mapcar 'pr-get-symbol path)) |
(pr-menu-set-item-name item name) |
4958 |
ipath)))) |
(pr-menu-set-item-name |
4959 |
(assq name (nthcdr 2 menu)))) |
(pr-menu-get-item |
4960 |
(t |
'("PostScript Print" "File" "PostScript Utility")) |
4961 |
;; string |
name) |
4962 |
(let ((name (pr-get-symbol name-list)) |
(pr-menu-set-item-name |
4963 |
(menu (lookup-key global-map ipath))) |
(pr-menu-get-item |
4964 |
(assq name (nthcdr 2 menu))))))) |
'("PostScript Preview" "File" "PostScript Utility")) |
4965 |
|
name))) |
4966 |
|
(pr-ps-set-utility value) |
4967 |
|
(and index |
4968 |
|
(pr-menu-lock entry index 5 nil '("PostScript Print" "File")))) |
4969 |
|
|
4970 |
|
;; GNU Emacs |
4971 |
|
(defun pr-even-or-odd-pages (value &optional no-lock) |
4972 |
|
(pr-menu-set-item-name (pr-menu-get-item "Print All Pages") |
4973 |
|
(cdr (assq value pr-even-or-odd-alist))) |
4974 |
|
(setq ps-even-or-odd-pages value) |
4975 |
|
(or no-lock |
4976 |
|
(pr-menu-lock 'postscript-options 8 12 'toggle nil))))) |
4977 |
|
|
4978 |
|
|
4979 |
(defun pr-ps-set-utility (value) |
(defun pr-ps-set-utility (value) |
5105 |
;; Internal Functions (II) |
;; Internal Functions (II) |
5106 |
|
|
5107 |
|
|
5108 |
|
(defun pr-toggle (var-sym mess entry index horizontal state |
5109 |
|
&optional path no-menu) |
5110 |
|
(set var-sym (not (symbol-value var-sym))) |
5111 |
|
(message "%s is %s" mess (if (symbol-value var-sym) "on" "off")) |
5112 |
|
(or no-menu |
5113 |
|
(pr-menu-lock entry index horizontal state path))) |
5114 |
|
|
5115 |
|
|
5116 |
|
(defun pr-toggle-file-duplex-menu (&optional no-menu) |
5117 |
|
(interactive) |
5118 |
|
(pr-toggle 'pr-file-duplex "PS file duplex" nil 7 5 nil |
5119 |
|
'("PostScript Print" "File") no-menu)) |
5120 |
|
|
5121 |
|
|
5122 |
|
(defun pr-toggle-file-tumble-menu (&optional no-menu) |
5123 |
|
(interactive) |
5124 |
|
(pr-toggle 'pr-file-tumble "PS file tumble" nil 8 5 nil |
5125 |
|
'("PostScript Print" "File") no-menu)) |
5126 |
|
|
5127 |
|
|
5128 |
|
(defun pr-toggle-file-landscape-menu (&optional no-menu) |
5129 |
|
(interactive) |
5130 |
|
(pr-toggle 'pr-file-landscape "PS file landscape" nil 6 5 nil |
5131 |
|
'("PostScript Print" "File") no-menu)) |
5132 |
|
|
5133 |
|
|
5134 |
|
(defun pr-toggle-ghostscript-menu (&optional no-menu) |
5135 |
|
(interactive) |
5136 |
|
(pr-toggle 'pr-print-using-ghostscript "Printing using ghostscript" |
5137 |
|
'postscript-process 2 12 'toggle nil no-menu)) |
5138 |
|
|
5139 |
|
|
5140 |
|
(defun pr-toggle-faces-menu (&optional no-menu) |
5141 |
|
(interactive) |
5142 |
|
(pr-toggle 'pr-faces-p "Printing with faces" |
5143 |
|
'postscript-process 1 12 'toggle nil no-menu)) |
5144 |
|
|
5145 |
|
|
5146 |
|
(defun pr-toggle-spool-menu (&optional no-menu) |
5147 |
|
(interactive) |
5148 |
|
(pr-toggle 'pr-spool-p "Spooling printing" |
5149 |
|
'postscript-process 0 12 'toggle nil no-menu)) |
5150 |
|
|
5151 |
|
|
5152 |
|
(defun pr-toggle-duplex-menu (&optional no-menu) |
5153 |
|
(interactive) |
5154 |
|
(pr-toggle 'ps-spool-duplex "Printing duplex" |
5155 |
|
'postscript-options 5 12 'toggle nil no-menu)) |
5156 |
|
|
5157 |
|
|
5158 |
|
(defun pr-toggle-tumble-menu (&optional no-menu) |
5159 |
|
(interactive) |
5160 |
|
(pr-toggle 'ps-spool-tumble "Tumble" |
5161 |
|
'postscript-options 6 12 'toggle nil no-menu)) |
5162 |
|
|
5163 |
|
|
5164 |
|
(defun pr-toggle-landscape-menu (&optional no-menu) |
5165 |
|
(interactive) |
5166 |
|
(pr-toggle 'ps-landscape-mode "Landscape" |
5167 |
|
'postscript-options 0 12 'toggle nil no-menu)) |
5168 |
|
|
5169 |
|
|
5170 |
|
(defun pr-toggle-upside-down-menu (&optional no-menu) |
5171 |
|
(interactive) |
5172 |
|
(pr-toggle 'ps-print-upside-down "Upside-Down" |
5173 |
|
'postscript-options 7 12 'toggle nil no-menu)) |
5174 |
|
|
5175 |
|
|
5176 |
|
(defun pr-toggle-line-menu (&optional no-menu) |
5177 |
|
(interactive) |
5178 |
|
(pr-toggle 'ps-line-number "Line number" |
5179 |
|
'postscript-options 3 12 'toggle nil no-menu)) |
5180 |
|
|
5181 |
|
|
5182 |
|
(defun pr-toggle-zebra-menu (&optional no-menu) |
5183 |
|
(interactive) |
5184 |
|
(pr-toggle 'ps-zebra-stripes "Zebra stripe" |
5185 |
|
'postscript-options 4 12 'toggle nil no-menu)) |
5186 |
|
|
5187 |
|
|
5188 |
|
(defun pr-toggle-header-menu (&optional no-menu) |
5189 |
|
(interactive) |
5190 |
|
(pr-toggle 'ps-print-header "Print header" |
5191 |
|
'postscript-options 1 12 'toggle nil no-menu)) |
5192 |
|
|
5193 |
|
|
5194 |
|
(defun pr-toggle-header-frame-menu (&optional no-menu) |
5195 |
|
(interactive) |
5196 |
|
(pr-toggle 'ps-print-header-frame "Print header frame" |
5197 |
|
'postscript-options 2 12 'toggle nil no-menu)) |
5198 |
|
|
5199 |
|
|
5200 |
|
(defun pr-toggle-lock-menu (&optional no-menu) |
5201 |
|
(interactive) |
5202 |
|
(pr-toggle 'pr-menu-lock "Menu lock" |
5203 |
|
'printing 2 12 'toggle nil no-menu)) |
5204 |
|
|
5205 |
|
|
5206 |
|
(defun pr-toggle-region-menu (&optional no-menu) |
5207 |
|
(interactive) |
5208 |
|
(pr-toggle 'pr-auto-region "Auto region" |
5209 |
|
'printing 0 12 'toggle nil no-menu)) |
5210 |
|
|
5211 |
|
|
5212 |
|
(defun pr-toggle-mode-menu (&optional no-menu) |
5213 |
|
(interactive) |
5214 |
|
(pr-toggle 'pr-auto-mode "Auto mode" |
5215 |
|
'printing 1 12 'toggle nil no-menu)) |
5216 |
|
|
5217 |
|
|
5218 |
(defun pr-prompt (str) |
(defun pr-prompt (str) |
5219 |
(if (pr-auto-mode-p) |
(if (pr-auto-mode-p) |
5220 |
(concat str " mode") |
(concat str " mode") |
5315 |
(pr-expand-file-name res))) |
(pr-expand-file-name res))) |
5316 |
|
|
5317 |
|
|
|
(defun pr-toggle (var-sym mess entry index horizontal state &optional path) |
|
|
(set var-sym (not (symbol-value var-sym))) |
|
|
(message "%s is %s" mess (if (symbol-value var-sym) "on" "off")) |
|
|
(pr-menu-lock entry index horizontal state path)) |
|
|
|
|
|
|
|
5318 |
(defun pr-ps-utility-args (n-up-sym infile-sym outfile-sym prompt) |
(defun pr-ps-utility-args (n-up-sym infile-sym outfile-sym prompt) |
5319 |
|
;; check arguments for PostScript file processing. |
5320 |
;; n-up |
;; n-up |
5321 |
(or (symbol-value n-up-sym) |
(or (symbol-value n-up-sym) |
5322 |
(set n-up-sym (pr-interactive-n-up prompt))) |
(set n-up-sym (pr-interactive-n-up prompt))) |
|
(and (eq (symbol-value infile-sym) t) |
|
|
(set infile-sym (and (not (interactive-p)) |
|
|
(pr-ps-infile-preprint prompt)))) |
|
5323 |
;; input file |
;; input file |
5324 |
|
(and (eq (symbol-value infile-sym) t) |
5325 |
|
(set infile-sym (pr-ps-infile-preprint prompt))) |
5326 |
(or (symbol-value infile-sym) |
(or (symbol-value infile-sym) |
5327 |
(error "%s: input PostScript file name is missing" prompt)) |
(error "%s: input PostScript file name is missing" prompt)) |
5328 |
(set infile-sym (pr-dosify-file-name (symbol-value infile-sym))) |
(set infile-sym (pr-dosify-file-name (symbol-value infile-sym))) |
5329 |
;; output file |
;; output file |
5330 |
(and (eq (symbol-value outfile-sym) t) |
(and (eq (symbol-value outfile-sym) t) |
5331 |
(set outfile-sym (and (not (interactive-p)) |
(set outfile-sym (and current-prefix-arg |
|
current-prefix-arg |
|
5332 |
(pr-ps-outfile-preprint prompt)))) |
(pr-ps-outfile-preprint prompt)))) |
5333 |
(and (symbol-value outfile-sym) |
(and (symbol-value outfile-sym) |
5334 |
(set outfile-sym (pr-dosify-file-name (symbol-value outfile-sym)))) |
(set outfile-sym (pr-dosify-file-name (symbol-value outfile-sym)))) |
5336 |
|
|
5337 |
|
|
5338 |
(defun pr-ps-utility-process (n-up infile outfile) |
(defun pr-ps-utility-process (n-up infile outfile) |
5339 |
|
;; activate utility to process a PostScript file. |
5340 |
(let (item) |
(let (item) |
5341 |
(and (stringp infile) (file-exists-p infile) |
(and (stringp infile) (file-exists-p infile) |
5342 |
(setq item (cdr (assq pr-ps-utility pr-ps-utility-alist))) |
(setq item (cdr (assq pr-ps-utility pr-ps-utility-alist))) |
5375 |
(cmd (pr-command command)) |
(cmd (pr-command command)) |
5376 |
status) |
status) |
5377 |
(setq args (pr-remove-nil-from-list args)) |
(setq args (pr-remove-nil-from-list args)) |
5378 |
|
;; *Printing Command Output* == show command & args |
5379 |
(save-excursion |
(save-excursion |
5380 |
(set-buffer buffer) |
(set-buffer buffer) |
5381 |
(goto-char (point-max)) |
(goto-char (point-max)) |
5382 |
(insert (format "%s %S\n" cmd args))) |
(insert (format "%s %S\n" cmd args))) |
5383 |
(setq status |
;; *Printing Command Output* == show any return message from command |
5384 |
(condition-case data |
(pr-save-file-modes |
5385 |
(apply 'call-process cmd nil buffer nil args) |
(setq status |
5386 |
((quit error) |
(condition-case data |
5387 |
(error-message-string data)))) |
(apply 'call-process cmd nil buffer nil args) |
5388 |
|
((quit error) |
5389 |
|
(error-message-string data))))) |
5390 |
|
;; *Printing Command Output* == show exit status |
5391 |
(save-excursion |
(save-excursion |
5392 |
(set-buffer buffer) |
(set-buffer buffer) |
5393 |
(goto-char (point-max)) |
(goto-char (point-max)) |
5394 |
(insert (format "Exit status: %s\n" status))))) |
(insert (format "Exit status: %s\n\n" status))) |
5395 |
|
;; message if error status |
5396 |
|
(if (or (stringp status) |
5397 |
|
(and (integerp status) (/= status 0))) |
5398 |
|
(message |
5399 |
|
"Printing error status: %s (see *Printing Command Output* buffer)" |
5400 |
|
status)))) |
5401 |
|
|
5402 |
|
|
5403 |
(defun pr-txt-print (from to) |
(defun pr-txt-print (from to) |
5408 |
|
|
5409 |
|
|
5410 |
(defun pr-switches-string (switches mess) |
(defun pr-switches-string (switches mess) |
5411 |
(mapconcat 'identity (pr-switches switches mess) " ")) |
;; If SWITCHES is nil, return nil. |
5412 |
|
;; Otherwise, return the list of string in a string. |
5413 |
|
(and switches |
5414 |
|
(mapconcat 'identity (pr-switches switches mess) " "))) |
5415 |
|
|
5416 |
|
|
5417 |
(defun pr-switches (switches mess) |
(defun pr-switches (switches mess) |
5448 |
|
|
5449 |
(defun pr-ps-file (&optional filename) |
(defun pr-ps-file (&optional filename) |
5450 |
(pr-dosify-file-name (or filename |
(pr-dosify-file-name (or filename |
5451 |
(convert-standard-filename |
(make-temp-file |
5452 |
(expand-file-name pr-ps-temp-file pr-temp-dir))))) |
(convert-standard-filename |
5453 |
|
(expand-file-name pr-ps-temp-file pr-temp-dir)) |
5454 |
|
nil ".ps")))) |
5455 |
|
|
5456 |
|
|
5457 |
(defun pr-interactive-n-up (mess) |
(defun pr-interactive-n-up (mess) |
5540 |
(defun pr-set-outfilename (filename-sym) |
(defun pr-set-outfilename (filename-sym) |
5541 |
(and (not pr-spool-p) |
(and (not pr-spool-p) |
5542 |
(eq (symbol-value filename-sym) t) |
(eq (symbol-value filename-sym) t) |
5543 |
(set filename-sym (and (not (interactive-p)) |
(set filename-sym (and current-prefix-arg |
|
current-prefix-arg |
|
5544 |
(ps-print-preprint current-prefix-arg)))) |
(ps-print-preprint current-prefix-arg)))) |
5545 |
(and (symbol-value filename-sym) |
(and (symbol-value filename-sym) |
5546 |
(set filename-sym (pr-dosify-file-name (symbol-value filename-sym))))) |
(set filename-sym (pr-dosify-file-name (symbol-value filename-sym))))) |
5634 |
|
|
5635 |
|
|
5636 |
(defun pr-text2ps (kind n-up filename &optional from to) |
(defun pr-text2ps (kind n-up filename &optional from to) |
5637 |
(let ((ps-n-up-printing n-up) |
(pr-save-file-modes |
5638 |
(ps-spool-config (and (eq ps-spool-config 'setpagedevice) |
(let ((ps-n-up-printing n-up) |
5639 |
'setpagedevice))) |
(ps-spool-config (and (eq ps-spool-config 'setpagedevice) |
5640 |
(pr-delete-file-if-exists filename) |
'setpagedevice))) |
5641 |
(cond (pr-faces-p |
(pr-delete-file-if-exists filename) |
5642 |
(cond (pr-spool-p |
(cond (pr-faces-p |
5643 |
;; pr-faces-p and pr-spool-p |
(cond (pr-spool-p |
5644 |
;; here FILENAME arg is ignored |
;; pr-faces-p and pr-spool-p |
5645 |
(cond ((eq kind 'buffer) |
;; here FILENAME arg is ignored |
5646 |
(ps-spool-buffer-with-faces)) |
(cond ((eq kind 'buffer) |
5647 |
((eq kind 'region) |
(ps-spool-buffer-with-faces)) |
5648 |
(ps-spool-region-with-faces (or from (point)) |
((eq kind 'region) |
5649 |
(or to (mark)))) |
(ps-spool-region-with-faces (or from (point)) |
5650 |
)) |
(or to (mark)))) |
5651 |
|
)) |
5652 |
;; pr-faces-p and not pr-spool-p |
;; pr-faces-p and not pr-spool-p |
5653 |
((eq kind 'buffer) |
((eq kind 'buffer) |
5654 |
(ps-print-buffer-with-faces filename)) |
(ps-print-buffer-with-faces filename)) |
5655 |
((eq kind 'region) |
((eq kind 'region) |
5656 |
(ps-print-region-with-faces (or from (point)) |
(ps-print-region-with-faces (or from (point)) |
5657 |
(or to (mark)) filename)) |
(or to (mark)) filename)) |
5658 |
)) |
)) |
5659 |
(pr-spool-p |
(pr-spool-p |
5660 |
;; not pr-faces-p and pr-spool-p |
;; not pr-faces-p and pr-spool-p |
5661 |
;; here FILENAME arg is ignored |
;; here FILENAME arg is ignored |
5662 |
(cond ((eq kind 'buffer) |
(cond ((eq kind 'buffer) |
5663 |
(ps-spool-buffer)) |
(ps-spool-buffer)) |
5664 |
((eq kind 'region) |
((eq kind 'region) |
5665 |
(ps-spool-region (or from (point)) (or to (mark)))) |
(ps-spool-region (or from (point)) (or to (mark)))) |
5666 |
)) |
)) |
5667 |
;; not pr-faces-p and not pr-spool-p |
;; not pr-faces-p and not pr-spool-p |
5668 |
((eq kind 'buffer) |
((eq kind 'buffer) |
5669 |
(ps-print-buffer filename)) |
(ps-print-buffer filename)) |
5670 |
((eq kind 'region) |
((eq kind 'region) |
5671 |
(ps-print-region (or from (point)) (or to (mark)) filename)) |
(ps-print-region (or from (point)) (or to (mark)) filename)) |
5672 |
))) |
)))) |
5673 |
|
|
5674 |
|
|
5675 |
(defun pr-command (command) |
(defun pr-command (command) |
5776 |
(defvar pr-interface-map nil |
(defvar pr-interface-map nil |
5777 |
"Keymap for pr-interface.") |
"Keymap for pr-interface.") |
5778 |
|
|
5779 |
(if pr-interface-map |
(unless pr-interface-map |
|
nil |
|
5780 |
(setq pr-interface-map (make-sparse-keymap)) |
(setq pr-interface-map (make-sparse-keymap)) |
5781 |
(cond ((eq ps-print-emacs-type 'xemacs) ; XEmacs |
(cond ((featurep 'xemacs) ; XEmacs |
5782 |
(pr-f-set-keymap-parents pr-interface-map (list widget-keymap)) |
(pr-f-set-keymap-parents pr-interface-map (list widget-keymap)) |
5783 |
(pr-f-set-keymap-name pr-interface-map 'pr-interface-map)) |
(pr-f-set-keymap-name pr-interface-map 'pr-interface-map)) |
5784 |
((eq ps-print-emacs-type 'emacs) ; GNU Emacs |
(t ; GNU Emacs |
5785 |
(pr-f-set-keymap-parents pr-interface-map widget-keymap))) |
(pr-f-set-keymap-parents pr-interface-map widget-keymap))) |
5786 |
(define-key pr-interface-map "q" 'pr-interface-quit) |
(define-key pr-interface-map "q" 'pr-interface-quit) |
5787 |
(define-key pr-interface-map "?" 'pr-interface-help)) |
(define-key pr-interface-map "?" 'pr-interface-help)) |