diff options
| author | Kenichi Handa | 2008-05-14 01:56:27 +0000 |
|---|---|---|
| committer | Kenichi Handa | 2008-05-14 01:56:27 +0000 |
| commit | 6e783e91cb84a9653547ec40d8fee84584f0dc70 (patch) | |
| tree | 473cce8ed26ca15b6d6528125c7172abf3f87078 | |
| parent | d04effb34e74720a12f14b1881ca66363c335d25 (diff) | |
| download | emacs-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.el | 127 |
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) | 116 | Each 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) | 127 | See `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) | 140 | See `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)) |