Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

ANNOUNCE: Multi-column listbox and tree widget package Tablelist 5.17

172 views
Skip to first unread message

nemethi

unread,
Mar 24, 2017, 10:19:58 AM3/24/17
to
I am pleased to announce version 5.17 of the multi-column listbox and
tree widget package Tablelist.

What is new in Tablelist 5.17?
------------------------------

1. Added the tree styles "arc", "blueMenta", "menta", "ubuntuMate", and
"ubuntu3", inspired by the Arc icon theme (of the GTK 2/3 theme Arc)
and some GTK 3 themes of the latest versions of the MATE desktop and
Ubuntu Linux distribution, respectively.

2. Added the "dicttoitem" and "itemtodict" subcommands (thanks to Denis
Rheault for his proposal).

3. Support for the new virtual event <<TablelistViewUpdated>>,
generated when the tablelist widget has finished updating its view
(thanks to Martyn Smith for his proposal).

4. Added the boolean variable tablelist::strictTk, which controls the
strict listbox-compatibility of the default bindings. If its value
is false (which is the default) then <Control-Button-1> now toggles
the selection state of the item or element under the mouse in all
selection modes, and <Control-space> and <Control-Select> toggle the
selection state of the active item or element (thanks to Alexandru
Dadalau for discussions on a related subject).

5. The default bindings on X11 and Windows now support the keyboard
shortcuts <Control-a> and <Shift-Control-A> as alternatives to the
key sequences <Control-slash> (for "Select All") and
<Control-backslash> (for "Deselect All") (thanks to Juge, Alexandru
Dadalau, Christian Gollwitzer, Rich, and Andreas Leitgeb for
discussions on a related subject).

6. Improvements related to vertical scrolling, especially in the
presence of embedded images or multi-line elements (thanks to Olivier
Jolet for discussions on this subject).

7. Improvements in the documentation (thanks to Adam Jensen for his
input).

How to get it?
--------------

Tablelist is available for free download from the URL

http://www.nemethi.de

The distribution file is "tablelist5.17.tar.gz" for UNIX and
"tablelist5_17.zip" for Windows. These files contain the same
information, except for the additional carriage return character
preceding the linefeed at the end of each line in the text files for
Windows.

Tablelist is also included in tklib, which has the address

http://core.tcl.tk/tklib

How to install it?
------------------

Install the package as a subdirectory of one of the directories given
by the "auto_path" variable. For example, you can install it as a
directory at the same level as the Tcl and Tk script libraries. The
locations of these library directories are given by the "tcl_library"
and "tk_library" variables, respectively.

To install Tablelist on UNIX, "cd" to the desired directory and unpack
the distribution file "tablelist5.17.tar.gz":

gunzip -c tablelist5.17.tar.gz | tar -xf -

This command will create a directory named "tablelist5.17", with the
subdirectories "demos", "doc", and "scripts".

On Windows, use WinZip or some other program capable of unpacking the
distribution file "tablelist5_17.zip" into the directory
"tablelist5.17", with the subdirectories "demos", "doc", and "scripts".

The file "tablelistEdit.tcl" in the "scripts" directory is only needed
for applications making use of interactive cell editing. Similarly, the
file "tablelistMove.tcl" in the same directory is only required for
scripts invoking the "move" or "movecolumn" tablelist command. Finally,
the file "tablelistThemes.tcl" is only needed for applications using
the package Tablelist_tile (see next section).

Next, you should check the exact version number of your Tcl/Tk
distribution, given by the "tcl_patchLevel" and "tk_patchLevel"
variables. If you are using Tcl/Tk version 8.2.X, 8.3.0 - 8.3.2, or
8.4a1, then you should proceed as described in the "How to install it?"
section of the file "tablelist.html", located in the "doc" directory.

How to use it?
--------------

The Tablelist distribution provides two packages, called Tablelist and
Tablelist_tile. The main difference between the two is that
Tablelist_tile enables the tile-based, theme-specific appearance of
tablelist widgets; this package requires Tcl/Tk 8.4 or higher and tile
0.6 or higher. It is not possible to use both packages in one and the
same application, because both are implemented in the same "tablelist"
namespace and provide identical commands.

To be able to use the commands and variables implemented in the package
Tablelist, your scripts must contain one of the lines

package require tablelist ?version?
package require Tablelist ?version?

