]> code.delx.au - gnu-emacs/blobdiff - lisp/rsz-mini.el
(flyspell-mode): Do nothing if mode
[gnu-emacs] / lisp / rsz-mini.el
index da5f4b478ba75f3985d214070bfbcfc611fbb783..e42e691237e41f09c376d6c2ab3e8d38d7b5027e 100644 (file)
@@ -1,12 +1,14 @@
 ;;; rsz-mini.el --- dynamically resize minibuffer to display entire contents
 
 ;;; rsz-mini.el --- dynamically resize minibuffer to display entire contents
 
-;; Copyright (C) 1990, 1993, 1994, 1995 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1993, 1994, 1995, 1997 Free Software Foundation, Inc.
 
 ;; Author: Noah Friedman <friedman@prep.ai.mit.edu>
 ;;         Roland McGrath <roland@prep.ai.mit.edu>
 ;; Maintainer: friedman@prep.ai.mit.edu
 ;; Keywords: minibuffer, window, frame, display
 
 
 ;; Author: Noah Friedman <friedman@prep.ai.mit.edu>
 ;;         Roland McGrath <roland@prep.ai.mit.edu>
 ;; Maintainer: friedman@prep.ai.mit.edu
 ;; Keywords: minibuffer, window, frame, display
 
+;; $Id: rsz-mini.el,v 1.20 1998/04/20 02:41:08 done Exp done $
+
 ;; This file is part of GNU Emacs.
 
 ;; GNU Emacs is free software; you can redistribute it and/or modify
 ;; This file is part of GNU Emacs.
 
 ;; GNU Emacs is free software; you can redistribute it and/or modify
 ;;; Code:
 
 \f
 ;;; Code:
 
 \f
