Tk Library Source Code

Check-in [1998c22155]
Login
Bounty program for improvements to Tcl and certain Tcl packages.

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

Overview
Comment: * *.tcl: Bumped the version number to 6.9; updated the * COPYRIGHT.txt: copyright information. * README.txt:
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 1998c221551690a6722db424ab53f7f974ec16a46cc4124f3fafb39199308a28
User & Date: csaba 2020-04-21 16:56:22
Context
2020-04-21
16:57
* CHANGES.txt: Updated to reflect the changes. * doc/*.html: check-in: 3bb5a3d6fb user: csaba tags: trunk
16:56
* *.tcl: Bumped the version number to 6.9; updated the * COPYRIGHT.txt: copyright information. * README.txt: check-in: 1998c22155 user: csaba tags: trunk
16:52
* *.tcl: Bumped the version number to 6.9; updated the * COPYRIGHT.txt: copyright information. * README.txt: * CHANGES.txt: Updated to reflect the changes. * doc/*.html: * scripts/*.tcl: Significantly extended and improved the code for initializing the variable "tablelist::scalingpct", especially on X11; added the percentage value 175 and the corresponding arrow styles "flat13x7", "flatAngle13x7", and "photo13x7"; removed the arrow styles "flat5x3" and "flat5x4"; changed the tree style names "(bicolor|classic|plain)1", ..., "(bicolor|classic|plain)4" to "(bicolor|classic|plain)100", "(bicolor|classic|plain)125", "(bicolor|classic|plain)150", and "(bicolor|classic|plain)200"; added the tree styles "(bicolor|classic|plain)175"; updated the tree styles "adwaita", "ubuntuMate", and "win10"; made the "refreshsorting" subcommand by orders of magnitude faster; fixed an issue related to the bindings for the edit window; fixed a bug related to the "expand" subcommand for a list of indices; updated the copyright information. * scripts/tclIndex: Newly generated. * doc/bicolor*png: Renamed (bicolor|classic|plain)1.png, ..., * doc/classic*.png: (bicolor|classic|plain)4.png to * doc/plain*.png: (bicolor|classic|plain)100.png, (bicolor|classic|plain)125.png, (bicolor|classic|plain)150.png, and (bicolor|classic|plain)200.png; updated screenshots; added (bicolor|classic|plain)175.png. * doc/adwaita.png: Updated screenshots. * doc/arrowStyles.png: * doc/arrowStyles_vista.png: * doc/dirViewer.png: * doc/scrollbars.png: * doc/ubuntuMate.png: * doc/win10.png: * ../../examples/tablelist/*.tcl: Bumped the version number to 6.9; updated the copyright information; the scripts "dirViewer.tcl" and "dirViewer_tile.tcl" now also demonstrate how to use the variable "tablelist::scalingpct" for developing scaling-aware applications. * ../../examples/tablelist/*.gif: Removed clsdFolder.gif, openFolder.gif, and file.gif; added (clsd|open)Folder100.gif, (clsd|open)Folder125.gif, ..., (clsd|open)Folder200.gif; added file100.gif, file125.gif, .., file200.gif. check-in: f27ed7358c user: csaba tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to modules/tablelist/COPYRIGHT.txt.

1
2
3
4
5
6
7
8
9
10
Multi-column listbox and tree widget package Tablelist, version 6.8
Copyright (c) 2000-2019  Csaba Nemethi (E-mail: [email protected])

This library is free software; you can use, modify, and redistribute it
for any purpose, provided that existing copyright notices are retained
in all copies and that this notice is included verbatim in any
distributions.

This software is distributed WITHOUT ANY WARRANTY; without even the
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|








1
2
3
4
5
6
7
8
9
10
Multi-column listbox and tree widget package Tablelist, version 6.9
Copyright (c) 2000-2020  Csaba Nemethi (E-mail: [email protected])

This library is free software; you can use, modify, and redistribute it
for any purpose, provided that existing copyright notices are retained
in all copies and that this notice is included verbatim in any
distributions.

This software is distributed WITHOUT ANY WARRANTY; without even the
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Changes to modules/tablelist/README.txt.

84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
...
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
    https://www.nemethi.de

How to Get It?
--------------

Tablelist is available for free download from the same URL as Wcb.  The
distribution file is "tablelist6.8.tar.gz" for UNIX and
"tablelist6_8.zip" for Windows.  These files contain the same
information, except for the additional carriage return character
preceding the linefeed at the end of each line in the text files for
Windows.

Tablelist is also included in tklib, which has the address

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

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

    gunzip -c tablelist6.8.tar.gz | tar -xf -

On most UNIX systems this can be replaced with

    tar -zxf tablelist6.8.tar.gz

Both commands will create a directory named "tablelist6.8 with the
subdirectories "demos", "doc", and "scripts".

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

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






|
|







 







|

|



|

|



|







84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
...
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
    https://www.nemethi.de

How to Get It?
--------------

Tablelist is available for free download from the same URL as Wcb.  The
distribution file is "tablelist6.9.tar.gz" for UNIX and
"tablelist6_9.zip" for Windows.  These files contain the same
information, except for the additional carriage return character
preceding the linefeed at the end of each line in the text files for
Windows.

Tablelist is also included in tklib, which has the address

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

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

    gunzip -c tablelist6.9.tar.gz | tar -xf -

On most UNIX systems this can be replaced with

    tar -zxf tablelist6.9.tar.gz

Both commands will create a directory named "tablelist6.9 with the
subdirectories "demos", "doc", and "scripts".

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

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

Changes to modules/tablelist/pkgIndex.tcl.

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
#==============================================================================
# Tablelist and Tablelist_tile package index file.
#
# Copyright (c) 2000-2019  Csaba Nemethi (E-mail: [email protected])
#==============================================================================

#
# Regular packages:
#
package ifneeded tablelist         6.8 \
	[list source [file join $dir tablelist.tcl]]
package ifneeded tablelist_tile    6.8 \
	[list source [file join $dir tablelist_tile.tcl]]

#
# Aliases:
#
package ifneeded Tablelist         6.8 \
	[list package require -exact tablelist	    6.8]
package ifneeded Tablelist_tile    6.8 \
	[list package require -exact tablelist_tile 6.8]

#
# Code common to all packages:
#
package ifneeded tablelist::common 6.8 \
        "namespace eval ::tablelist { proc DIR {} {return [list $dir]} } ;\
	 source [list [file join $dir tablelistPublic.tcl]]"


|





|

|





|
|
|
|




|


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
#==============================================================================
# Tablelist and Tablelist_tile package index file.
#
# Copyright (c) 2000-2020  Csaba Nemethi (E-mail: [email protected])
#==============================================================================

#
# Regular packages:
#
package ifneeded tablelist         6.9 \
	[list source [file join $dir tablelist.tcl]]
package ifneeded tablelist_tile    6.9 \
	[list source [file join $dir tablelist_tile.tcl]]

#
# Aliases:
#
package ifneeded Tablelist         6.9 \
	[list package require -exact tablelist	    6.9]
package ifneeded Tablelist_tile    6.9 \
	[list package require -exact tablelist_tile 6.9]

#
# Code common to all packages:
#
package ifneeded tablelist::common 6.9 \
        "namespace eval ::tablelist { proc DIR {} {return [list $dir]} } ;\
	 source [list [file join $dir tablelistPublic.tcl]]"

Changes to modules/tablelist/tablelist.tcl.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#==============================================================================
# Main Tablelist package module.
#
# Copyright (c) 2000-2019  Csaba Nemethi (E-mail: [email protected])
#==============================================================================

package require Tk 8
package require -exact tablelist::common 6.8

package provide tablelist $::tablelist::version
package provide Tablelist $::tablelist::version

::tablelist::useTile 0
::tablelist::createBindings


|



|






1
2
3
4
5
6
7
8
9
10
11
12
13
14
#==============================================================================
# Main Tablelist package module.
#
# Copyright (c) 2000-2020  Csaba Nemethi (E-mail: [email protected])
#==============================================================================

package require Tk 8
package require -exact tablelist::common 6.9

package provide tablelist $::tablelist::version
package provide Tablelist $::tablelist::version

::tablelist::useTile 0
::tablelist::createBindings

Changes to modules/tablelist/tablelistPublic.tcl.

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
#==============================================================================
# Main Tablelist and Tablelist_tile package module.
#
# Copyright (c) 2000-2019  Csaba Nemethi (E-mail: [email protected])
#==============================================================================

namespace eval ::tablelist {
    #
    # Gets the scaling percentage (100, 125, 150, or 200).
    #
    proc scalingPercentage {} {
	set factor [tk scaling]
	if {$factor < 1.50} {
	    return 100 
	} elseif {$factor < 1.83} {
	    return 125 
	} elseif {$factor < 2.33} {
	    return 150 
	} else {
	    return 200
	}
    }

    #
    # Public variables:
    #
    variable version	6.8
    variable library
    if {$::tcl_version >= 8.4} {
	set library	[file normalize [DIR]]
    } else {
	set library	[DIR]			;# no "file normalize" yet
    }
    variable scalingpct	[scalingPercentage]

    #
    # Creates a new tablelist widget:
    #
    namespace export	tablelist

    #


|



<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<



|






<







1
2
3
4
5
6
7
















8
9
10
11
12
13
14
15
16
17

18
19
20
21
22
23
24
#==============================================================================
# Main Tablelist and Tablelist_tile package module.
#
# Copyright (c) 2000-2020  Csaba Nemethi (E-mail: [email protected])
#==============================================================================

namespace eval ::tablelist {
















    #
    # Public variables:
    #
    variable version	6.9
    variable library
    if {$::tcl_version >= 8.4} {
	set library	[file normalize [DIR]]
    } else {
	set library	[DIR]			;# no "file normalize" yet
    }


    #
    # Creates a new tablelist widget:
    #
    namespace export	tablelist

    #

Changes to modules/tablelist/tablelist_tile.tcl.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#==============================================================================
# Main Tablelist_tile package module.
#
# Copyright (c) 2000-2019  Csaba Nemethi (E-mail: [email protected])
#==============================================================================

package require Tk 8.4
if {$::tk_version < 8.5 || [regexp {^8\.5a[1-5]$} $::tk_patchLevel]} {
    package require tile 0.6
}
package require -exact tablelist::common 6.8

package provide tablelist_tile $::tablelist::version
package provide Tablelist_tile $::tablelist::version

::tablelist::useTile 1
::tablelist::createBindings

namespace eval ::tablelist {
    #
    # Commands related to tile themes:
    #
    namespace export	getThemes getCurrentTheme setTheme setThemeDefaults
}


|






|













1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#==============================================================================
# Main Tablelist_tile package module.
#
# Copyright (c) 2000-2020  Csaba Nemethi (E-mail: [email protected])
#==============================================================================

package require Tk 8.4
if {$::tk_version < 8.5 || [regexp {^8\.5a[1-5]$} $::tk_patchLevel]} {
    package require tile 0.6
}
package require -exact tablelist::common 6.9

package provide tablelist_tile $::tablelist::version
package provide Tablelist_tile $::tablelist::version

::tablelist::useTile 1
::tablelist::createBindings

namespace eval ::tablelist {
    #
    # Commands related to tile themes:
    #
    namespace export	getThemes getCurrentTheme setTheme setThemeDefaults
}