aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKenichi Handa2008-05-14 01:56:27 +0000
committerKenichi Handa2008-05-14 01:56:27 +0000
commit6e783e91cb84a9653547ec40d8fee84584f0dc70 (patch)
tree473cce8ed26ca15b6d6528125c7172abf3f87078
parentd04effb34e74720a12f14b1881ca66363c335d25 (diff)
downloademacs-6e783e91cb84a9653547ec40d8fee84584f0dc70.tar.gz
emacs-6e783e91cb84a9653547ec40d8fee84584f0dc70.zip
(font-weight-table, font-slant-table)
(font-swidth-table): Declare them by defconst. Change the format of elements. Call internal-set-font-style-table after their declaration. (face-valid-attribute-values): Call font-family-list. Get values for width, weight, and slant from font-xxx-table.
-rw-r--r--lisp/faces.el127
1 files changed, 53 insertions, 74 deletions
diff --git a/lisp/faces.el b/lisp/faces.el
index 20192c5f51f..2b03572c670 100644
--- a/lisp/faces.el
+++ b/lisp/faces.el
@@ -101,76 +101,46 @@ REGISTRY, ALTERNATIVE1, ALTERNATIVE2, and etc."
101 (internal-set-alternative-font-registry-alist value))) 101 (internal-set-alternative-font-registry-alist value)))
102 102
103 103
104(defcustom font-weight-table 104(defconst font-weight-table
105 (if (eq system-type 'windows-nt) 105 '((thin 0)
106 '((thin . 100) 106 (ultra-light 20 ultralight)
107 (ultralight . 199) (ultra-light . 200) (extra-light . 201) 107 (extra-light 40 extralight)
108 (light . 300) 108 (light 50)
109 (semilight . 330) (semi-light . 331) 109 (semi-light 75 semilight demilight book)
110 (book . 350) 110 (normal 100 medium regular)
111 (normal . 400) (regular . 401) 111 (semi-bold 180 semibold demibold demi)
112 (medium . 500) 112 (bold 200)
113 (semibold . 599) (semi-bold . 600) (demibold . 601) (demi . 602) 113 (extra-bold 205 extrabold)
114 (bold . 700) 114 (ultra-bold 210 ultrabold black))
115 (extrabold . 799) (extra-bold . 800) 115 "Alist of font weight symbols vs the corresponding numeric values.
116 (ultrabold . 801) (ultra-bold . 802) 116Each element has the form:
117 (black . 900) (heavy . 901)) 117 \(SYMBOLIC-VALUE NUMERIC-VALUE ALISE-SYMBOL ...)
118 '((thin . 0) 118")
119 (ultralight . 39) (ultra-light . 40) (extra-light . 41) 119
120 (light . 50) 120(defconst font-slant-table
121 (semilight . 65) (semi-light . 66) 121 '((reverse-oblique 0 ro)
122 (book . 75) 122 (reverse-italic 10 ri)
123 (medium . 99) (regular . 100) (normal . 101) 123 (normal 100 r)
124 (semibold . 179) (semi-bold . 180) (demibold . 181) (demi . 182) 124 (italic 200 i ot)
125 (bold . 200) 125 (oblique 210 o))
126 (extrabold . 204) (extra-bold . 205) 126 "Alist of font slant symbols vs the corresponding numeric values.
127 (ultrabold . 206) (ultra-bold . 207) 127See `font-weight-table' for the detailed format.")
128 (black . 210) (heavy . 211))) 128
129 "*Alist of font weight symbols vs the corresponding numeric values." 129(defconst font-width-table
130 :tag "Font weight table" 130 '((ultra-condensed 50 ultracondensed)
131 :version "23.1" 131 (extra-condensed 63 extracondensed)
132 :group 'font-selection 132 (condensed 75 compressed narrow)
133 :type '(repeat (cons symbol integer)) 133 (semi-condensed 87 semicondensed semicondensed)
134 :set #'(lambda (symbol value) 134 (normal 100 medium regular)
135 (set-default symbol value) 135 (semi-expanded 113 semiexpanded demiexpanded)
136 (if (fboundp 'internal-set-font-style-table) 136 (expanded 125)
137 (internal-set-font-style-table :weight value)))) 137 (extra-expanded 150 extraexpanded)
138 138 (ultra-expanded 200 ultraexpanded wide))
139(defcustom font-slant-table 139 "Alist of font width symbols vs the corresponding numeric values.
140 '((ro . 0) 140See `font-weight-table' for the detailed format.")
141 (ri . 10) 141
142 (r . 98) (roman . 99) (normal . 100) 142(internal-set-font-style-table
143 (i . 199) (italic . 200) (ot . 201) 143 font-weight-table font-slant-table font-width-table)
144 (o . 210) (oblique . 211))
145 "*Alist of font slant symbols vs the corresponding numeric values."
146 :tag "Font slant table"
147 :version "23.1"
148 :group 'font-selection
149 :type '(repeat (cons symbol integer))
150 :set #'(lambda (symbol value)
151 (set-default symbol value)
152 (if (fboundp 'internal-set-font-style-table)
153 (internal-set-font-style-table :slant value))))
154
155(defcustom font-swidth-table
156 '((ultracondensed . 50) (ultra-condensed . 51)
157 (extracondensed . 63) (extra-condensed . 64)
158 (narrow . 74) (compressed . 75) (condensed . 76)
159 (semi-condensed . 87) (semicondensed . 88)
160 (medium . 99) (normal . 100) (regular . 101)
161 (semiexpanded . 112) (semi-expanded . 113) (demiexpanded . 114)
162 (expanded . 125)
163 (extraexpanded . 150) (extra-expanded . 151)
164 (ultraexpanded . 199) (ultra-expanded . 200) (wide . 201))
165 "*Alist of font swidth symbols vs the corresponding numeric values."
166 :tag "Font swidth table"
167 :version "23.1"
168 :group 'font-selection
169 :type '(repeat (cons symbol integer))
170 :set #'(lambda (symbol value)
171 (set-default symbol value)
172 (if (fboundp 'internal-set-font-style-table)
173 (internal-set-font-style-table :width value))))
174 144
175;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 145;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
176;;; Creation, copying. 146;;; Creation, copying.
@@ -1014,12 +984,21 @@ an integer value."
1014 (:family 984 (:family
1015 (if (window-system frame) 985 (if (window-system frame)
1016 (mapcar #'(lambda (x) (cons (car x) (car x))) 986 (mapcar #'(lambda (x) (cons (car x) (car x)))
1017 (x-font-family-list)) 987 (font-family-list))
1018 ;; Only one font on TTYs. 988 ;; Only one font on TTYs.
1019 (list (cons "default" "default")))) 989 (list (cons "default" "default"))))
1020 ((:width :weight :slant :inverse-video) 990 (:width
1021 (mapcar #'(lambda (x) (cons (symbol-name x) x)) 991 (mapcar #'(lambda (x) (cons (symbol-name (car x)) (car x)))
1022 (internal-lisp-face-attribute-values attribute))) 992 font-width-table))
993 (:weight
994 (mapcar #'(lambda (x) (cons (symbol-name (car x)) (car x)))
995 font-weight-table))
996 (:slant
997 (mapcar #'(lambda (x) (cons (symbol-name (car x)) (car x)))
998 font-slant-table))
999 (:inverse-video
1000 (mapcar #'(lambda (x) (cons (symbol-name x) x))
1001 (internal-lisp-face-attribute-values attribute)))
1023 ((:underline :overline :strike-through :box) 1002 ((:underline :overline :strike-through :box)
1024 (if (window-system frame) 1003 (if (window-system frame)
1025 (nconc (mapcar #'(lambda (x) (cons (symbol-name x) x)) 1004 (nconc (mapcar #'(lambda (x) (cons (symbol-name x) x))