diff options
author | Juri Linkov <juri@jurta.org> | 2005-01-12 00:33:00 +0000 |
---|---|---|
committer | Juri Linkov <juri@jurta.org> | 2005-01-12 00:33:00 +0000 |
commit | 987d1819c1486eb76d341ba22c8152fd07c89005 (patch) | |
tree | e27454c6771a1d8b2f8623f869039ea441c36105 /lisp/facemenu.el | |
parent | 066a23af25db3836c7dcc4d7f43ee63a2bb9b1dc (diff) | |
download | emacs-987d1819c1486eb76d341ba22c8152fd07c89005.tar.gz |
* facemenu.el (list-colors-print): New function created from code
in list-colors-display. Print #RRGGBB at the window right edge.
(list-colors-display): When temp-buffer-show-function is not
defined, 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.
Diffstat (limited to 'lisp/facemenu.el')
-rw-r--r-- | lisp/facemenu.el | 57 |
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. |