X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/2875c64678398bce7d216c32e2a1d2d9aea4a148..29bbcfa7054e69db0dbe8250af2c809b39ecb54d:/lisp/face-remap.el diff --git a/lisp/face-remap.el b/lisp/face-remap.el index 88c1c77904..6bb84acb16 100644 --- a/lisp/face-remap.el +++ b/lisp/face-remap.el @@ -1,6 +1,6 @@ ;;; face-remap.el --- Functions for managing `face-remapping-alist' ;; -;; Copyright (C) 2008 Free Software Foundation, Inc. +;; Copyright (C) 2008, 2009, 2010, 2011 Free Software Foundation, Inc. ;; ;; Author: Miles Bader ;; Keywords: faces face remapping display user commands @@ -103,7 +103,7 @@ The list structure of ENTRY may be destructively modified." (setcdr entry (sort (cdr entry) 'face-attrs-more-relative-p)) (nreverse entry)) -;;;### autoload +;;;###autoload (defun face-remap-add-relative (face &rest specs) "Add a face remapping entry of FACE to SPECS in the current buffer. @@ -146,7 +146,7 @@ COOKIE should be the return value from that function." (remq remapping face-remapping-alist))) (cdr cookie)))))) -;;;### autoload +;;;###autoload (defun face-remap-reset-base (face) "Set the base remapping of FACE to inherit from FACE's global definition." (let ((entry (assq face face-remapping-alist))) @@ -160,7 +160,7 @@ COOKIE should be the return value from that function." (remq entry face-remapping-alist)) (setcar (last entry) face))))) ; otherwise, just inherit global def -;;;### autoload +;;;###autoload (defun face-remap-set-base (face &rest specs) "Set the base remapping of FACE in the current buffer to SPECS. If SPECS is empty, the default base remapping is restored, which @@ -188,7 +188,8 @@ not inherit from the global definition of FACE." "Scale factor used by `text-scale-mode'. Each positive or negative step scales the default face height by this amount." :group 'display - :type 'number) + :type 'number + :version "23.1") ;; current remapping cookie for text-scale-mode (defvar text-scale-mode-remapping nil) @@ -210,10 +211,10 @@ The amount of scaling is determined by the variable face size by the value of the variable `text-scale-mode-step' \(a negative amount shrinks the text). -The `text-scale-increase' and `text-scale-decrease' functions may -be used to interactively modify the variable -`text-scale-mode-amount' (they also enable or disable -`text-scale-mode' as necessary)." +The `text-scale-increase', `text-scale-decrease', and +`text-scale-set' functions may be used to interactively modify +the variable `text-scale-mode-amount' (they also enable or +disable `text-scale-mode' as necessary)." :lighter (" " text-scale-mode-lighter) (when text-scale-mode-remapping (face-remap-remove-relative text-scale-mode-remapping)) @@ -229,7 +230,20 @@ be used to interactively modify the variable (force-window-update (current-buffer))) ;;;###autoload -(defun text-scale-increase (&optional inc) +(defun text-scale-set (level) + "Set the scale factor of the default face in the current buffer to LEVEL. +If LEVEL is non-zero, `text-scale-mode' is enabled, otherwise it is disabled. + +LEVEL is a number of steps, with 0 representing the default size. +Each step scales the height of the default face by the variable +`text-scale-mode-step' (a negative number decreases the height by +the same amount)." + (interactive "p") + (setq text-scale-mode-amount level) + (text-scale-mode (if (zerop text-scale-mode-amount) -1 1))) + +;;;###autoload +(defun text-scale-increase (inc) "Increase the height of the default face in the current buffer by INC steps. If the new height is other than the default, `text-scale-mode' is enabled. @@ -243,7 +257,7 @@ will remove any scaling currently active." (text-scale-mode (if (zerop text-scale-mode-amount) -1 1))) ;;;###autoload -(defun text-scale-decrease (&optional dec) +(defun text-scale-decrease (dec) "Decrease the height of the default face in the current buffer by DEC steps. See `text-scale-increase' for more details." (interactive "p") @@ -254,7 +268,7 @@ See `text-scale-increase' for more details." ;;;###autoload (define-key ctl-x-map [(control ?=)] 'text-scale-adjust) ;;;###autoload (define-key ctl-x-map [(control ?0)] 'text-scale-adjust) ;;;###autoload -(defun text-scale-adjust (&optional inc) +(defun text-scale-adjust (inc) "Increase or decrease the height of the default face in the current buffer. The actual adjustment made depends on the final component of the @@ -281,7 +295,8 @@ a top-level keymap, `text-scale-increase' or (interactive "p") (let ((first t) (step t) - (ev last-command-event)) + (ev last-command-event) + (echo-keystrokes nil)) (while step (let ((base (event-basic-type ev))) (cond ((or (eq base ?+) (eq base ?=)) @@ -297,7 +312,7 @@ a top-level keymap, `text-scale-increase' or (when step (text-scale-increase step) (setq inc 1 first nil) - (setq ev (read-event)))) + (setq ev (read-event "+,-,0 for further adjustment: ")))) (push ev unread-command-events))) @@ -309,7 +324,8 @@ a top-level keymap, `text-scale-increase' or It may contain any value suitable for a `face' text property, including a face name, a list of face names, a face-attribute plist, etc." - :group 'display) + :group 'display + :version "23.1") ;; current remapping cookie for buffer-face-mode (defvar buffer-face-mode-remapping nil) @@ -377,7 +393,7 @@ including a face name, a list of face names, or a face-attribute If INTERACTIVE is non-nil, a message will be displayed describing the result. -This is a wrapper function which calls just `buffer-face-set' or +This is a wrapper function which calls `buffer-face-set' or `buffer-face-toggle' (depending on ARG), and prints a status message in the echo area. In many cases one of those functions may be more appropriate." @@ -401,7 +417,8 @@ may be more appropriate." An interface to `buffer-face-mode' which uses the `variable-pitch' face. Besides the choice of face, it is the same as `buffer-face-mode'." (interactive (list (or current-prefix-arg 'toggle))) - (buffer-face-mode-invoke 'variable-pitch arg (interactive-p))) + (buffer-face-mode-invoke 'variable-pitch arg + (called-interactively-p 'interactive))) (provide 'face-remap)