Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
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: |
1e5f77135881890fa249485c76b35ba7 |
User & Date: | csaba 2017-03-22 13:03:44 |
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 to modules/tablelist/CHANGES.txt.
|
| | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | 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). | | | 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 | <html> <head> <title>The Multi-Column Listbox and Tree Widget Package Tablelist | | | | 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 | <link rel="stylesheet" type="text/css" href="stylesheet.css"> </head> <body bgcolor="#FFFFFF"> <div align="center"> <h1>Tablelist Programmer's Guide</h1> | | | | 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 | <div align="center"> <p><a href="index.html">Start page</a></p> </div> <hr> <h2 id="overview">Overview</h2> | | | 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. 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 | <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. | | | | 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. The distribution file is <code>tablelist5.17.tar.gz</code> for UNIX and <code>tablelist5_17.zip</code> for Windows. These files contain the same information, except for the additional carriage return character preceding the linefeed at the end of each line in the text files for Windows.</p> <p>Tablelist is also included in tklib, which has the address</p> <blockquote> |
︙ | ︙ | |||
191 192 193 194 195 196 197 | a directory at the same level as the Tcl and Tk script libraries. 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 | | | | | | | 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. 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. 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. Finally, the file |
︙ | ︙ | |||
302 303 304 305 306 307 308 | 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> If you have an earlier Tablelist version as part of | | | | | | | 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> 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 <code>package require</code> command, because otherwise the interpreter will load the old Tablelist version included in ActiveTcl as Tcl Module. The <a href="#examples">examples</a> below use the statement <code>package require tablelist 5.17</code>, and their tile-based counterparts invoke the command <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>. 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. 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 | <code>125</code>, <code>150</code>, and <code>200</code>. 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. 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> | > > > > | | | | 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>. 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. 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 | use the <code>tablelist::library</code> variable to find the location of the file. 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> | | > > > > > > > > > > > > > > > > > > > > > | | | | | 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. 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 <widgetName> </pre> </blockquote> <p><code><widgetName></code> can be the path name of any already existing widget. 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>. 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. 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><widgetName></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. 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 | 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 | | | 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 | <blockquote> <pre> To display information about the children of an arbitrary widget, enter demo::displayChildren <widgetName> </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> | > > > > > > > > > > > > > | | | > > | | | | | | | 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 <widgetName> </pre> </blockquote> <p><code><widgetName></code> can be the path name of any already existing widget. 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><widgetName></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. 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). 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>. 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 | # 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 \ | | | 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 | <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> | | | | 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. 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>. 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 | <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. It creates 8 tablelist widgets, shown in the following figure:</p> <blockquote> | | | 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. 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 | 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. The following figure shows the tablelist widget, together with a BWidget ComboBox used to edit the contents of one of its cells:</p> <blockquote> | | | | | 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. 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 | 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> | | | | | 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 | $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 "" } | > > > > > > > > | | 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 | <span>red</span> color:</p> <p>First, we replace the starting lines</p> <blockquote> <pre> package require Tk 8.3 ;# because of entry validation | | | | 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 | <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 & feel, but also the tile entry, spinbox, combobox, checkbutton, and menubutoon widgets for interactive cell editing. The resulting window has a nice theme-specific appearance:</p> <blockquote> | | | | | | 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 & feel, but also the tile entry, spinbox, combobox, checkbutton, and menubutoon widgets for interactive cell editing. 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. Please take a look at the file <code>embeddedWindows_tile.tcl</code> in the <code>demos</code> directory for the details. 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> <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 | <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> | | | 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 | <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> | | | 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 | <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> | | | 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 | <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> | | | 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 | <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> | | | 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 | <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> | | | 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 | <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> | | | 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 | <link rel="stylesheet" type="text/css" href="stylesheet.css"> </head> <body bgcolor="#FFFFFF"> <div align="center"> <h1>Commands Related to Tile Themes</h1> | | | 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 | <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> | | | 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 | <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> | | | 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 | <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> | | | 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 | <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> | | | | | | 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> <b> 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> <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>|<b>plastik</b>|<br> <b> plastique</b>|<b>radiance</b>|<b>ubuntu</b>|<b>ubuntu2</b>|<b>ubuntu3</b>|<b>ubuntuMate</b>|<b>vistaAero</b>|<b>vistaClassic</b>|<br> <b> 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 | <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. 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> | | | 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. 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 | <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>. 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 | | > | 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>. 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: </td> |
︙ | ︙ | |||
3979 3980 3981 3982 3983 3984 3985 3986 3987 3988 | <colgroup></colgroup> <colgroup></colgroup> <colgroup></colgroup> <tbody align="center"> <tr> | > < < > > > > > > < < > > > > | > | | > > | > > | > > > > > > > > > | 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 | <th><code>classic3</code></th> <th><code>classic4</code></th> </tr> </tbody> </table> | | | > | > | | > | | | | | | | | | | 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. 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. 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 | "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> | > > > > > > > > > > | | | | 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. 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. 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. 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 | </tr> <tr> <td><code><b>mate</b></code></td> <td><img src="mate.png" alt="mate" width="120" height="51"></td> | > > > > > > > > > > | | | | | | | 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. 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 | <tr> <td><code><b>radiance</b></code></td> <td><img src="radiance.png" alt="radiance" width="120" height= "63"></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. 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 – 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 | </tr> <tr> <td><code><b>yuyo</b></code></td> <td><img src="yuyo.png" alt="yuyo" width="120" height="51"></td> | | | 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 | subcommands.</dd> <dd class="tm"> <b>TkDND EXAMPLE:</b> For an introduction to TkDND see the online <a href="http://wiki.tcl.tk/36708">TkDND Tutorial</a> by Georgios Petasis. For the following example it is strongly recommended to use TkDND version 2.7 or later, which can be downloaded from the location | | | 6218 6219 6220 6221 6222 6223 6224 6225 6226 6227 6228 6229 6230 6231 6232 | subcommands.</dd> <dd class="tm"> <b>TkDND EXAMPLE:</b> For an introduction to TkDND see the online <a href="http://wiki.tcl.tk/36708">TkDND Tutorial</a> by Georgios Petasis. 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 | set newWidget [winfo containing -displayof $dropTarget $rootX $rootY] if {![string equal $newWidget [$tbl <a href="#targetmarkpath">targetmarkpath</a>]] && ![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> } } | | | 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>]] && ![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><<TablelistSelectionLost>></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><<TablelistSelectionLost>></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><<TablelistViewUpdated>></b></code></td> <td>Generated whenever the tablelist widget has finished updating its view. 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>. 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>. 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>. 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). The values corresponding to the keys will be interpreted as the elements of the resulting tablelist item. 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 <code><a href= "#col_name">-name</a> forename</code> and <code><a href= "#col_name">-name</a> surname</code>, respectively, and you pass the dictionary <code>{forename Joe surname Black}</code> to the <code><b>dicttoitem</b></code> subcommand, then the return value will be the list <code>{Joe Black {}}</code>. If the user swaps the first two columns, then, for the same dictionary, the subcommand will return the list <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). 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. 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). 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. 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>. The dictionary's keys will be column numbers or names, and the values will be the corresponding elements of the given item. For each column number <code><i>col</i></code>, if the corresponding column name (returned by <code><i>pathName</i> <b><a href= "#columncget">columncget</a></b> <i>col</i> -name</code>) 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 <code><a href= "#col_name">-name</a> forename</code> and <code><a href= "#col_name">-name</a> surname</code>, 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 | conversion of the event fields is needed as for the default bindings. 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> | | | | | | < | | > > > > > | | | | > > > > > | > > > > > | > > | > > > > | > > > | > > > > > > > > > > > > | > > > > | | | < < < | | | < < < < < < | | > | | | | | | | > > | | | | | | | | | | | > | 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. 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>] <Button-1> {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> 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. Whether this is strictly valid, is controlled by the boolean variable <code><b>tablelist::strictTk</b></code>. 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> 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. 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. 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. If the selection mode is <code><b>extended</b></code> then additional actions apply, as described in the <b>listbox</b> manual entry. 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> 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. 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. 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. 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. 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). 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. 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. 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><<ListboxSelect>></b></code>. 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. If the selection mode is <code><b>extended</b></code> then additional actions apply, as described in the <b>listbox</b> manual entry. 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> 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> The default widget bindings in current Tk versions on Windows already support <code>Control-a</code> as an alternative to <code>Control-slash</code>. In Tablelist this is now valid on X11, too.</p> <p><b>REMARK 2:</b> 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> 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>ß</code> on a German keyboard). 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> 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><<ListboxSelect>></b></code>. Instead of this event (which is supported for compatibility reasons), the virtual event |
︙ | ︙ | |||
9898 9899 9900 9901 9902 9903 9904 | <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> | > | | | | | | | > | | | | | | | | | | | | > | 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. 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. 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. 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). 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 |
︙ | ︙ |