>> But this does not require all of the junk (events, callbacks, etc) >> that you've talked about. All that *needs* to be added to Emacs is
>> the very limited API needed to associate tabs with a window or frame, >> displayable content and a label with each tab, and to query that >> information. The rest can be implemented with existing Emacs Lisp
>> facilities, such as faces (to change the color of a tab) and process >> sentinels (one sort of event callback). If you want a GTK-like API, >> that should be easy to write in Lisp. >>
> > Without events, do you have a concrete idea how to signal to a hidden tab that something changed , such that it changes the color? > I do not need a very limited API. I need a programmable tab bar.
I would give the tab a "wants attention" flag that gets unset when the tab is activated, and set when `(tab-request-attention TAB)' is called, e.g. by a process sentinal. Then the tab's title would switch from `tab-inactive-face' to `tab-wants-attention-face'.
The way I'm picturing it, the tab's internal state consists of four pieces of data: a title, a window (or possibly window configuration), a function that's called when it becomes active, and another function that's called when it becomes inactive. That *seems* like it's meeting all your requirements, as I've understood them.
Gehm's Corrollary to Clark's Law: Any technology distinguishable from magic is insufficiently advanced.