summaryrefslogtreecommitdiff
path: root/lisp/facemenu.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/facemenu.el')
-rw-r--r--lisp/facemenu.el57
1 files changed, 36 insertions, 21 deletions
diff --git a/lisp/facemenu.el b/lisp/facemenu.el
index 7179523eec8..127b8fe608b 100644
--- a/lisp/facemenu.el
+++ b/lisp/facemenu.el
@@ -489,27 +489,42 @@ argument BUFFER-NAME is nil, it defaults to *Colors*."
(save-excursion
(set-buffer standard-output)
(setq truncate-lines t)
- (dolist (color list)
- (if (consp color)
- (if (cdr color)
- (setq color (sort color (lambda (a b)
- (string< (downcase a)
- (downcase b))))))
- (setq color (list color)))
- (put-text-property
- (prog1 (point)
- (insert (car color))
- (indent-to 22))
- (point)
- 'face (cons 'background-color (car color)))
- (put-text-property
- (prog1 (point)
- (insert " " (if (cdr color)
- (mapconcat 'identity (cdr color) ", ")
- (car color))
- "\n"))
- (point)
- 'face (cons 'foreground-color (car color)))))))
+ (if temp-buffer-show-function
+ (list-colors-print list)
+ ;; Call list-colors-print from temp-buffer-show-hook
+ ;; to get the right value of window-width in list-colors-print
+ ;; after the buffer is displayed.
+ (add-hook 'temp-buffer-show-hook
+ (lambda () (list-colors-print list)) nil t)))))
+
+(defun list-colors-print (list)
+ (dolist (color list)
+ (if (consp color)
+ (if (cdr color)
+ (setq color (sort color (lambda (a b)
+ (string< (downcase a)
+ (downcase b))))))
+ (setq color (list color)))
+ (put-text-property
+ (prog1 (point)
+ (insert (car color))
+ (indent-to 22))
+ (point)
+ 'face (cons 'background-color (car color)))
+ (put-text-property
+ (prog1 (point)
+ (insert " " (if (cdr color)
+ (mapconcat 'identity (cdr color) ", ")
+ (car color)))
+ (indent-to (max (- (window-width) 8) 44))
+ (insert (apply 'format " #%02x%02x%02x"
+ (mapcar (lambda (c) (lsh c -8))
+ (color-values (car color)))))
+
+ (insert "\n"))
+ (point)
+ 'face (cons 'foreground-color (car color))))
+ (goto-char (point-min)))
(defun list-colors-duplicates (&optional list)
"Return a list of colors with grouped duplicate colors.