"Stephen J. Turnbull" <stephen(a)xemacs.org> writes:
>>>>> "Lars" == Lars Magne Ingebrigtsen
<larsi(a)gnus.org> writes:
>> It's also possible to resize the minibuffer/echo area window
>> permanently with enlarge-window.
Lars> Hm... that's a possibility. Although it might be a bit
Lars> fragile.
Yes, that's why I'm _not_ doing handstands and generally being totally
enthusiastic about the idea.
Lars> What I'm using this for is to display "electric" completions
Lars> in the To/Cc headers. The new ecomplete package tries to be
Lars> as (un)obtrusive as the completion you get in
Lars> Firefox/Thunderbird. The traditional Emacs way of doing
Lars> this is by popping up new buffers, which I think is too
Lars> obtrusive for this kind of thing.
Lars> Tooltips might be a possibility.
But not on TTYs. I don't know how hard an automatically resizing echo
area would be to implement, but I'll push it on the task stack for
that case alone.
Hi Lars, Steve, I wanted that feature for a while too.
For the longest time I thought it was a bug that messages in the echo
area were not fully displayed when resize-minibuffer-mode was enabled.
I understand minibuffer and echo area are separate features.
Anyway, here is a crude prototype implementation of multi-line echo
area.
I am just filling the echo area, which is crude, and resizing the
minibuffer according to the line count of the echo area, not checking
whether resize-minibuffer-mode is even enabled.
It's good enough to get a feeling for the usefullness of the feature.
Please try it out and provide your feedaback.
Best regards!
Adrian
ChangeLog Addition:
2006-10-28 Adrian Aichner <adrian(a)xemacs.org>
* simple.el (raw-append-message): Implement minibuffer resizing
based on requirements filled echo area content.
Patch:
--- c:\Hacking\cvs.xemacs.org\XEmacs\xemacs-21.5-clean\lisp\simple.el.~1~ 2006-05-01
10:55:25.000000000 +0200
+++ c:\Users\AichnerAd\el\simple.el 2006-10-28 17:07:09.519625000 +0200
@@ -4301,7 +4301,14 @@
(defun raw-append-message (message &optional frame stdout-p)
(unless (equal message "")
(let ((inhibit-read-only t))
- (insert-string message " *Echo Area*")
+ (with-current-buffer " *Echo Area*"
+ (insert-string message)
+ (fill-region (point-min) (point-max))
+ (enlarge-window
+ (-
+ (count-lines (point-min) (point-max))
+ (window-displayed-height (minibuffer-window)))
+ nil (minibuffer-window)))
;; Conditionalizing on the device type in this way is not that clean,
;; but neither is having a device method, as I originally implemented
;; it: all non-stream devices behave in the same way. Perhaps
For display-only on GUI, how about using the top gutter? You can put
a string there just as easily as a tab control (in fact, the way we put
the tab control there is in a bag on a kludge ... ahem, in a glyph on
an extent on an empty string).
Another possibility would be a pop-up menu, but that's rather heavy in
its default form. A custom dialog would be possible, too, but might
be a lot of work. (One issue is that getting the pixel geometry
right, especially the positioning, is quite kludgy.)
--
Adrian Aichner
mailto:adrian@xemacs.org
http://www.xemacs.org/
_______________________________________________
XEmacs-Beta mailing list
XEmacs-Beta(a)xemacs.org
http://calypso.tux.org/cgi-bin/mailman/listinfo/xemacs-beta