Mercurial > hg > xemacs-beta
comparison lisp/font.el @ 5473:ac37a5f7e5be
Merge with trunk.
author | Mats Lidell <matsl@xemacs.org> |
---|---|
date | Thu, 17 Mar 2011 23:42:59 +0100 |
parents | b9167d522a9a f00192e1cd49 |
children | 248176c74e6b |
comparison
equal
deleted
inserted
replaced
5472:e79980ee5efe | 5473:ac37a5f7e5be |
---|---|
424 | 424 |
425 (defun font-combine-fonts (&rest args) | 425 (defun font-combine-fonts (&rest args) |
426 (cond | 426 (cond |
427 ((null args) | 427 ((null args) |
428 (error "Wrong number of arguments to font-combine-fonts")) | 428 (error "Wrong number of arguments to font-combine-fonts")) |
429 ((= (length args) 1) | 429 ((eql (length args) 1) |
430 (car args)) | 430 (car args)) |
431 (t | 431 (t |
432 (let ((retval (font-combine-fonts-internal (nth 0 args) (nth 1 args)))) | 432 (let ((retval (font-combine-fonts-internal (nth 0 args) (nth 1 args)))) |
433 (setq args (cdr (cdr args))) | 433 (setq args (cdr (cdr args))) |
434 (while args | 434 (while args |
986 ;;; can deal with either syntax. | 986 ;;; can deal with either syntax. |
987 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | 987 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
988 ;;; ###autoload | 988 ;;; ###autoload |
989 (defun font-set-face-font (&optional face font &rest args) | 989 (defun font-set-face-font (&optional face font &rest args) |
990 (cond | 990 (cond |
991 ((and (vectorp font) (= (length font) 12)) | 991 ((and (vectorp font) (eql (length font) 12)) |
992 (let ((font-name (font-create-name font))) | 992 (let ((font-name (font-create-name font))) |
993 (set-face-property face 'font-specification font) | 993 (set-face-property face 'font-specification font) |
994 (cond | 994 (cond |
995 ((null font-name) ; No matching font! | 995 ((null font-name) ; No matching font! |
996 nil) | 996 nil) |
1173 #FEFEFE and rgb:fe/fe/fe style specifications are parsed." | 1173 #FEFEFE and rgb:fe/fe/fe style specifications are parsed." |
1174 (let ((case-fold-search t) | 1174 (let ((case-fold-search t) |
1175 r g b str) | 1175 r g b str) |
1176 (cond ((string-match "^#[0-9a-f]+$" color) | 1176 (cond ((string-match "^#[0-9a-f]+$" color) |
1177 (cond | 1177 (cond |
1178 ((= (length color) 4) | 1178 ((eql (length color) 4) |
1179 (setq r (font-hex-string-to-number (substring color 1 2)) | 1179 (setq r (font-hex-string-to-number (substring color 1 2)) |
1180 g (font-hex-string-to-number (substring color 2 3)) | 1180 g (font-hex-string-to-number (substring color 2 3)) |
1181 b (font-hex-string-to-number (substring color 3 4)) | 1181 b (font-hex-string-to-number (substring color 3 4)) |
1182 r (* r 4096) | 1182 r (* r 4096) |
1183 g (* g 4096) | 1183 g (* g 4096) |
1184 b (* b 4096))) | 1184 b (* b 4096))) |
1185 ((= (length color) 7) | 1185 ((eql (length color) 7) |
1186 (setq r (font-hex-string-to-number (substring color 1 3)) | 1186 (setq r (font-hex-string-to-number (substring color 1 3)) |
1187 g (font-hex-string-to-number (substring color 3 5)) | 1187 g (font-hex-string-to-number (substring color 3 5)) |
1188 b (font-hex-string-to-number (substring color 5 7)) | 1188 b (font-hex-string-to-number (substring color 5 7)) |
1189 r (* r 256) | 1189 r (* r 256) |
1190 g (* g 256) | 1190 g (* g 256) |
1191 b (* b 256))) | 1191 b (* b 256))) |
1192 ((= (length color) 10) | 1192 ((eql (length color) 10) |
1193 (setq r (font-hex-string-to-number (substring color 1 4)) | 1193 (setq r (font-hex-string-to-number (substring color 1 4)) |
1194 g (font-hex-string-to-number (substring color 4 7)) | 1194 g (font-hex-string-to-number (substring color 4 7)) |
1195 b (font-hex-string-to-number (substring color 7 10)) | 1195 b (font-hex-string-to-number (substring color 7 10)) |
1196 r (* r 16) | 1196 r (* r 16) |
1197 g (* g 16) | 1197 g (* g 16) |
1198 b (* b 16))) | 1198 b (* b 16))) |
1199 ((= (length color) 13) | 1199 ((eql (length color) 13) |
1200 (setq r (font-hex-string-to-number (substring color 1 5)) | 1200 (setq r (font-hex-string-to-number (substring color 1 5)) |
1201 g (font-hex-string-to-number (substring color 5 9)) | 1201 g (font-hex-string-to-number (substring color 5 9)) |
1202 b (font-hex-string-to-number (substring color 9 13)))) | 1202 b (font-hex-string-to-number (substring color 9 13)))) |
1203 (t | 1203 (t |
1204 (font-warn 'color (format "Invalid RGB color specification: %s" | 1204 (font-warn 'color (format "Invalid RGB color specification: %s" |
1229 b 0))) | 1229 b 0))) |
1230 (list r g b) )) | 1230 (list r g b) )) |
1231 | 1231 |
1232 (defun font-rgb-color-p (obj) | 1232 (defun font-rgb-color-p (obj) |
1233 (or (and (vectorp obj) | 1233 (or (and (vectorp obj) |
1234 (= (length obj) 4) | 1234 (eql (length obj) 4) |
1235 (eq (aref obj 0) 'rgb)))) | 1235 (eq (aref obj 0) 'rgb)))) |
1236 | 1236 |
1237 (defun font-rgb-color-red (obj) (aref obj 1)) | 1237 (defun font-rgb-color-red (obj) (aref obj 1)) |
1238 (defun font-rgb-color-green (obj) (aref obj 2)) | 1238 (defun font-rgb-color-green (obj) (aref obj 2)) |
1239 (defun font-rgb-color-blue (obj) (aref obj 3)) | 1239 (defun font-rgb-color-blue (obj) (aref obj 3)) |
1253 (* 65535 (aref color 2)))) | 1253 (* 65535 (aref color 2)))) |
1254 ((font-rgb-color-p color) | 1254 ((font-rgb-color-p color) |
1255 (list (font-rgb-color-red color) | 1255 (list (font-rgb-color-red color) |
1256 (font-rgb-color-green color) | 1256 (font-rgb-color-green color) |
1257 (font-rgb-color-blue color))) | 1257 (font-rgb-color-blue color))) |
1258 ((and (vectorp color) (= 3 (length color))) | 1258 ((and (vectorp color) (eql 3 (length color))) |
1259 (list (aref color 0) (aref color 1) (aref color 2))) | 1259 (list (aref color 0) (aref color 1) (aref color 2))) |
1260 ((and (listp color) (= 3 (length color)) (floatp (car color))) | 1260 ((and (listp color) (eql 3 (length color)) (floatp (car color))) |
1261 (mapcar #'(lambda (x) (* x 65535)) color)) | 1261 (mapcar #'(lambda (x) (* x 65535)) color)) |
1262 ((and (listp color) (= 3 (length color))) | 1262 ((and (listp color) (eql 3 (length color))) |
1263 color) | 1263 color) |
1264 ((or (string-match "^#" color) | 1264 ((or (string-match "^#" color) |
1265 (string-match "^rgb:" color)) | 1265 (string-match "^rgb:" color)) |
1266 (font-parse-rgb-components color)) | 1266 (font-parse-rgb-components color)) |
1267 ((string-match "\\([0-9.]+\\)[ \t]\\([0-9.]+\\)[ \t]\\([0-9.]+\\)" | 1267 ((string-match "\\([0-9.]+\\)[ \t]\\([0-9.]+\\)[ \t]\\([0-9.]+\\)" |