Next: , Previous: , Up: GUI Components   [Contents][Index]


1.9 SXEmacs Gutters

Gutters are the most flexible of the GUI components described in this section. In theory, the other GUI components could be implemented by customizing a gutter, but in practice the other components were introduced earlier and have their own special implementations. Gutters tend to be more transient than the other components. Buffer tabs, for example, change every time the selected buffer in the frame changes. And for progress gauges a gutter to contain the gauge is typically created on the fly when needed, then destroyed when the operation whose staus is being displayed is completed.

Buffer tabs, having somewhat complex behavior, deserve a closer look. By default, a row of buffer tabs is displayed at the top of every frame. (The tabs could be placed in the bottom gutter, but would be oriented the same way and look rather odd. The horizontal orientation makes putting them in a side gutter utterly impractical.) The buffer displayed in the current window of a frame can be changed to a specific buffer by clicking [mouse-1] on the corresponding tab in the gutter.

Each tab contains the name of its buffer. The tab for the current buffer in each frame is displayed in raised relief. The list of buffers chosen for display in the buffer tab row is derived by filtering the buffer list (like the Buffers menu). The list starts out with all existing buffers, with more recently selected buffers coming earlier in the list.

Then "uninteresting" buffers, like internal SXEmacs buffers, the *Message Log* buffer, and so on are deleted from the list. Next, the frame’s selected buffer is determined. Buffers with a different major mode from the selected buffer are removed from the list. Finally, if the list is too long, the least recently used buffers are deleted from the list. By default up to 6 most recently used buffers with the same mode are displayed on tabs in the gutter.

This behavior can be altered by customizing buffers-tab-filter-functions. Setting this variable to nil forces display of all buffers, up to buffers-tab-max-size (also customizable). More complex behavior may be available in 3rd party libraries. These, and some more rarely customized options, are in the buffers-tab Customize group.


Next: , Previous: , Up: GUI Components   [Contents][Index]