1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-15 10:30:25 -08:00

(msdos-face-setup): Register standard colors in

Vface_tty_color_alist.
(face-color-supported-p, face_color_gray_p): New functions.
This commit is contained in:
Eli Zaretskii 1999-07-30 08:51:19 +00:00
parent 449ab6886c
commit c4d6496936

View file

@ -242,6 +242,34 @@
(msdos-color-translate
(msdos-approximate-color (string-to-number
(substring name 1) 16)))))))
;;;
;;; 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 msdos-approximate-color (num)
"Return a DOS color name which is the best approximation for the number NUM."
@ -279,6 +307,12 @@
(defun msdos-face-setup ()
(modify-frame-parameters terminal-frame default-frame-alist)
(face-clear-tty-colors)
(let ((colors msdos-color-values)
(i 0))
(while colors
(face-register-tty-color (car (car colors)) i)
(setq colors (cdr colors) i (1+ i))))
(modify-frame-parameters terminal-frame
(list (cons 'background-mode
@ -343,34 +377,6 @@
(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\
@ -408,6 +414,13 @@ The argument FRAME specifies which frame to try.
The value may be different for frames on different X displays."
x-colors)
(defun face-color-supported-p (color)
(x-color-defined-p color))
(defun face-color-gray-p (color)
(member (msdos-color-translate color)
'("black" "lightgray" "darkgray" "white")))
;; From lisp/term/w32-win.el
;
;;;; Selections and cut buffers