X-Git-Url: https://git.hcoop.net/bpt/emacs.git/blobdiff_plain/8d9cc0b7ea1893059df8788129998e9a71ec07f3..4c62015720b45e78ed358a369626339ac34d4fbc:/lisp/cus-face.el diff --git a/lisp/cus-face.el b/lisp/cus-face.el index 900a815b16..f6a07507f2 100644 --- a/lisp/cus-face.el +++ b/lisp/cus-face.el @@ -1,17 +1,18 @@ ;;; cus-face.el --- customization support for faces ;; ;; Copyright (C) 1996, 1997, 1999, 2000, 2001, 2002, 2003, 2004, -;; 2005, 2006, 2007 Free Software Foundation, Inc. +;; 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. ;; ;; Author: Per Abrahamsen ;; Keywords: help, faces +;; Package: emacs ;; This file is part of GNU Emacs. -;; GNU Emacs is free software; you can redistribute it and/or modify +;; GNU Emacs is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 3, or (at your option) -;; any later version. +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. ;; GNU Emacs is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -19,9 +20,7 @@ ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License -;; along with GNU Emacs; see the file COPYING. If not, write to the -;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -;; Boston, MA 02110-1301, USA. +;; along with GNU Emacs. If not, see . ;;; Commentary: ;; @@ -33,7 +32,6 @@ ;;; Declaring a face. -;;;###autoload (defun custom-declare-face (face spec doc &rest args) "Like `defface', but FACE is evaluated as a normal argument." (unless (get face 'face-defface-spec) @@ -46,14 +44,14 @@ (make-empty-face face) ;; Create frame-local faces (dolist (frame (frame-list)) - (face-spec-set face value frame) - (when (memq (window-system frame) '(x w32 mac)) + (face-spec-set-2 face frame value) + (when (memq (window-system frame) '(x w32 ns)) (setq have-window-system t))) ;; When making a face after frames already exist (if have-window-system (make-face-x-resource-internal face))))) ;; Don't record SPEC until we see it causes no errors. - (put face 'face-defface-spec spec) + (put face 'face-defface-spec (purecopy spec)) (push (cons 'defface face) current-load-list) (when (and doc (null (face-documentation face))) (set-face-documentation face (purecopy doc))) @@ -63,12 +61,15 @@ ;;; Face attributes. -;;;###autoload (defconst custom-face-attributes '((:family (string :tag "Font Family" :help-echo "Font family or fontset alias name.")) + (:foundry + (string :tag "Font Foundry" + :help-echo "Font foundry name.")) + (:width (choice :tag "Width" :help-echo "Font width." @@ -114,7 +115,8 @@ (const :tag "semibold" semi-bold) (const :tag "semilight" semi-light) (const :tag "ultralight" ultra-light) - (const :tag "ultrabold" ultra-bold))) + (const :tag "ultrabold" ultra-bold) + (const :tag "thin" thin))) (:slant (choice :tag "Slant" @@ -122,7 +124,8 @@ :value normal ; default (const :tag "italic" italic) (const :tag "oblique" oblique) - (const :tag "normal" normal))) + (const :tag "normal" normal) + (const :tag "roman" roman))) (:underline (choice :tag "Underline" @@ -269,7 +272,6 @@ If FRAME is nil, use the global defaults for FACE." ;;; Initializing. -;;;###autoload (defun custom-set-faces (&rest args) "Initialize faces according to user preferences. This associates the settings with the `user' theme. @@ -342,21 +344,21 @@ FACE's list property `theme-face' \(using `custom-push-theme')." (unless (facep face) (make-empty-face face)) (put face 'face-comment comment) - (face-spec-set face spec)) - (setq args (cdr args))) - ;; Old format, a plist of FACE SPEC pairs. - (let ((face (nth 0 args)) - (spec (nth 1 args))) - (if (get face 'face-alias) - (setq face (get face 'face-alias))) - (put face 'saved-face spec) - (custom-push-theme 'theme-face face theme 'set spec)) - (setq args (cdr (cdr args)))))))) + (put face 'face-override-spec nil) + (face-spec-set face spec t)) + (setq args (cdr args))) + ;; Old format, a plist of FACE SPEC pairs. + (let ((face (nth 0 args)) + (spec (nth 1 args))) + (if (get face 'face-alias) + (setq face (get face 'face-alias))) + (put face 'saved-face spec) + (custom-push-theme 'theme-face face theme 'set spec)) + (setq args (cdr (cdr args)))))))) ;; XEmacs compability function. In XEmacs, when you reset a Custom ;; Theme, you have to specify the theme to reset it to. We just apply ;; the next theme. -;;;###autoload (defun custom-theme-reset-faces (theme &rest args) "Reset the specs in THEME of some faces to their specs in other themes. Each of the arguments ARGS has this form: @@ -368,7 +370,6 @@ This means reset FACE. The argument IGNORED is ignored." (dolist (arg args) (custom-push-theme 'theme-face (car arg) theme 'reset))) -;;;###autoload (defun custom-reset-faces (&rest args) "Reset the specs of some faces to their specs in specified themes. This creates settings in the `user' theme. @@ -384,5 +385,5 @@ This means reset FACE to its value in FROM-THEME." (provide 'cus-face) -;;; arch-tag: 9a5c4b63-0d27-4c92-a5af-f2c7ed764c2b +;; arch-tag: 9a5c4b63-0d27-4c92-a5af-f2c7ed764c2b ;;; cus-face.el ends here