Skip to content

Commit 1429721

Browse files
committed
Initial commit
1 parent 5ddcdb0 commit 1429721

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+39583
-0
lines changed

ChangeLog

+1,705
Large diffs are not rendered by default.

Makefile.in

+453
Large diffs are not rendered by default.

Makefile.in.old

+488
Large diffs are not rendered by default.

README.blt

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
If tkTable is used at the same time as BLT then there are two name
2+
conflicts to be aware of.
3+
4+
BLT also has a table.n man page. TkTable's man page will still be
5+
available as tkTable.n.
6+
7+
BLT also has a "table" command. The table command of the last
8+
extension loaded will be in effect. If you need to use both table
9+
commands then eval "rename table blttable" after loading blt and
10+
before loading tkTable, or perhaps "rename table tkTable" if you
11+
load the tkTable extension first.
12+
13+
In general this shouldn't be a problem as long as you load tkTable
14+
last. The BLT "table" command facilities have been subsumed by the
15+
Tk "grid" command (available in Tk4.1+), so the BLT table should
16+
only be used in legacy code.
17+
18+
Alternatively, if you want both or have another "table" command,
19+
then change the TBL_COMMAND macro in the makefile before compiling,
20+
and it tkTable will define your named command for the table widget.

README.txt

+149
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,149 @@
1+
/*
2+
* Conceptually based on Tk3 table widget by Roland King (rols@lehman.com)
3+
*
4+
* see ChangeLog file for details
5+
*
6+
* current maintainer: jeff at hobbs org
7+
*
8+
* Copyright 1997-2002, Jeffrey Hobbs (jeff@hobbs.org)
9+
*/
10+
11+
*************************************
12+
The Tk Table Widget Version 2.0+
13+
*************************************
14+
15+
INTRODUCTION
16+
17+
TkTable is a table/matrix widget extension to tk/tcl.
18+
The basic features of the widget are:
19+
20+
* multi-line cells
21+
* support for embedded windows (one per cell)
22+
* row & column spanning
23+
* variable width columns / height rows (interactively resizable)
24+
* row and column titles
25+
* multiple data sources ((Tcl array || Tcl command) &| internal caching)
26+
* supports standard Tk reliefs, fonts, colors, etc.
27+
* x/y scrollbar support
28+
* 'tag' styles per row, column or cell to change visual appearance
29+
* in-cell editing - returns value back to data source
30+
* support for disabled (read-only) tables or cells (via tags)
31+
* multiple selection modes, with "active" cell
32+
* multiple drawing modes to get optimal performance for larger tables
33+
* optional 'flashes' when things update
34+
* cell validation support
35+
* Works everywhere Tk does (including Windows and Mac!)
36+
* Unicode support (Tk8.1+)
37+
38+
FINDING THE WIDGET
39+
40+
0. The newest version is most likely found at:
41+
http://tktable.sourceforge.net/
42+
http://www.purl.org/net/hobbs/tcl/capp/
43+
44+
BUILDING AND INSTALLING THE WIDGET
45+
46+
1. Uncompress and unpack the distribution
47+
48+
ON UNIX and OS X:
49+
gzip -cd Tktable<version>.tar.gz | tar xf -
50+
51+
ON WINDOWS:
52+
use something like WinZip to unpack the archive.
53+
54+
ON MACINTOSH:
55+
use StuffIt Expander to unstuff the archive.
56+
57+
This will create a subdirectory tkTable<version> with all the files in it.
58+
59+
2. Configure
60+
61+
ON UNIX and OS X:
62+
cd Tktable<version>
63+
./configure
64+
65+
tkTable uses information left in tkConfig.sh when you built tk. This
66+
file will be found in $exec_prefix/lib/. You might set the --prefix and
67+
--exec-prefix options of configure if you don't want the default
68+
(/usr/local). If building on multiple unix platforms, the following is
69+
recommended to isolate build conflicts:
70+
mkdir <builddir>/<platform>
71+
cd !$
72+
/path/to/Tktable<version>/configure
73+
74+
ON WINDOWS:
75+
76+
Version 2.8 added support for building in the cygwin environment on
77+
Windows based on TEA (http://www.tcl.tk/doc/tea/). You can retrieve
78+
cygwin from:
79+
http://sources.redhat.com/cygwin/
80+
81+
Inside the cygwin environment, you build the same as on Unix.
82+
83+
Otherwise, hack makefile.vc until it works and compile. It has problems
84+
executing wish from a path with a space in it, but the DLL builds just
85+
fine. A DLL should be available where you found this archive.
86+
87+
3. Make and Install
88+
89+
ON UNIX< OS X or WINDOWS (with cygwin):
90+
make
91+
make test (OPTIONAL)
92+
make demo (OPTIONAL)
93+
make install
94+
95+
ON WINDOWS (makefile.vc):
96+
nmake -f makefile.vc
97+
nmake -f makefile.vc test (OPTIONAL)
98+
nmake -f makefile.vc install
99+
100+
tkTable is built to comply to the latest tcl package conventions.
101+
There is also a specific "make static" for those who need it.
102+
103+
4. Use it
104+
105+
Start a regular wish interpreter, 'load' the library, and use the table.
106+
There are a few test scripts in the demos directory which you can source.
107+
108+
5. Read the documentation
109+
110+
There is a Unix manpage and HTML translation provided in the doc/
111+
subdirectory. These describe the table widget's features and commands
112+
in depth. If something is confusing, just to try it out.
113+
114+
6. Python users
115+
116+
There is a library/tktable.py wrapper for use with Python/Tkinter.
117+
118+
THINGS TO WATCH OUT FOR
119+
120+
Packing
121+
The table tries not to allocate huge chunks of screen real estate if
122+
you ask it for a lot of rows and columns. You can always stretch out
123+
the frame or explicitly tell it how big it can be. If you want to
124+
stretch the table, remember to pack it with fill both and expand on,
125+
or with grid, give it -sticky news and configure the grid row and column
126+
for some weighting.
127+
128+
Array
129+
The array elements for the table are of the form array(2,3) etc. Make
130+
sure there are no spaces around the ','. Negative indices are allowed.
131+
132+
Editing
133+
If you can't edit, remember that the focus model in tk is explicit, so
134+
you need to click on the table or give it the focus command. Just
135+
having a selected cell is not the same thing as being able to edit.
136+
You also need the editing cursor. If you can't get the cursor, make
137+
sure that you actually have a variable assigned to the table, and that
138+
the "state" of the cell is not disabled.
139+
140+
COMMENTS, BUGS, etc.
141+
142+
* Please can you send comments and bug reports to the current maintainer
143+
and their best will be done to address them. A mailing list for
144+
tktable discussion is tktable-users@lists.sourceforge.net.
145+
146+
* If you find a bug, a short piece of Tcl that exercises it would be very
147+
useful, or even better, compile with debugging and specify where it
148+
crashed in that short piece of Tcl. Use the SourceForge site to check
149+
for known bugs or submit new ones.

TODO.txt

+63
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
## TODO LIST
2+
##
3+
## updated 1 June 1999, jeff at hobbs org
4+
##
5+
## Any information in here may be out of date. For up-to-date info see:
6+
## http://tktable.sourceforge.net/
7+
##
8+
9+
These are recommendations, not all of the same priority, and not
10+
all necessarily will be implemented. If you see something you
11+
feel is important, email me and say so. Very democratic.
12+
13+
* some sort of textbbox command that will return the size of the
14+
text in a cell, to allow for perfect cell sizing.
15+
16+
* anchor title areas in different parts of the screen
17+
18+
* -rowstretchmode fill ignores initial # of rows, or config requests for more.
19+
* interpret 0 rows/cols to be FILL
20+
* add -colstretchmode fill
21+
* scratch stretchmode "fill" in favor of "dynamic" which would monitor
22+
the max extent of row/col (difficult)
23+
24+
* fix selection routines to properly handle title area movement
25+
26+
* support smooth scrolling of rows/cols
27+
28+
* add ability to index by tagname
29+
* overhaul tag mechanism (include way to query for tags on a cell, add
30+
priority)
31+
32+
* add internal sort procedures
33+
pathName sort -row {the list of rows we want to sort | all}
34+
-col {the list of cols we use for sorting}
35+
-master row,col
36+
-command _command_to_use_
37+
-type {for each column specifies the type of sort:
38+
ascii | dictionary | integer | real }
39+
-order {for each column specify the order of sort:
40+
increasing | decreasing | none }
41+
42+
* row/column swap (maybe only in terms of visual remapping)
43+
44+
= BBBB U U GGG SSS
45+
== B B U U G S
46+
==- B BB U U G GGG SSS
47+
== B B U U G G S
48+
= BBBB UUU GGGG SSS
49+
50+
MINOR:
51+
52+
Windows: With "-colstretchmode last", the scrollbar behaves oddly in
53+
handling the space for the last cell properly when moving the
54+
main part of the scrollbar with the mouse. This seems to be
55+
that even though the scrollbar receives the "set 0.6xxx 1",
56+
the scrollbar immediately jumps back to what the mouse says,
57+
although this isn't a problem in X...
58+
59+
Windows: when moving windows in "Show Window While Dragging" mode,
60+
the column titles don't refresh properly.
61+
62+
Windows: When using bitmaps in cells, they occasionally don't redraw
63+
correctly. The work-around is to use -drawmode slow.

aclocal.m4

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
#
2+
# Include the TEA standard macro set
3+
#
4+
5+
builtin(include,tclconfig/tcl.m4)
6+
7+
#
8+
# Add here whatever m4 macros you want to define for your package
9+
#

0 commit comments

Comments
 (0)