emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Tab bar


From: Juri Linkov
Subject: Re: Tab bar
Date: Tue, 08 Apr 2008 02:35:02 +0300
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (x86_64-pc-linux-gnu)

> All the current Elisp-based tabbars I've seen might be good
> proofs-of-concept but are not appropriate implementations: they either
> hijack the toolbar, or the header-line, neither of which is acceptable.

Yes, I agree that all there PoC implementations are abuses of the header
line and the toolbar, and neither of them treats correctly modes that
use the header line and the toolbar in the intended way (like e.g.
info.el that overwrites them with its own data).

> Also they both have the corresponding limitation: tabbar.el cannot be
> used for perspectives because header lines are "per-window", and
> tab-bar.el cannot be used for buffers because toolbars are "per-frame".

There is also a third variant implemented by elscreen.el: it uses
the header line to switch between window configurations, but often
it exhibits a weird behavior when it tries to keep the header line
with tabs only in the top window.

> I think a good implementation for a tabbar would be to use a whole
> window (and buffer) for the tabbar (set mode-line-format to nil and
> window-min-height to 1 or 2).

Also we need to disable the fringes and the scroll bar, but I don't see
how to do this in a single window.

> This would allow placing it anywhere in the window tree, and hence all
> both "one per frame" and "one per window".  Of course, to make it work
> well, we probably need some changes at the C level in order to treat
> those windows specially, although we can probably kludge around it in
> an Elisp-only proof-of-concept.

Unless it will be possible to implement native tabbars, using a special
window seems to be a good compromise.  It would even allow creating
arbitrary tabbar configurations, e.g. a vertical top-down tabbar on the
right side of the frame like I use in Firefox that is allowed by the
flexibility of the Gecko layout engine.  I wish Emacs having enough
primitives to implement arbitrary layouts for the tabbar and also
a compilation error navigation bar, parallel to the scroll bar, that
Richard wants to add to Emacs.

-- 
Juri Linkov
http://www.jurta.org/emacs/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]