Skip to content

Commit

Permalink
Handle frame parameters changing dynamically
Browse files Browse the repository at this point in the history
  • Loading branch information
Vinicius Jose Latorre committed Jan 21, 2007
1 parent 9caf72c commit 3f5eef6
Show file tree
Hide file tree
Showing 2 changed files with 52 additions and 16 deletions.
13 changes: 13 additions & 0 deletions lisp/ChangeLog
@@ -1,3 +1,16 @@
2007-01-21 Vinicius Jose Latorre <viniciusjl@ig.com.br>

* ps-print.el: Handle frame parameters (background and/or foreground
colors) changing dynamically. Reported by Leo <sdl.web@gmail.com>.
(ps-print-version): New Version 6.7.1.
(ps-x-frame-property, ps-e-frame-parameter): New aliases.
(ps-frame-parameter): New fun.
(ps-default-fg, ps-default-bg): New default value ('frame-parameter).
Fix doc and customization.
(ps-begin-job): Get frame parameters (background and/or foreground
colors).
(ps-do-despool): Ensure ps-printer-name has a valid value.

2007-01-21 Nick Roberts <nickrob@snap.net.nz>

* progmodes/gdb-ui.el (gdb-var-create-regexp)
Expand Down
55 changes: 39 additions & 16 deletions lisp/ps-print.el
Expand Up @@ -10,11 +10,11 @@
;; Maintainer: Kenichi Handa <handa@m17n.org> (multi-byte characters)
;; Vinicius Jose Latorre <viniciusjl@ig.com.br>
;; Keywords: wp, print, PostScript
;; Version: 6.7
;; Version: 6.7.1
;; X-URL: http://www.emacswiki.org/cgi-bin/wiki/ViniciusJoseLatorre

(defconst ps-print-version "6.7"
"ps-print.el, v 6.7 <2006/12/01 vinicius>
(defconst ps-print-version "6.7.1"
"ps-print.el, v 6.7.1 <2007/01/21 vinicius>
Vinicius's last change version -- this file may have been edited as part of
Emacs without changes to the version number. When reporting bugs, please also
Expand Down Expand Up @@ -1490,6 +1490,7 @@ Please send all bug fixes and enhancements to
(defalias 'ps-x-font-instance-properties 'font-instance-properties)
(defalias 'ps-x-make-color-instance 'make-color-instance)
(defalias 'ps-x-map-extents 'map-extents)
(defalias 'ps-x-frame-property 'frame-property)

;; GNU Emacs
(defalias 'ps-e-face-bold-p 'face-bold-p)
Expand All @@ -1500,6 +1501,7 @@ Please send all bug fixes and enhancements to
(defalias 'ps-e-overlay-end 'overlay-end)
(defalias 'ps-e-x-color-values 'x-color-values)
(defalias 'ps-e-color-values 'color-values)
(defalias 'ps-e-frame-parameter 'frame-parameter)
(if (fboundp 'find-composition)
(defalias 'ps-e-find-composition 'find-composition)
(defalias 'ps-e-find-composition 'ignore))
Expand All @@ -1523,6 +1525,8 @@ Please send all bug fixes and enhancements to
(ps-xemacs-color-name (face-foreground face)))
(defun ps-face-background-name (face)
(ps-xemacs-color-name (face-background face)))
(defun ps-frame-parameter (param)
(ps-x-frame-property nil param))
)
(t ; emacs 22 or higher
(defvar mark-active nil)
Expand All @@ -1531,7 +1535,10 @@ Please send all bug fixes and enhancements to
(defun ps-face-foreground-name (face)
(face-foreground face nil t))
(defun ps-face-background-name (face)
(face-background face nil t))))
(face-background face nil t))
(defun ps-frame-parameter (param)
(ps-e-frame-parameter nil param))
))


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Expand Down Expand Up @@ -2985,8 +2992,8 @@ Any other value is treated as t."
:version "20"
:group 'ps-print-color)

