Keep track of the natural width of TD elements, so we know which ones to expand.
[gnus] / lisp / gnus-picon.el
index e1ee6b7..3cc7c37 100644 (file)
@@ -1,7 +1,7 @@
 ;;; gnus-picon.el --- displaying pretty icons in Gnus
 
 ;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-;;   2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+;;   2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; Keywords: news xpm annotation glyph faces
 ;;
 ;;; Code:
 
+;; For Emacs < 22.2.
+(eval-and-compile
+  (unless (fboundp 'declare-function) (defmacro declare-function (&rest r))))
+
 (eval-when-compile (require 'cl))
 
 (require 'gnus)
@@ -81,21 +85,14 @@ added right to the textual representation."
                 (const right))
   :group 'gnus-picon)
 
-(defface gnus-picon-xbm '((t (:foreground "black" :background "white")))
-  "Face to show xbm picon in."
-  :group 'gnus-picon)
-;; backward-compatibility alias
-(put 'gnus-picon-xbm-face 'face-alias 'gnus-picon-xbm)
-
-(defface gnus-picon '((t (:foreground "black" :background "white")))
-  "Face to show picon in."
+(defcustom gnus-picon-inhibit-top-level-domains t
+  "If non-nil, don't piconify top-level domains.
+These are often not very interesting."
+  :type 'boolean
   :group 'gnus-picon)
-;; backward-compatibility alias
-(put 'gnus-picon-face 'face-alias 'gnus-picon)
 
 ;;; Internal variables:
 
-(defvar gnus-picon-setup-p nil)
 (defvar gnus-picon-glyph-alist nil
   "Picon glyphs cache.
 List of pairs (KEY . GLYPH) where KEY is either a filename or an URL.")
@@ -160,11 +157,15 @@ replacement is added."
 
 (defun gnus-picon-create-glyph (file)
   (or (cdr (assoc file gnus-picon-glyph-alist))
-      (cdar (push (cons file (gnus-create-image file))
+      (cdar (push (cons file (gnus-create-image
+                             file nil nil
+                             :color-symbols '(("None" . "white"))))
                  gnus-picon-glyph-alist))))
 
 ;;; Functions that does picon transformations:
 
+(declare-function image-size "image.c" (spec &optional pixels frame))
+
 (defun gnus-picon-transform-address (header category)
   (gnus-with-article-headers
    (let ((addresses
@@ -193,7 +194,9 @@ replacement is added."
             (setcar spec (cons (gnus-picon-create-glyph file)
                                (car spec))))
 
-          (dotimes (i (1- (length spec)))
+          (dotimes (i (- (length spec)
+                         (if gnus-picon-inhibit-top-level-domains
+                             2 1)))
             (when (setq file (gnus-picon-find-face
                               (concat "unknown@"
                                       (mapconcat
@@ -311,5 +314,4 @@ If picons are already displayed, remove them."
 
 (provide 'gnus-picon)
 
-;; arch-tag: fe9aede0-1b1b-463a-b4ab-807f98bcb31f
 ;;; gnus-picon.el ends here