Likewise, to be able to use the commands and variables implemented in
the package Tablelist_tile, your scripts must contain one of the lines

package require tablelist_tile ?version?
package require Tablelist_tile ?version?

Since the packages Tablelist and Tablelist_tile are implemented in the
"tablelist" namespace, you must either import the procedures you need,
or use qualified names like "tablelist::tablelist".

For a detailed description of the commands and variables provided by
Tablelist and of the examples contained in the "demos" directory, see
the tutorial "tablelist.html" and the reference pages, all located in
the "doc" directory.

--
Csaba Nemethi http://www.nemethi.de mailto:csaba....@t-online.de

Alexandru

unread,
Mar 25, 2017, 8:46:35 AM3/25/17
to
Thanks. The new tablelist feels lot better than the old one.
Regards
Alexandru

Torsten Berg

unread,
Mar 26, 2017, 3:56:21 PM3/26/17
to
Hi,

thanks so much for this new version. The scrolling is much much better now using the scrollwheel or (in my case) the touch surface of the Magic Mouse!

Great stuff.

Torsten

> I am pleased to announce version 5.17 of the multi-column listbox and
> tree widget package Tablelist.
>
> What is new in Tablelist 5.17?
> ------------------------------
>

Harald Oehlmann

unread,
Mar 27, 2017, 12:51:19 PM3/27/17
to
Am 26.03.2017 um 21:56 schrieb Torsten Berg:
> Hi,
>
> thanks so much for this new version. The scrolling is much much better now using the scrollwheel or (in my case) the touch surface of the Magic Mouse!
>
> Great stuff.

Thank you !
I also appreciate the improved scrollbar handling of multiline items. It
now takes the height of each row into account.

Great, thank you,
Harald

Alexandru

unread,
Mar 29, 2017, 12:00:59 PM3/29/17
to
Well, I have a matrix of 600 rows and 125 columns and scrolling this in tablelist is a pain... Is there a setting to increase performance?

nemethi

unread,
Mar 29, 2017, 1:02:45 PM3/29/17
to
I'm afraid I have to answer with "no". But, out of curiosity, does your
matrix contain many embedded images or multi-line elements?

BTW: Are you sure that 125 columns are really user-friendly? Wouldn't
it be a solution to redesign your GUI?

Christian Gollwitzer

unread,
Mar 29, 2017, 5:49:03 PM3/29/17
to
Am 29.03.17 um 18:00 schrieb Alexandru:
> Well, I have a matrix of 600 rows and 125 columns and scrolling this
> in tablelist is a pain... Is there a setting to increase
> performance?
>

Try it with the new text widget from Gregor Kramer?

Christian

Alexandru

unread,
Mar 30, 2017, 1:16:37 AM3/30/17
to
Am Mittwoch, 29. März 2017 19:02:45 UTC+2 schrieb nemethi:
> Am 29.03.2017 um 18:00 schrieb Alexandru:
> > Am Sonntag, 26. März 2017 21:56:21 UTC+2 schrieb Torsten Berg:
> >> Hi,
> >>
> >> thanks so much for this new version. The scrolling is much much better now using the scrollwheel or (in my case) the touch surface of the Magic Mouse!
> >>
> >> Great stuff.
> >>
> >> Torsten
> >>
> >>> I am pleased to announce version 5.17 of the multi-column listbox and
> >>> tree widget package Tablelist.
> >>>
> >>> What is new in Tablelist 5.17?
> >>> ------------------------------
> >>>
> >>> 6. Improvements related to vertical scrolling, especially in the
> >>> presence of embedded images or multi-line elements (thanks to Olivier
> >>> Jolet for discussions on this subject).
> >
> > Well, I have a matrix of 600 rows and 125 columns and scrolling this in tablelist is a pain... Is there a setting to increase performance?
> >
>
> I'm afraid I have to answer with "no". But, out of curiosity, does your
> matrix contain many embedded images or multi-line elements?

The matrix contains only text.
>
> BTW: Are you sure that 125 columns are really user-friendly? Wouldn't
> it be a solution to redesign your GUI?

I'm using tablelist to display the content of excel files in a new dedicated toplevel window. This is what the user expects to see: the content of the Excel table. I don't know how to do this other the showing him the whole table.

Alexandru

