]> git.eshelyaron.com Git - emacs.git/commitdiff
(msdos-color-values): New variable.
authorEli Zaretskii <eliz@gnu.org>
Wed, 14 Oct 1998 15:11:12 +0000 (15:11 +0000)
committerEli Zaretskii <eliz@gnu.org>
Wed, 14 Oct 1998 15:11:12 +0000 (15:11 +0000)
(x-color-values): New function, emulates its namesake from src/xfns.c.
(msdos-bg-mode): Add all dark colors to those which return "dark".

lisp/term/pc-win.el

index 161ab146f1d952d24bf5628f696d9b3172ac917f..2a20dea4527aa9646689f0ffbd4ca1f6c393ff09 100644 (file)
   (let* ((frame (or frame (selected-frame)))
         (params (frame-parameters frame))
         (bg (cdr (assq 'background-color params))))
-    (if (member bg '("black" "blue" "darkgray" "green"))
+    ;; The list of ``dark'' colors should be consistent with
+    ;; `x-color-values' (below) and the dark/light color
+    ;; decisions `frame-set-background-mode' in lisp/faces.el.
+    (if (member bg
+               '("black" "blue" "green" "red" "magenta" "brown" "darkgray"))
        'dark
       'light)))
 
 (defun x-display-visual-class (&optional frame) 'static-color)
 (fset 'x-display-save-under 'ignore)
 (fset 'x-get-resource 'ignore)
+;;;
+;;; This is copied from etc/rgb.txt, except that some values were changed
+;;; a bit to make them consistent with DOS console colors.  The order of
+;;; the colors is according to the PC text mode color codes.
+;;;
+;;; If you want to change the RGB values, keep in mind that various pieces
+;;; of Emacs think that a color whose RGB values add up to less than 0.6 of
+;;; the values for WHITE (i.e. less than 459) are ``dark'', otherwise the
+;;; color is ``light''; see `frame-set-background-mode' in lisp/faces.el for
+;;; an example.
+(defvar msdos-color-values
+  '(("black"          0   0   0)
+    ("blue"           0   0 255)
+    ("green"          0 255   0)
+    ("cyan"           0 255 255)
+    ("red"          255   0   0)
+    ("magenta"      139   0 139)       ; dark magenta
+    ("brown"        165  42  42)
+    ("lightgray"    211 211 211)
+    ("darkgray"     102 102 102)       ; gray40
+    ("lightblue"    173 216 230)
+    ("lightgreen"   144 238 144)
+    ("lightcyan"    224 255 255)
+    ("lightred"     255  52 179)       ; maroon1
+    ("lightmagenta" 238   0 238)       ; magenta2
+    ("yellow"       255 255   0)
+    ("white"        255 255 255))
+  "A list of MS-DOS console colors and their RGB values.")
+
+(defun x-color-values (color &optional frame)
+  "Return a description of the color named COLOR on frame FRAME.\n\
+The value is a list of integer RGB values--(RED GREEN BLUE).\n\
+These values range from 0 to 255; white is (255 255 255).\n\
+If FRAME is omitted or nil, use the selected frame."
+  (if (x-color-defined-p color)
+      (let ((frame (or frame (selected-frame)))
+           (color-code (msdos-color-translate color)))
+       (cdr (nth color-code msdos-color-values)))))
 
 ;; From lisp/term/x-win.el
 (setq x-display-name "pc")