The [https://chiselapp.com/user/aplsimple/repository/bartabs/download%|%bartabs v1.6.0] is a tab bar widget with a lot of options. It can be used as an independent widget or along with [https://aplsimple.github.io/en/tcl/pave/index.html%|%apave%|%] package as ''bts'' widget.
* [http://chiselapp.com/user/aplsimple/repository/bartabs/file?name=CHANGELOG.md%|%Last changes%|%] for those interested
Note that [bartabs, bar of tabs%|%bartabs] is contained in [Pave, sort of geometry manager%|%apave] package as sort of ''subpackage'' and can be used independently. On the other hand, having installed [Pave, sort of geometry manager%|%apave], you need not to install [bartabs, bar of tabs%|%bartabs].
----
It's all about a bar of tabs. Or a tab bar if you like it more.
The tab bars are widely used in various editors, e.g. in [https://github.com/phase1geo/tke/%|%TKE%|%], [https://www.geany.org/%|%Geany%|%], [https://kate-editor.org/%|%Kate%|%], [http://mate-desktop.org/%|%Pluma%|%], all very good for Tcl/Tk programming, btw.
If you need a Tcl/Tk widget similar to the tab bars of those editors, you might try [https://aplsimple.github.io/en/tcl/bartabs/index.html%|%bartabs%|%].
The ''bartabs v1.1.1'' is a tab bar widget with a lot of options. It can be used as an independent widget or along with [https://aplsimple.github.io/en/tcl/pave/index.html%|%apave%|%] package as ''bts'' widget.
There is a [https://github.com/aplsimple/bartabs/releases/download/bartabs-1.1.1/bartabs-1.1.1.mp4%|%demo (11 min., 29 Mb)%|%] presenting a good example of ''bartabs'' usage.
The ''bartabs'' package provides Tcl/Tk widget containing tabs that are
* scrollable
* markable
* moveable
* closeable
* disabled and enabled
* static and changeable
* selectable and multi-selectable
* configureable
* enhanceable with popup menu
A common appearance of ''bartabs'' is below:
[https://aplsimple.github.io/en/tcl/bartabs/files/bts1.png%|%bartabs-1%|%]
Here the details are:
* the current file is ''test2_pave.tcl''
** its full name is displayed by a caller of ''bartabs''
* currently hovered file is test_''pavedialog.tcl''
** its name is displayed short, due to the ''-lablen 16'' option
* so, its real name is displayed by ''bartabs'' in the tooltip
* its tab has ''Close'' button at the right
* ''Scroll left'' and ''Scroll right'' buttons are at both edges of ''bartabs''
* ''Scroll right'' button is disabled, as there are no tabs beyond the right edge
A bit customized versions of ''bartabs'' may look like the following.
[https://aplsimple.github.io/en/tcl/bartabs/files/bts2.png%|%bartabs-2%|%]
Here the details are:
* a color scheme is changed
* the hovered tab has no tooltip, as its label isn't shortened
* ''Scroll right'' button is enabled, as two tabs were scrolled to the right
[https://aplsimple.github.io/en/tcl/bartabs/files/bts3.png%|%bartabs-3%|%]
Here the details are:
* tabs have no border due to ''-bd 0'' option
* ''bartabs'' got ''-static yes'' option, so the hovered tab has not ''Close'' button
[https://aplsimple.github.io/en/tcl/bartabs/files/bts4.png%|%bartabs-4%|%]
Here the details are:
* ''bartabs'' is made ''-static no -bd 1'' again
* currently edited file is underlined instead of blue background, due to ''-fgsel {}'' option
* some tabs are marked with magenta foreground, meaning "modified" or similar
[https://aplsimple.github.io/en/tcl/bartabs/files/bts5.png%|%bartabs-5%|%]
Here the details are:
* ''bartabs'' got ''-imagemark'' option, so the tabs are marked with an image
* if not marked or hovered, the tabs can show its own images
[https://aplsimple.github.io/en/tcl/bartabs/files/bts6.png%|%bartabs-6%|%]
Here the details are:
* tabs can be multi-selected with Ctrl+Click
* thus, the caller of ''bartabs'' can handle the batch of tabs
[https://aplsimple.github.io/en/tcl/bartabs/files/bts7.png%|%bartabs-7%|%]
Here the details are:
* handlers can be called using hot keys or a popup menu bound to ''bartabs''
* by default, the menu actions include: 1) choosing a tab 2) moving a tab 3) closing tab(s)
* the list of tabs contains three separated tab lists: the invisible at left, the visible, the invisible at right
* a tab can be moved with drag-and-drop or with "... behind" menu action
* static (''-static yes'') bartabs has no actions except for choosing a tab
* even for static ''bartabs'', its caller can provide additional menu actions and submenus
'''Further details:'''
* [https://aplsimple.github.io/en/tcl/bartabs/index.html%|%Description of bartabs%|%]
* [https://aplsimple.github.io/en/tcl/bartabs/bartabs.html%|%Reference of bartabs%|%]
* [https://aplsimple.github.io/en/tcl/baltip/baltip.html%|%Reference of baltip%|%] (package used by ''bartabs'')
** **
'''Download link:'''
* [https://chiselapp.com/user/aplsimple/repository/bartabs/download%|%bartabs.zip%|%]
* [https://chiselapp.com/user/aplsimple/repository/baltip/download%|%baltip.zip%|%] (package used by ''bartabs'')
** **
'''Demo video links:'''
* [https://github.com/aplsimple/bartabs/releases/download/bartabs-1.1.1/bartabs-1.1.1.mp4%|%demo of bartabs v1.1.1 (11 min., 29 Mb)%|%], with ''test.tcl''
* [https://github.com/aplsimple/aplsimple.github.io/releases/download/bartabs_v1.0/bartabs-1.0.mp4%|%demo of bartabs v1.0 (5 min., 21 Mb)%|%], with ''test2_pave.tcl'' of [https://aplsimple.github.io/en/tcl/pave/index.html%|%apave package%|%]