12008-11-14 Jeff Hobbs <jeffh@ActiveState.com> 2 3 **** 2.10 TAGGED FOR RELEASE **** 4 5 * generic/tkTable.c: Set NO_XSETCLIP universally as Tk 8.5/Xft 6 seems to ignore XSetClipRectangles. This may slow things down a 7 little, but draws correctly. [Bug 1805350] 8 9 * UPGRADING.txt (removed): no longer need this old v1 upgrade doc. 10 11 * README.txt: remove refs to mac classic stuff, update notes 12 13 * configure, configure.in, tclconfig/tcl.m4: Update to TEA 3.7 14 * tests/tkTable.test, unix/tktable.spec, generic/version.h: 15 * demos/loadtable.tcl: Update version to 2.10 16 * Makefile.in: update dist target, include library/tktable.py 17 18 * demos/tktable.py: note that this version is outdated 19 * library/tktable.py (NEW): Added new version of tktable wrapper 20 for Python/Tkinter from GPolo. Not 100% compatible with previous 21 version. [Patch 2244167] 22 23 * generic/tkTableTag.c (Table_TagCmd): remove interp->result set 24 work-around for old bug as i->result is no longer exposed in 8.6. 25 26 * generic/tkTable.c: Use safe Tcl_SetObjResult instead of trying 27 * generic/tkTableCell.c: to set existing objResult value. 28 * generic/tkTableCmds.c: 29 302006-07-10 Jeff Hobbs <jeffh@ActiveState.com> 31 32 * license.txt (bourbon_ware): Be less restrictive in the 33 bourbon_ware clause. 34 352006-01-25 Jeff Hobbs <jeffh@ActiveState.com> 36 37 * configure.in, configure, tclconfig/tcl.m4: update to TEA 3.5 38 392006-01-22 Jeff Hobbs <jeffh@ActiveState.com> 40 41 * tclconfig/tcl.m4, configure: update to TEA 3.4 interim 42 432005-12-13 Jeff Hobbs <jeffh@ActiveState.com> 44 45 * generic/tkTableCmds.c (Table_ActivateCmd): remove potential 46 undefined behavior warning. 47 482005-12-02 Jeff Hobbs <jeffh@ActiveState.com> 49 50 * tclconfig/tcl.m4, configure.in, configure: update to TEA 3.4 51 522005-05-11 Jeff Hobbs <jeffh@ActiveState.com> 53 54 * Makefile.in (html): switch to groff to fix botched html output. 55 * doc/tkTable.html: regen [Bug 1198478] 56 * doc/tkTable.n: use '' around \\ items. 57 582005-03-18 Jeff Hobbs <jeffh@ActiveState.com> 59 60 * Makefile.in (AR): use @AR@, improve html doc target 61 * configure, configure.in, tclconfig/tcl.m4: TEA 3.2 patch update 62 63 * doc/tkTable.n, doc/kTable.html: doc cleanup 64 652005-02-01 Jeff Hobbs <jeffh@ActiveState.com> 66 67 * configure, configure.in, tclconfig/tcl.m4: update to TEA 3.2 68 692004-11-18 Jeff Hobbs <jeffh@ActiveState.com> 70 71 * library/tkTable.tcl (::tk::table::SelectAll): remove invalid ref 72 to HandleType proc. [Bug 1068874] (ade) 73 742004-07-22 Jeff Hobbs <jeffh@ActiveState.com> 75 76 **** 2.9 TAGGED FOR RELEASE **** 77 78 * configure, tclconfig/tcl.m4: update tcl.m4 TEA_PATH_X that adds 79 Aqua build recognition and TEA_WINDOWINGSYSTEM variable. 80 812004-07-20 Jeff Hobbs <jeffh@ActiveState.com> 82 83 * generic/version.h, unix/tktable.spec: updated for v2.9 84 * demos/loadtable.tcl, tests/tkTable.test: 85 86 * Makefile.in, configure.in, configure, tclconfig/tcl.m4: update 87 to TEA 3.1, use CFLAGS instead of EXTRA_CFLAGS and bump the 88 version number of Tktable to 2.9. 89 90 * generic/tkTable.h: add #include <ctype.h> 91 92 * generic/tkTableCell.c (TableGetCellValue, TableSetCellValue): 93 Do faster cache checks when DATA_CACHE is the only data source. 94 In fallback from command that errors to array var, retrieve array 95 value immediately on current get|set request. 96 When setting the value with cache and array sources, don't do the 97 caching branch as the array trace will do that already. 98 (TableMoveCellValue): Do the efficient cache value management when 99 cache is the only data source, otherwise the regular fallback has 100 all the necessary checks. [Bug #919872] 101 102 * generic/tkTable.c (TableVarProc): allow setting NULL value in 103 cache hash from array trace. 104 1052004-06-10 Jeff Hobbs <jeffh@ActiveState.com> 106 107 * generic/tkTableWin.c (EmbWinDisplay): make min window displayed 108 have width/height 1 pixel min (was 3px) 109 110 * generic/tkTable.c (TableDisplay): Don't draw when we don't have 111 the space for it. [Bug 747038] 112 113 * doc/tkTable.html, doc/tkTable.n: improve docs to note 114 requirement of specifying a data source. [Bug 963204] 115 1162004-02-17 Jeff Hobbs <jeffh@ActiveState.com> 117 118 * generic/tkTableCmds.c (Table_ActivateCmd): test implementation 119 of an "unactivate" ($table activate "") command to remove the 120 active cell. (becroft) 121 1222004-02-13 Jeff Hobbs <jeffh@ActiveState.com> 123 124 * library/tkTable.tcl (::tk::table::Button1): account for what 125 resizeborders are set when selecting cell [Bug 876320] (ferenc) 126 (<Prior> <Next>): activate topleft, not @0,0 (accounts for title 127 rows) [Bug 879347] (ferenc) 128 1292003-12-10 Jeff Hobbs <jeffh@ActiveState.com> 130 131 * Makefile.in: updated to TEA3 spec 132 * configure: 133 * configure.in: 134 * generic/tkTable.c: 135 * generic/tkTableInitScript.h: 136 * generic/version.h: 137 * mac/mac_tkTable.r: 138 * tclconfig/tcl.m4: 139 140 * win/makefile.vc: minor updates, probably still out of date 141 142 * tclconfig/ChangeLog (removed): not necessary 143 144 * generic/tkTable.c: added Tk_ClassProcs and TableWorldChanged 145 proc if built against 8.4 146 147 * generic/tkTable.h: add 8.4 ifdef, remove ANSI_ARGS usage 148 1492003-07-16 Jeff Hobbs <jeffh@ActiveState.com> 150 151 * doc/tkTable.n: add note about -window "" behavior 152 1532003-04-10 Jeff Hobbs <jeffh@ActiveState.com> 154 155 * configure: regen 156 * tclconfig/tcl.m4: updated 157 158 * library/tkTable.tcl (BeginExtend): avoid error in tables that 159 have no anchor index yet. (renshaw) 160 1612003-04-09 Jeff Hobbs <jeffh@ActiveState.com> 162 163 * configure: regen 164 * tclconfig/tcl.m4: Updated to newest tcl.m4, (WinCE support) 165 166 * demos/loadtable.tcl: redefine 'puts' on Windows CE 167 168 * generic/tkTable.c (TableDisplay): correctly copy clipwindow area 169 for NO_XSETCLIP case and use that when UNDER_CE as well. Also add 170 support for drawing ellipsis in NO_XSETCLIP case. 171 Comment out OffsetClipRgn call - it was a noop. 172 1732003-04-04 Andreas Kupries <andreask@activestate.com> 174 175 * configure.in: 176 * tclconfig/tcl.m4: Updated to newest tcl.m4, regenerated 177 configure's. 178 1792003-02-24 Jeff Hobbs <jeffh@ActiveState.com> 180 181 * generic/tkTable.c (TableDisplay): do not use buffer pixmap for 182 slow -drawmode on Win32 because we aren't clipping it correctly. 183 1842003-01-30 Jeff Hobbs <jeffh@ActiveState.com> 185 186 * Makefile.in: remove use of nested $(PACKAGE) to enable building 187 on older, cruftier make versions 188 189 * doc/tkTable.n: add -ellipsis tag /global option which 190 * tests/tkTable.test: takes a char string (ie: "...") to display 191 * generic/tkTableTag.c: as an ellipsis. These will only be shown 192 * generic/tkTable.h: on non-wrapping, non-multiline cells. 193 * generic/tkTable.c: 194 1952002-12-10 Jeff Hobbs <jeffh@ActiveState.com> 196 197 * tests/tkTable.test: 198 * generic/tkTableCell.c (TableGetCellValue): make caching allows 199 NULLs throughout to save mem. 200 Do not call Tcl_FreeResult as it will be freed before the next 201 result is set, and causes us to lose large results. [Bug #651685] 202 2032002-10-16 Jeff Hobbs <jeffh@ActiveState.com> 204 205 **** 2.8 TAGGED FOR RELEASE **** 206 207 * Makefile.in: updated dist target to get changed fileset. 208 209 * generic/tkTableEdit.c (Table_EditCmd): Ensure that embedded 210 widgets being moved offscreen get unmapped. [Bug #551325] 211 212 * generic/tkTableCell.c (TableAtBorder): refine border detection 213 in the midst of spanned cells. [Patch #544117] (duxbury) 214 215 * doc/tkTable.n: 216 * doc/tkTable.html: 217 * tests/tkTable.test: 218 * generic/tkTable.c: Add global -justify option. [Bug #623557] 219 220 * generic/tkTableTag.c: more CONST84 casting fixes. 221 Allowing setting of tag relief to "". [Bug #233619] 222 223 * generic/tkTable.h: 224 * generic/tkTableUtil.c: 225 * generic/tkTableWin.c: more CONST84 casting fixes. 226 227 * library/tkTable.tcl: Add <FocusOut> as a default auto-commit 228 event. [Bug #611132] 229 (::tk::table::Motion): abort "extended" arm if the anchor cell 230 isn't defined. [Bug #604470] 231 2322002-10-15 Jeff Hobbs <jeffh@ActiveState.com> 233 234 * tclconfig/tcl.m4: 235 * configure: 236 * configure.in: move the CFLAGS definition into TEA_MAKE_LIB 237 and make it pick up the env CFLAGS at configure time. 238 2392002-10-15 Andreas Kupries <andreask@pliers.activestate.com> 240 241 * configure.in: Changed to propagate an initial CFLAGS value to 242 the final definition. A TEA condition (SHARED_BUILD == 1) 243 squashed it, causing it the build system to loose the 244 +DAportable we specify for the AS PA-RISC2.2 build host. This is 245 a problem for _all_ TEA and TEA 2 based configure files. 246 2472002-10-09 Jeff Hobbs <jeffh@ActiveState.com> 248 249 * configure: 250 * configure.in: move TEA_PATH_X below TEA_CONFIG_CFLAGS as it can 251 mess with the configure results. 252 253 * unix/tktable.spec (new): RPM spec file. (fontaine) 254 255 * demos/tktable.py: added a contributed tktable wrapper for 256 Python/Tkinter from Klaus Roethemeyer. 257 2582002-09-27 Jeff Hobbs <jeffh@ActiveState.com> 259 260 * Makefile.in: correct tkTable.tcl.h target to work with FreeBSD's 261 default make. 262 2632002-09-25 Jeff Hobbs <jeffh@ActiveState.com> 264 265 * generic/tkTable.c: 266 * generic/tkTable.h: added support for building on OS X (steffen) 267 2682002-06-21 Jeff Hobbs <jeffh@ActiveState.com> 269 270 * Makefile.in: call cygpath on INCLUDES $(srcdir)/generic. 271 272 * tests/all.tcl: minor cleanup 273 274 * tests/tkTable.test (table-30.1): 275 * generic/tkTableEdit.c (Table_EditCmd): fixed problem where row 276 insertion could segfault. [Bug #487747] 277 2782002-04-11 Jeff Hobbs <jeffh@ActiveState.com> 279 280 * tclconfig/tcl.m4: 281 * configure: Enabled COFF as well as CV style debug info with 282 --enable-symbols to allow Dr. Watson users to see function info. 283 More info on debugging levels can be obtained at: 284 http://msdn.microsoft.com/library/en-us/dnvc60/html/gendepdebug.asp 285 2862002-04-03 Jeff Hobbs <jeffh@ActiveState.com> 287 288 * Makefile.in: improved use of DESTDIR in install targets. 289 Removed need for installdirs target. 290 Broke TCLSH_PROG into TCLSH_ENV and TCLSH_PROG with TCLSH var and 291 added comments about TCLSH_ENV. 292 Added default shell and gdb targets. 293 294 * tclconfig/tcl.m4: 295 * configure: 296 * configure.in: updated to new TEA base that: prefixes all macros 297 with TEA_* instead of SC_*; adds TEA_PREFIX, which defaults the 298 prefix and exec_prefix values to what Tcl used; adds 299 TEA_SETUP_COMPILER, which handles basic compiler / support program 300 checks and simplifies the configure.in. Turn on --enable-threads 301 by default and do sanity checking as well. 302 3032002-04-02 Jeff Hobbs <jeffh@ActiveState.com> 304 305 * configure: regened 306 * configure.in: added user32.lib to LIBS for Windows 307 * tclconfig/tcl.m4: updated from TEA sample 308 3092002-03-27 Jeff Hobbs <jeffh@ActiveState.com> 310 311 * Makefile.in (WISH_PROG): moved and updated env var definitions 312 to have wish work from build dir. Removed TCL_EXTRA_CFLAGS, 313 TCL_LD_FLAGS, TCL_SHLIB_LD_LIBS, TCL_DBGX, TCL_STUB_LIB_FILE, 314 TCL_STUB_LIB_SPEC as they aren't needed (configure acquires all 315 that info for us). TCL_LIBS is also not needed, but left in as a 316 reference to the libs Tcl used. 317 318 * configure: regen based on updated tclconfig/tcl.m4 319 * configure.in: moved the SHLIB_LD_LIBS magic into 320 tclconfig/tcl.m4 and noted where users can modify (SHLIB_LD_)LIBS. 321 * tclconfig/tcl.m4: updated from sample to be more independent of 322 *Config.sh. 323 324 * unix/Makefile.in (removed): 325 * unix/configure.in (removed): 326 * unix/configure (removed): 327 * unix/install-sh (removed): removed old makefile files to force 328 use of new toplevel TEA 2002 configure/make. 329 3302002-03-21 Jeff Hobbs <jeffh@ActiveState.com> 331 332 * tests/tkTable.test: more icursor tests 333 * generic/tkTable.c (TableWidgetObjCmd): corrected placing the 334 icursor and retaining the position. 335 3362002-03-20 Jeff Hobbs <jeffh@ActiveState.com> 337 338 * generic/tkTable.c: 339 * generic/tkTable.h: 340 * generic/tkTableCmds.c: 341 * generic/tkTableUtil.c: cleaned up several areas where cache data 342 was not getting freed. [Bug #532447] (bloisi) 343 3442002-03-19 Jeff Hobbs <jeffh@ActiveState.com> 345 346 * tests/tkTable.test: added tag configure tests 347 348 * generic/tkTableTag.c (Table_TagCmd): work-around for bug in 349 Tk_ConfigureValue that sets interp->result to NULL. [Bug #522882] 350 351 * generic/tkTable.c (TableDisplay): when building with threads on 352 WIN32, use NO_XSETCLIP instead of direct DC hacks because Tk 353 doesn't use CS_CLASSDC on threaded builds. 354 (Tktable_Init) Corrected to use BUILD_Tktable for EXTERN changes. 355 356 * configure: 357 * configure.in: use double-eval to substitute DBGX var for 358 ${PACKAGE}_LIB_FILE. 359 360 * Makefile.in: cleaned up install target 361 3622002-03-13 Jeff Hobbs <jeffh@ActiveState.com> 363 364 * demos/loadtable.tcl: 365 * tests/tkTable.test: adapted load to new configure style where 366 unix gets the 'lib' suffix for the library. 367 368 * tclconfig/ChangeLog: 369 * tclconfig/README.txt: 370 * tclconfig/install-sh: 371 * tclconfig/tcl.m4: 372 * README.txt: 373 * Makefile.in: 374 * aclocal.m4: 375 * configure: 376 * configure.in: introduction of next-gen TEA based config files. 377 The unix/ configure files should no longer be used. 378 379 * generic/tkTable.c: 380 * generic/tkTableCell.c: 381 * generic/tkTableCellSort.c: 382 * generic/tkTableCmds.c: 383 * generic/tkTableEdit.c: 384 * generic/tkTableTag.c: 385 * generic/tkTableUtil.c: 386 * generic/tkTableWin.c: 387 * generic/tkTable.h: introduced CONST84 define for compatibility 388 with new 8.4 CONST-ed headers and older headers and fixed up 389 sources where necessary. 390 391 * generic/tkTableInitScript.h: 392 * generic/tkTable.c: 393 * generic/version.h: 394 * mac/mac_tkTable.r: 395 * win/makefile.vc: changed TBL_VERSION to VERSION, upped to 2.8. 396 Added Win64 build support to makefile.vc 397 3982002-03-07 Jeff Hobbs <jeffh@ActiveState.com> 399 400 * library/tkTable.tcl (tk_tablePasteHandler): "string comp" fixed 401 to "string compare" [Bug #500449] 402 4032002-01-16 Jeff Hobbs <jeffh@ActiveState.com> 404 405 * generic/tkTable.c (TableWidgetObjCmd): corrected dangerous 406 caching of resultPtr that could lead to segfault. 407 4082001-08-24 Jeff Hobbs <jeffh@ActiveState.com> 409 410 * README.txt: corrected outdated notes. [Bug #455116] (kriehbel) 411 4122001-08-23 Jeff Hobbs <jeffh@ActiveState.com> 413 414 * unix/Makefile.in (tkTable.tcl.h): corrected target to sed \'s 415 properly in the .tcl file. 416 417 * library/tkTable.tcl: added the ability to select borders with 418 button 1. (backe) The user can turn off this ability by calling 419 [set ::tk::table::Priv(borderB1) 0] in their code. button 3 is 420 still active for selecting borders as well. 421 fixed a couple references to work on Mac/Tk. (steffen) 422 423 * mac/mac_tkTable_prefix.h: 424 * mac/mac_tkTable.r: corrected Mac build. (steffen) 425 426 * doc/tkTable.html: regen'd 427 * doc/tkTable.n: Clarified that any <row>,<col> index 428 specification will always return a valid cell. [Bug #450397] 429 Corrected what 'units' scrolls. [Bug #448837] 430 431 * mac/mac_tkTable.mcp: removed in favor of XML project file 432 * mac/mac_tkTable.mcp.xml: XML CodeWarrior project file for the 433 mac. (steffen) 434 4352001-07-18 Jeff Hobbs <jeffh@ActiveState.com> 436 437 * generic/tkTable.c (TableDestroy): freed cached values in destroy. 438 4392001-06-30 Jeff Hobbs <jeffh@ActiveState.com> 440 441 **** 2.7 RELEASE **** 442 443 * generic/tkTable.h: added STREQ #def to replace strcmp(a,b) == 0 444 * generic/tkTable.c: 445 * generic/tkTableTag.c: made use of STREQ #define. 446 Redid tag merging to make use of only one allocated tag. 447 448 * doc/tkTable.html: 449 * doc/tkTable.n: updated docs with feature change info 450 451 * tests/tkTable.test: added more tests 452 453 * generic/tkTableCmds.c (Table_ActivateCmd): made table refresh 454 when moving the cursor in the active cell. 455 4562001-06-24 Jeff Hobbs <jeffh@ActiveState.com> 457 458 * generic/tkTableTag.c (Table_TagCmd): corrected patch for Patch 459 #423332 that does prevent excess refresh in the simple case. 460 4612001-06-23 Jeff Hobbs <jeffh@ActiveState.com> 462 463 * generic/tkTable.c (TableConfigure): corrected possible crash 464 during configure when switching array vars and changed name of 465 'restrict' var to something that is not a reserved word. (berggren) 466 467 * library/tkTable.tcl: support for future UTF8_STRING selection on 468 unix. 469 470 * generic/tkTable.c: 471 * generic/tkTable.h: 472 * generic/tkTableTag.c: added support for priorities in tags. 473 There are new 'tag lower' and 'tag raise' methods. This may lead 474 to different view characteristics because the default priority 475 order is creation order, starting with flash, active, sel, title, 476 followed by whatever the user creates. The old order was fixed at 477 flash, active, sel, <celltag>, title, <rowtag>, <coltag> 478 **** POTENTIAL INCOMPATABILITY **** 479 480 * tests/tkTable.test: makings of an initial test suite 481 482 * generic/tkTableCmds.c (Table_CurvalueCmd): removed extra curvalue 483 in error message. 484 4852001-06-22 Jeff Hobbs <jeffh@ActiveState.com> 486 487 * generic/tkTableTag.c (Table_TagCmd): made adding tags to 488 cell/row/col create the tag if it didn't exist. This was 489 previously an error. 490 491 * generic/tkTable.c (TableDisplay): changed use of NO_XSETCLIP to 492 only operate on Macintosh, added new Windows code that is the 493 equivalent of XSetClipRectangles. (teske) 494 Removed XFillRectangle function that was there for support with 495 8.1 (nobody should use 8.1 anymore). 496 (TableDisplay): Corrected clearing of the area beyond the last 497 cell to not be incorrect when there is a span on the last cell. 498 (TableAdjustParams): handle possible div-by-zero for scrollbar 499 calculations. (christian brunner) 500 501 * generic/tkTable.h: added TableMoveCellValue decl. 502 * generic/tkTableEdit.c (TableModifyRC): made use of 503 TableMoveCellValue. 504 * generic/tkTableCell.c (TableSetCellValue): fixed mem leak in 505 -cache option. 506 (TableMoveCellValue): new function to support possible speedier 507 movement of cells when caching is being used. (michael teske) 508 509 * generic/tkTableCell.c (TableCellCoords): corrected 510 rowspan/colspan dimension calculation for title cells. 511 (Table_SetCmd): correct possible abuse in setting result object 512 pointer. 513 514 * README.txt: updated links 515 516 * win/makefile.vc (pkgIndex.tcl): 517 * unix/Makefile.in (pkgIndex.tcl): made 8.2 the required base for 518 the stubs version 519 520 * generic/tkTableCmds.c (Table_GetCmd): fixed potential crash from 521 abusing object pointer. (jonas hodges) Bug #230701 522 523 * generic/tkTableTag.c (Table_TagCmd): fix possible hang situation 524 by preventing refresh when setting the same tag on a cell/row/col. 525 (Michael Shulz) 526 5272001-03-28 Jeff Hobbs <jeffh@ActiveState.com> 528 529 * generic/tkTable.h: change 'char *new' -> 'char *newVal' to not 530 stump C++ compilers 531 5322000-10-19 Jeff Hobbs <jeff at hobbs org> 533 534 * tests/all.tcl: new file 535 * tests/tkTable.test: copied listbox.test in to serve as a base 536 for tests on the table widget. Conversion still needs to be done. 537 538 * generic/tkTableCmds.c: #if 0'd stub function Table_Cmd 539 540 * generic/tkTable.h: 541 * generic/tkTable.c: corrected headers, made TableConfigure static 542 5432000-08-30 Jeff Hobbs <hobbs@scriptics.com> 544 545 * generic/tkTable.h: 546 * generic/tkTableWin.c (EmbWinConfigure): 547 * generic/tkTableTag.c (Table_TagCmd): 548 * generic/tkTable.c (TableConfigure): changed -borderwidth to use 549 TK_CONFIG_CUSTOM functions for option parsing. 550 551 * win/makefile.vc: 552 * unix/Makefile.in: updated for added/removed source files 553 554 * generic/cmd.c (removed): 555 * generic/mm.h (removed): 556 * generic/tkTableUtil.c (new): moved the few used Cmd_* functions 557 into tkTableUtil.c (Cmd_Struct moved to tkTable.h), removing the 558 need for the other accessory files. 559 560 * unix/configure: 561 * unix/configure.in (uname check): added support for systems where 562 uname has no -p option (ie HP). 563 5642000-08-21 Jeff Hobbs <hobbs@scriptics.com> 565 566 * generic/tkTable.c (TableConfigure): added check for NULL 567 oldBorders during configure. 568 5692000-08-18 Jeff Hobbs <hobbs@scriptics.com> 570 571 * generic/tkTable.c: changed the -ipad* defaults to 0, to go along 572 with the -pad* defaults. For users looking for backwards 573 compatability with 2.5 padding, add: 574 option add *Table.ipadX 2 575 option add *Table.ipadY 1 576 Users will likely find that -pad* is more intuitive though. 577 **** POTENTIAL INCOMPATABILITY **** 578 579 * doc/tkTable.html: 580 * doc/tkTable.n: updated docs to reflect new -(i)pad* definitions 581 and enhanced -bd behavior. 582 583 * generic/tkTable.c (TableCursorEvent, TableConfigCursor): reduced 584 unnecessary redraws when the cursor was in a non-editable cell. 585 5862000-08-17 Jeff Hobbs <hobbs@scriptics.com> 587 588 * generic/tkTable.c: enhanced -borderwidth option to support 589 per-edge configuration of borderwith. -bd now takes a list of 590 pixel sizes, 1, 2 or 4 in length. 1 is traditional, 2 specifies 591 just the left and right border sizes (to emulate a multicolumn 592 listbox), and 4 specifies {left right top bottom} for ultimate 593 control. Tags may override the default. 594 Also redid the handling of -(i)pad[xy]. Swapped the basic meaning 595 (-pad* from v2.5 should now be -ipad* in 2.7). -pad* now enforces 596 absolute empty padding for cells, expanding the default size. 597 Embedded windows can override the -pad* value. See docs for more. 598 **** POTENTIAL INCOMPATABILITY **** 599 600 * generic/tkTable.h: removed use of INLINE, added new border style 601 support to structures. 602 603 * generic/tkTableCell.c (TableAtBorder): made it aware of the new 604 configurable border style. It bases its calculations off the 605 default border width(s). Also did lots of comment cleanup. 606 607 * generic/tkTableWin.c (EmbWinDisplay): changed interpretation of 608 -pad* for windows to be per side (instead of overall). This is 609 more intuitive. Added support of new border styles. 610 611 * generic/tkTableTag.c: Added new border style control per tag. 612 New TableGetTagBorders function to determine border values based 613 on input. Lots of comment/code cleanup. 614 615 * generic/tkTableEdit.c (Table_EditCmd): corrected code to ensure 616 that when rows where deleted, rows/cols would not fall below 1, 617 the minimum dimension size (otherwise "bad things" happen). 618 (Table_EditCmd): corrected problem when specifying a negative 619 count deleting more rows than exist before the specified index. 620 621 * unix/Makefile.in ($(DLL)): corrected ld build line to not use 622 SHLIB_CFLAGS, instead adding TK_LD_SEARCH_FLAGS. (virden) 623 6242000-08-10 Jeff Hobbs <hobbs@scriptics.com> 625 626 * unix/Makefile.in: cleaned up Makefile to correctly use the right 627 flags for building with stubs support. 628 629 * generic/version.h: bumped version to 2.7 630 631 * generic/tkTable.h: added ipadX, ipadY to table struct. 632 * generic/tkTable.c (TableConfigure): removed code setting 633 forceUpdate to 1 for any configure options. 634 (TableAdjustParams): added -ipdax/-ipday, giving them the meaning 635 that -pad* was extended to use in 2.6. -pad* are as they were in 636 2.5, and -ipad* does the extended cell padding for 2.7+. See docs 637 for details. 638 (TableEventProc): removed xexpose.count check that would delay 639 necessary invalidate calls. (Wangnick) 640 641 * library/tkTable.tcl: added ::tk::table::BackSpace proc instead 642 of inlined event binding, taking out \ at eol that confused the 643 tcl2c converter when inlining the tkTable.tcl.h runtime. 644 6452000-08-02 Jeff Hobbs <hobbs@scriptics.com> 646 647 2.6 RELEASE 648 649 * unix/Makefile.in: added bindist and cleanall targets, and 650 cleared up the use of some variables to allow for correct building 651 of the tktable library across platforms (including AIX). 652 The distclean target no longer removes the generated html doc. 653 * unix/configure: 654 * unix/configure.in: added check of available compression program 655 and SYSID for Unix make bindist target. Also cleaned up the use 656 of some other variables. 657 658 * generic/tkTable.c (TableConfigCursor, TableCursorEvent) 659 (TableFlashEvent, TableEventProc): 660 * generic/tkTableEdit.c (TableDeleteChars, TableInsertChars): 661 * generic/tkTableCmds.c (Table_CurvalueCmd): removed INV_FORCE 662 from TableRefresh call. This means more refreshes are delayed. 663 664 * generic/tkTable.c (BUILD_tkTable): corrected EXTERN def'n of 665 Init funcs. 666 6672000-08-01 Jeff Hobbs <hobbs@scriptics.com> 668 669 * library/tkTable.tcl: rewritten to use ::tk::table namespace 670 671 * generic/tkTable.h: added CONSTRAIN and BETWEEN macros to simply 672 some MIN/MAX cases. 673 * generic/tkTable.c: 674 * generic/tkTableCell.c: 675 * generic/tkTableCmds.c: updated to use CONSTRAIN/BETWEEN instead 676 of MIN(MAX()). 677 678 * generic/tkTable.c (TableRefresh): changed to not do anything 679 when coords < 0 are passed in (like asking to refresh non-existent 680 active cell). 681 (TableEventProc): added (likely redundant) check for xexpose.count 682 == 0 before redisplaying in Expose case. (Halpin) 683 684 * generic/tkTable.c (XFillRectangle): added compat XFillRectangle 685 to make up for lack of one in Tk8.1. (Nijtmans) 686 (TableAdjustParams): Made -padx and -pady actually work as 687 intended for each cell. This actually affects the default size 688 for a table, as more spacing is given to each cell by default. 689 Use -padx/y to control this. (Lennard, Hobbs) 690 (TableDisplay): removed extra call to TableCellCoords (leftover 691 from NO_SPANS). (Deich) 692 693 * generic/tkTableCmds.c (Table_SelSetCmd): Corrected the selection 694 of title cells when only title cells are available. (Brutti) 695 696 * library/tkTable.tcl (tkTableChangeWidth): changed -$a to 697 [expr {-$a}]. (Dubiner) 698 (tkTableBeginSelect): Changed behavior for extended selectmode to 699 select in the topleft title area when appropriate. (Dubiner) 700 (tkTableSelectAll): Changed behavior to select *all* cells 701 (including title cells) when -selecttitles is 1. 702 703 * demos/loadtable.tcl: corrected to search better in new directory 704 structure. 705 7062000-03-22 Jeff Hobbs <hobbs@scriptics.com> 707 708 * */*: complete restructure of tktable sources 709 * CHANGES.txt: moved to ChangeLog, will now use ChangeLog format 710 711########################################################################## 712## TkTable CHANGES 713## 714## Newest changes at the top of the file. 715## Release dates between "****"s. 716## 717## changes by Hobbs COPYRIGHT 1996-1997 Jeffrey Hobbs, CADIX International 718## changes by Hobbs COPYRIGHT 1998-2000 Jeffrey Hobbs 719## jeff at hobbs org 720## 721# * tkTable v0.55-1.x includes additions contributed by: 722# * tmoore@spatial.ca (Tom Moore) 723# * sebastian.wangnick@eurocontrol.de (Sebastian Wangnick) 724# * paulf@lamont.ldgo.columbia.edu 725# * peter@bj-ig.de (Peter Brueckner) 726# * jeff at hobbs org (Jeffrey Hobbs) 727# * ellson@lucent.com (John Ellson) 728## 729## Mac support provided by Chuck Houpt (choupt@als.com). (v2.3+) 730## 731########################################################################## 732 733**** v2.6alpha 29 February 2000 **** 734 735Fixed row/col insertion/deletion to correctly handle embedded windows. 736(fix in part by albrecht@DAnalyse.de) 737 738Added stubs support to makefile. 739 740Added support for safe init script (requires embedded runtime) to 741be used in safe interpreters. 742 743Fixed bug in Table_BorderCmd on passing the 6th arg (the optional 744row|col). (rickm@vsl.com) 745 746Added -holdselection arg to row/col insert/delete. (Paolo.Brutti@tlsoft.it) 747 748Added -DNO_SORT_CELLS ... 749 750Created tkTableCellSort.c with cell sorting routines. Redid ... 751 752Fixed bug in tk_tableCut due to change in curselection syntax. 753 754Fixed missing comma in tkTableEdit.c:32 (Brutti) 755 756**** v2.5 31 May 1999 **** 757 758Fixed row/col insertion/deletion to move embedded windows, added 759-holdwindows option and Table_Win(Delete|Move). 760 761Removed -rows/-cols switch to insert/delete row/col, as it could 762cause very odd behavioral problems. 763 764Removed ckfree/ckalloc's between a quick delete/init of a hash table. 765 766Upgraded ExpandPercents for UTF awareness. 767 768Changed "tag cell|row|col" to complain when the tag is unknown. 769 770Fixed bug in UTF char length handling (actually due to change in 771the Tk API from 8.1beta to final) for active cell. 772 773fixed bug where scanMark* weren't properly initialized. 774 775Changed icursor method to always return an int, being -1 if there 776really isn't a valid cursor in the active cell (ie - it's disabled). 777 778Converted table widget to mostly Tcl_Obj in/output. 779Reorganized a lot of code in the process. 780 781**** v2.4 10 December 1998 **** 782 783Changed exit handler to not be used (unless -DUSE_EXIT_HANDLER is specified). 784 785Changed distribution directory name to go with new 'make distrib'. 786 787Changed TableUndisplay to properly handle unmapping embedded windows 788in title areas. Added TableTrueCell for this. 789 790Changed EmbWinUnmapNow to always call Tk_UnmapWindow. 791 792Changed cell border drawing so that any 1-pixel border would use the 793fast drawing mode (except for when single drawmode is set). 794 795Changed borderWidth to be a tag-definable value. 796 797Removed used of borderWidth in border resize cmd calculations. 798 799Modified various C and Tcl procs to support spanning cells. 800 801Changed ckfree(value) to Tcl_Free(value) in TableFetchSelection. 802 803Streamlined use of NO_XSETCLIP, improved boundary checking for 804determining whether the cell needs clipping at all. 805 806Fixed bug in drawing with NO_XSETCLIP to copy the area from the source 807window to the clip window, draw on it, then copy it back. Before the 808clip window was drawn on clean, losing what might be important stuff in 809the source (like an image). 810 811Added row/col spanning. This involved a lot of code changes, mostly 812in tkTableCell.c, mostly #ifndef'ed with NO_SPANS. See docs for behavior. 813Added 'spans' and 'hidden' command. 814 815Fixed bug in TableAtBorder that was messing up certain border cases. 816 817Added delta error of 1 pixel to the B1-Motion routine, so that the mouse 818must move more than a pixel for the tkTableMotion routine to kick in. 819 820Fixed tkTableBeginToggle to handle Control-B1 properly. (rickm@vsl.com) 821 822Fixed seg fault in Table_BorderCmd when called with too few args 823(reported by rbansal@ltcm.com). 824 825Added TableGeometryRequest to TableModifyRC to update a table's 826geometry according to the new row/col size. 827 828Fixed EmbWinDelete to clean up properly (it wouldn't clean up if there 829wasn't a window associated with the tag). 830 831Removed unused type arg from TableModifyRCaux. 832 833Fixed EmbWinRemove to actually remove all info about the window from 834the table (as advertised). 835 *** BEHAVIORAL CHANGE *** 836 837Fixed "window delete ..." to actually delete the window entry. 838 839Fixed flashing so that it will flash if any valid data source is 840being used (before only the Tcl array source caused flashes). 841 842Removed deprecated 'flush' command. [.t flush ...] is equivalent 843to [.t clear cache ...]. 844 845Improved TableUndisplay to really work within the proper seen 846constraints. (rickm@vsl.com) 847 848Removed dependency on source for Windows (only for the XSync call). 849Should now be able to compile against a binary installed version of wish. 850 851Use of EXTERN and EXPORT reworked to follow 8.0.3 guidelines. EXPORT 852was dropped, meaning that compiling for older versions of the Borland 853compiler is not possible. 854 855Changed use of "$*.h" in Makefile.in to "$@" - some makes seemed to 856choke on the proper interpretation of $* (notably HP-UX). 857 858Added "-fg SELECT_FG" to the default sel tag definition. 859 860Swapped proto define of Tcl_DStringAppendAll with actual header. 861 862Fixed #endif SPANS syntax error in Makefile. 863 864Changed #define CELL from (ROW|COL) to it's own significant bit (this 865is used by TableRefresh). 866 867Added -sparsearray option to allow the user to choose whether the 868table treats associated arrays as "sparse", deleting the empty 869elements (default), or whether every element set is kept. 870 871Fixed demos/spreadsheet.tcl to start column labeling with "A". 872 873Changed Tcl_StaticPackage call in tkAppInit.c to include 874SafeInit function. 875 876Added "empty" bindings to tkTable.tcl to prevent the magic Alt-"menu" 877bindings from inserting chars into the table as well. 878 879**** v2.3 23 July 1998 **** 880 881Moved the 'set' command into tkTableCell.c and extended it to 882understand full row/col setting with Tcl lists. 883 884Created tkTableInitScript.h to mirror the spirit of tclInitScript.h. 885The user can now define a tkTableInit to be eval'ed at load time 886that finds the appropriate tkTable.tcl file. Also added env support 887for these locations. 888 889Changed version.in to version.h, a file that is both readable in C 890(for the Mac build) and by make (for Unix/Windows). 891 892Changed TableDisplay #ifdef's to be more specific (NO_XSETCLIP). 893Expecting XSetClipRectangles to be available in Tk8.0.3 for Win, 894and maybe also in the future for Mac. 895 896Attempted row/col spanning with limited success. Half functional 897code left in for reference, delimited by #ifdef SPANS/#endif. 898 899Changed TableCellCoords to no longer do bounds checking on row/col. 900 901Changed several more instances of TableCellCoords/TableInvalidate 902to TableRefresh. 903 904Fixed bug in table insertion/deletion concerning the calculation of 905the minkey (minimum valid row/col to insert/delete) when titles were 906allowed to be moved. 907 908Mac support courtesy Chuck Houpt (choupt@als.com). 909 910**** v2.2 10 July 1998 **** 911 912Undid caching of activeLayout in favor of activeTagPtr because I was 913abusing the nature of the token returned by Tk_ComputeTextLayout, 914causing amazingly odd cores. 915 916Changed TableGetLastCell definition to fix scrollbar bug. (Brutti) 917 918Changed "#if (TK_MINOR_VERSION > 0)" to "#ifdef TCL_UTF_MAX" to 919remove the ambiguity of purpose (for UTF code). 920 921Fixed bug in TableInsertChars that mangled the purpose of -autoclear, 922as well as confusing icursor index when using it. 923 924**** v2.1 2 July 1998 **** 925 926Updated man pages, generated new HTML file. 927 928Reworked directory structure, updated makefiles. 929 930Removed -batchmode. It was pretty useless, and potentially confusing. 931 **** POTENTIAL INCOMPATIBILITY **** 932 933Fixed bug for Tk8.1a2 Unicode display in TableDisplay where the length 934of the display string was not calculated correctly. 935 936Fixed background area redraw bug in Windows. Reworked to take out the 937#ifdef WIN32 code without too much compromise. 938 939Added TableRefresh command that subsumes many CellVCoords/Invalidate 940call combos. 941 942Adjusted TableWhatCell to what it was in v1.82, and made fix in 943TableDisplay for bounds to prevent <=0 invalidWidth|Height. 944 945Added clear command, subsumes flush command, plus adds features. 946 947Made some cleanup from DestroyNotify repetitive in TableDestroy. 948 949Added MapNotify event handler to ensure that changes to the table 950made when iconified will still cause an update. 951 952Changed "single" and "fast" drawmodes to not set -bd 1 as a side 953effect, but instead to force 0..1 to allow for fast drawing without 954any borders. Skipped border drawing case statement when -bd is 0. 955 956Changed "tag cell ..." to only invalidate for redraw when the affected 957cell is visible. 958 959Added check for NULL tablePtr->tkwin in TableCellVCoords. Could 960cause problems where it was used to replace TableCellCoords. 961 962Fixed bug in TableFetchSelection that truncated the string returned 963by -selectioncommand to the length of the original string. Also 964fixed mem leak (didn't free all DStrings in an error), and changed 965it so that a background error is triggered if there is a problem 966with the -selectioncommand. 967 968Fixed bug in TableDisplay where last row, if one pixel hi, wouldn't 969get redrawn properly. 970 971Changed default fonts to those used for entry widgets. 972 **** POTENTIAL INCOMPATIBILITY **** 973 974Added UTF char (Unicode) support, based on 8.1a2 tkEntry.c. Had 975to be conditionalized because it doesn't exist in 8.0. 976 977Added -multiline option for tags to allow old one-line text only, 978Reworked tag options so that tag values that aren't ever set won't 979affect other tags. 980 981Fixed seg fault bug in CMD_ACTIVATE when Tk_PointToChar could be called 982on double-click, but TableDisplay hadn't yet been called (because it is 983waiting for idle) which is required to set tablePtr->activeLayout 984properly. Also fixed mem leak with old activeLayout not being freed when 985it changed. 986 987Speed improvement - changed from using Tk_GetGC/Tk_FreeGC to XCreateGc/ 988XChangeGC/XFreeGC. Since it was highly unlikely that the caching 989provided in the Tk routines would ever benefit us, moving to direct 990X calls and manipulating just one GC should be faster. 991 992**** v2.00 24 April 1998 **** 993 994Update man pages, generated new HTML version. 995 996Added "single" drawing mode, and made "single" and "fast" both set 997-borderwidth to 1 as a side effect. 998 999Fixed seg fault on Windows involving large numbers of rows. Unsure 1000exactly what fixed it, but the problem disappeared amidst all the 1001changes since v1.82... 1002 1003Updated tkAppInit.c to Tk8.1 version. 1004 1005Added ifdef for Win32 default colors. 1006 1007Since we can now have multi-line cells, changed -rowheight and height 1008to work the same as -colwidth and width did (+ nums for size in line, 1009- for sizes in pixels). 1010 **** POTENTIAL INCOMPATIBILITY **** 1011 1012Added new "make static" option for making a static library. 1013 1014Reworked scrollbar calcs again based on pixels. Fixes all funny off by 1015half a cell problems. Also prevents scrolling when only title areas are 1016visible (those are, by design, not scrollable). 1017 1018Changed stretching to stretch the last row/col for any stretchmode but 1019"none", to prevent empty space from appearing. 1020 1021Fixed interpretation of CellVCoords to return 1 on slightly visible 1022cells (now only a 1 pixel square size is required to be considered 1023visible - used to be 1/4 the desired cell size). 1024 1025Added support to allow the second click into the active cell to select 1026the nearest character. 1027 1028Changed <Return> binding to work with multi-line cells. 1029 **** POTENTIAL INCOMPATIBILITY **** 1030 1031*** Undid 60.06.98 - bad fix 1032Fixed bug in TableWhatCell that caused the returned cell to be one more 1033than expected when the edge was passed in. 1034*** 1035 1036Made TableVarProc not cause an Invalidate call if it was 1037triggered by SetActiveIndex. 1038 1039Changed around some function names for sense of modularity (preparing 1040better C API). 1041 1042Commented all procedures in tkTable.c. 1043 1044Broke up tkTable.c into constituent files. 1045 1046Added support for embedded windows via "window" submethod. 1047 1048Fixed quirk in xscrollbar that would make it appear as it all was 1049in view when the last column was only partially visible. (Brutti) 1050 1051Changed several CellCoord calls to CellVCoord calls to only invalidate 1052if necessary. 1053 1054Reworked merging of tags and determination of active cell. State 1055disabled cells no longer receive the "active" look, although they 1056are still indexed as active. 1057 1058New -selecttitles option, removed prohibition of selecting title areas. 1059 **** POTENTIAL INCOMPATIBILITY **** 1060 1061Removed all KANJI, IMP and TK4 #ifdef code. tkTable development now 1062focused 100% on Tk8+. Also removed Itcl stuff since itcl for Tcl8 1063should be different. 1064 **** INCOMPATIBILITY FOR TK4/KANJI/ITCL USERS **** 1065 1066**** v1.82 3 April 1998 **** 1067 1068Update man pages, generated new HTML version. 1069 1070Fixed bug in row start location calculation, reorg'ed some code 1071for row stretch fill mode. 1072 1073Simplified caching of col tags for display. 1074 1075Changed code that referenced interp->result to use accessor functions. 1076 1077Fixed problem where flat reliefs would be eliminated because they 1078were assumed to be undefined (TK_RELIEF_FLAT changed in Tk8.1). 1079 1080Added -bordercursor and -resizeborders option, added PointerMotionMask 1081to event handler, moving the tkTableCheckBorder event into C. Should 1082be much more efficient. 1083 **** POTENTIAL INCOMPATIBILITY **** 1084 1085Changed "$(COMPILE.c)" to "$(CC) $(CFLAGS) $(CPPFLAGS) -c" in Makefile.in. 1086Should be equivalent, but some make's don't understand. 1087 1088Change border dragging routines for column to support pixel movement. 1089 1090Fixed problem with column widths and row heights being shifted improperly 1091during row/col deletion (didn't account for - row/col offset). 1092 1093Updated tkTable.itcl to same versions as tkTable.tcl (ignored over 1094several revisions). 1095 1096Fixed binding bug in tkTable.tcl for <Control-(Left|Right)>. (Becker) 1097 1098changed TableModifyRC to be more selective about what is invalidated 1099for redraw. (Brutti) 1100 1101made 'title' tag have -state disabled by default (an oversight from 1102the addition of -state tag option in 1.80). 1103 1104**** v1.81 March 20 1998 **** 1105 1106added support for exact pixel dimensions for column width by using 1107negative numbers, also supported in -colwidth. Changed width|height 1108to support 'default' key instead of assuming negative number means default. 1109 **** POTENTIAL INCOMPATIBILITY **** 1110 1111added -state tag option (cheap hack, must be improved). 1112 1113changed handling of -state table option. (Ellson) 1114 1115added -invertselected option. (Brutti) 1116 1117added FocusOut binding to commit cell on FocusOut events. 1118 1119made the cell commit changes anytime "activate" is called, regardless 1120of whether the active cell was moved or not. 1121 1122"tag cell|col|row|includes tagName" no longer return an error if the tag name 1123is unknown (just returns empty string, or 0 for "includes"). Only "tag cget" 1124complains about unknown tag names. 1125 **** POTENTIAL INCOMPATIBILITY **** 1126 1127Improved makefiles. (patches courtesy Dukhovni) 1128 1129Fixed bug in tkTable.itcl (improperly handled backslash). 1130 1131Fix for 8.0 w/ plus/dash patch (Ellson). 1132 1133Fixed minor -Wall complaints. 1134 1135Changed the way row/col tags were determined to be on a cell. (JMH) 1136 1137Made title tag have lower priority than a cell tag. 1138 1139Fixed bug where the last table row/col would be deleted when table -state was 1140disabled (should be a no op). 1141 1142**** v1.8 May 28 1997 **** (changes hobbs) 1143 1144Moved the instantiation of the tk*Uid variables from the DLLEntryPoint 1145into the *Init functions for those not compiling this as a DLL. 1146 1147Fixed bug where "active" index for an array might not update properly after 1148the table changes arrays if the previous array's cell had the same value 1149for the active cell. 1150 1151Updated Windows makefile.vc (still far from perfect). 1152 1153Fixed calculation error where WhatCell would look for the bottomright 1154cell a few pixels off (didn't account for highlightWidth). 1155 1156Fixed numerous places where cells weren't being invalidated (to be 1157redrawn) but should have been. 1158 1159Fixed bug in curvalue that didn't mark the active text as changed which 1160would cause editions to be lost when the active cell changed. 1161 1162Changed default font for Tk8 from "Helvetica 12" to just "Helvetica" because 1163the 12 was a tweaking large font on my Sol2.5 machine. 1164 1165Renamed -width to -colwidth and -height to -rowheight, replaced with 1166different interpretation such that -width, -height set the viewable 1167# of cols, rows (a la listbox or text widget). 1168 **** POTENTIAL INCOMPATIBILITY **** 1169 1170Made default title foreground white for better readability. 1171 1172Fixed INF/divide by zero possible error for scrollbars when no editable 1173cells are in view. Possible funky behavior still exists when no editable 1174cells are available (for selection). 1175 1176Fixed possible access violation where TableInvalidate would be called 1177after the tkwin had been destroyed. 1178 1179Enhancement ideas from Pawel Gorazda <pawel.gorazda@solidex.com.pl>: 1180 * Added TCL_DEFS to TCL_CFLAGS in Makefile.in 1181 * Make "tag cell tagName" list cells for the special tags 1182 * new "tag includes" method for finding if a cell has a specific tag 1183 * changed selection to not change selection (do nothing) when 1184 the user clicks on a title cell 1185 **** BEHAVIORAL CHANGE **** 1186 1187Fixed missing 'q' in tkTable.itcl 1188 1189Fixed interaction with -command to only blow up when an error occurs, 1190not for return/break/ok. 1191 1192Changed tkTableCheckBorder to use crosshair instead of fleur because of 1193complaint of lack of fleur cursor on WinNT. 1194 1195Added internal caching with -cache option and flush method for speed 1196improvements. 1197 1198Changed "sel clear all" to use old iterated method of clearing selection 1199for people who use "sel clear all" in Motion events and such. 1200 1201**** v1.7 Apr 11 1997 **** (changes hobbs) 1202 1203Changed instances of clearing selection to delete and reinit the 1204sel hash table instead of going through each entry. 1205 1206Updated docs and added demo and basic spreadsheet class for [incr Tcl]. 1207 1208Changed default selectmode to browse, same as listbox. 1209 **** POTENTIAL INCOMPATIBLITY **** 1210 1211Added forceUpdate arg to TableConfigure to make sure that necessary 1212parameters will be adjusted at instantiation. 1213 1214Changed TableSetCellValue to *unset* empty valued indices instead of 1215setting them to "". 1216 1217Introduced support for row/col insertion/deletion with numerous options. 1218 1219Fixed geometry bug that didn't account for highlightWidth in GeometryRequest. 1220 1221Added selecttype option to alter the way selection is handled. 1222 1223Added padx and pady configuration options. 1224 1225Some changes to Makefile.in to get better behavior out of it. 1226 1227Changed "see" to ensure cell is fully visible by adding param to 1228TableCellVCoords. 1229 1230Added support for [incr Tcl] (tested against v2.2). 1231 1232Fixed TableGetIndex to properly account for row/colOffset > 0. Also 1233adjusted constraining of user index in TableGetIndex. 1234 1235**** v1.6 Feb 7 1997 **** (changes hobbs) 1236 1237Fixed x && y offset bug for SLOW drawmode (reported by Michael Johnson). 1238 1239Now whenever you move from a cell where an edit has occured, it will 1240save that edition. You can always use <Escape> (reread) to get the 1241old value back before you move the cell. 1242 **** BEHAVIORAL CHANGE **** 1243 1244Fixed the bug where inserting characters with autoclear off didn't set 1245TEXT_CHANGED properly, so you could move without a cell registering the 1246change (reported by Eric Dolce). 1247 1248**** v1.5 Feb 6 1997 **** (changes hobbs) 1249 1250Fixed xview/yview scroll page/units problems. 1251 1252Fixed TableConfigure error return problems. 1253 1254Fixed font display problem for Tk8 (stupid reference error). 1255 1256Fixed "set" && "curselection" to understand need for command OR array 1257existence. 1258 1259Fixed conceptual bug in -command %-substitution - there was no way to 1260get the write value! Redefined %s/S value for -command. 1261 **** POTENTIAL INCOMPATIBLITY **** 1262 1263Fixed bug in "see" method reported by PHIL SMITH <pjsmith@netins.net>. 1264It did the opposite of what it should, caused by the change from 1265TableCellHidden to TableCellVCoords. 1266 1267Optimized TableDisplay. offsetX, offsetY were useless because they were 1268always subtracted from x && y (so why not do it once... doh!). 1269 1270Removed CheckTagCmd and inlined some code. This optimizes certain things 1271(there was no reason to cache row tags, just move the lookup code!). 1272 1273changed TableSetCellValue to not use GetVar, thus a write always occurs, 1274even if the value is the same. This prevents a read trace from triggering, 1275but now a write trace will always trigger. 1276 1277**** v1.4 Feb 2 1997 **** (changes hobbs) 1278 1279Changed default unix font to medium weight (from bold). 1280 1281Updated "bbox" method to allow range. 1282 1283Added auto-resizable border code with new "border" method, TableAtBorder 1284function and new Table bindings. 1285 1286Changed TableCellHidden to TableCellVCoords & extended it. Now understands 1287highlightWidth variation and clips area to actual visible coords. 1288 1289Added code in TableConfigure to prevent spurious redisplays of the 1290entire table for any config request. 1291 1292fixed index bug where "ROW,COL<extrajunk>" translated to "ROW,COL" and 1293a couple other similar interpretive bugs. 1294 1295fixed potential segfault in unsetting "active" element of attached array. 1296 1297changed min()/max() to MIN()/MAX() - avoids Windoze warning. 1298 1299changed textCurPosn to icursor. 1300 1301greatly simplified KANJI interoperability by making activeBuf a regular 1302char *, changing a few interfaces, and some other stuff. This reduced 1303the number of KANJI #ifdef's significantly. 1304 1305added -command and -usecommand options. 1306 1307**** v1.3 Jan 28 1997 **** (changes hobbs) 1308 1309Included precompiled Win95/Tk8.0a2 DLL. 1310 1311Fixed several compiler warning problems. 1312 1313Moved header code to its own header file. 1314 1315Fixed some potential mem leaks. 1316 1317Added Windows support. HACK ALERT! Without an XSetClipRectangles, an 1318extra Drawable is used for WIN32. There may be a better way to do this. 1319If so, make me a patch. 1320 1321Data struct / Cmd name changes to avoid any conflict when compiling older 1322version of Table with newer version in same executable. 1323 1324Added -image option to tags. 1325 1326Removed NO_TOP_LEFT ifdef'ed code. Topleft should be showing. 1327 1328**** v1.2 Jan 18 1997 **** (changes hobbs) 1329 1330Updated man page and HTML help page. 1331 1332Added TableCellSort to sort a row,col properly. 1333 1334Added arg for curvalue method to set the current active buffer. 1335 1336Added validation mechanism, validate method and -validate, -validatecommand 1337options. See docs for details. 1338 1339Added "active" key element to traced Tcl array for table. This holds 1340the activeBuf value of the table. 1341 1342Change arrayVar configuration in TableConfigure to only trigger if 1343the arrayVar actually changed. 1344 1345Moved inserting/deleting in active cell to separate functions and 1346bullet-proofed the code. 1347 1348Removed TableFlashConfigure. Not used since "flash" became permanent tag. 1349 1350Changed TableSetCellValue to only set the variable if the value 1351has changed. This will prevent spurious flashing. 1352 1353Removed Roland King's COPYRIGHT, replaced with acknowledgements. 1354This code represents a 90% rewrite of his original code. 1355 1356Added -O as default CFLAGS in Makefile.in, along with HP cc note. 1357 1358Fixed bug with cursor at position 0 for KANJI (appears to be a bug 1359in TkWSTextExtents). 1360 1361Get/Set variable overhaul to ensure that everything works correctly 1362for KANJI support (without compile warnings). 1363 1364Changed TableBufLengthen to a #define which uses ckrealloc. 1365 1366Removed -rowfirstmode and its use in code. It actually didn't work for 1367many functions and indices would be incorrectly returned. 1368 **** POTENTIAL INCOMPATIBLITY **** 1369 1370Fixed handling of arrayVar to accept vars with funny chars (including spaces). 1371 1372Added "see active" to tkTableMoveCell. 1373 1374Changed calculation of hidden cell to require at least 3/4 of 1375the cell to be off the screen. 1376 1377Cleaned up, optimized lots of code. Cleaned up some memory leaks. 1378 1379Removed undocumented "setlist" functionality - it was never used 1380and I deemed it extraneous. 1381 1382Numerous name changes in tkTable.tcl (conforming to standards). Also 1383added full row/col selection capability && cut/copy/paste functionality. 1384 **** POTENTIAL INCOMPATIBLITY **** 1385 1386Changed ".table get ..." to return items in the same way as that 1387of listbox (only affects handling of spaced values being returned). 1388 **** POTENTIAL INCOMPATIBLITY **** 1389 1390Changed Table_GetIndex to TableGetIndex (it was the only _ func). 1391 1392Optimized calling of TableAdjustParams in [xy]view and scan dragto 1393as well as TAP code. 1394 1395Removed useless selectionOn C var and "select" index. 1396 **** POTENTIAL INCOMPATIBLITY **** 1397 1398Changed the [xy]scrollcmd to receive Tk4+ style args (2 doubles 1399instead of 4 ints). 1400 1401Fixed problems with [xy]view and scan. Might not be perfect yet. 1402Removed boundary command as it reiterates [yx]view and index, 1403added "bottomright" special index. Change of code example: 1404 .table bound bottom => .table index bottomright row|col 1405 **** POTENTIAL INCOMPATIBLITY **** 1406 1407Fixed problem with cursor not disappearing on focus out. 1408 1409Added -browsecommand option for monitoring active cell movement. 1410 1411Added selection handler and -rowseparator, -colseparator, 1412-selectioncommand, -exportselection options. 1413 1414Fixed problem with changing var to a simple variable. 1415 1416Fixed problems with compiling for KANJI, now seems to work again. 1417 1418Fixed highlight border bug. (bruecker) 1419 1420Fixed typo that prevented IMP from working. 1421 1422**** v1.1 Dec 30 1996 **** (changes hobbs) 1423 1424Updated code to handle Tk8 font mechanism. Now works with Tk8. 1425 1426Added Tktable_SafeInit procedure so it could be loaded into a safe 1427interpreter. 1428 1429Integrated Bruecker's (peter@bj-ig.de) changes to 0.63: 1430 - Moved IMP-Code to one place, needs testing. 1431 - Some changes to TableCreate and TableDestroy: 1432 Hashtables ever needed are created in Create 1433 so no tests in configure and later needed. 1434 - Removed GcCache (will be placed in TableDisplay) 1435 - Repaired Focus-Code little bug remains in the right 1436 and bottom of HL-Frame. 1437 1438Updated README to reflect file name changes. 1439 1440Changed tkAppInit.c to reflect tk4.2 appinit. 1441 1442Changed Makefile.in to support get X_INCLUDES right. 1443 1444**** v1.0 Dec 19 1996 **** (changes hobbs) 1445 1446BUMPED VERSION TO 1.0 for initial (re)release. 1447 1448Updated man pages, in particular documenting bindings. 1449 1450Updated tkTable.tcl to use origin where appropriate. 1451 1452Added origin index. 1453 1454Added extra arg to insert/delete to specify what is really being 1455inserted/deleted to/from. 1456 1457Corrected insert/delete/icursor to not do edit the active cell if 1458it has not been set yet. 1459 1460Fixed TableScanTo. 1461 1462Enabled the display of the topleft title cells. 1463 1464Fixed cursor constraint for oversized fonts in a row. 1465 1466**** v0.63 Dec 18 96 **** (changes hobbs) 1467 1468Removed TableSetCell from tkTable.tcl, rearranged bindings as well. 1469 1470Rewrote checkTagCmd, fixed spurious return values. 1471 1472Reordered trigger path for Table_GetIndex. 1473 1474Fixed see to not be forceful, but to only move if necessary, and to 1475use the +1,+1 offset from topleft (more like centering). 1476 1477Added topleft index. 1478 1479ellson patch: 1480 Fixed package require in Makefile.in and demo files 1481 Moved Table_GetIndex to avoid implicit declaration warning. 1482 1483Changed how "anchor" was indexed internally. 1484 1485Fixed cursor showing in an active cell of width 0. 1486 1487Removed check for bounds in SEL_CLEAR (SEL_SET did it for us). 1488 1489**** v0.62 Dec 18 96 **** (changes hobbs) 1490 1491Updated man pages. 1492 1493Removed "#ifdef KANJI0" code (it was useless). 1494 1495Added in use of the active tag (it was previously ignored). 1496 1497Removed restriction on see method that kept the active cell in the view. 1498 1499Changed xview/yview/scan methods to not adjust selRow/Col. 1500 1501Changed code to use active cell as active, rather then sel cell. 1502 1503Made "flash" tag have higher display priority than "sel". 1504 1505Added pattern match support for "tag names". 1506 1507Added "tag exists" and "tag cget" submethods. 1508 1509Changed "tag celltag" to use Table_GetIndex instead of sscanf 1510 1511**** v0.61 patch Dec 14 96 **** (ellson@lucent.com) 1512 1513Change "tag celltag" to use index form of cell address,"x,y" instead of list 1514form "{x y}" 1515 1516Add back support for zero width columns and zero height rows. 1517 1518Added installation of tkTable.tcl in 1519 [lindex $tcl_pkgPath 0]/Tktable/tkTable.tcl 1520(0.61 was using the built-in copy of tkTable.tcl so the lack of 1521installation wasn't noticed. Perhaps we don't need the built-in 1522version???) I put the runtime script in this directory to make it 1523trivial to generate binary distributions of the widget consisting of 1524a single Tktable directory that is just dropped into lib/. 1525 1526Added a make target for tablewish (not normally needed with dynamic loading 1527but sometimes handy for debugging) 1528 1529Corrected package name (Wasn't loading from tkcon Interp->Packages menu. 1530Package name should start with capital letter to match Init entry point.) 1531 1532Added configure code to automatically discover --prefix from existing 1533tclsh installation. Installation is now simply: 1534 ./configure 1535 make install 1536 1537**** v0.61 Dec 13 96 **** (all changes jhobbs except noted) 1538 1539Updated, corrected, expanded man pages. 1540 1541Updated internal code comments, fixed result strings. 1542 1543Fixed see problem (reported by Jean-Paul). 1544 1545Removed getwidth && getheight and rewrote width && height to be more 1546flexible and subsume the previous methods. 1547 1548Changed flashtime to really be a number representing 1/4 sec and 1549changed the default to 3 (750ms). Added "flash" as a permanent tag 1550(like "title", "active", and "sel"). Added options: 1551 -flashmode 1552 -flashtime 1553 1554Changed "Title" tag to "title". Why cap it? 1555 1556Reformatted most code to fit in 80 cols. 1557 1558Fixed activate index offset bug. 1559 1560Changed -*title options to -title*. The original version was too 1561misleading as to its purpose. 1562 1563Added fixes from ellson@lucent.com. 1564 test.tcl updates 1565 SIGSEV bug from improper argc count 1566 1567Added some changes from peter@bj-ig.de. 1568 New stretch modes LAST && FILL 1569 Highlight/Focus fixes 1570 More options instead of methods 1571 1572Improved curselection code. 1573 1574added the following options: 1575 -autoclear replaces editmode method 1576 -state replaces editmode method 1577 -insert* from Tk entry, manipulate cursor style 1578 -batchmode replaces batch method 1579 1580Changed the dynamic load path for tkTable.tcl from 1581"$tk_library/tkTable/tkTable.tcl" to "$tk_library/tkTable.tcl". 1582 1583**** v0.60 Dec 10 96 **** (all changes jhobbs) 1584OPTIONS: 1585 1586Altered man pages to properly reflect what options are handled (there 1587were numerous extra, plus many missing). 1588 1589changed -procrowtag => -rowtagcommand 1590changed -proccoltag => -coltagcommand 1591 1592Added -bd synonym 1593 1594Fixed all internal coding for readability, concise representation 1595 1596changed -cursorbg => -insertbackground 1597 1598METHODS: 1599 1600Fixed lack of break in CMD_*STRETCH 1601 1602removed whatcell: code change: 1603 .table whatcell x y => .table index @x,y 1604 1605removed whereis, changed to bbox: code change: 1606 .table whereis row col => .table bbox <index> 1607This needs to be improved to take multiple indices. 1608 1609removed toprow && leftcol, added boundary: code change: 1610 .table leftcol|toprow|bottomrow|rightcol ?rowOrCol? 1611 => 1612 .table boundary left|right|top|bottom ?rowOrCol? 1613rowOrCol can only be specified for top|left, as appropriate (though 1614a bug in the code didn't check properly). 1615 1616removed [rc]index: code change: 1617 .table [rc]index <index> => .table index <index> row|col 1618 1619changed get so (1) it works and (2) it returns values more like the 1620listbox command 1621 1622removed setcell. This has been subsumed by the improved selection method. 1623code likeness: 1624 .table setcell => .table index select 1625 OR => .table curselection 1626 .table setcell 4 2 => .table selection set 4,2 1627The "index select" is there for 100% compatibility, but curselection is 1628what should be used to properly represent all selected cells. 1629 1630MISC: 1631 1632fixed parse_command to handle full non-ambiguous method names 1633 1634updated man pages to include all methods/options in Tk4 style. 1635 1636reordered a lot of code to be in "alphabetical" order. 1637 1638**** v0.56 Nov 96 **** 1639 - merged changes from tkSpread from Jeffrey Hobbs <hobbs> 1640 - added support for Japanization patch 1641 - added multi-node select support 1642 - removed -underline option for tags 1643 - included default bindings in loadable library 1644 1645**** v0.5 Oct 96 **** 1646 - merged changes from Peter Brueckner <peter@peter.bj-ig.de> 1647 - takefocus 1648 - highlight border 1649 - "gcc -Wall -pedantic" cleanup 1650 - updated for tcl7.6/tk4.2 1651 - autoconf 1652 - only one c-file 1653 1654**** v0.4p8 **** 1655 - added patch from wangnick@orthogon.de to make tkTable accept -rows 0 1656 - added patch from tmoore@pnfi.forestry.ca for handling of bad 1657 array indexes 1658 - added patch from tmoore@pnfi.forestry.ca to add rowTagProc and 1659 colTagProc 1660 - added patch from ellson@lucent.com to support cget so that 1661 tkTable can be used with the dragdrop extension by 1662 fellowsd@cs.man.ac.uk (Donal K. Fellows). 1663 1664version 0.3 --> version 0.4 1665--------------------------- 1666tk4.1 and tk4.0 compatability (ellson@lucent.com) 1667 - dynamically loadable library (SunOS 4.1.3 only so far) 1668 - changed BISQUE to GRAY 1669 - statically included TableInit.tcl into dynamic library 1670 - fixed various compiler warnings 1671 (now none with tk4.1, but still one with tk4.0) 1672 - upgraded tkAppInit.c 1673 - changed a few names: library: libtktable.so.0.4 1674 entry point: Tktable_Init 1675 extended wish: tablewish 1676 1677version 0.2 --> version 0.3 1678--------------------------- 1679Upgraded to tk4.0 (Paul Friberg) 1680 1681version 0.1 --> version 0.2 1682--------------------------- 1683Changed the tag code to apply the effects of multiple tags to a cell. 1684 1685Fixed a bug with the flash code which forgot to delete the flash when 1686a table was deleted 1687 1688Fixed a bug which meant that row, column and cell tag changes didn't 1689update to the screen immediately when there was a row or column offset. 1690 1691Fixed the anchor code which was adding/subtracting a pixel from the 1692string in certain circumstances 1693 1694Fixed a cursor movement bug which caused the same cell to appear twice 1695when the cursor was moved 1696 1697Thanks particularly to Lou Salkind for pointing out some of the above 1698and suggesting fixes. 1699 1700 1701