Tk Library Source Code

Check-in [1e5f771358]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment: * CHANGES.txt: Updated to reflect the changes. * doc/*.html:
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 1e5f77135881890fa249485c76b35ba72ce25552
User & Date: csaba 2017-03-22 13:03:44
Context
2017-03-22
13:04
* scripts/*.tcl: Added the tree styles "arc", "blueMenta", "menta", "ubuntuMate", and "ubuntu3"; added the "dicttoitem" and "itemtodict" subcommands; added support for the virtual event <<TablelistViewUpdated>>; added bindings for toggling the selection state of individual items and elements; added support for the keyboard shortcuts <Control-a> and <Shift-Control-A> as alternatives to <Control-slash> and <Control-backslash>; improvements related to vertical scrolling. check-in: 1d0d9cbed6 user: csaba tags: trunk
13:03
* CHANGES.txt: Updated to reflect the changes. * doc/*.html: check-in: 1e5f771358 user: csaba tags: trunk
13:02
* *.tcl: Bumped the version number to 5.17. * COPYRIGHT.txt: * README.txt: * ../../examples/*.tcl: check-in: 7b2ef697b7 user: csaba tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to modules/tablelist/CHANGES.txt.

1
2





































3
4
5
6
7
8
9
What is new in Tablelist 5.16?
------------------------------






































1.  Added the "-autofinishediting" configuration option, relevant for
    interactive cell editing via a combobox or menubutton widget (thanks
    to Alexandru Dadalau for his proposal).

2.  On Windows Vista, 7, 8, and 10, the sort arrows are now shown
    horizontally centered in the header labels and attached to their top
|

>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
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).

What was new in Tablelist 5.16?
-------------------------------

1.  Added the "-autofinishediting" configuration option, relevant for
    interactive cell editing via a combobox or menubutton widget (thanks
    to Alexandru Dadalau for his proposal).

2.  On Windows Vista, 7, 8, and 10, the sort arrows are now shown
    horizontally centered in the header labels and attached to their top
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
directory are "tablelistEdit.tcl" and "tablelistUtil.tcl".

1. Appended the missing 4th argument to the two invocations of the
   procedure "tablelist::moveOrActivate" in the file
   "tablelistEdit.tcl" (thanks to Patrick Fradin and Ralf Fassel for
   their bug reports).

2. Fixed a typo in the file "tablelistUtil.tcl" (Thanks to Patrick
   Fradin for reporting this bug).

What was new in Tablelist 5.12?
-------------------------------

1. Added the "-customdragsource" configuration option, used to indicate
   whether the tablelist widget is a drag source for some drag & drop







|







189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
directory are "tablelistEdit.tcl" and "tablelistUtil.tcl".

1. Appended the missing 4th argument to the two invocations of the
   procedure "tablelist::moveOrActivate" in the file
   "tablelistEdit.tcl" (thanks to Patrick Fradin and Ralf Fassel for
   their bug reports).

2. Fixed a typo in the file "tablelistUtil.tcl" (thanks to Patrick
   Fradin for reporting this bug).

What was new in Tablelist 5.12?
-------------------------------

1. Added the "-customdragsource" configuration option, used to indicate
   whether the tablelist widget is a drag source for some drag & drop

Changes to modules/tablelist/doc/index.html.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<html>
<head>
  <title>The Multi-Column Listbox and Tree Widget Package Tablelist
  5.16</title>

  <meta name="Author" content="Csaba Nemethi">
  <meta name="Keywords" content=
  "tablelist, multi-column, listbox, tree, widget, tile">
</head>

<body bgcolor="#FFFFFF">
  <div align="center">
    <h1>The Multi-Column Listbox and Tree Widget Package Tablelist 5.16</h1>

    <h3>by</h3>

    <h2>Csaba Nemethi</h2>

    <address>
      <a href="mailto:[email protected]">[email protected]</a>



|








|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<html>
<head>
  <title>The Multi-Column Listbox and Tree Widget Package Tablelist
  5.17</title>

  <meta name="Author" content="Csaba Nemethi">
  <meta name="Keywords" content=
  "tablelist, multi-column, listbox, tree, widget, tile">
</head>

<body bgcolor="#FFFFFF">
  <div align="center">
    <h1>The Multi-Column Listbox and Tree Widget Package Tablelist 5.17</h1>

    <h3>by</h3>

    <h2>Csaba Nemethi</h2>

    <address>
      <a href="mailto:[email protected]">[email protected]</a>

Changes to modules/tablelist/doc/tablelist.html.

9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
  <link rel="stylesheet" type="text/css" href="stylesheet.css">
</head>

<body bgcolor="#FFFFFF">
  <div align="center">
    <h1>Tablelist Programmer's Guide</h1>

    <h2>For Tablelist Version 5.16</h2>

    <h3>by</h3>

    <h2>Csaba Nemethi</h2>

    <address>
      <a href="mailto:[email protected]">[email protected]</a>
    </address>
  </div>
  <hr>

  <h2 id="contents">Contents</h2>

  <h4><a href="#overview">Overview</a></h4>

  <ul>
    <li><a href="#ov_what">What is Tablelist?</a></li>

    <li><a href="#ov_get">How to Get It?</a></li>

    <li><a href="#ov_install">How to Install It?</a></li>

    <li><a href="#ov_use">How to Use It?</a></li>








|
















|







9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
  <link rel="stylesheet" type="text/css" href="stylesheet.css">
</head>

<body bgcolor="#FFFFFF">
  <div align="center">
    <h1>Tablelist Programmer's Guide</h1>

    <h2>For Tablelist Version 5.17</h2>

    <h3>by</h3>

    <h2>Csaba Nemethi</h2>

    <address>
      <a href="mailto:[email protected]">[email protected]</a>
    </address>
  </div>
  <hr>

  <h2 id="contents">Contents</h2>

  <h4><a href="#overview">Overview</a></h4>

  <ul>
    <li><a href="#ov_what">What Is Tablelist?</a></li>

    <li><a href="#ov_get">How to Get It?</a></li>

    <li><a href="#ov_install">How to Install It?</a></li>

    <li><a href="#ov_use">How to Use It?</a></li>

67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
  <div align="center">
    <p><a href="index.html">Start page</a></p>
  </div>
  <hr>

  <h2 id="overview">Overview</h2>

  <h3 id="ov_what">What is Tablelist?</h3>

  <p>Tablelist is a library package for Tcl/Tk versions 8.0 or higher, written
  in pure Tcl/Tk code.&nbsp; It contains:</p>

  <ul>
    <li>the implementation of the <a href=
    "tablelistWidget.html"><b>tablelist</b> mega-widget</a>, including a







|







67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
  <div align="center">
    <p><a href="index.html">Start page</a></p>
  </div>
  <hr>

  <h2 id="overview">Overview</h2>

  <h3 id="ov_what">What Is Tablelist?</h3>

  <p>Tablelist is a library package for Tcl/Tk versions 8.0 or higher, written
  in pure Tcl/Tk code.&nbsp; It contains:</p>

  <ul>
    <li>the implementation of the <a href=
    "tablelistWidget.html"><b>tablelist</b> mega-widget</a>, including a
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
      <a href="http://www.nemethi.de">http://www.nemethi.de</a>
    </address>
  </blockquote>

  <h3 id="ov_get">How to Get It?</h3>

  <p>Tablelist is available for free download from the same URL as Wcb.&nbsp;
  The distribution file is <code>tablelist5.16.tar.gz</code> for UNIX and
  <code>tablelist5_16.zip</code> for Windows.&nbsp; 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.</p>

  <p>Tablelist is also included in tklib, which has the address</p>

  <blockquote>







|
|







166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
      <a href="http://www.nemethi.de">http://www.nemethi.de</a>
    </address>
  </blockquote>

  <h3 id="ov_get">How to Get It?</h3>

  <p>Tablelist is available for free download from the same URL as Wcb.&nbsp;
  The distribution file is <code>tablelist5.17.tar.gz</code> for UNIX and
  <code>tablelist5_17.zip</code> for Windows.&nbsp; 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.</p>

  <p>Tablelist is also included in tklib, which has the address</p>

  <blockquote>
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
  a directory at the same level as the Tcl and Tk script libraries.&nbsp; The
  locations of these library directories are given by the
  <code>tcl_library</code> and <code>tk_library</code> variables,
  respectively.</p>

  <p>To install Tablelist <i>on UNIX</i>, <code>cd</code> to the desired
  directory and unpack the distribution file
  <code>tablelist5.16.tar.gz</code>:</p>

  <blockquote>
    <pre>
gunzip -c tablelist5.16.tar.gz | tar -xf -
</pre>
  </blockquote>

  <p>This command will create a directory named <code>tablelist5.16</code>,
  with the subdirectories <code>demos</code>, <code>doc</code>, and
  <code>scripts</code>.</p>

  <p><i>On Windows</i>, use WinZip or some other program capable of unpacking
  the distribution file <code>tablelist5_16.zip</code> into the directory
  <code>tablelist5.16</code>, with the subdirectories <code>demos</code>,
  <code>doc</code>, and <code>scripts</code>.</p>

  <p>The file <code>tablelistEdit.tcl</code> in the <code>scripts</code>
  directory is only needed for applications making use of interactive cell
  editing.&nbsp; Similarly, the file <code>tablelistMove.tcl</code> in the same
  directory is only required for scripts invoking the <code>move</code> or
  <code>movecolumn</code> command.&nbsp; Finally, the file







|



|



|




|
|







191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
  a directory at the same level as the Tcl and Tk script libraries.&nbsp; The
  locations of these library directories are given by the
  <code>tcl_library</code> and <code>tk_library</code> variables,
  respectively.</p>

  <p>To install Tablelist <i>on UNIX</i>, <code>cd</code> to the desired
  directory and unpack the distribution file
  <code>tablelist5.17.tar.gz</code>:</p>

  <blockquote>
    <pre>
gunzip -c tablelist5.17.tar.gz | tar -xf -
</pre>
  </blockquote>

  <p>This command will create a directory named <code>tablelist5.17</code>,
  with the subdirectories <code>demos</code>, <code>doc</code>, and
  <code>scripts</code>.</p>

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

  <p>The file <code>tablelistEdit.tcl</code> in the <code>scripts</code>
  directory is only needed for applications making use of interactive cell
  editing.&nbsp; Similarly, the file <code>tablelistMove.tcl</code> in the same
  directory is only required for scripts invoking the <code>move</code> or
  <code>movecolumn</code> command.&nbsp; Finally, the file
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
  name per package.</p>

  <p>Please note that <b>ActiveTcl versions 8.5 and later use a modified
  package mechanism, which only exports the all-lowercase names
  <code>tablelist</code> and <code>tablelist_tile</code></b>.</p>

  <p><b>REMARK:</b>&nbsp; If you have an earlier Tablelist version as part of
  ActiveTcl 8.5 or above and the new Tablelist release 5.16, then it is highly
  recommended to specify the version number <code>5.16</code> in the&nbsp;
  <code>package require</code>&nbsp; command, because otherwise the interpreter
  will load the old Tablelist version included in ActiveTcl as Tcl
  Module.&nbsp; The <a href="#examples">examples</a> below use the
  statement&nbsp; <code>package require tablelist 5.16</code>,&nbsp; and their
  tile-based counterparts invoke the command&nbsp; <code>package require
  tablelist_tile 5.16</code>.</p>

  <p>Since the packages Tablelist and Tablelist_tile are implemented in the
  <code>tablelist</code> namespace, you must either invoke the</p>

  <blockquote>
    <pre>
namespace import tablelist::<i>pattern</i> ?tablelist::<i>pattern ...</i>?
</pre>
  </blockquote>

  <p>command to import the <i>procedures</i> you need, or use qualified names
  like <code>tablelist::tablelist</code>.&nbsp; In the examples below we have
  chosen the latter approach.</p>

  <p>To access Tablelist <i>variables</i>, you <i>must</i> use qualified
  names.&nbsp; There are only 4 Tablelist variables (and one more when using
  Tablelist_tile) that are designed to be accessed outside the namespace
  <code>tablelist</code>:</p>

  <ul>
    <li>The variable <code>tablelist::version</code> holds the current version
    number of the Tablelist and Tablelist_tile packages.</li>








|
|



|

|















|







302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
  name per package.</p>

  <p>Please note that <b>ActiveTcl versions 8.5 and later use a modified
  package mechanism, which only exports the all-lowercase names
  <code>tablelist</code> and <code>tablelist_tile</code></b>.</p>

  <p><b>REMARK:</b>&nbsp; If you have an earlier Tablelist version as part of
  ActiveTcl 8.5 or above and the new Tablelist release 5.17, then it is highly
  recommended to specify the version number <code>5.17</code> in the&nbsp;
  <code>package require</code>&nbsp; command, because otherwise the interpreter
  will load the old Tablelist version included in ActiveTcl as Tcl
  Module.&nbsp; The <a href="#examples">examples</a> below use the
  statement&nbsp; <code>package require tablelist 5.17</code>,&nbsp; and their
  tile-based counterparts invoke the command&nbsp; <code>package require
  tablelist_tile 5.17</code>.</p>

  <p>Since the packages Tablelist and Tablelist_tile are implemented in the
  <code>tablelist</code> namespace, you must either invoke the</p>

  <blockquote>
    <pre>
namespace import tablelist::<i>pattern</i> ?tablelist::<i>pattern ...</i>?
</pre>
  </blockquote>

  <p>command to import the <i>procedures</i> you need, or use qualified names
  like <code>tablelist::tablelist</code>.&nbsp; In the examples below we have
  chosen the latter approach.</p>

  <p>To access Tablelist <i>variables</i>, you <i>must</i> use qualified
  names.&nbsp; There are only 5 Tablelist variables (and one more when using
  Tablelist_tile) that are designed to be accessed outside the namespace
  <code>tablelist</code>:</p>

  <ul>
    <li>The variable <code>tablelist::version</code> holds the current version
    number of the Tablelist and Tablelist_tile packages.</li>

348
349
350
351
352
353
354




355
356
357
358
359
360
361
362
363
364
    <code>125</code>, <code>150</code>, and <code>200</code>.&nbsp; You can use
    the value of this variable, e.g., if you want to create images of different
    sizes, depending on the DPI scaling factor.&nbsp; For example, if your
    application uses images of size 16 x 16 on an unscaled display and
    <code>tablelist::scalingpct</code> has the value <code>150</code>, then the
    image size for this display should be 24 x 24.</li>





    <li>The read-only variable <code>tablelist::usingTile</code> has the value
    <code>0</code> in the package Tablelist and the value <code>1</code> in
    Tablelist_tile.</li>

    <li>In Tablelist_tile the array <code>tablelist::themeDefaults</code> holds
    the theme-specific default values of a series of Tablelist configuration
    options.</li>
  </ul>

  <h3 id="ov_tile">More on Tablelist_tile</h3>







>
>
>
>
|
|
|







348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
    <code>125</code>, <code>150</code>, and <code>200</code>.&nbsp; You can use
    the value of this variable, e.g., if you want to create images of different
    sizes, depending on the DPI scaling factor.&nbsp; For example, if your
    application uses images of size 16 x 16 on an unscaled display and
    <code>tablelist::scalingpct</code> has the value <code>150</code>, then the
    image size for this display should be 24 x 24.</li>

    <li>The boolean variable <code>tablelist::strictTk</code> (having the
    default value <code>0</code>) controls the strict listbox-compatibility of
    the default bindings.

    <li>The read-only boolean variable <code>tablelist::usingTile</code> has
    the value <code>0</code> in the package Tablelist and the value
    <code>1</code> in Tablelist_tile.</li>

    <li>In Tablelist_tile the array <code>tablelist::themeDefaults</code> holds
    the theme-specific default values of a series of Tablelist configuration
    options.</li>
  </ul>

  <h3 id="ov_tile">More on Tablelist_tile</h3>
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514





















515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
    use the <code>tablelist::library</code> variable to find the location of
    the file.&nbsp; For example, assuming that your Tablelist installation has
    the directory structure described in the <a href="#ov_install">How to
    install it?</a> section, the required commands are:

      <blockquote>
        <pre>
package require tablelist 5.16
source [file join $tablelist::library demos config.tcl]
</pre>
      </blockquote>
    </li>
  </ul>

  <p>In both cases, the script will print the following message to
  <code>stdout</code>:</p>

  <blockquote>
    <pre>
To display the configuration options of an arbitrary widget, enter

        demo::displayConfig &lt;widgetName&gt;
</pre>
  </blockquote>






















  <p>The result looks like in the following figure:</p>

  <blockquote>
    <img src="config.png" alt="Configuration Options" width="839" height=
    "387">
  </blockquote>

  <p>It is assumed that the Tcl command associated with the widget specified by
  <code>&lt;widgetName&gt;</code> has a <code>configure</code> subcommand
  which, when invoked without any argument, returns a list describing all of
  the available configuration options for the widget, in the common format
  known from the standard Tk widgets.&nbsp; The
  <code>demo::displayConfig</code> procedure inserts the items of this list
  into a scrolled tablelist with 5 dynamic-width columns and interactive sort
  capability, and returns the name of the newly created tablelist widget:</p>

  <blockquote>
    <pre>
package require tablelist 5.16

namespace eval demo {
    #
    # Get the current windowing system ("x11", "win32", "classic", or "aqua")
    # and add some entries to the Tk option database for the following
    # widget hierarchy within a top-level widget of the class DemoTop:
    #







|

















>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|


|
|













|







494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
    use the <code>tablelist::library</code> variable to find the location of
    the file.&nbsp; For example, assuming that your Tablelist installation has
    the directory structure described in the <a href="#ov_install">How to
    install it?</a> section, the required commands are:

      <blockquote>
        <pre>
package require tablelist 5.17
source [file join $tablelist::library demos config.tcl]
</pre>
      </blockquote>
    </li>
  </ul>

  <p>In both cases, the script will print the following message to
  <code>stdout</code>:</p>

  <blockquote>
    <pre>
To display the configuration options of an arbitrary widget, enter

        demo::displayConfig &lt;widgetName&gt;
</pre>
  </blockquote>

  <p><code>&lt;widgetName&gt;</code> can be the path name of any already
  existing widget.&nbsp; For example, if you enter</p>

  <blockquote>
    <pre>
demo::displayConfig .
</pre>
  </blockquote>

  <p>then you will see that a tablelist widget <code>.configTop.tf.tbl</code>
  in a new toplevel window is created and its name is printed to
  <code>stdout</code>.&nbsp; If you then enter</p>

  <blockquote>
    <pre>
demo::displayConfig .configTop.tf.tbl
</pre>
  </blockquote>

  <p>then another toplevel window containing the tablelist widget
  <code>.configTop2.tf.tbl</code> will pop up.&nbsp; The latter looks like in
  the following figure:</p>

  <blockquote>
    <img src="config.png" alt="Configuration Options" width="837" height=
    "383">
  </blockquote>

  <p>It is assumed that the Tcl command associated with the widget specified by
  <code>&lt;widgetName&gt;</code> has a <code>configure</code> subcommand
  which, when invoked without any argument, returns a list describing all of
  the available configuration options for the widget, in the common format
  known from the standard Tk widgets.&nbsp; The
  <code>demo::displayConfig</code> procedure inserts the items of this list
  into a scrolled tablelist with 5 dynamic-width columns and interactive sort
  capability, and returns the name of the newly created tablelist widget:</p>

  <blockquote>
    <pre>
package require tablelist 5.17

namespace eval demo {
    #
    # Get the current windowing system ("x11", "win32", "classic", or "aqua")
    # and add some entries to the Tk option database for the following
    # widget hierarchy within a top-level widget of the class DemoTop:
    #
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
    if {[string compare $winSys "x11"] == 0} {
        #
        # Create the font TkDefaultFont if not yet present
        #
        catch {font create TkDefaultFont -family Helvetica -size -12}

        option add *DemoTop*Font                        TkDefaultFont
        option add *DemoTop*selectBackground            #678db2
        option add *DemoTop*selectForeground            white
    } else {
        option add *DemoTop.tf.borderWidth              1
        option add *DemoTop.tf.relief                   sunken
        option add *DemoTop.tf.tbl.borderWidth          0
        option add *DemoTop.tf.tbl.highlightThickness   0
    }







|







582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
    if {[string compare $winSys "x11"] == 0} {
        #
        # Create the font TkDefaultFont if not yet present
        #
        catch {font create TkDefaultFont -family Helvetica -size -12}

        option add *DemoTop*Font                        TkDefaultFont
        option add *DemoTop*selectBackground            #5294e2
        option add *DemoTop*selectForeground            white
    } else {
        option add *DemoTop.tf.borderWidth              1
        option add *DemoTop.tf.relief                   sunken
        option add *DemoTop.tf.tbl.borderWidth          0
        option add *DemoTop.tf.tbl.highlightThickness   0
    }
956
957
958
959
960
961
962













963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982


983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
  <blockquote>
    <pre>
To display information about the children of an arbitrary widget, enter

        demo::displayChildren &lt;widgetName&gt;
</pre>
  </blockquote>














  <p>The tablelist created by the procedure <code>demo::displayChildren</code>
  in the file <code>browse.tcl</code> is a multi-column listbox:</p>

  <blockquote>
    <img src="browse.png" alt="Widget Browser" width="609" height="289">
  </blockquote>

  <p>The tablelist created by the procedure of the same name in the file
  <code>browseTree.tcl</code> is a multi-column tree widget:</p>

  <blockquote>
    <img src="browseTree.png" alt="Widget Browser" width="627" height="289">
  </blockquote>

  <p>The <code>demo::displayChildren</code> command inserts some data of the
  children of the widget specified by <code>&lt;widgetName&gt;</code> into a
  vertically scrolled tablelist with 9 dynamic-width columns and interactive
  sort capability, and returns the name of the newly created tablelist
  widget.&nbsp; By double-clicking an item or invoking the first entry of a


  pop-up menu within the body of the tablelist, you can display the data of the
  children of the widget corresponding to the selected item, and with the
  second menu entry you can display its configuration options (see the <a href=
  "#ex_config">previous example</a> for details).&nbsp; To go one level up,
  click on the <b>Parent</b> button.</p>

  <p>There is a lot of code common to the scripts <code>browse.tcl</code> and
  <code>browseTree.tcl</code>.&nbsp; We will restrict the description below to
  the second one, which requires Tk 8.3 or later, due to the use of several
  tree-related tablelist options and subcommands.</p>

  <blockquote>
    <pre>
package require Tk 8.3
package require tablelist 5.16

namespace eval demo {
    variable dir [file dirname [info script]]

    #
    # Create two images, needed in the procedure putChildren
    #







>
>
>
>
>
>
>
>
>
>
>
>
>





|






|






|
>
>
|
|
|
|
|









|







981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
  <blockquote>
    <pre>
To display information about the children of an arbitrary widget, enter

        demo::displayChildren &lt;widgetName&gt;
</pre>
  </blockquote>

  <p><code>&lt;widgetName&gt;</code> can be the path name of any already
  existing widget.&nbsp; For example, if you enter</p>

  <blockquote>
    <pre>
demo::displayChildren .
</pre>
  </blockquote>

  <p>then you will see that a tablelist widget <code>.browseTop.tf.tbl</code>
  in a new toplevel window is created and its name is printed to
  <code>stdout</code>.</p>

  <p>The tablelist created by the procedure <code>demo::displayChildren</code>
  in the file <code>browse.tcl</code> is a multi-column listbox:</p>

  <blockquote>
    <img src="browse.png" alt="Widget Browser" width="607" height="285">
  </blockquote>

  <p>The tablelist created by the procedure of the same name in the file
  <code>browseTree.tcl</code> is a multi-column tree widget:</p>

  <blockquote>
    <img src="browseTree.png" alt="Widget Browser" width="625" height="285">
  </blockquote>

  <p>The <code>demo::displayChildren</code> command inserts some data of the
  children of the widget specified by <code>&lt;widgetName&gt;</code> into a
  vertically scrolled tablelist with 9 dynamic-width columns and interactive
  sort capability, and returns the name of the newly created tablelist
  widget.&nbsp; By double-clicking an item (e.g., the one containing the path
  name <code>.browseTop</code> in <code>browse.tcl</code> and the name
  <code>browseTop</code> in <code>browseTree.tcl</code>) or invoking the first
  entry of a pop-up menu within the body of the tablelist, you can display the
  data of the children of the widget corresponding to the selected item, and
  with the second menu entry you can display its configuration options (see the
  <a href="#ex_config">previous example</a> for details).&nbsp; To go one level
  up, click on the <b>Parent</b> button.</p>

  <p>There is a lot of code common to the scripts <code>browse.tcl</code> and
  <code>browseTree.tcl</code>.&nbsp; We will restrict the description below to
  the second one, which requires Tk 8.3 or later, due to the use of several
  tree-related tablelist options and subcommands.</p>

  <blockquote>
    <pre>
package require Tk 8.3
package require tablelist 5.17

namespace eval demo {
    variable dir [file dirname [info script]]

    #
    # Create two images, needed in the procedure putChildren
    #
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
    # columns and interactive sort capability within the top-level
    #
    set tf $top.tf
    frame $tf
    set tbl $tf.tbl
    set vsb $tf.vsb
    tablelist::tablelist $tbl \
        -columns {0 "Path Name" left
                  0 "Class"     left
                  0 "X"         right
                  0 "Y"         right
                  0 "Width"     right
                  0 "Height"    right
                  0 "Mapped"    center
                  0 "Viewable"  center







|







1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
    # columns and interactive sort capability within the top-level
    #
    set tf $top.tf
    frame $tf
    set tbl $tf.tbl
    set vsb $tf.vsb
    tablelist::tablelist $tbl \
        -columns {0 "Name"      left
                  0 "Class"     left
                  0 "X"         right
                  0 "Y"         right
                  0 "Width"     right
                  0 "Height"    right
                  0 "Mapped"    center
                  0 "Viewable"  center
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602

  <p>The script <code>dirViewer.tcl</code> in the <code>demos</code> directory
  displays the contents of the volumes mounted on the system (e.g., the root
  <code>/</code> on UNIX and the local drives on Windows) in a tablelist used
  as multi-column tree widget:</p>

  <blockquote>
    <img src="dirViewer.png" alt="Directory Viewer" width="679" height="438">
  </blockquote>

  <p>By double-clicking an item or invoking the single entry of a pop-up menu
  within the body of the tablelist, you can display the contents of the folder
  corresponding to the selected item.&nbsp; To go one level up, click on the
  <b>Parent</b> button.</p>

  <p>There are a lot of similarities between this script and the one discussed
  in the <a href="#ex_browse">previous section</a>.&nbsp; In the following we
  will only present a few procedures that invoke tablelist commands not
  encountered in the examples above:</p>

  <blockquote>
    <pre>
package require Tk 8.3
package require tablelist 5.16

#
# Add some entries to the Tk option database
#
set dir [file dirname [info script]]
source [file join $dir option.tcl]








|















|







1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642

  <p>The script <code>dirViewer.tcl</code> in the <code>demos</code> directory
  displays the contents of the volumes mounted on the system (e.g., the root
  <code>/</code> on UNIX and the local drives on Windows) in a tablelist used
  as multi-column tree widget:</p>

  <blockquote>
    <img src="dirViewer.png" alt="Directory Viewer" width="677" height="434">
  </blockquote>

  <p>By double-clicking an item or invoking the single entry of a pop-up menu
  within the body of the tablelist, you can display the contents of the folder
  corresponding to the selected item.&nbsp; To go one level up, click on the
  <b>Parent</b> button.</p>

  <p>There are a lot of similarities between this script and the one discussed
  in the <a href="#ex_browse">previous section</a>.&nbsp; In the following we
  will only present a few procedures that invoke tablelist commands not
  encountered in the examples above:</p>

  <blockquote>
    <pre>
package require Tk 8.3
package require tablelist 5.17

#
# Add some entries to the Tk option database
#
set dir [file dirname [info script]]
source [file join $dir option.tcl]

1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896

  <p>The script <code>styles.tcl</code> in the <code>demos</code> directory
  demonstrates some ways of making tablelist widgets smarter and improving the
  readability of their items.&nbsp; It creates 8 tablelist widgets, shown in
  the following figure:</p>

  <blockquote>
    <img src="styles.png" alt="Styles" width="700" height="497">
  </blockquote>

  <p>Here is the relevant code segment:</p>

  <blockquote>
    <pre>
#







|







1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936

  <p>The script <code>styles.tcl</code> in the <code>demos</code> directory
  demonstrates some ways of making tablelist widgets smarter and improving the
  readability of their items.&nbsp; It creates 8 tablelist widgets, shown in
  the following figure:</p>

  <blockquote>
    <img src="styles.png" alt="Styles" width="698" height="493">
  </blockquote>

  <p>Here is the relevant code segment:</p>

  <blockquote>
    <pre>
#
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
  parameters of 16 serial lines, and demonstrate how to use various widgets
  from the Tk core and from the packages tile, BWidget, Iwidgets, combobox (by
  Bryan Oakley), ctext, and Mentry (or Mentry_tile) for interactive cell
  editing.&nbsp; The following figure shows the tablelist widget, together with
  a BWidget ComboBox used to edit the contents of one of its cells:</p>

  <blockquote>
    <img src="bwidget.png" alt="Serial Line Configuration" width="843" height=
    "391">
  </blockquote>

  <p>Here is the relevant code segment from the script <code>bwidget.tcl</code>
  (the scripts <code>tileWidgets.tcl</code>, <code>iwidgets.tcl</code>, and
  <code>miscWidgets.tcl</code> are similar):</p>

  <blockquote>
    <pre>
package require Tk 8.4                          ;# because of "-compound"
package require tablelist 5.16
package require BWidget

wm title . "Serial Line Configuration"

#
# Add some entries to the Tk option database
#







|
|









|







2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
  parameters of 16 serial lines, and demonstrate how to use various widgets
  from the Tk core and from the packages tile, BWidget, Iwidgets, combobox (by
  Bryan Oakley), ctext, and Mentry (or Mentry_tile) for interactive cell
  editing.&nbsp; The following figure shows the tablelist widget, together with
  a BWidget ComboBox used to edit the contents of one of its cells:</p>

  <blockquote>
    <img src="bwidget.png" alt="Serial Line Configuration" width="841" height=
    "387">
  </blockquote>

  <p>Here is the relevant code segment from the script <code>bwidget.tcl</code>
  (the scripts <code>tileWidgets.tcl</code>, <code>iwidgets.tcl</code>, and
  <code>miscWidgets.tcl</code> are similar):</p>

  <blockquote>
    <pre>
package require Tk 8.4                          ;# because of "-compound"
package require tablelist 5.17
package require BWidget

wm title . "Serial Line Configuration"

#
# Add some entries to the Tk option database
#
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
  widgets.</p>

  <p>The following screenshot shows the tablelist widget with the mouse cursor
  over the first header label, causing this label to appear in
  <code>active</code> state:</p>

  <blockquote>
    <img src="embeddedWindows.png" alt="Embedded Windows" width="436" height=
    "290">
  </blockquote>

  <p>First, we create and populate the tablelist widget:</p>

  <blockquote>
    <pre>
package require tablelist 5.16

wm title . "Tk Library Scripts"

#
# Add some entries to the Tk option database
#
set dir [file dirname [info script]]







|
|






|







2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
  widgets.</p>

  <p>The following screenshot shows the tablelist widget with the mouse cursor
  over the first header label, causing this label to appear in
  <code>active</code> state:</p>

  <blockquote>
    <img src="embeddedWindows.png" alt="Embedded Windows" width="434" height=
    "286">
  </blockquote>

  <p>First, we create and populate the tablelist widget:</p>

  <blockquote>
    <pre>
package require tablelist 5.17

wm title . "Tk Library Scripts"

#
# Add some entries to the Tk option database
#
set dir [file dirname [info script]]
2366
2367
2368
2369
2370
2371
2372








2373
2374
2375
2376
2377
2378
2379
2380
$tbl columnconfigure 1 -formatcommand emptyStr -sortmode integer
$tbl columnconfigure 2 -name fileSize -sortmode integer
$tbl columnconfigure 4 -name seen
scrollbar $vsb -orient vertical -command [list $tbl yview]

proc emptyStr val { return "" }









eval font create BoldFont [font actual [$tbl cget -font]] -weight bold

#
# Populate the tablelist widget
#
cd $tk_library
set maxFileSize 0
foreach fileName [lsort [glob *.tcl]] {







>
>
>
>
>
>
>
>
|







2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
$tbl columnconfigure 1 -formatcommand emptyStr -sortmode integer
$tbl columnconfigure 2 -name fileSize -sortmode integer
$tbl columnconfigure 4 -name seen
scrollbar $vsb -orient vertical -command [list $tbl yview]

proc emptyStr val { return "" }

#
# Create a bold font
#
set tblFont [$tbl cget -font]
set size [font actual $tblFont -size]
if {$size == 0} {                                       ;# e.g., on Ubuntu
    set size -12
}
eval font create BoldFont [font actual $tblFont] -size $size -weight bold

#
# Populate the tablelist widget
#
cd $tk_library
set maxFileSize 0
foreach fileName [lsort [glob *.tcl]] {
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
  <span>red</span> color:</p>

  <p>First, we replace the starting lines</p>

  <blockquote>
    <pre>
package require Tk 8.3                          ;# because of entry validation
package require tablelist 5.16
</pre>
  </blockquote>

  <p>with</p>

  <blockquote>
    <pre>
package require tablelist<span>_tile</span> 5.16
</pre>
  </blockquote>

  <p>and the command</p>

  <blockquote>
    <pre>







|







|







2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
  <span>red</span> color:</p>

  <p>First, we replace the starting lines</p>

  <blockquote>
    <pre>
package require Tk 8.3                          ;# because of entry validation
package require tablelist 5.17
</pre>
  </blockquote>

  <p>with</p>

  <blockquote>
    <pre>
package require tablelist<span>_tile</span> 5.17
</pre>
  </blockquote>

  <p>and the command</p>

  <blockquote>
    <pre>
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
  <p>The demo script <code>tileWidgets.tcl</code> uses not only the
  Tablelist_tile package for creating a tablelist widget with a modern
  theme-specific look &amp; feel, but also the tile entry, spinbox, combobox,
  checkbutton, and menubutoon widgets for interactive cell editing.&nbsp; The
  resulting window has a nice theme-specific appearance:</p>

  <blockquote>
    <img src="tileWidgets.png" alt="Serial Line Configuration" width="841"
    height="386">
  </blockquote>

  <p>The tile-based version of the demo script <code><a href=
  "#ex_windows">embeddedWindows.tcl</a></code> contains a bit more changes, but
  most of them are not Tablelist-specific.&nbsp; Please take a look at the file
  <code>embeddedWindows_tile.tcl</code> in the <code>demos</code> directory for
  the details.&nbsp; Here is a screenshot of the resulting window:</p>

  <blockquote>
    <img src="embeddedWindows_tile.png" alt="Embedded Windows" width="434"
    height="284">
  </blockquote>

  <div align="center">
    <p><a href="#contents">Contents</a>&nbsp;&nbsp;&nbsp;&nbsp; <a href=
    "index.html">Start page</a></p>
  </div>
</body>
</html>







|
|









|
|








2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
  <p>The demo script <code>tileWidgets.tcl</code> uses not only the
  Tablelist_tile package for creating a tablelist widget with a modern
  theme-specific look &amp; feel, but also the tile entry, spinbox, combobox,
  checkbutton, and menubutoon widgets for interactive cell editing.&nbsp; The
  resulting window has a nice theme-specific appearance:</p>

  <blockquote>
    <img src="tileWidgets.png" alt="Serial Line Configuration" width="839"
    height="382">
  </blockquote>

  <p>The tile-based version of the demo script <code><a href=
  "#ex_windows">embeddedWindows.tcl</a></code> contains a bit more changes, but
  most of them are not Tablelist-specific.&nbsp; Please take a look at the file
  <code>embeddedWindows_tile.tcl</code> in the <code>demos</code> directory for
  the details.&nbsp; Here is a screenshot of the resulting window:</p>

  <blockquote>
    <img src="embeddedWindows_tile.png" alt="Embedded Windows" width="432"
    height="280">
  </blockquote>

  <div align="center">
    <p><a href="#contents">Contents</a>&nbsp;&nbsp;&nbsp;&nbsp; <a href=
    "index.html">Start page</a></p>
  </div>
</body>
</html>

Changes to modules/tablelist/doc/tablelistBWidget.html.

8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
  <link rel="stylesheet" type="text/css" href="stylesheet.css">
</head>

<body bgcolor="#FFFFFF">
  <div align="center">
    <h1>Interactive Tablelist Cell Editing Using the BWidget Package</h1>

    <h2>For Tablelist Version 5.16</h2>

    <h3>by</h3>

    <h2>Csaba Nemethi</h2>

    <address>
      <a href="mailto:[email protected]">[email protected]</a>







|







8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
  <link rel="stylesheet" type="text/css" href="stylesheet.css">
</head>

<body bgcolor="#FFFFFF">
  <div align="center">
    <h1>Interactive Tablelist Cell Editing Using the BWidget Package</h1>

    <h2>For Tablelist Version 5.17</h2>

    <h3>by</h3>

    <h2>Csaba Nemethi</h2>

    <address>
      <a href="mailto:[email protected]">[email protected]</a>

Changes to modules/tablelist/doc/tablelistBinding.html.

8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
  <link rel="stylesheet" type="text/css" href="stylesheet.css">
</head>

<body bgcolor="#FFFFFF">
  <div align="center">
    <h1>Helper Commands Used in Tablelist Binding Scripts</h1>

    <h2>For Tablelist Version 5.16</h2>

    <h3>by</h3>

    <h2>Csaba Nemethi</h2>

    <address>
      <a href="mailto:[email protected]">[email protected]</a>







|







8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
  <link rel="stylesheet" type="text/css" href="stylesheet.css">
</head>

<body bgcolor="#FFFFFF">
  <div align="center">
    <h1>Helper Commands Used in Tablelist Binding Scripts</h1>

    <h2>For Tablelist Version 5.17</h2>

    <h3>by</h3>

    <h2>Csaba Nemethi</h2>

    <address>
      <a href="mailto:[email protected]">[email protected]</a>

Changes to modules/tablelist/doc/tablelistColSort.html.

8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
  <link rel="stylesheet" type="text/css" href="stylesheet.css">
</head>

<body bgcolor="#FFFFFF">
  <div align="center">
    <h1>Commands for Interactive Sorting by One or More Columns</h1>

    <h2>For Tablelist Version 5.16</h2>

    <h3>by</h3>

    <h2>Csaba Nemethi</h2>

    <address>
      <a href="mailto:[email protected]">[email protected]</a>







|







8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
  <link rel="stylesheet" type="text/css" href="stylesheet.css">
</head>

<body bgcolor="#FFFFFF">
  <div align="center">
    <h1>Commands for Interactive Sorting by One or More Columns</h1>

    <h2>For Tablelist Version 5.17</h2>

    <h3>by</h3>

    <h2>Csaba Nemethi</h2>

    <address>
      <a href="mailto:[email protected]">[email protected]</a>

Changes to modules/tablelist/doc/tablelistCombobox.html.

8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
  <link rel="stylesheet" type="text/css" href="stylesheet.css">
</head>

<body bgcolor="#FFFFFF">
  <div align="center">
    <h1>Interactive Tablelist Cell Editing Using the combobox Package</h1>

    <h2>For Tablelist Version 5.16</h2>

    <h3>by</h3>

    <h2>Csaba Nemethi</h2>

    <address>
      <a href="mailto:[email protected]">[email protected]</a>







|







8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
  <link rel="stylesheet" type="text/css" href="stylesheet.css">
</head>

<body bgcolor="#FFFFFF">
  <div align="center">
    <h1>Interactive Tablelist Cell Editing Using the combobox Package</h1>

    <h2>For Tablelist Version 5.17</h2>

    <h3>by</h3>

    <h2>Csaba Nemethi</h2>

    <address>
      <a href="mailto:[email protected]">[email protected]</a>

Changes to modules/tablelist/doc/tablelistCtext.html.

8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
  <link rel="stylesheet" type="text/css" href="stylesheet.css">
</head>

<body bgcolor="#FFFFFF">
  <div align="center">
    <h1>Interactive Tablelist Cell Editing Using the ctext Package</h1>

    <h2>For Tablelist Version 5.16</h2>

    <h3>by</h3>

    <h2>Csaba Nemethi</h2>

    <address>
      <a href="mailto:[email protected]">[email protected]</a>







|







8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
  <link rel="stylesheet" type="text/css" href="stylesheet.css">
</head>

<body bgcolor="#FFFFFF">
  <div align="center">
    <h1>Interactive Tablelist Cell Editing Using the ctext Package</h1>

    <h2>For Tablelist Version 5.17</h2>

    <h3>by</h3>

    <h2>Csaba Nemethi</h2>

    <address>
      <a href="mailto:[email protected]">[email protected]</a>

Changes to modules/tablelist/doc/tablelistIwidgets.html.

8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
  <link rel="stylesheet" type="text/css" href="stylesheet.css">
</head>

<body bgcolor="#FFFFFF">
  <div align="center">
    <h1>Interactive Tablelist Cell Editing Using the Iwidgets Package</h1>

    <h2>For Tablelist Version 5.16</h2>

    <h3>by</h3>

    <h2>Csaba Nemethi</h2>

    <address>
      <a href="mailto:[email protected]">[email protected]</a>







|







8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
  <link rel="stylesheet" type="text/css" href="stylesheet.css">
</head>

<body bgcolor="#FFFFFF">
  <div align="center">
    <h1>Interactive Tablelist Cell Editing Using the Iwidgets Package</h1>

    <h2>For Tablelist Version 5.17</h2>

    <h3>by</h3>

    <h2>Csaba Nemethi</h2>

    <address>
      <a href="mailto:[email protected]">[email protected]</a>

Changes to modules/tablelist/doc/tablelistMentry.html.

8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
  <link rel="stylesheet" type="text/css" href="stylesheet.css">
</head>

<body bgcolor="#FFFFFF">
  <div align="center">
    <h1>Interactive Tablelist Cell Editing Using the Mentry Package</h1>

    <h2>For Tablelist Version 5.16</h2>

    <h3>by</h3>

    <h2>Csaba Nemethi</h2>

    <address>
      <a href="mailto:[email protected]">[email protected]</a>







|







8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
  <link rel="stylesheet" type="text/css" href="stylesheet.css">
</head>

<body bgcolor="#FFFFFF">
  <div align="center">
    <h1>Interactive Tablelist Cell Editing Using the Mentry Package</h1>

    <h2>For Tablelist Version 5.17</h2>

    <h3>by</h3>

    <h2>Csaba Nemethi</h2>

    <address>
      <a href="mailto:[email protected]">[email protected]</a>

Changes to modules/tablelist/doc/tablelistThemes.html.

8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
  <link rel="stylesheet" type="text/css" href="stylesheet.css">
</head>

<body bgcolor="#FFFFFF">
  <div align="center">
    <h1>Commands Related to Tile Themes</h1>

    <h2>For Tablelist Version 5.16</h2>

    <h3>by</h3>

    <h2>Csaba Nemethi</h2>

    <address>
      <a href="mailto:[email protected]">[email protected]</a>







|







8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
  <link rel="stylesheet" type="text/css" href="stylesheet.css">
</head>

<body bgcolor="#FFFFFF">
  <div align="center">
    <h1>Commands Related to Tile Themes</h1>

    <h2>For Tablelist Version 5.17</h2>

    <h3>by</h3>

    <h2>Csaba Nemethi</h2>

    <address>
      <a href="mailto:[email protected]">[email protected]</a>

Changes to modules/tablelist/doc/tablelistTile.html.

8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
  <link rel="stylesheet" type="text/css" href="stylesheet.css">
</head>

<body bgcolor="#FFFFFF">
  <div align="center">
    <h1>Interactive Tablelist Cell Editing Using Tile Widgets</h1>

    <h2>For Tablelist Version 5.16</h2>

    <h3>by</h3>

    <h2>Csaba Nemethi</h2>

    <address>
      <a href="mailto:[email protected]">[email protected]</a>







|







8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
  <link rel="stylesheet" type="text/css" href="stylesheet.css">
</head>

<body bgcolor="#FFFFFF">
  <div align="center">
    <h1>Interactive Tablelist Cell Editing Using Tile Widgets</h1>

    <h2>For Tablelist Version 5.17</h2>

    <h3>by</h3>

    <h2>Csaba Nemethi</h2>

    <address>
      <a href="mailto:[email protected]">[email protected]</a>

Changes to modules/tablelist/doc/tablelistTkCore.html.

8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
  <link rel="stylesheet" type="text/css" href="stylesheet.css">
</head>

<body bgcolor="#FFFFFF">
  <div align="center">
    <h1>Interactive Tablelist Cell Editing Using Tk Core Widgets</h1>

    <h2>For Tablelist Version 5.16</h2>

    <h3>by</h3>

    <h2>Csaba Nemethi</h2>

    <address>
      <a href="mailto:[email protected]">[email protected]</a>







|







8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
  <link rel="stylesheet" type="text/css" href="stylesheet.css">
</head>

<body bgcolor="#FFFFFF">
  <div align="center">
    <h1>Interactive Tablelist Cell Editing Using Tk Core Widgets</h1>

    <h2>For Tablelist Version 5.17</h2>

    <h3>by</h3>

    <h2>Csaba Nemethi</h2>

    <address>
      <a href="mailto:[email protected]">[email protected]</a>

Changes to modules/tablelist/doc/tablelistWidget.html.

9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
  <link rel="stylesheet" type="text/css" href="stylesheet.css">
</head>

<body bgcolor="#FFFFFF">
  <div align="center">
    <h1>The <code><b>tablelist::tablelist</b></code> Command</h1>

    <h2>For Tablelist Version 5.16</h2>

    <h3>by</h3>

    <h2>Csaba Nemethi</h2>

    <address>
      <a href="mailto:[email protected]">[email protected]</a>







|







9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
  <link rel="stylesheet" type="text/css" href="stylesheet.css">
</head>

<body bgcolor="#FFFFFF">
  <div align="center">
    <h1>The <code><b>tablelist::tablelist</b></code> Command</h1>

    <h2>For Tablelist Version 5.17</h2>

    <h3>by</h3>

    <h2>Csaba Nemethi</h2>

    <address>
      <a href="mailto:[email protected]">[email protected]</a>
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
    <dd><code><b><a href="#tooltipdelcommand">-tooltipdelcommand</a></b>
    <i>command</i></code></dd>

    <dd><code><b><a href="#treecolumn">-treecolumn</a></b>
    <i>columnIndex</i></code></dd>

    <dd><code><b><a href="#treestyle">-treestyle</a></b>
    <b>adwaita</b>|<b>ambiance</b>|<b>aqua</b>|<b>baghira</b>|<b>bicolor1</b>|<b>bicolor2</b>|<b>bicolor3</b>|<b>bicolor4</b>|<br>
    &nbsp;<b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;classic1</b>|<b>classic2</b>|<b>classic3</b>|<b>classic4</b>|<b>dust</b>|<b>dustSand</b>|<b>gtk</b>|<b>klearlooks</b>|<br>
    &nbsp;<b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mate</b>|<b>mint</b>|<b>mint2</b>|<b>newWave</b>|<b>oxygen1</b>|<b>oxygen2</b>|<b>phase</b>|<b>plain1</b>|<b>plain2</b>|<b>plain3</b>|<b>plain4</b>|<br>
    &nbsp;<b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;plastik</b>|<b>plastique</b>|<b>radiance</b>|<b>ubuntu</b>|<b>ubuntu2</b>|<b>vistaAero</b>|<b>vistaClassic</b>|<br>
    &nbsp;<b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;win7Aero</b>|<b>win7Classic</b>|<b>win10</b>|<b>winnative</b>|<b>winxpBlue</b>|<b>winxpOlive</b>|<b>winxpSilver</b>|<b>yuyo</b></code></dd>

    <dd><code><b><a href="#width">-width</a></b> <i>characters</i></code></dd>

    <dt class="tm"><a href="#col_options">COLUMN CONFIGURATION OPTIONS</a></dt>

    <dd><code><b><a href="#col_align">-align</a></b>







|
|
|
|







284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
    <dd><code><b><a href="#tooltipdelcommand">-tooltipdelcommand</a></b>
    <i>command</i></code></dd>

    <dd><code><b><a href="#treecolumn">-treecolumn</a></b>
    <i>columnIndex</i></code></dd>

    <dd><code><b><a href="#treestyle">-treestyle</a></b>
    <b>adwaita</b>|<b>ambiance</b>|<b>aqua</b>|<b>arc</b>|<b>baghira</b>|<b>bicolor1</b>|<b>bicolor2</b>|<b>bicolor3</b>|<b>bicolor4</b>|<b>blueMenta</b>|<br>
    &nbsp;<b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;classic1</b>|<b>classic2</b>|<b>classic3</b>|<b>classic4</b>|<b>dust</b>|<b>dustSand</b>|<b>gtk</b>|<b>klearlooks</b>|<b>mate</b>|<b>menta</b>|<br>
    &nbsp;<b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mint</b>|<b>mint2</b>|<b>newWave</b>|<b>oxygen1</b>|<b>oxygen2</b>|<b>phase</b>|<b>plain1</b>|<b>plain2</b>|<b>plain3</b>|<b>plain4</b>|<b>plastik</b>|<br>
    &nbsp;<b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;plastique</b>|<b>radiance</b>|<b>ubuntu</b>|<b>ubuntu2</b>|<b>ubuntu3</b>|<b>ubuntuMate</b>|<b>vistaAero</b>|<b>vistaClassic</b>|<br>
    &nbsp;<b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;win7Aero</b>|<b>win7Classic</b>|<b>win10</b>|<b>winnative</b>|<b>winxpBlue</b>|<b>winxpOlive</b>|<b>winxpSilver</b>|<b>yuyo</b></code></dd>

    <dd><code><b><a href="#width">-width</a></b> <i>characters</i></code></dd>

    <dt class="tm"><a href="#col_options">COLUMN CONFIGURATION OPTIONS</a></dt>

    <dd><code><b><a href="#col_align">-align</a></b>
704
705
706
707
708
709
710



711
712
713
714
715
716
717

    <dd><code><i>pathName</i> <b><a href="#depth">depth</a></b>
    <i>nodeIndex</i></code></dd>

    <dd><code><i>pathName</i> <b><a href=
    "#descendantcount">descendantcount</a></b> <i>nodeIndex</i></code></dd>




    <dd><code><i>pathName</i> <b><a href="#editcell">editcell</a></b>
    <i>cellIndex</i></code></dd>

    <dd><code><i>pathName</i> <b><a href=
    "#editinfo">editinfo</a></b></code></dd>

    <dd><code><i>pathName</i> <b><a href=







>
>
>







704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720

    <dd><code><i>pathName</i> <b><a href="#depth">depth</a></b>
    <i>nodeIndex</i></code></dd>

    <dd><code><i>pathName</i> <b><a href=
    "#descendantcount">descendantcount</a></b> <i>nodeIndex</i></code></dd>

    <dd><code><i>pathName</i> <b><a href=
    "#dicttoitem">dicttoitem</a></b> <i>dictionary</i></code></dd>

    <dd><code><i>pathName</i> <b><a href="#editcell">editcell</a></b>
    <i>cellIndex</i></code></dd>

    <dd><code><i>pathName</i> <b><a href=
    "#editinfo">editinfo</a></b></code></dd>

    <dd><code><i>pathName</i> <b><a href=
858
859
860
861
862
863
864



865
866
867
868
869
870
871

    <dd><code><i>pathName</i> <b><a href="#isviewable">isviewable</a></b>
    <i>index</i></code></dd>

    <dd><code><i>pathName</i> <b><a href=
    "#itemlistvar">itemlistvar</a></b></code></dd>




    <dd><code><i>pathName</i> <b><a href="#labelpath">labelpath</a></b>
    <i>columnIndex</i></code></dd>

    <dd><code><i>pathName</i> <b><a href="#labels">labels</a></b></code></dd>

    <dd><code><i>pathName</i> <b><a href=
    "#labeltag">labeltag</a></b></code></dd>







>
>
>







861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877

    <dd><code><i>pathName</i> <b><a href="#isviewable">isviewable</a></b>
    <i>index</i></code></dd>

    <dd><code><i>pathName</i> <b><a href=
    "#itemlistvar">itemlistvar</a></b></code></dd>

    <dd><code><i>pathName</i> <b><a href=
    "#itemtodict">itemtodict</a></b> <i>item</i></code></dd>

    <dd><code><i>pathName</i> <b><a href="#labelpath">labelpath</a></b>
    <i>columnIndex</i></code></dd>

    <dd><code><i>pathName</i> <b><a href="#labels">labels</a></b></code></dd>

    <dd><code><i>pathName</i> <b><a href=
    "#labeltag">labeltag</a></b></code></dd>
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
        <code><b>photo7x4</b></code>, <code><b>photo9x5</b></code>,
        <code><b>photo11x6</b></code>, and <code><b>photo15x8</b></code> use
        GIF images that look very close to the native sort arrows on Windows
        Vista, 7, and 8.&nbsp; When using one of these styles, the <code><b><a
        href="#arrowcolor">-arrowcolor</a></b></code> and <code><b><a href=
        "#arrowdisabledcolor">-arrowdisabledcolor</a></b></code> options have
        no effect.</p>
        
        <p>On Windows Vista, 7, 8, and 10, the sort arrows are shown
        horizontally centered in the header labels, just below their top
        edges:<p>

        <p><img src="arrowStyles_vista.png" alt="Arrow Styles Vista" width=
        "638" height= "123"></p>








|







1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
        <code><b>photo7x4</b></code>, <code><b>photo9x5</b></code>,
        <code><b>photo11x6</b></code>, and <code><b>photo15x8</b></code> use
        GIF images that look very close to the native sort arrows on Windows
        Vista, 7, and 8.&nbsp; When using one of these styles, the <code><b><a
        href="#arrowcolor">-arrowcolor</a></b></code> and <code><b><a href=
        "#arrowdisabledcolor">-arrowdisabledcolor</a></b></code> options have
        no effect.</p>

        <p>On Windows Vista, 7, 8, and 10, the sort arrows are shown
        horizontally centered in the header labels, just below their top
        edges:<p>

        <p><img src="arrowStyles_vista.png" alt="Arrow Styles Vista" width=
        "638" height= "123"></p>

1684
1685
1686
1687
1688
1689
1690
1691

1692
1693
1694
1695
1696
1697
1698
        <code><b>-background</b></code> and <code><b>-foreground</b></code>,
        the command may also use a few other tag configuration options, like
        <code><b>-overstrike</b></code> and
        <code><b>-underline</b></code>.&nbsp; On the other hand, be aware that
        the use of some other tag configuration options (particularly
        <code><b>-elide</b></code> and <code><b>-font</b></code>) can cause
        conflicts with the way Tablelist renders the elements, thus giving rise
        to various layout problems within the body of your tablelist widget!<p> 

      </blockquote>
    </dd>

    <dd id="columns">
      <table border="0" cellpadding="0" cellspacing="0">
        <tr>
          <td>Command-Line Name:&nbsp;</td>







|
>







1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
        <code><b>-background</b></code> and <code><b>-foreground</b></code>,
        the command may also use a few other tag configuration options, like
        <code><b>-overstrike</b></code> and
        <code><b>-underline</b></code>.&nbsp; On the other hand, be aware that
        the use of some other tag configuration options (particularly
        <code><b>-elide</b></code> and <code><b>-font</b></code>) can cause
        conflicts with the way Tablelist renders the elements, thus giving rise
        to various layout problems within the body of your tablelist
        widget!</p>
      </blockquote>
    </dd>

    <dd id="columns">
      <table border="0" cellpadding="0" cellspacing="0">
        <tr>
          <td>Command-Line Name:&nbsp;</td>
3979
3980
3981
3982
3983
3984
3985

3986
3987
3988
3989
3990
3991
3992
3993
3994



3995
3996
3997
3998
3999
4000



4001
4002
4003
4004
4005
4006
4007
4008
4009


4010
4011
4012


4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025

4026
4027
4028


4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039


4040
4041
4042
4043
4044
4045


4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062


4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076



4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093


4094
4095
4096
4097
4098
4099
4100

          <colgroup></colgroup>

          <colgroup></colgroup>

          <colgroup></colgroup>



          <tbody align="center">
            <tr>
              <td><img src="aqua.png" alt="aqua" width="120" height="54"></td>

              <td><img src="gtk.png" alt="gtk" width="120" height="51"></td>

              <td><img src="adwaita.png" alt="adwaita" width="120" height=
              "51"></td>




              <td><img src="ubuntu.png" alt="ubuntu" width="120" height=
              "51"></td>

              <td><img src="ubuntu2.png" alt="ubuntu2" width="120" height=
              "51"></td>



            </tr>

            <tr>
              <th><code>aqua</code></th>

              <th><code>gtk</code></th>

              <th><code>adwaita</code></th>



              <th><code>ubuntu</code></th>

              <th><code>ubuntu2</code></th>


            </tr>
          </tbody>

          <tbody align="center">
            <tr>
              <td><img src="mint.png" alt="mint" width="120" height="51"></td>

              <td><img src="mint2.png" alt="mint2" width="120" height=
              "51"></td>

              <td><img src="mate.png" alt="mate" width="120" height="51"></td>

              <td><img src="yuyo.png" alt="yuyo" width="120" height="51"></td>


              <td><img src="plastique.png" alt="plastique" width="120" height=
              "51"></td>


            </tr>

            <tr>
              <th><code>mint</code></th>

              <th><code>mint2</code></th>

              <th><code>mate</code></th>

              <th><code>yuyo</code></th>



              <th><code>plastique</code></th>
            </tr>
          </tbody>

          <tbody align="center">
            <tr>


              <td><img src="oxygen1.png" alt="oxygen1" width="120" height=
              "51"></td>

              <td><img src="oxygen2.png" alt="oxygen2" width="120" height=
              "51"></td>

              <td><img src="klearlooks.png" alt="klearlooks" width="120"
              height="51"></td>

              <td><img src="baghira.png" alt="baghira" width="120" height=
              "51"></td>

              <td><img src="phase.png" alt="phase" width="120" height=
              "51"></td>
            </tr>

            <tr>


              <th><code>oxygen1</code></th>

              <th><code>oxygen2</code></th>

              <th><code>klearlooks</code></th>

              <th><code>baghira</code></th>

              <th><code>phase</code></th>
            </tr>
          </tbody>

          <tbody align="center">
            <tr>



              <td><img src="plastik.png" alt="plastik" width="120" height=
              "51"></td>

              <td><img src="winnative.png" alt="winnative" width="120" height=
              "51"></td>

              <td><img src="winxpBlue.png" alt="winxpBlue" width="120" height=
              "51"></td>

              <td><img src="winxpOlive.png" alt="winxpOlive" width="120"
              height="51"></td>

              <td><img src="winxpSilver.png" alt="winxpSilver" width="120"
              height="51"></td>
            </tr>

            <tr>


              <th><code>plastik</code></th>

              <th><code>winnative</code></th>

              <th><code>winxpBlue</code></th>

              <th><code>winxpOlive</code></th>







>



<
<




>
>
>






>
>
>



<
<




>
>



>
>












|
>

|
|
>
>









|

>
>
|





>
>

















>
>














>
>
>

















>
>







3986
3987
3988
3989
3990
3991
3992
3993
3994
3995
3996


3997
3998
3999
4000
4001
4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015


4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128

          <colgroup></colgroup>

          <colgroup></colgroup>

          <colgroup></colgroup>

          <colgroup></colgroup>

          <tbody align="center">
            <tr>


              <td><img src="gtk.png" alt="gtk" width="120" height="51"></td>

              <td><img src="adwaita.png" alt="adwaita" width="120" height=
              "51"></td>

              <td><img src="blueMenta.png" alt="blueMenta" width="120" height=
              "51"></td>

              <td><img src="ubuntu.png" alt="ubuntu" width="120" height=
              "51"></td>

              <td><img src="ubuntu2.png" alt="ubuntu2" width="120" height=
              "51"></td>

              <td><img src="ubuntu3.png" alt="ubuntu3" width="120" height=
              "51"></td>
            </tr>

            <tr>


              <th><code>gtk</code></th>

              <th><code>adwaita</code></th>

              <th><code>blueMenta</code></th>

              <th><code>ubuntu</code></th>

              <th><code>ubuntu2</code></th>

              <th><code>ubuntu3</code></th>
            </tr>
          </tbody>

          <tbody align="center">
            <tr>
              <td><img src="mint.png" alt="mint" width="120" height="51"></td>

              <td><img src="mint2.png" alt="mint2" width="120" height=
              "51"></td>

              <td><img src="mate.png" alt="mate" width="120" height="51"></td>

              <td><img src="menta.png" alt="menta" width="120" height=
              "51"></td>

              <td><img src="ubuntuMate.png" alt="ubuntuMate" width="120"
              height="51"></td>

              <td><img src="yuyo.png" alt="yuyo" width="120" height="51"></td>
            </tr>

            <tr>
              <th><code>mint</code></th>

              <th><code>mint2</code></th>

              <th><code>mate</code></th>

              <th><code>menta</code></th>

              <th><code>ubuntuMate</code></th>

              <th><code>yuyo</code></th>
            </tr>
          </tbody>

          <tbody align="center">
            <tr>
              <td><img src="arc.png" alt="arc" width="120" height="51"></td>

              <td><img src="oxygen1.png" alt="oxygen1" width="120" height=
              "51"></td>

              <td><img src="oxygen2.png" alt="oxygen2" width="120" height=
              "51"></td>

              <td><img src="klearlooks.png" alt="klearlooks" width="120"
              height="51"></td>

              <td><img src="baghira.png" alt="baghira" width="120" height=
              "51"></td>

              <td><img src="phase.png" alt="phase" width="120" height=
              "51"></td>
            </tr>

            <tr>
              <th><code>arc</code></th>

              <th><code>oxygen1</code></th>

              <th><code>oxygen2</code></th>

              <th><code>klearlooks</code></th>

              <th><code>baghira</code></th>

              <th><code>phase</code></th>
            </tr>
          </tbody>

          <tbody align="center">
            <tr>
              <td><img src="plastique.png" alt="plastique" width="120" height=
              "51"></td>

              <td><img src="plastik.png" alt="plastik" width="120" height=
              "51"></td>

              <td><img src="winnative.png" alt="winnative" width="120" height=
              "51"></td>

              <td><img src="winxpBlue.png" alt="winxpBlue" width="120" height=
              "51"></td>

              <td><img src="winxpOlive.png" alt="winxpOlive" width="120"
              height="51"></td>

              <td><img src="winxpSilver.png" alt="winxpSilver" width="120"
              height="51"></td>
            </tr>

            <tr>
              <th><code>plastique</code></th>

              <th><code>plastik</code></th>

              <th><code>winnative</code></th>

              <th><code>winxpBlue</code></th>

              <th><code>winxpOlive</code></th>
4115
4116
4117
4118
4119
4120
4121


4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133


4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151


4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163


4164
4165
4166
4167
4168
4169
4170
              "54"></td>

              <td><img src="win7Classic.png" alt="win7Classic" width="120"
              height="51"></td>

              <td><img src="win10.png" alt="win110" width="120" height=
              "54"></td>


            </tr>

            <tr>
              <th><code>vistaAero</code></th>

              <th><code>vistaClassic</code></th>

              <th><code>win7Aero</code></th>

              <th><code>win7Classic</code></th>

              <th><code>win10</code></th>


            </tr>
          </tbody>

          <tbody align="center">
            <tr>
              <td><img src="ambiance.png" alt="ambiance" width="120" height=
              "63"></td>

              <td><img src="dust.png" alt="dust" width="120" height="63"></td>

              <td><img src="dustSand.png" alt="dustSand" width="120" height=
              "63"></td>

              <td><img src="radiance.png" alt="radiance" width="120" height=
              "63"></td>

              <td><img src="newWave.png" alt="newWave.png" width="120" height=
              "63"></td>


            </tr>

            <tr>
              <th><code>ambiance</code></th>

              <th><code>dust</code></th>

              <th><code>dustSand</code></th>

              <th><code>radiance</code></th>

              <th><code>newWave</code></th>


            </tr>
          </tbody>
        </table>

        <p>The sizes used by the tree styles <code><b>vistaAero</b></code>,
        <code><b>vistaClassic</b></code>, <code><b>win7Aero</b></code>,
        <code><b>win7Classic</b></code>, and <code><b>win10</b></code> are







>
>












>
>


















>
>












>
>







4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
              "54"></td>

              <td><img src="win7Classic.png" alt="win7Classic" width="120"
              height="51"></td>

              <td><img src="win10.png" alt="win110" width="120" height=
              "54"></td>

              <td><img src="aqua.png" alt="aqua" width="120" height="54"></td>
            </tr>

            <tr>
              <th><code>vistaAero</code></th>

              <th><code>vistaClassic</code></th>

              <th><code>win7Aero</code></th>

              <th><code>win7Classic</code></th>

              <th><code>win10</code></th>

              <th><code>aqua</code></th>
            </tr>
          </tbody>

          <tbody align="center">
            <tr>
              <td><img src="ambiance.png" alt="ambiance" width="120" height=
              "63"></td>

              <td><img src="dust.png" alt="dust" width="120" height="63"></td>

              <td><img src="dustSand.png" alt="dustSand" width="120" height=
              "63"></td>

              <td><img src="radiance.png" alt="radiance" width="120" height=
              "63"></td>

              <td><img src="newWave.png" alt="newWave.png" width="120" height=
              "63"></td>

              <td></td>
            </tr>

            <tr>
              <th><code>ambiance</code></th>

              <th><code>dust</code></th>

              <th><code>dustSand</code></th>

              <th><code>radiance</code></th>

              <th><code>newWave</code></th>

              <th></th>
            </tr>
          </tbody>
        </table>

        <p>The sizes used by the tree styles <code><b>vistaAero</b></code>,
        <code><b>vistaClassic</b></code>, <code><b>win7Aero</b></code>,
        <code><b>win7Classic</b></code>, and <code><b>win10</b></code> are
4268
4269
4270
4271
4272
4273
4274
4275
4276
4277

4278

4279
4280
4281

4282
4283
4284
4285
4286
4287
4288
4289
4290
4291
4292
4293
4294
4295
4296
4297
4298
4299
4300
4301
4302
4303
4304
4305
4306
4307
4308
4309
4310
4311
4312
4313
4314
4315
4316
4317
4318
4319
4320
4321
4322
4323
4324
              <th><code>classic3</code></th>

              <th><code>classic4</code></th>
            </tr>
          </tbody>
        </table>

        <p>If the tree style is <code><b>aqua</b></code>,
        <code><b>gtk</b></code>, <code><b>adwaita</b></code>,
        <code><b>ubuntu</b></code>, <code><b>ubuntu2</b></code>,

        <code><b>mint</b></code>, <code><b>mint2</b></code>,

        <code><b>mate</b></code>, <code><b>oxygen2</b></code>,
        <code><b>vistaAero</b></code>, <code><b>win7Aero</b></code>,
        <code><b>win10</b></code>, <code><b>newWave</b></code>,

        <code><b>plain*</b></code>, or <code><b>bicolor*</b></code>, and the Tk
        version is either 8.6 (with built-in PNG support) or 8.5 and the
        <code><b>img::png</b></code> package can be loaded into the
        interpreter, then the images used for displaying the expand/collapse
        controls are PNG images with alpha channel.&nbsp; Otherwise (i.e., for
        the other tree styles or in the absence of PNG support) GIF images are
        used for the expand/collapse controls.</p>

        <p>The following table contains a detailed description of the tree
        styles, in alphabetical order:</p>

        <table border="2" cellspacing="0" cellpadding="3">
          <tr bgcolor="#FFFFE0">
            <th align="left">Value</th>

            <th align="center">Screenshot</th>

            <th align="left">Comments</th>
          </tr>

          <tr>
            <td><code><b>adwaita</b></code></td>

            <td><img src="adwaita.png" alt="adwaita" width="120" height=
            "51"></td>

            <td>Inspired by the GTK+ 3 theme Adwaita.</td>
          </tr>

          <tr>
            <td><code><b>ambiance</b></code></td>

            <td><img src="ambiance.png" alt="ambiance" width="120" height=
            "63"></td>

            <td>Inspired by the GTK+ theme Ambiance.&nbsp; Recommended to be
            used with large fonts and images.</td>
          </tr>

          <tr>
            <td><code><b>aqua</b></code></td>

            <td><img src="aqua.png" alt="aqua" width="120" height="54"></td>







|
|

>
|
>
|

|
>
|
|
|
|
|
|
|



















|








|







4304
4305
4306
4307
4308
4309
4310
4311
4312
4313
4314
4315
4316
4317
4318
4319
4320
4321
4322
4323
4324
4325
4326
4327
4328
4329
4330
4331
4332
4333
4334
4335
4336
4337
4338
4339
4340
4341
4342
4343
4344
4345
4346
4347
4348
4349
4350
4351
4352
4353
4354
4355
4356
4357
4358
4359
4360
4361
4362
4363
              <th><code>classic3</code></th>

              <th><code>classic4</code></th>
            </tr>
          </tbody>
        </table>

        <p>If the tree style is <code><b>gtk</b></code>,
        <code><b>adwaita</b></code>, <code><b>blueMenta</code></b>,
        <code><b>ubuntu</b></code>, <code><b>ubuntu2</b></code>,
        <code><b>ubuntu3</b></code>, <code><b>mint</b></code>,
        <code><b>mint2</b></code>, <code><b>mate</b></code>,
        <code><b>menta</b></code>, <code><b>ubuntuMate</b></code>,
        <code><b>arc</b></code>, <code><b>oxygen2</b></code>,
        <code><b>vistaAero</b></code>, <code><b>win7Aero</b></code>,
        <code><b>win10</b></code>, <code><b>aqua</b></code>,
        <code><b>newWave</b></code>, <code><b>plain*</b></code>, or
        <code><b>bicolor*</b></code>, and the Tk version is either 8.6 (with
        built-in PNG support) or 8.5 and the <code><b>img::png</b></code>
        package can be loaded into the interpreter, then the images used for
        displaying the expand/collapse controls are PNG images with alpha
        channel.&nbsp; Otherwise (i.e., for the other tree styles or in the
        absence of PNG support) GIF images are used for the expand/collapse
        controls.</p>

        <p>The following table contains a detailed description of the tree
        styles, in alphabetical order:</p>

        <table border="2" cellspacing="0" cellpadding="3">
          <tr bgcolor="#FFFFE0">
            <th align="left">Value</th>

            <th align="center">Screenshot</th>

            <th align="left">Comments</th>
          </tr>

          <tr>
            <td><code><b>adwaita</b></code></td>

            <td><img src="adwaita.png" alt="adwaita" width="120" height=
            "51"></td>

            <td>Inspired by the GTK 3 theme Adwaita.</td>
          </tr>

          <tr>
            <td><code><b>ambiance</b></code></td>

            <td><img src="ambiance.png" alt="ambiance" width="120" height=
            "63"></td>

            <td>Inspired by the GTK 2 theme Ambiance.&nbsp; Recommended to be
            used with large fonts and images.</td>
          </tr>

          <tr>
            <td><code><b>aqua</b></code></td>

            <td><img src="aqua.png" alt="aqua" width="120" height="54"></td>
4339
4340
4341
4342
4343
4344
4345








4346
4347
4348
4349
4350
4351
4352
                  <td>Default for the themes <code><b>aqua</b></code> and
                  <code><b>Aquativo</b></code>.</td>
                </tr>
              </table>
            </td>
          </tr>









          <tr>
            <td><code><b>baghira</b></code></td>

            <td><img src="baghira.png" alt="baghira" width="120" height=
            "51"></td>

            <td>







>
>
>
>
>
>
>
>







4378
4379
4380
4381
4382
4383
4384
4385
4386
4387
4388
4389
4390
4391
4392
4393
4394
4395
4396
4397
4398
4399
                  <td>Default for the themes <code><b>aqua</b></code> and
                  <code><b>Aquativo</b></code>.</td>
                </tr>
              </table>
            </td>
          </tr>

          <tr>
            <td><code><b>arc</b></code></td>

            <td><img src="arc.png" alt="arc" width="120" height="51"></td>

            <td>Inspired by the Arc icon theme (of the GTK 2/3 theme Arc).</td>
          </tr>

          <tr>
            <td><code><b>baghira</b></code></td>

            <td><img src="baghira.png" alt="baghira" width="120" height=
            "51"></td>

            <td>
4385
4386
4387
4388
4389
4390
4391










4392
4393
4394
4395
4396
4397
4398
4399
4400
4401
4402
4403
4404
4405
4406
4407
4408
4409
4410
4411
4412
4413
4414
4415
4416
4417
4418
4419
4420
4421
4422
4423
            "51"></td>

            <td>While the tree style <code><b>classic1</b></code> uses "normal"
            sizes, the three other styles are suitable for use with large fonts
            and images (needed on high-resolution displays).</td>
          </tr>











          <tr>
            <td><code><b>dust</b></code></td>

            <td><img src="dust.png" alt="dust" width="120" height="63"></td>

            <td>Inspired by the GTK+ theme Dust.&nbsp; Recommended to be used
            with large fonts and images.</td>
          </tr>

          <tr>
            <td><code><b>dust</b></code></td>

            <td><img src="dust.png" alt="dust" width="120" height="63"></td>

            <td>Inspired by the GTK+ theme Dust.&nbsp; Recommended to be used
            with large fonts and images.</td>
          </tr>

          <tr>
            <td><code><b>dustSand</b></code></td>

            <td><img src="dustSand.png" alt="dustSand" width="120" height=
            "63"></td>

            <td>Inspired by the GTK+ theme Dust Sand.&nbsp; Recommended to be
            used with large fonts and images.</td>
          </tr>

          <tr>
            <td><code><b>gtk</b></code></td>

            <td><img src="gtk.png" alt="gtk" width="120" height="51"></td>







>
>
>
>
>
>
>
>
>
>





|








|









|







4432
4433
4434
4435
4436
4437
4438
4439
4440
4441
4442
4443
4444
4445
4446
4447
4448
4449
4450
4451
4452
4453
4454
4455
4456
4457
4458
4459
4460
4461
4462
4463
4464
4465
4466
4467
4468
4469
4470
4471
4472
4473
4474
4475
4476
4477
4478
4479
4480
            "51"></td>

            <td>While the tree style <code><b>classic1</b></code> uses "normal"
            sizes, the three other styles are suitable for use with large fonts
            and images (needed on high-resolution displays).</td>
          </tr>

          <tr>
            <td><code><b>blueMenta</b></code></td>

            <td><img src="blueMenta.png" alt="blueMenta" width="120" height=
            "51"></td>

            <td>Inspired by the GTK 3 theme BlueMenta of versions 1.14 and
            later of the MATE desktop.</td>
          </tr>

          <tr>
            <td><code><b>dust</b></code></td>

            <td><img src="dust.png" alt="dust" width="120" height="63"></td>

            <td>Inspired by the GTK 2 theme Dust.&nbsp; Recommended to be used
            with large fonts and images.</td>
          </tr>

          <tr>
            <td><code><b>dust</b></code></td>

            <td><img src="dust.png" alt="dust" width="120" height="63"></td>

            <td>Inspired by the GTK 2 theme Dust.&nbsp; Recommended to be used
            with large fonts and images.</td>
          </tr>

          <tr>
            <td><code><b>dustSand</b></code></td>

            <td><img src="dustSand.png" alt="dustSand" width="120" height=
            "63"></td>

            <td>Inspired by the GTK 2 theme Dust Sand.&nbsp; Recommended to be
            used with large fonts and images.</td>
          </tr>

          <tr>
            <td><code><b>gtk</b></code></td>

            <td><img src="gtk.png" alt="gtk" width="120" height="51"></td>
4467
4468
4469
4470
4471
4472
4473










4474
4475
4476
4477
4478
4479
4480
4481
4482
4483
4484
4485
4486
4487
4488
4489
4490
4491
4492
4493
4494
4495
4496
4497
4498
4499
4500
4501
4502
4503
4504
4505
4506
4507
4508
          </tr>

          <tr>
            <td><code><b>mate</b></code></td>

            <td><img src="mate.png" alt="mate" width="120" height="51"></td>











            <td>Inspired by a few GTK+ themes of the MATE desktop.</td>
          </tr>

          <tr>
            <td><code><b>mint</b></code></td>

            <td><img src="mint.png" alt="mint" width="120" height="51"></td>

            <td>Inspired by a few GTK+ 3 themes bundled with the Linux Mint
            distribution.</td>
          </tr>

          <tr>
            <td><code><b>mint2</b></code></td>

            <td><img src="mint2.png" alt="mint" width="120" height="51"></td>

            <td>Inspired by a few GTK+ 3 themes bundled with version 18 the
            Linux Mint distribution.</td>
          </tr>

          <tr>
            <td><code><b>newWave</b></code></td>

            <td><img src="newWave.png" alt="newWave" width="120" height=
            "63"></td>

            <td>Inspired by the GTK+ theme New Wave.&nbsp; Recommended to be
            used with large fonts and images.</td>
          </tr>

          <tr>
            <td><code><b>oxygen1</b></code></td>

            <td><img src="oxygen1.png" alt="oxygen1" width="120" height=







>
>
>
>
>
>
>
>
>
>
|







|
|







|
|








|







4524
4525
4526
4527
4528
4529
4530
4531
4532
4533
4534
4535
4536
4537
4538
4539
4540
4541
4542
4543
4544
4545
4546
4547
4548
4549
4550
4551
4552
4553
4554
4555
4556
4557
4558
4559
4560
4561
4562
4563
4564
4565
4566
4567
4568
4569
4570
4571
4572
4573
4574
4575
          </tr>

          <tr>
            <td><code><b>mate</b></code></td>

            <td><img src="mate.png" alt="mate" width="120" height="51"></td>

            <td>Inspired by a few GTK 2 themes of versions earlier than 1.14 of
            the MATE desktop.</td>
          </tr>

          <tr>
            <td><code><b>menta</b></code></td>

            <td><img src="menta.png" alt="menta" width="120" height="51"></td>

            <td>Inspired by the GTK 3 theme Menta of versions 1.14 and later
            of the MATE desktop.</td>
          </tr>

          <tr>
            <td><code><b>mint</b></code></td>

            <td><img src="mint.png" alt="mint" width="120" height="51"></td>

            <td>Inspired by a few GTK 3 themes bundled with versions earlier
            than 18 of the Linux Mint distribution.</td>
          </tr>

          <tr>
            <td><code><b>mint2</b></code></td>

            <td><img src="mint2.png" alt="mint" width="120" height="51"></td>

            <td>Inspired by a few GTK 3 themes bundled with versions 18 and
            later of the Linux Mint distribution.</td>
          </tr>

          <tr>
            <td><code><b>newWave</b></code></td>

            <td><img src="newWave.png" alt="newWave" width="120" height=
            "63"></td>

            <td>Inspired by the GTK 2 theme New Wave.&nbsp; Recommended to be
            used with large fonts and images.</td>
          </tr>

          <tr>
            <td><code><b>oxygen1</b></code></td>

            <td><img src="oxygen1.png" alt="oxygen1" width="120" height=
4598
4599
4600
4601
4602
4603
4604
4605
4606
4607
4608
4609
4610
4611
4612
4613
4614
4615
4616
4617
4618
4619
4620
4621
4622
4623
4624










4625
4626










4627
4628
4629
4630
4631
4632
4633

          <tr>
            <td><code><b>radiance</b></code></td>

            <td><img src="radiance.png" alt="radiance" width="120" height=
            "63"></td>

            <td>Inspired by the GTK+ theme Radiance.&nbsp; Recommended to be
            used with large fonts and images.</td>
          </tr>

          <tr>
            <td><code><b>ubuntu</b></code></td>

            <td><img src="ubuntu.png" alt="ubuntu" width="120" height=
            "51"></td>

            <td>Inspired by a couple of GTK+ 3 themes bundled with the Ubuntu
            Linux distribution.</td>
          </tr>

          <tr>
            <td><code><b>ubuntu2</b></code></td>

            <td><img src="ubuntu2.png" alt="ubuntu2" width="120" height=
            "51"></td>











            <td>Inspired by a couple of GTK+ 3 themes bundled with versions
            15.04 and later of the Ubuntu Linux distribution.</td>










          </tr>

          <tr>
            <td><code><b>vistaAero</b></code></td>

            <td><img src="vistaAero.png" alt="vistaAero" width="120" height=
            "54"></td>







|









|
|








>
>
>
>
>
>
>
>
>
>
|
|
>
>
>
>
>
>
>
>
>
>







4665
4666
4667
4668
4669
4670
4671
4672
4673
4674
4675
4676
4677
4678
4679
4680
4681
4682
4683
4684
4685
4686
4687
4688
4689
4690
4691
4692
4693
4694
4695
4696
4697
4698
4699
4700
4701
4702
4703
4704
4705
4706
4707
4708
4709
4710
4711
4712
4713
4714
4715
4716
4717
4718
4719
4720

          <tr>
            <td><code><b>radiance</b></code></td>

            <td><img src="radiance.png" alt="radiance" width="120" height=
            "63"></td>

            <td>Inspired by the GTK 2 theme Radiance.&nbsp; Recommended to be
            used with large fonts and images.</td>
          </tr>

          <tr>
            <td><code><b>ubuntu</b></code></td>

            <td><img src="ubuntu.png" alt="ubuntu" width="120" height=
            "51"></td>

            <td>Inspired by a couple of GTK 3 themes bundled with versions
            earlier than 15.4 of the Ubuntu Linux distribution.</td>
          </tr>

          <tr>
            <td><code><b>ubuntu2</b></code></td>

            <td><img src="ubuntu2.png" alt="ubuntu2" width="120" height=
            "51"></td>

            <td>Inspired by a couple of GTK 3 themes bundled with versions
            15.04 &#150; 16.04 of the Ubuntu Linux distribution.</td>
          </tr>

          <tr>
            <td><code><b>ubuntu3</b></code></td>

            <td><img src="ubuntu3.png" alt="ubuntu3" width="120" height=
            "51"></td>

            <td>Inspired by a couple of GTK 3 themes bundled with version
            16.10 of the Ubuntu Linux distribution.</td>
          </tr>

          <tr>
            <td><code><b>ubuntuMate</b></code></td>

            <td><img src="ubuntuMate.png" alt="ubuntuMate" width="120" height=
            "51"></td>

            <td>Inspired by the themes Ambiant-MATE and Radiant-MATE bundled
            with version 16.10 of the Ubuntu MATE distribution.</td>
          </tr>

          <tr>
            <td><code><b>vistaAero</b></code></td>

            <td><img src="vistaAero.png" alt="vistaAero" width="120" height=
            "54"></td>
4862
4863
4864
4865
4866
4867
4868
4869
4870
4871
4872
4873
4874
4875
4876
          </tr>

          <tr>
            <td><code><b>yuyo</b></code></td>

            <td><img src="yuyo.png" alt="yuyo" width="120" height="51"></td>

            <td>Inspired by the GTK+ theme Yuyo on Ubuntu MATE.</td>
          </tr>
        </table>

        <p>For technical reasons (the use of the <code><b>-elide</b></code>
        text widget tag option for collapsing a row), this option is not
        supported for Tk versions earlier than 8.3.</p>
      </blockquote>







|







4949
4950
4951
4952
4953
4954
4955
4956
4957
4958
4959
4960
4961
4962
4963
          </tr>

          <tr>
            <td><code><b>yuyo</b></code></td>

            <td><img src="yuyo.png" alt="yuyo" width="120" height="51"></td>

            <td>Inspired by the GTK 2 theme Yuyo on Ubuntu MATE.</td>
          </tr>
        </table>

        <p>For technical reasons (the use of the <code><b>-elide</b></code>
        text widget tag option for collapsing a row), this option is not
        supported for Tk versions earlier than 8.3.</p>
      </blockquote>
6131
6132
6133
6134
6135
6136
6137
6138
6139
6140
6141
6142
6143
6144
6145
    subcommands.</dd>

    <dd class="tm">
      <b>TkDND EXAMPLE:</b>&nbsp; For an introduction to TkDND see the online
      <a href="http://wiki.tcl.tk/36708">TkDND Tutorial</a> by Georgios
      Petasis.&nbsp; For the following example it is strongly recommended to
      use TkDND version 2.7 or later, which can be downloaded from the location
      
      <blockquote>
        <address>
          <a href=
          "http://sourceforge.net/projects/tkdnd/files/">http://sourceforge.net/projects/tkdnd/files/</a>
        </address>
      </blockquote>








|







6218
6219
6220
6221
6222
6223
6224
6225
6226
6227
6228
6229
6230
6231
6232
    subcommands.</dd>

    <dd class="tm">
      <b>TkDND EXAMPLE:</b>&nbsp; For an introduction to TkDND see the online
      <a href="http://wiki.tcl.tk/36708">TkDND Tutorial</a> by Georgios
      Petasis.&nbsp; For the following example it is strongly recommended to
      use TkDND version 2.7 or later, which can be downloaded from the location

      <blockquote>
        <address>
          <a href=
          "http://sourceforge.net/projects/tkdnd/files/">http://sourceforge.net/projects/tkdnd/files/</a>
        </address>
      </blockquote>

6206
6207
6208
6209
6210
6211
6212
6213
6214
6215
6216
6217
6218
6219
6220
        set newWidget [winfo containing -displayof $dropTarget $rootX $rootY]
        if {![string equal $newWidget [$tbl <a href="#targetmarkpath">targetmarkpath</a>]] &amp;&amp;
            ![string equal $newWidget [$tbl <a href="#bodypath">bodypath</a>]]} {
            $tbl <a href="#hidetargetmark">hidetargetmark</a>
            return 2 ;<i># refuse the drop and re-invoke the callback on motion events</i>
        }
    }
    
    global place row
    set y [expr {$rootY - [winfo rooty $tbl]}]
    foreach {place row} [$tbl <a href="#targetmarkpos">targetmarkpos</a> $y] {}

    if {<i>some_optional_excluding_condition</i>} {
        $tbl <a href="#hidetargetmark">hidetargetmark</a>
        DropSite::setcursor dot







|







6293
6294
6295
6296
6297
6298
6299
6300
6301
6302
6303
6304
6305
6306
6307
        set newWidget [winfo containing -displayof $dropTarget $rootX $rootY]
        if {![string equal $newWidget [$tbl <a href="#targetmarkpath">targetmarkpath</a>]] &amp;&amp;
            ![string equal $newWidget [$tbl <a href="#bodypath">bodypath</a>]]} {
            $tbl <a href="#hidetargetmark">hidetargetmark</a>
            return 2 ;<i># refuse the drop and re-invoke the callback on motion events</i>
        }
    }

    global place row
    set y [expr {$rootY - [winfo rooty $tbl]}]
    foreach {place row} [$tbl <a href="#targetmarkpos">targetmarkpos</a> $y] {}

    if {<i>some_optional_excluding_condition</i>} {
        $tbl <a href="#hidetargetmark">hidetargetmark</a>
        DropSite::setcursor dot
6442
6443
6444
6445
6446
6447
6448











6449
6450
6451
6452
6453
6454
6455
        </tr>

        <tr valign="top">
          <td><code><b>&lt;&lt;TablelistSelectionLost&gt;&gt;</b></code></td>

          <td>Sent to the tablelist widget whenever it loses ownership of the
          PRIMARY selection.</td>












          <td>Not used.</td>
        </tr>
      </table>
    </dd>

    <dt class="tm" id="row_indices"><b>ROW INDICES</b></dt>







>
>
>
>
>
>
>
>
>
>
>







6529
6530
6531
6532
6533
6534
6535
6536
6537
6538
6539
6540
6541
6542
6543
6544
6545
6546
6547
6548
6549
6550
6551
6552
6553
        </tr>

        <tr valign="top">
          <td><code><b>&lt;&lt;TablelistSelectionLost&gt;&gt;</b></code></td>

          <td>Sent to the tablelist widget whenever it loses ownership of the
          PRIMARY selection.</td>

          <td>Not used.</td>
        </tr>

        <tr valign="top">
          <td><code><b>&lt;&lt;TablelistViewUpdated&gt;&gt;</b></code></td>

          <td>Generated whenever the tablelist widget has finished updating its
          view.&nbsp; Updating the view of a tablelist widget is a complex
          operation, which, for performance reasons, is performed at idle
          time.</td>

          <td>Not used.</td>
        </tr>
      </table>
    </dd>

    <dt class="tm" id="row_indices"><b>ROW INDICES</b></dt>
7596
7597
7598
7599
7600
7601
7602






























7603
7604
7605
7606
7607
7608
7609
        <dt class="tm" id="descendantcount"><code><i>pathName</i>
        <b>descendantcount</b> <i>nodeIndex</i></code></dt>

        <dd>Returns the number of descendants of the tree node indicated by
        <code><i>nodeIndex</i></code>.&nbsp; If this argument is specified as
        <code><b>root</b></code> then the return value will be the number of
        items of the tablelist widget.</dd>































        <dt class="tm" id="editcell"><code><i>pathName</i> <b>editcell</b>
        <i>cellIndex</i></code></dt>

        <dd>Starts the interactive editing of the cell's contents if the
        tablelist's <code><b><a href="#state">state</a></b></code> is not
        <code><b>disabled</b></code> and the cell is <a href=







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







7694
7695
7696
7697
7698
7699
7700
7701
7702
7703
7704
7705
7706
7707
7708
7709
7710
7711
7712
7713
7714
7715
7716
7717
7718
7719
7720
7721
7722
7723
7724
7725
7726
7727
7728
7729
7730
7731
7732
7733
7734
7735
7736
7737
        <dt class="tm" id="descendantcount"><code><i>pathName</i>
        <b>descendantcount</b> <i>nodeIndex</i></code></dt>

        <dd>Returns the number of descendants of the tree node indicated by
        <code><i>nodeIndex</i></code>.&nbsp; If this argument is specified as
        <code><b>root</b></code> then the return value will be the number of
        items of the tablelist widget.</dd>

        <dt class="tm" id="dicttoitem"><code><i>pathName</i>
        <b>dicttoitem</b> <i>dictionary</i></code></dt>

        <dd>Returns a tablelist item corresponding to the dictionary indicated
        by <code><i>dictionary</i></code>.&nbsp; Each key in the specified
        dictionary is expected to be a valid column index, in any of the forms
        described in the <a href="#col_indices">COLUMN INDICES</a> section
        (e.g., a number or a column name).&nbsp; The values corresponding to
        the keys will be interpreted as the elements of the resulting tablelist
        item.&nbsp; If the number of distinct numerical equivalents of the keys
        (see the <code><a href="#columnindex">columnindex</a></b></code>
        subcommand) is less than the number of columns then the elements
        corresponding to the missing column indices will be set to empty
        strings.</dd>

        <dd class="tm">For example, if your tablelist widget has 3 columns, of
        which the first two were configured with&nbsp; <code><a href=
        "#col_name">-name</a> forename</code>&nbsp; and&nbsp; <code><a href=
        "#col_name">-name</a> surname</code>,&nbsp; respectively, and you pass
        the dictionary&nbsp; <code>{forename Joe&nbsp; surname
        Black}</code>&nbsp; to the <code><b>dicttoitem</b></code> subcommand,
        then the return value will be the list&nbsp; <code>{Joe Black
        {}}</code>.&nbsp; If the user swaps the first two columns, then, for
        the same dictionary, the subcommand will return the list&nbsp;
        <code>{Black Joe {}}</code>.</dd>

        <dd class="tm">For technical reasons (the use of the
        <code><b>dict</b></code> command), this subcommand is not supported for
        Tcl versions earlier than 8.5.</dd>

        <dt class="tm" id="editcell"><code><i>pathName</i> <b>editcell</b>
        <i>cellIndex</i></code></dt>

        <dd>Starts the interactive editing of the cell's contents if the
        tablelist's <code><b><a href="#state">state</a></b></code> is not
        <code><b>disabled</b></code> and the cell is <a href=
8376
8377
8378
8379
8380
8381
8382










































8383
8384
8385
8386
8387
8388
8389
        "#get">get</a></b></code> subcommand or using the <code><b><a href=
        "#listvariable">-listvariable</a></b></code> option (these methods
        consume significantly more memory).&nbsp; It can be useful in
        situations where the elements of a tablelist widget are to be accessed
        for creating text files, HTML output, XML data, database commands,
        etc.&nbsp; This should, however, be a strictly readonly access;
        otherwise the results will be unpredictable!</dd>











































        <dt class="tm" id="labelpath"><code><i>pathName</i> <b>labelpath</b>
        <i>columnIndex</i></code></dt>

        <dd>Returns the path name of the header label corresponding to the
        column indicated by <code><i>columnIndex</i></code>.</dd>








>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







8504
8505
8506
8507
8508
8509
8510
8511
8512
8513
8514
8515
8516
8517
8518
8519
8520
8521
8522
8523
8524
8525
8526
8527
8528
8529
8530
8531
8532
8533
8534
8535
8536
8537
8538
8539
8540
8541
8542
8543
8544
8545
8546
8547
8548
8549
8550
8551
8552
8553
8554
8555
8556
8557
8558
8559
        "#get">get</a></b></code> subcommand or using the <code><b><a href=
        "#listvariable">-listvariable</a></b></code> option (these methods
        consume significantly more memory).&nbsp; It can be useful in
        situations where the elements of a tablelist widget are to be accessed
        for creating text files, HTML output, XML data, database commands,
        etc.&nbsp; This should, however, be a strictly readonly access;
        otherwise the results will be unpredictable!</dd>

        <dt class="tm" id="itemtodict"><code><i>pathName</i>
        <b>itemtodict</b> <i>item</i></code></dt>

        <dd>Returns a dictionary built from the tablelist item indicated by
        <code><i>item</i></code>.&nbsp; The dictionary's keys will be column
        numbers or names, and the values will be the corresponding elements of
        the given item.&nbsp; For each column number <code><i>col</i></code>,
        if the corresponding column name (returned by&nbsp;
        <code><i>pathName</i> <b><a href=
        "#columncget">columncget</a></b> <i>col</i> -name</code>)&nbsp; is a
        nonempty string then this name will be used as dictionary key,
        otherwise the numerical column index <code><i>col</i></code>.</dd>

        <dd class="tm">
          For example, if your tablelist widget has 3 columns, of which the
          first two were configured with&nbsp; <code><a href=
          "#col_name">-name</a> forename</code>&nbsp; and&nbsp; <code><a href=
          "#col_name">-name</a> surname</code>,&nbsp; respectively, and you
          pass the item

          <blockquote>
            <pre>
{Joe Black "Young Man in Coffee Shop"}
</pre>
          </blockquote>
        </dd>

        <dd>
          to the <code><b>itemtodict</b></code> subcommand, then the return
          value will be the dictionary

          <blockquote>
            <pre>
{forename Joe  surname Black  2 {Young Man in Coffee Shop}}
</pre>
          </blockquote>
        </dd>

        <dd>For technical reasons (the use of the <code><b>dict</b></code>
        command), this subcommand is not supported for Tcl versions earlier
        than 8.5.</dd>

        <dt class="tm" id="labelpath"><code><i>pathName</i> <b>labelpath</b>
        <i>columnIndex</i></code></dt>

        <dd>Returns the path name of the header label corresponding to the
        column indicated by <code><i>columnIndex</i></code>.</dd>

9449
9450
9451
9452
9453
9454
9455
9456
9457
9458
9459
9460
9461
9462
9463
9464
9465
9466
9467
9468
9469
9470
9471
9472
9473





9474
9475
9476
9477
9478





9479





9480


9481




9482



9483












9484




9485
9486
9487
9488
9489
9490
9491
9492
9493
9494
9495
9496
9497
9498
9499
9500
9501
9502
9503
9504
9505
9506

9507
9508
9509
9510
9511
9512
9513


9514
9515
9516
9517
9518
9519
9520
9521
9522
9523
9524

9525
9526
9527
9528
9529
9530
9531
      conversion of the event fields is needed as for the default
      bindings.&nbsp; For example, the binding script below for the tablelist
      widget <code>.tbl</code> prints the index of the cell where mouse button
      1 was clicked:

      <blockquote>
        <pre>
bind [.tbl <a href="#bodytag">bodytag</a>] &lt;Button-1&gt; {
    foreach {tablelist::W tablelist::x tablelist::y} \
        [<a href=
"tablelistBinding.html#convEventFields">tablelist::convEventFields</a> %W %x %y] {}
    puts "clicked on cell [.tbl <a href="#containingcell">containingcell</a> $tablelist::x $tablelist::y]"
}
</pre>
      </blockquote>
    </dd>

    <dd>By associating the script with the binding tag returned by the
    <code><b><a href="#bodytag">bodytag</a></b></code> subcommand instead of
    just with the path name of the tablelist's body we make sure to have the
    same event handling for the separators, multi-line cells, and embedded
    images as for the rest of the tablelist's body.</dd>

    <dd class="tm">
      The following improved version of the binding script above uses a





      procedure and thus eliminates the need for prefixing the converted
      variables with <code>"tablelist::"</code>:

      <blockquote>
        <pre>





bind [.tbl <a href="#bodytag">bodytag</a>] &lt;Button-1&gt; {printClickedCell %W %x %y}<br>





proc printClickedCell {w x y} {


    foreach {tbl x y} [<a href=




"tablelistBinding.html#convEventFields">tablelist::convEventFields</a> $w $x $y] {}



    puts "clicked on cell [$tbl <a href="#containingcell">containingcell</a> $x $y]"












}




</pre>
      </blockquote>
    </dd>

    <dd>The bindings associated with the binding tag
    <code><b>TablelistBody</b></code>, created automatically by the
    <code><b>tablelist::tablelist</b></code> command, ensure that the body
    component of a tablelist has the same default behavior as a listbox
    widget.&nbsp; If the selection type is <code><b>row</b></code> (which is
    the default) then everything described in the "DEFAULT BINDINGS" section of
    the <b>listbox</b> manual entry applies to the body component of a
    tablelist, too.&nbsp; The only difference is that the word "element" in
    that manual page has to be replaced with "item" when applying the
    description to the body of a tablelist widget.</dd>

    <dd class="tm">If the selection type is <code><b>cell</b></code> then
    everything described in the "DEFAULT BINDINGS" section of the
    <b>listbox</b> manual entry applies to the body component of a tablelist,
    too, with the following extensions and changes:</dd>

    <dd>
      <ol>

        <li class="tm">If <code>Tab</code> or <code>Shift-Tab</code> is
        pressed, the location cursor (active element) moves to the
        next/previous element.&nbsp; If the selection mode is
        <code><b>browse</b></code> or <code><b>extended</b></code> then the new
        active element is also selected and all other elements are
        deselected.&nbsp; In <code><b>extended</b></code> mode the new active
        element becomes the selection anchor.&nbsp; Notice that these bindings


        replace the common inter-widget navigation via <code>Tab</code> and
        <code>Shift-Tab</code> with inter-cell navigation.&nbsp; Just like in
        the case of the text widget, <code>Control-Tab</code> and
        <code>Control-Shift-Tab</code> are intended to be used for
        widget-to-widget keyboard navigation.&nbsp; Unfortunately, this won't
        always work because some window managers intercept the latter key
        sequences and use them for their own purposes (like inter-workplace
        navigation).&nbsp; For this reason, Tablelist supports the additional
        key sequences <code>Meta-Tab</code> and <code>Meta-Shift-Tab</code> as
        replacements for <code>Control-Tab</code> and
        <code>Control-Shift-Tab</code>, respectively.</li>


        <li class="tm">If the <code>Left</code> or <code>Right</code> key is
        pressed, the location cursor (active element) moves to the
        previous/next element of the active row.&nbsp; If the selection mode is
        <code><b>browse</b></code> or <code><b>extended</b></code> then the new
        active element is also selected and all other elements are
        deselected.&nbsp; In <code><b>extended</b></code> mode the new active







|
|
|
|
|
<










|
|
>
>
>
>
>
|
|

|
|
>
>
>
>
>
|
>
>
>
>
>
|
>
>
|
>
>
>
>
|
>
>
>
|
>
>
>
>
>
>
>
>
>
>
>
>
|
>
>
>
>
|
|


|
<
<
<
|
|
|
<
<
<
<
<
<
|
|



>
|
|
|
|
|
|
|
>
>
|
|
|
|
|
|
|
|
|
|
|
>







9619
9620
9621
9622
9623
9624
9625
9626
9627
9628
9629
9630

9631
9632
9633
9634
9635
9636
9637
9638
9639
9640
9641
9642
9643
9644
9645
9646
9647
9648
9649
9650
9651
9652
9653
9654
9655
9656
9657
9658
9659
9660
9661
9662
9663
9664
9665
9666
9667
9668
9669
9670
9671
9672
9673
9674
9675
9676
9677
9678
9679
9680
9681
9682
9683
9684
9685
9686
9687
9688
9689
9690
9691
9692
9693
9694
9695
9696
9697
9698



9699
9700
9701






9702
9703
9704
9705
9706
9707
9708
9709
9710
9711
9712
9713
9714
9715
9716
9717
9718
9719
9720
9721
9722
9723
9724
9725
9726
9727
9728
9729
9730
9731
9732
9733
9734
9735
      conversion of the event fields is needed as for the default
      bindings.&nbsp; For example, the binding script below for the tablelist
      widget <code>.tbl</code> prints the index of the cell where mouse button
      1 was clicked:

      <blockquote>
        <pre>
bind [.tbl <a href="#bodytag">bodytag</a>] &lt;Button-1&gt; {printClickedCell %W %x %y}<br>
proc printClickedCell {w x y} {
    foreach {tbl x y} [<a href=
"tablelistBinding.html#convEventFields">tablelist::convEventFields</a> $w $x $y] {}
    puts "clicked on cell [$tbl <a href="#containingcell">containingcell</a> $x $y]"

</pre>
      </blockquote>
    </dd>

    <dd>By associating the script with the binding tag returned by the
    <code><b><a href="#bodytag">bodytag</a></b></code> subcommand instead of
    just with the path name of the tablelist's body we make sure to have the
    same event handling for the separators, multi-line cells, and embedded
    images as for the rest of the tablelist's body.</dd>

    <dd class="tm"><b>COMPATIBILITY WITH THE listbox WIDGET:</b>&nbsp; The
    default bindings associated with the binding tag
    <code><b>TablelistBody</b></code> ensure that the body component of a
    tablelist has the same behavior as a Tk core listbox widget.&nbsp; Whether
    this is strictly valid, is controlled by the boolean variable
    <code><b>tablelist::strictTk</b></code>.&nbsp; For improved
    user-friendliness and compatibility with other frameworks, this variable
    has the default value <code>0</code>, which enables a few
    Tablelist-specific extensions and changes:</dd>

    <dd>
      <ul>
        <li class="tm">If <code><b>tablelist::strictTk</b></code> is true then
        all default bindings associated with the binding tag
        <code><b>TablelistBody</b></code> give rise to exactly the same
        behavior as the default bindings associated with the binding tag
        <code><b>Listbox</b></code>.</li>

        <li class="tm">If <code><b>tablelist::strictTk</b></code> is false
        then, <i>in all selection modes</i>, the selection state of individual
        tablelist items or elements (depending on the selection type) can be
        toggled with the aid of <code>Control-Button-1</code>,
        <code>Control-space</code>, and <code>Control-Select</code> (see
        below).</li>
      </ol>
    </dd>

    <dd class="tm"><b>BINDINGS FOR THE SELECTION TYPE
    <code>row</code>:</b>&nbsp; If the selection type is
    <code><b>row</b></code> (which is the default) then everything described in
    the "DEFAULT BINDINGS" section of the <b>listbox</b> manual entry applies
    to the body component of a tablelist, too.&nbsp; The only difference is
    that the word "element" in that manual page has to be replaced with "item"
    when applying the description to the body of a tablelist widget.&nbsp; In
    addition:</dd>

    <dd>
      <ol>
        <li class="tm">If <code><b>tablelist::strictTk</b></code> is false
        (which is the default) then pressing button 1 with the
        <code>Control</code> key down toggles the selection state of the item
        under the mouse.&nbsp; If the selection mode is
        <code><b>extended</b></code> then additional actions apply, as
        described in the <b>listbox</b> manual entry.&nbsp; If the selection
        mode is <code><b>single</b></code> or <code><b>browse</b></code> and
        the selection state of the item changes from unselected to selected
        then any other selected items will be deselected, just as if button 1
        had been pressed without the <code>Control</code> key down.</li>

        <li class="tm">Again, if <code><b>tablelist::strictTk</b></code> is
        false, then <code>Control-space</code> and <code>Control-Select</code>
        toggle the selection state of the active item just as if button 1 had
        been pressed over this item with the <code>Control</code> key
        down.</li>
      </ol>
    </dd>

    <dd class="tm"><b>BINDINGS FOR THE SELECTION TYPE



    <code>cell</code>:</b>&nbsp; If the selection type is
    <code><b>cell</b></code> then everything described in the "DEFAULT
    BINDINGS" section of the <b>listbox</b> manual entry applies to the body






    component of a tablelist, too, with the following extensions and
    changes:</dd>

    <dd>
      <ol>
        <li class="tm">
          If <code>Tab</code> or <code>Shift-Tab</code> is pressed, the
          location cursor (active element) moves to the next/previous
          element.&nbsp; If the selection mode is <code><b>browse</b></code> or
          <code><b>extended</b></code> then the new active element is also
          selected and all other elements are deselected.&nbsp; In
          <code><b>extended</b></code> mode the new active element becomes the
          selection anchor.

          <p>Notice that these bindings replace the common inter-widget
          navigation via <code>Tab</code> and <code>Shift-Tab</code> with
          inter-cell navigation.&nbsp; Just like in the case of the text
          widget, <code>Control-Tab</code> and <code>Control-Shift-Tab</code>
          are intended to be used for widget-to-widget keyboard
          navigation.&nbsp; Unfortunately, this won't always work because some
          window managers intercept the latter key sequences and use them for
          their own purposes (like inter-workplace navigation).&nbsp; For this
          reason, Tablelist supports the additional key sequences
          <code>Meta-Tab</code> and <code>Meta-Shift-Tab</code> as replacements
          for <code>Control-Tab</code> and <code>Control-Shift-Tab</code>,
          respectively.</p>
        </li>

        <li class="tm">If the <code>Left</code> or <code>Right</code> key is
        pressed, the location cursor (active element) moves to the
        previous/next element of the active row.&nbsp; If the selection mode is
        <code><b>browse</b></code> or <code><b>extended</b></code> then the new
        active element is also selected and all other elements are
        deselected.&nbsp; In <code><b>extended</b></code> mode the new active
9548
9549
9550
9551
9552
9553
9554





































































9555
9556
9557
9558
9559
9560
9561
        <code><b>multiple</b></code> mode, <code>Shift-Home</code> and
        <code>Shift-End</code> move the location cursor to the first/last
        element of the active row.</li>

        <li class="tm">If the location cursor is in an editable cell then
        <code>Return</code> and <code>KP_Enter</code> start the interactive
        editing of the active element.</li>





































































      </ol>
    </dd>

    <dd class="tm">Just like in the case of the listbox widget, any changes to
    the selection will automatically generate the virtual event
    <code><b>&lt;&lt;ListboxSelect&gt;&gt;</b></code>.&nbsp; Instead of this
    event (which is supported for compatibility reasons), the virtual event







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







9752
9753
9754
9755
9756
9757
9758
9759
9760
9761
9762
9763
9764
9765
9766
9767
9768
9769
9770
9771
9772
9773
9774
9775
9776
9777
9778
9779
9780
9781
9782
9783
9784
9785
9786
9787
9788
9789
9790
9791
9792
9793
9794
9795
9796
9797
9798
9799
9800
9801
9802
9803
9804
9805
9806
9807
9808
9809
9810
9811
9812
9813
9814
9815
9816
9817
9818
9819
9820
9821
9822
9823
9824
9825
9826
9827
9828
9829
9830
9831
9832
9833
9834
        <code><b>multiple</b></code> mode, <code>Shift-Home</code> and
        <code>Shift-End</code> move the location cursor to the first/last
        element of the active row.</li>

        <li class="tm">If the location cursor is in an editable cell then
        <code>Return</code> and <code>KP_Enter</code> start the interactive
        editing of the active element.</li>

        <li class="tm">If <code><b>tablelist::strictTk</b></code> is false
        (which is the default) then pressing button 1 with the
        <code>Control</code> key down toggles the selection state of the
        element under the mouse.&nbsp; If the selection mode is
        <code><b>extended</b></code> then additional actions apply, as
        described in the <b>listbox</b> manual entry.&nbsp; If the selection
        mode is <code><b>single</b></code> or <code><b>browse</b></code> and
        the selection state of the element changes from unselected to selected
        then any other selected elements will be deselected, just as if button
        1 had been pressed without the <code>Control</code> key
        down.</li>

        <li class="tm">Again, if <code><b>tablelist::strictTk</b></code> is
        false, then <code>Control-space</code> and <code>Control-Select</code>
        toggle the selection state of the active element just as if button 1
        had been pressed over this element with the <code>Control</code> key
        down.</li>
      </ol>
    </dd>

    <dd class="tm"><b>BINDINGS FOR SELECT ALL AND DESELECT ALL:</b>&nbsp; The
    following additional bindings associated with the binding tag
    <code><b>TablelistBody</b></code> are valid on the windowing systems
    <code><b>x11</b></code> and <code><b>win32</b></code>:</dd>

    <dd>
      <ol>
        <li class="tm">
          <code>Control-a</code> behaves the same as
          <code>Control-slash</code>, i.e., it selects everything in the
          widget, except in <code><b>single</b></code> and
          <code><b>browse</b></code> modes, in which case it selects the active
          item or element (depending on the selection type) and deselects
          everything else.

          <p><b>REMARK 1:</b>&nbsp; The default widget bindings in current Tk
          versions on Windows already support <code>Control-a</code> as an
          alternative to <code>Control-slash</code>.&nbsp; In Tablelist this is
          now valid on X11, too.</p>

          <p><b>REMARK 2:</b>&nbsp; On Mac OS X Aqua, the default widget
          bindings in current Tk versions use the key sequence
          <code>Command-a</code> <i>instead of</i>
          <code>Control-slash</code>.</p>
        </li>

        <li class="tm">
          <code>Shift-Control-A</code> behaves the same as
          <code>Control-backslash</code>, i.e., it deselects everything in the
          widget, except in <code><b>browse</b></code> mode where it has no
          effect.

          <p><b>REMARK 1:</b>&nbsp; This shortcut comes in handy on Windows
          when using, e.g., a French or German keyboard, because in this case
          Tk fails to recognize the <code>Control-backslash</code> key sequence
          (for which one has to press <code>Control</code>, <code>AltGr</code>,
          and a third key: <code>_</code> on a French and <code>&szlig;</code>
	  on a German keyboard).&nbsp; Moreover, on many keyboards it is quite
	  difficult (if not even impossible) to generate the
          <code>Control-backslash</code> key sequence, fact which makes the
          support for this alternative shortcut even more useful on both X11
          and Windows.</p>

          <p><b>REMARK 2:</b>&nbsp; On Mac OS X Aqua, the default widget
          bindings in current Tk versions use the key sequence
          <code>Option-Command-a</code> <i>instead of</i>
          <code>Control-backslash</code>.</p>
        </li>
      </ol>
    </dd>

    <dd class="tm">Just like in the case of the listbox widget, any changes to
    the selection will automatically generate the virtual event
    <code><b>&lt;&lt;ListboxSelect&gt;&gt;</b></code>.&nbsp; Instead of this
    event (which is supported for compatibility reasons), the virtual event
9898
9899
9900
9901
9902
9903
9904

9905
9906
9907
9908
9909
9910
9911

9912
9913
9914
9915
9916
9917
9918
9919
9920
9921
9922
9923

9924
9925
9926
9927
9928
9929
9930

        <li class="tm">A click with the left mouse button anywhere in the
        tablelist's body, outside the cell just being edited, terminates the
        editing in the current cell and destroys the edit window or moves it
        into the cell that was just clicked into if the latter is
        editable.</li>


        <li class="tm">When editing a cell that is not the only editable cell
        of the tablelist widget, <code>Tab</code> and <code>Shift-Tab</code>
        terminate the editing in the current cell, move the edit window into
        the next/previous editable cell of the tablelist, select the contents
        of the edit window's first entry or entry-like component (if any), and
        set the insertion cursor to its end.&nbsp; If the new edit window is a
        text or ctext widget then its contents are left unselected.&nbsp;

        Notice that these bindings replace the common inter-widget navigation
        via <code>Tab</code> and <code>Shift-Tab</code> with inter-cell
        navigation.&nbsp; Just like in the case of the text widget,
        <code>Control-Tab</code> and <code>Control-Shift-Tab</code> are
        intended to be used for widget-to-widget keyboard navigation during
        interactive cell editing.&nbsp; Unfortunately, this won't always work
        because some window managers intercept the latter key sequences and use
        them for their own purposes (like inter-workplace navigation).&nbsp;
        For this reason, Tablelist supports the additional key sequences
        <code>Meta-Tab</code> and <code>Meta-Shift-Tab</code> as replacements
        for <code>Control-Tab</code> and <code>Control-Shift-Tab</code>,
        respectively.</li>


        <li class="tm">When editing a cell that is not the first/last editable
        cell within its row, <code>Alt-Left</code>/<code>Alt-Right</code>
        (<code>Command-Left</code>/<code>Command-Right</code> on Mac OS Classic
        and Mac OS X Aqua) terminates the editing in the current cell, moves
        the edit window into the previous/next editable cell of the row,
        selects the contents of the edit window's first entry or entry-like







>
|
|
|
|
|
|
|
>
|
|
|
|
|
|
|
|
|
|
|
|
>







10171
10172
10173
10174
10175
10176
10177
10178
10179
10180
10181
10182
10183
10184
10185
10186
10187
10188
10189
10190
10191
10192
10193
10194
10195
10196
10197
10198
10199
10200
10201
10202
10203
10204
10205
10206

        <li class="tm">A click with the left mouse button anywhere in the
        tablelist's body, outside the cell just being edited, terminates the
        editing in the current cell and destroys the edit window or moves it
        into the cell that was just clicked into if the latter is
        editable.</li>

        <li class="tm">
          When editing a cell that is not the only editable cell of the
          tablelist widget, <code>Tab</code> and <code>Shift-Tab</code>
          terminate the editing in the current cell, move the edit window into
          the next/previous editable cell of the tablelist, select the contents
          of the edit window's first entry or entry-like component (if any),
          and set the insertion cursor to its end.&nbsp; If the new edit window
          is a text or ctext widget then its contents are left unselected.

          <p>Notice that these bindings replace the common inter-widget
          navigation via <code>Tab</code> and <code>Shift-Tab</code> with
          inter-cell navigation.&nbsp; Just like in the case of the text
          widget, <code>Control-Tab</code> and <code>Control-Shift-Tab</code>
          are intended to be used for widget-to-widget keyboard navigation
          during interactive cell editing.&nbsp; Unfortunately, this won't
          always work because some window managers intercept the latter key
          sequences and use them for their own purposes (like inter-workplace
          navigation).&nbsp; For this reason, Tablelist supports the additional
          key sequences <code>Meta-Tab</code> and <code>Meta-Shift-Tab</code>
          as replacements for <code>Control-Tab</code> and
          <code>Control-Shift-Tab</code>, respectively.</p>
        </li>

        <li class="tm">When editing a cell that is not the first/last editable
        cell within its row, <code>Alt-Left</code>/<code>Alt-Right</code>
        (<code>Command-Left</code>/<code>Command-Right</code> on Mac OS Classic
        and Mac OS X Aqua) terminates the editing in the current cell, moves
        the edit window into the previous/next editable cell of the row,
        selects the contents of the edit window's first entry or entry-like