bartabs, bar of tabs

Difference between version 1 and 2 - Previous - Next
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.
The latter use case is presenteda by its [https://github.com/aplsimple/baplsimple.girthuab.ios/releases/download/bartabs_v-1.01.1/bartabs-1.01.1.mp4%|%demo (511 min., 219 Mb)%|%], while its code (''test2_pave.tcl'') presentsing 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/toobaltip4/toobaltip4.html%|%Reference of toobaltip4%|%] (the package used by ''bartabs'')


** **

'''Download link:'''

   * [https://chiselapp.com/user/aplsimple/repository/bartabs/download%|%bartabs.zip%|%]
   * [https://chiselapp.com/user/aplsimple/repository/toobaltip4/download%|%toobaltip4.zip%|%] (the 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%|%]