/[emacs]/emacs/lisp/faces.el
ViewVC logotype

Diff of /emacs/lisp/faces.el

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.266.2.6 by miles, Tue Jul 6 09:39:53 2004 UTC revision 1.266.2.7 by miles, Tue Jul 6 09:41:25 2004 UTC
# Line 1505  If omitted or nil, that stands for the s Line 1505  If omitted or nil, that stands for the s
1505       (t       (t
1506        (> (tty-color-gray-shades display) 2)))))        (> (tty-color-gray-shades display) 2)))))
1507    
 (defun display-supports-face-attributes-p (attributes &optional display)  
   "Return non-nil if all the face attributes in ATTRIBUTES are supported.  
 The optional argument DISPLAY can be a display name, a frame, or  
 nil (meaning the selected frame's display)  
   
 The definition of `supported' is somewhat heuristic, but basically means  
 that a face containing all the attributes in ATTRIBUTES, when merged  
 with the default face for display, can be represented in a way that's  
   
  (1) different in appearance than the default face, and  
  (2) `close in spirit' to what the attributes specify, if not exact.  
   
 Point (2) implies that a `:weight black' attribute will be satisfied by  
 any display that can display bold, and a `:foreground \"yellow\"' as long  
 as it can display a yellowish color, but `:slant italic' will _not_ be  
 satisfied by the tty display code's automatic substitution of a `dim'  
 face for italic."  
   (let ((frame  
          (if (framep display)  
              display  
            (car (frames-on-display-list display)))))  
     (if (not (memq (framep frame) '(x w32 mac)))  
         ;; On ttys, `tty-supports-face-attributes-p' does all the work we need.  
         (tty-supports-face-attributes-p attributes frame)  
       ;; For now, we assume that non-tty displays can support everything,  
       ;; and so we just check to see if any of the specified attributes is  
       ;; different from the default -- though this probably isn't always  
       ;; accurate for font-related attributes.  Later, we should add the  
       ;; ability to query about specific fonts, colors, etc.  
       (while (and attributes  
                   (let* ((attr (car attributes))  
                          (val (cadr attributes))  
                          (default-val (face-attribute 'default attr frame)))  
                     (if (and (stringp val) (stringp default-val))  
                         ;; compare string attributes case-insensitively  
                         (eq (compare-strings val nil nil default-val nil nil t)  
                             t)  
                       (equal val default-val))))  
         (setq attributes (cddr attributes)))  
       (not (null attributes)))))  
   
1508    
1509  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1510  ;;; Background mode.  ;;; Background mode.

Legend:
Removed from v.1.266.2.6  
changed lines
  Added in v.1.266.2.7

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26