(defcustom ps-default-fg '(0.0 0.0 0.0) ; black
"*RGB values of the default foreground color. Defaults to black.
(defcustom ps-default-fg 'frame-parameter
"*RGB values of the default foreground color.
The `ps-default-fg' variable contains the default foreground color used by
ps-print, that is, if there is a face in a text that doesn't have a foreground
Expand All @@ -2996,6 +3003,8 @@ Valid values are:
t The foreground color of Emacs session will be used.
frame-parameter The foreground-color frame parameter will be used.
NUMBER It's a real value between 0.0 (black) and 1.0 (white) that
indicate the gray color.
Expand All @@ -3010,12 +3019,13 @@ Valid values are:
Where RED, GREEN and BLUE are reals between 0.0 (no color) and
1.0 (full color).
Any other value is ignored and black will be used.
Any other value is ignored and black color will be used.
It's used only when `ps-print-color-p' is non-nil."
:type '(choice :menu-tag "Default Foreground Gray/Color"
:tag "Default Foreground Gray/Color"
(const :tag "Session Foreground" t)
(const :tag "Frame Foreground" frame-parameter)
(number :tag "Gray Scale" :value 0.0)
(string :tag "Color Name" :value "black")
(list :tag "RGB Color" :value (0.0 0.0 0.0)
Expand All @@ -3025,8 +3035,8 @@ It's used only when `ps-print-color-p' is non-nil."
:version "20"
:group 'ps-print-color)

(defcustom ps-default-bg '(1.0 1.0 1.0) ; white
"*RGB values of the default background color. Defaults to white.
(defcustom ps-default-bg 'frame-parameter
"*RGB values of the default background color.
The `ps-default-bg' variable contains the default background color used by
ps-print, that is, if there is a face in a text that doesn't have a background
Expand All @@ -3036,6 +3046,8 @@ Valid values are:
t The background color of Emacs session will be used.
frame-parameter The background-color frame parameter will be used.
NUMBER It's a real value between 0.0 (black) and 1.0 (white) that
indicate the gray color.
Expand All @@ -3050,14 +3062,15 @@ Valid values are:
Where RED, GREEN and BLUE are reals between 0.0 (no color) and
1.0 (full color).
Any other value is ignored and white will be used.
Any other value is ignored and white color will be used.
It's used only when `ps-print-color-p' is non-nil.
See also `ps-use-face-background'."
:type '(choice :menu-tag "Default Background Gray/Color"
:tag "Default Background Gray/Color"
(const :tag "Session Background" t)
(const :tag "Frame Background" frame-parameter)
(number :tag "Gray Scale" :value 1.0)
(string :tag "Color Name" :value "white")
(list :tag "RGB Color" :value (1.0 1.0 1.0)
Expand Down Expand Up @@ -5895,14 +5908,22 @@ XSTART YSTART are the relative position for the first page in a sheet.")
"[\000-\037\177]")
(t "[\t\n\f]"))
ps-default-background (ps-rgb-color
(if (eq ps-default-bg t)
(ps-face-background-name 'default)
ps-default-bg)
(cond
((eq ps-default-bg 'frame-parameter)
(ps-frame-parameter 'background-color))
((eq ps-default-bg t)
(ps-face-background-name 'default))
(t
ps-default-bg))
1.0)
ps-default-foreground (ps-rgb-color
(if (eq ps-default-fg t)
(ps-face-foreground-name 'default)
ps-default-fg)
(cond
((eq ps-default-fg 'frame-parameter)
(ps-frame-parameter 'foreground-color))
((eq ps-default-fg t)
(ps-face-foreground-name 'default))
(t
ps-default-fg))
0.0)
ps-default-color (and (eq ps-print-color-p t) ps-default-foreground)
ps-current-color ps-default-color
Expand Down Expand Up @@ -6743,6 +6764,8 @@ If FACE is not a valid face name, it is used default face."
(and (stringp ps-printer-name-option)
ps-printer-name-option)
ps-printer-name))))))
(or (stringp ps-printer-name)
(setq ps-printer-name nil))
(apply (or ps-print-region-function 'call-process-region)
(point-min) (point-max) ps-lpr-command nil
(and (fboundp 'start-process) 0)
Expand Down

0 comments on commit 3f5eef6

Please sign in to comment.