* gnus-fun.el (gnus-face-properties-alist): New user option.
authorKatsumi Yamaoka <yamaoka@jpl.org>
Thu, 12 Feb 2004 06:56:50 +0000 (06:56 +0000)
committerKatsumi Yamaoka <yamaoka@jpl.org>
Thu, 12 Feb 2004 06:56:50 +0000 (06:56 +0000)
(gnus-display-x-face-in-from): Use it.

* gnus-art.el (article-display-face): Ditto.

lisp/ChangeLog
lisp/gnus-art.el
lisp/gnus-fun.el

index e0a2e49..b7b15d8 100644 (file)
@@ -1,5 +1,10 @@
 2004-02-12  Katsumi Yamaoka  <yamaoka@jpl.org>
 
+       * gnus-fun.el (gnus-face-properties-alist): New user option.
+       (gnus-display-x-face-in-from): Use it.
+
+       * gnus-art.el (article-display-face): Ditto.
+
        * compface.el (uncompface-use-external): Default to nil.
 
 2004-02-12  Jesper Harder  <harder@ifa.au.dk>
index d979ec7..dee3eaf 100644 (file)
@@ -2031,6 +2031,9 @@ unfolded."
         (forward-line 1)
         (point))))))
 
+(eval-when-compile
+  (defvar gnus-face-properties-alist))
+
 (defun article-display-face ()
   "Display any Face headers in the header."
   (interactive)
@@ -2059,7 +2062,9 @@ unfolded."
            (let ((png (gnus-convert-face-to-png face))
                  image)
              (when png
-               (setq image (gnus-create-image png 'png t))
+               (setq image
+                     (apply 'gnus-create-image png 'png t
+                            (cdr (assq 'png gnus-face-properties-alist))))
                (gnus-article-goto-header "from")
                (when (bobp)
                  (insert "From: [no `from' set]\n")
index a27ae2f..1892e6a 100644 (file)
@@ -56,6 +56,30 @@ on stdout."
   :group 'gnus-fun
   :type 'string)
 
+(defcustom gnus-face-properties-alist (if (featurep 'xemacs)
+                                         '((xface . (:face gnus-x-face)))
+                                       '((pbm . (:face gnus-x-face))
+                                         (png . nil)))
+  "Alist of image types and properties applied to Face and X-Face images.
+Here are examples:
+
+;; Specify the altitude of Face images in the From header.
+\(setq gnus-face-properties-alist
+      '((pbm . (:face gnus-x-face :ascent 80))
+       (png . (:ascent 80))))
+
+;; Show Face images as pressed buttons.
+\(setq gnus-face-properties-alist
+      '((pbm . (:face gnus-x-face :relief -2))
+       (png . (:relief -2))))
+
+See the manual for the valid properties for various image types.
+Currently, `pbm' is used for X-Face images and `png' is used for Face
+images in Emacs.  Only the `:face' property is effective on the `xface'
+image type in XEmacs if it is built with the libcompface library."
+  :group 'gnus-fun
+  :type '(repeat (cons :format "%v" (symbol :tag "Image type") plist)))
+
 (defun gnus-shell-command-to-string (command)
   "Like `shell-command-to-string' except not mingling ERROR."
   (with-output-to-string
@@ -191,11 +215,11 @@ colors of the displayed X-Faces."
           'xface
           (gnus-put-image
            (if (gnus-image-type-available-p 'xface)
-               (gnus-create-image
-                (concat "X-Face: " data)
-                'xface t :face 'gnus-x-face)
-             (gnus-create-image
-              pbm 'pbm t :face 'gnus-x-face)) nil 'xface))
+               (apply 'gnus-create-image (concat "X-Face: " data) 'xface t
+                      (cdr (assq 'xface gnus-face-properties-alist)))
+             (apply 'gnus-create-image pbm 'pbm t
+                    (cdr (assq 'pbm gnus-face-properties-alist))))
+           nil 'xface))
          (gnus-add-wash-type 'xface))))))
 
 (defun gnus-grab-cam-x-face ()