unread,
Mar 30, 2017, 1:19:40 AM3/30/17
to
I like the looks of the tablelist. Can I configure a textwidget to look like a table? Or must I insert wigets into the rows to achieve that?

Harald Oehlmann

unread,
Mar 30, 2017, 5:52:36 AM3/30/17
to
IMHO Christian proposed, that you try a Tk with the new text widget with
higher performence. Than, tablelist may be quicker to, as it is based on
the text widget.

To do so, please compile the latest commit in the revised_text branch:

https://core.tcl.tk/tk/timeline?r=revised_text&nd&c=2017-03-26+08%3A50%3A03&n=200




Alexandru

unread,
Mar 30, 2017, 5:57:18 AM3/30/17
to
Ah, now I get it. I don't think it's a good idea to roll out my software with a beta Tcl/Tk. I my have to way until next release of Tcl/Tk.

Regards
Alexandru

Rich

unread,
Mar 30, 2017, 6:22:00 AM3/30/17
to
Well, for a 125 column, 600 row table, you very likely *never* show the
*whole* table completely on screen at once anyway, what they always see
is a subset.

So, keeping that in mind, load the whole table into memory - but don't
stuff the whole table into the widget.

Stuff just enough to fill the screen, plus a buffer of about one
additional screen width and height.

Handle scrolling yourself and add/subtract rows/columns as the user
scrolls around to show the whole table, without ever stuffing *all* of
it into tablelist at the same time.

You want the 'buffer' so that scrolling can appear to be fast while you
are adding/subtracting rows/columns in the invisible areas to make it
appear that the whole table is in the widget at the same time.

Alexandru

unread,
Mar 30, 2017, 6:42:06 AM3/30/17
to
Am Donnerstag, 30. März 2017 12:22:00 UTC+2 schrieb Rich:
Thanks Rich for the tip. That's the safest approach. I'll probably have to do this.

Harald Oehlmann

unread,
Mar 30, 2017, 8:12:14 AM3/30/17
to
It is probably not the next release, which will have the enhanced text
widget. It is planed for Tcl/Tk 8.7, and the next release will probably
be Tcl/Tk 8.6.7.

But any test may give it eventually a boost...

Alexandru

unread,
Mar 30, 2017, 9:31:37 AM3/30/17
to
Am Donnerstag, 30. März 2017 12:22:00 UTC+2 schrieb Rich:
I have some new insights:
Horizontal scrolling is not problem, at least not for the 125 column.
On the other side, I have another table with only 72 rows and 125 columns and the vertical scrolling is still very slow. The table occupies the whole height of the screen and only few rows are hidden.
So *vertical* scrolling is slow not because of too many rows but because too many *columns*! So I need to buffer the columns in order to make vertical scrolling faster.

Alexandru

unread,
Mar 31, 2017, 11:36:45 AM3/31/17
to
@Csaba: Just wondering, would it be usefull for the tablelist to support column buffering out of the box?

Ricardo kozmate.net

unread,
Apr 1, 2017, 6:50:30 AM4/1/17
to
Em 29/03/17 22:49, Christian Gollwitzer escreveu:
> Try it with the new text widget from Gregor Kramer?
Link?

A quick search was useless...

--
{ricardo from kozmate.net}

Alexandru

unread,
Apr 1, 2017, 6:58:49 AM4/1/17
to

Ricardo kozmate.net

unread,
Apr 3, 2017, 10:23:58 PM4/3/17
to
Em 01/04/17 11:58, Alexandru escreveu:
Too quick it looks like... :-)

I tried "text Gregor Kramer" both on a search engine and on the wiki,
with no success. I feel kind of dumb for not including (at least) tk in
it. Thank you.

(and I note the TIP's page has the name a "Cramer", not "Kramer")

--
{ricardo from kozmate.net}

Harald Oehlmann

unread,
Apr 4, 2017, 2:58:53 AM4/4/17
to
Hi,

the revised text widget is so far only available in source code in the
tk branch "revised_text":

https://core.tcl.tk/tk/timeline?r=revised_text&nd&c=2017-04-02+10%3A37%3A04&n=200

It also has the tag "tip-466", as the changes are related to tip 466:
http://tip.tcl.tk/466

If a compiled windows 32 version may be helpful, I may provide it.

I missspelled the name of the original author: Gregor Cramer
Sorry,
Harald
0 new messages