Load cus-start.
[bpt/emacs.git] / lisp / rsz-mini.el
index 1ac280e..7f3313a 100644 (file)
@@ -6,8 +6,6 @@
 ;;         Roland McGrath <roland@prep.ai.mit.edu>
 ;; Maintainer: friedman@prep.ai.mit.edu
 ;; Keywords: minibuffer, window, frame, display
-;; Status: Known to work in FSF GNU Emacs 19.26 and later.
-;; $Id: rsz-mini.el,v 1.9 1995/08/03 17:38:07 rms Exp kwzh $
 
 ;; This file is part of GNU Emacs.
 
@@ -22,8 +20,9 @@
 ;; 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, 675 Mass Ave, Cambridge, MA 02139, USA.
+;; along with GNU Emacs; see the file COPYING.  If not, write to the
+;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+;; Boston, MA 02111-1307, USA.
 
 ;;; Commentary:
 
@@ -33,8 +32,8 @@
 ;; typing, the minibuffer will return to its original size.
 
 ;; In window systems where it is possible to have a frame in which the
-;; minibuffer is the only window, the frame itself can be resized.  In FSF
-;; GNU Emacs 19.22 and earlier, the frame may not be properly returned to
+;; minibuffer is the only window, the frame itself can be resized.  In
+;; Emacs 19.22 and earlier, the frame may not be properly returned to
 ;; its original size after it ceases to be active because
 ;; `minibuffer-exit-hook' didn't exist until version 19.23.
 ;;
 ;;; Code:
 
 \f
+(defgroup resize-minibuffer nil
+  "Dynamically resize minibuffer to display entire contents"
+  :group 'frames)
+
+
 ;;;###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."
+  :type 'boolean
+  :group 'resize-minibuffer)
 
 ;;;###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
-which the active minibuffer window resides.")
+which the active minibuffer window resides."
+  :type '(choice (const nil) integer)
+  :group 'resize-minibuffer)
 
 ;;;###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
-resizing.")
+resizing."
+  :type 'boolean
+  :group 'resize-minibuffer)
 
 ;;;###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.")
+allow changing the frame height."
+  :type 'boolean
+  :group 'resize-minibuffer)
 
 ;;;###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
-(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
-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
@@ -231,17 +245,18 @@ respectively."
          (setq lines (min lines resize-minibuffer-frame-max-height)))
     (cond
      ((> lines height)
-      (set-frame-size (selected-frame) (frame-width) lines))
+      (set-frame-size (window-frame (minibuffer-window)) (frame-width) lines))
      ((and resize-minibuffer-frame-exactly
            (> height resize-minibuffer-frame-original-height)
            (< lines height))
-      (set-frame-size (selected-frame) (frame-width) lines)))))
+      (set-frame-size (window-frame (minibuffer-window))
+                     (frame-width) lines)))))
 
 ;; Restore the original height of the frame.
 ;; resize-minibuffer-frame-original-height is set in
 ;; resize-minibuffer-setup.
 (defun resize-minibuffer-frame-restore ()
-  (set-frame-size (selected-frame)
+  (set-frame-size (window-frame (minibuffer-window))
                   (frame-width)
                   resize-minibuffer-frame-original-height))