Merge egg-980316.
[elisp/egg.git] / egg-face.el
1 (setq debug-on-error t)
2
3 (defvar egg-face-color-Japanese    '("Blue"        . "Cyan"))
4 (defvar egg-face-color-Chinese-GB  '("Red"         . "OrangeRed"))
5 (defvar egg-face-color-Chinese-CNS '("Purple"      . "Violet"))
6 (defvar egg-face-color-Korean      '("ForestGreen" . "Green"))
7 (defvar egg-face-color-other
8   (cons (frame-parameter (selected-frame) 'foreground-color)
9         (frame-parameter (selected-frame) 'foreground-color)))
10
11 (defconst egg-face-lang-names
12   '("Japanese" "Chinese-GB" "Chinese-CNS" "Korean" "t"))
13
14 (defun egg-make-face (lang)
15   (let ((mode (eq (frame-parameter (selected-frame) 'background-mode) 'light))
16         (face (make-face (intern (concat "egg-face-" lang))))
17         (color (intern (concat "egg-face-color-" lang))))
18     (setq color (and (boundp color) (symbol-value color)))
19     (set-face-foreground face
20                          (if (consp color)
21                              (if mode (car color) (cdr color))
22                            color))
23     face))
24
25 (defconst its-fence-face
26   (if window-system
27       (mapcar (lambda (lang)
28                 (let ((lang-name (if (equal lang "t") "other" lang)))
29                   (cons (intern lang)
30                         (egg-make-face lang-name))))
31               egg-face-lang-names)))
32
33 (defconst egg-conversion-face its-fence-face)