+(defgroup resize-minibuffer nil
+  "Dynamically resize minibuffer to display entire contents"
+  :group 'frames)
+
 ;;;###autoload
 ;;;###autoload
-(defvar resize-minibuffer-mode nil
-  "*If non-`nil', resize the minibuffer so its entire contents are visible.")
+(defcustom resize-minibuffer-mode nil
+  "*If non-`nil', resize the minibuffer so its entire contents are visible.
+You must modify via \\[customize] for this variable to have an effect."
+  :set (lambda (symbol value)
+        (resize-minibuffer-mode (if value 1 -1)))
+  :initialize 'custom-initialize-default
+  :type 'boolean
+  :group 'resize-minibuffer
+  :require 'rsz-mini
+  :version "20.3")
 
 ;;;###autoload
 
 ;;;###autoload
-(defvar resize-minibuffer-window-max-height nil
+(defcustom resize-minibuffer-window-max-height nil
   "*Maximum size the minibuffer window is allowed to become.
 If less than 1 or not a number, the limit is the height of the frame in
   "*Maximum size the minibuffer window is allowed to become.
 If less than 1 or not a number, the limit is the height of the frame in
-which the active minibuffer window resides.")
+which the active minibuffer window resides."
+  :type '(choice (const nil) integer)
+  :group 'resize-minibuffer)
 
 ;;;###autoload
 
 ;;;###autoload
-(defvar resize-minibuffer-window-exactly t
+(defcustom resize-minibuffer-window-exactly t
   "*Allow making minibuffer exactly the size to display all its contents.
 If `nil', the minibuffer window can temporarily increase in size but
 never get smaller while it is active.  Any other value allows exact
   "*Allow making minibuffer exactly the size to display all its contents.
 If `nil', the minibuffer window can temporarily increase in size but
 never get smaller while it is active.  Any other value allows exact
-resizing.")
+resizing."
+  :type 'boolean
+  :group 'resize-minibuffer)
 
 ;;;###autoload
 
 ;;;###autoload
-(defvar resize-minibuffer-frame nil
+(defcustom resize-minibuffer-frame nil
   "*Allow changing the frame height of minibuffer frames.
 If non-`nil' and the active minibuffer is the sole window in its frame,
   "*Allow changing the frame height of minibuffer frames.
 If non-`nil' and the active minibuffer is the sole window in its frame,
-allow changing the frame height.")
+allow changing the frame height."
+  :type 'boolean
+  :group 'resize-minibuffer)
 
 ;;;###autoload
 
 ;;;###autoload
-(defvar resize-minibuffer-frame-max-height nil
+(defcustom resize-minibuffer-frame-max-height nil
   "*Maximum size the minibuffer frame is allowed to become.
 If less than 1 or not a number, there is no limit.")
 
 ;;;###autoload
   "*Maximum size the minibuffer frame is allowed to become.
 If less than 1 or not a number, there is no limit.")
 
 ;;;###autoload
-(defvar resize-minibuffer-frame-exactly t
+(defcustom resize-minibuffer-frame-exactly t
   "*Allow making minibuffer frame exactly the size to display all its contents.
 If `nil', the minibuffer frame can temporarily increase in size but
 never get smaller while it is active.  Any other value allows exact
   "*Allow making minibuffer frame exactly the size to display all its contents.
 If `nil', the minibuffer frame can temporarily increase in size but
 never get smaller while it is active.  Any other value allows exact
-resizing.")
+resizing."
+  :type 'boolean
+  :group 'resize-minibuffer)
 
 ;; Variable used to store the height of the minibuffer frame
 ;; on entry, so it can be restored on exit.  It is made local before it is
 
 ;; Variable used to store the height of the minibuffer frame
 ;; on entry, so it can be restored on exit.  It is made local before it is
@@ -98,9 +120,9 @@ resizing.")
 \f
 ;;;###autoload
 (defun resize-minibuffer-mode (&optional prefix)
 \f
 ;;;###autoload
 (defun resize-minibuffer-mode (&optional prefix)
-  "Enable or disable resize-minibuffer mode.
-A negative prefix argument disables this mode.  A positive argument or
-argument of 0 enables it.
+  "Toggle resize-minibuffer mode.
+With argument, enable resize-minibuffer mode if and only if argument
+is positive.
 
 When this minor mode is enabled, the minibuffer is dynamically resized to
 contain the entire region of text put in it as you type.
 
 When this minor mode is enabled, the minibuffer is dynamically resized to
 contain the entire region of text put in it as you type.
@@ -122,13 +144,12 @@ The variable `resize-minibuffer-frame' controls whether this should be
 done.  The variables `resize-minibuffer-frame-max-height' and
 `resize-minibuffer-frame-exactly' are analogous to their window
 counterparts."
 done.  The variables `resize-minibuffer-frame-max-height' and
 `resize-minibuffer-frame-exactly' are analogous to their window
 counterparts."
-  (interactive "p")
-  (or prefix (setq prefix 0))
-  (cond
-   ((>= prefix 0)
-    (setq resize-minibuffer-mode t))
-   (t
-    (setq resize-minibuffer-mode nil))))
+  (interactive "P")
+  (setq resize-minibuffer-mode
+       (if prefix
+           (> (prefix-numeric-value prefix) 0)
+         (not resize-minibuffer-mode)))
+  (add-hook 'minibuffer-setup-hook 'resize-minibuffer-setup))
 
 (defun resize-minibuffer-setup ()
   (cond
 
 (defun resize-minibuffer-setup ()
   (cond
@@ -245,10 +266,9 @@ respectively."
                   (frame-width)
                   resize-minibuffer-frame-original-height))
 
                   (frame-width)
                   resize-minibuffer-frame-original-height))
 
-\f
-(provide 'rsz-mini)
+(if resize-minibuffer-mode
+    (resize-minibuffer-mode 1))
 
 
-(add-hook 'minibuffer-setup-hook 'resize-minibuffer-setup)
-(resize-minibuffer-mode)
+(provide 'rsz-mini)
 
 ;; rsz-mini.el ends here
 
 ;; rsz-mini.el ends here