]> git.eshelyaron.com Git - emacs.git/commitdiff
(internal-face-interactive): Handle default in usual way,
authorRichard M. Stallman <rms@gnu.org>
Mon, 4 Aug 1997 04:23:51 +0000 (04:23 +0000)
committerRichard M. Stallman <rms@gnu.org>
Mon, 4 Aug 1997 04:23:51 +0000 (04:23 +0000)
Provide completion for color reading.
(set-face-foreground, set-face-background): Specify `color'
when reading the color name interactively.

lisp/faces.el

index cfa5b223b7f52a060cb83dbab77384cd9976a202..f0a0e5ada4627bdb4a57717ae227dbaa34abea0a 100644 (file)
@@ -189,7 +189,7 @@ in that frame; otherwise change each frame."
   "Change the foreground color of face FACE to COLOR (a string).
 If the optional FRAME argument is provided, change only
 in that frame; otherwise change each frame."
-  (interactive (internal-face-interactive "foreground"))
+  (interactive (internal-face-interactive "foreground" 'color))
   (internal-set-face-1 face 'foreground color 4 frame))
 
 (defvar face-default-stipple "gray3" 
@@ -214,7 +214,7 @@ FRAME specifies the frame and thus the display for interpreting COLOR."
   "Change the background color of face FACE to COLOR (a string).
 If the optional FRAME argument is provided, change only
 in that frame; otherwise change each frame."
-  (interactive (internal-face-interactive "background"))
+  (interactive (internal-face-interactive "background" 'color))
   ;; For a specific frame, use gray stipple instead of gray color
   ;; if the display does not support a gray color.
   (if (and frame (not (eq frame t)) color
@@ -455,11 +455,20 @@ If NAME is already a face, it is simply returned."
         (default (if (fboundp fn)
                      (or (funcall fn face (selected-frame))
                          (funcall fn 'default (selected-frame)))))
-        (value (if bool
-                   (y-or-n-p (concat "Should face " (symbol-name face)
-                                     " be " bool "? "))
-                 (read-string (concat prompt " " (symbol-name face) " to: ")
-                              default))))
+        value)
+    (setq value
+         (cond ((eq bool 'color)
+                (completing-read (concat prompt " " (symbol-name face) " to: ")
+                                 (mapcar (function (lambda (color)
+                                                     (cons color color)))
+                                         x-colors)
+                                 nil nil nil nil default))
+               (bool
+                (y-or-n-p (concat "Should face " (symbol-name face)
+                                  " be " bool "? ")))
+               (t
+                (read-string (concat prompt " " (symbol-name face) " to: ")
+                             nil nil default))))
     (list face (if (equal value "") nil value))))
 
 (defun internal-face-interactive-stipple (what)