diff lisp/face-remap.el @ 103568:90878fc8d55d

Add `text-scale-set' function Revision: emacs@sv.gnu.org/emacs--devo--0--patch-1607
author Miles Bader <miles@gnu.org>
date Tue, 23 Jun 2009 08:27:58 +0000
parents a9dc0e7c3f2b
children bd2966850aac
line wrap: on
line diff
--- a/lisp/face-remap.el	Tue Jun 23 07:44:08 2009 +0000
+++ b/lisp/face-remap.el	Tue Jun 23 08:27:58 2009 +0000
@@ -211,10 +211,10 @@
 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))
@@ -230,6 +230,19 @@
   (force-window-update (current-buffer)))
 
 ;;;###autoload
+(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.