|
| 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. |
0 commit comments