236 lines
7.4 KiB
Plaintext
236 lines
7.4 KiB
Plaintext
$Id: Release-8.0.0.txt,v 1.1 2000/10/10 21:02:26 idiscovery Exp $
|
|
|
|
============
|
|
BUILDING TIX
|
|
============
|
|
1. You must have a recent source distribution of Tcl/Tk installed (we
|
|
have tested with 8.0.4 and 8.0.5).
|
|
|
|
2. For Unix, You should be able to change to unix/tk8.0; then,
|
|
configure and compile with:
|
|
./configure
|
|
make > make.log 2 > make.errs
|
|
|
|
Before running "make", you can edit the Makefile and change the -O
|
|
compile option to -O2 for slightly better performance with gcc/egcs.
|
|
|
|
You may find the configure options --prefix, --with-tcl, --with-tk
|
|
etc. useful. For example, I have a copy of the egcs compiler
|
|
installed as /d2a/exper/bin/gcc, the tcl8.0.4 and tk8.0.4 source
|
|
distributions at /d2a/src/tcl-tk/tcl8.0.4 and
|
|
/d2a/src/tcl-tk/tk8.0.4 respectively, and prefer to install Tix to
|
|
/d2a/exper, so I use something like this:
|
|
|
|
env PATH=/d2a/exper/bin:$PATH ./configure \
|
|
--prefix=/d2a/exper --enable-gcc --enable-shared \
|
|
--with-tcl=/d2a/src/tcl-tk/tcl8.0.4 \
|
|
--with-tk=/d2a/src/tcl-tk/tk8.0.4
|
|
|
|
[If you reassign the PATH variable like this, remember to do the
|
|
same thing with all the "make" commands as well.]
|
|
|
|
If the compile failed for some reason, you can look at the files
|
|
make.errs and make.log for clues.
|
|
|
|
3. If the compile is successful, you should now be able to run it:
|
|
./tixwish
|
|
source ../../demos/widget
|
|
This will bring up a demo window with lots of Tix megawidgets.
|
|
|
|
4. You can now run the test suite if you wish and install Tix:
|
|
make tests [optional]
|
|
make install
|
|
[If the "make tests" fails with a complaint like this:
|
|
ld.so: open error 2 for /libtix4180.so.1.0
|
|
edit Makefile and remove the line that assigns a value to
|
|
LD_LIBRARY_PATH for the "tests" target (I had to do this on SunOS)].
|
|
|
|
5. For WinNT, read win/README.
|
|
|
|
========================
|
|
NOTES ON FUTURE RELEASES
|
|
========================
|
|
|
|
1. If you are interested in a support contract for Tix please contact me
|
|
by email at ram@netcom.com.
|
|
|
|
2. I plan to make at least one more release of Tix, though the timeframe
|
|
is uncertain. Among the changes planned:
|
|
-- performance improvements
|
|
-- cleanup various obsolete elements from code and docs (there is a
|
|
lot of clutter in many files).
|
|
-- more bug fixes
|
|
|
|
3. Support for all versions of Tcl/Tk preceding 8.0 is now discontinued.
|
|
|
|
====================
|
|
CHANGES in 4.1.0.007
|
|
====================
|
|
|
|
1. tix.h:TIX_RELEASE changed to 4.1.0.007
|
|
|
|
2. Changed all uses of strdup to tixStrdup (changes to several files)
|
|
and moved declaration of tixStrDup to tixInt.h to avoid various
|
|
compiler warnings. Also, removed check for strdup() from files
|
|
'configure' and 'configure.in' in unix/tk8.0 since it is no longer
|
|
needed.
|
|
|
|
3. The following erroneous code crashes Tix:
|
|
# test Tix crash
|
|
package require Tix
|
|
tixWidgetClass ab {
|
|
-alias {-dir -direction}
|
|
}
|
|
The problem is that the argument to -alias is supposed to be a list
|
|
of pairs. Added a check in tixClass.c:InitAlias() for this.
|
|
|
|
4. Changes to suppress egcs warnings:
|
|
-- Uncommented prototype for tixStrDup() in tix.h
|
|
-- In tixGrData.c, changed many occurrences of "(char*)i" to
|
|
FIX(i) which has better casts.
|
|
|
|
5. Replaced generic/{tixItcl.[ch],tixMethod.c} with fixed versions for
|
|
dealing properly with namespaces. Also fixed 'level' bug in
|
|
tixItcl.c:TixItclSetGlobalNameSp(); see test code below.
|
|
|
|
6. For very long lists, tixTree was showing stray vertical lines and
|
|
indicators. Caused by overflows in window coordinates which are
|
|
limited to 16-bit values in X. Fixed by adding bounds checks in
|
|
tixHList.c:DrawElements().
|
|
|
|
7. An initial "see" command on a tixHList before the window is mapped
|
|
was not updating the scrollbar; fixed by adding UpdateScrollbars()
|
|
call in tixHList.c:WidgetDisplay().
|
|
|
|
8. Removed directories win/tcl7.x and unix/tk4.x (versions of Tcl/Tk
|
|
earlier than 8.0 are no longer supported).
|
|
|
|
9. There is a problem with compound images which causes a crash upon
|
|
exit, illustrated by the following script:
|
|
------------
|
|
set i [image create compound -window .]
|
|
$i add text -text Hello
|
|
exit
|
|
------------
|
|
This now appears to be fixed by changes to tixImgCmp.c
|
|
|
|
10. An incompatibility between Tix and Jan Nijtmans Img extension has
|
|
been fixed.
|
|
|
|
11. Fixed a bug in tests/library/TestLib.tcl:TestBlock that was causing
|
|
the button test in tests/general/event0.tcl to fail. Running
|
|
"make tests" under unix/tk8.0 now produces no errors with one
|
|
exception: The label-entry test in tests/general/labentry.tcl
|
|
sometimes fails for unknown reasons that appear to be related to
|
|
the way focus events are generated when a window is created directly
|
|
underneath the current pointer.
|
|
|
|
[NOTE: the fs.tcl tests attempt to locate home directories of all
|
|
users on your system, so if you have a non-existent home directory
|
|
(this happens on Red Hat Linux 5.2 because the home directory
|
|
/var/adm of user 'adm' does not exist), this test will report a
|
|
failure.]
|
|
|
|
12. Some cosmetic changes to a few files in the test suite for better
|
|
readability.
|
|
|
|
13. The Tix Programming Guide is now included in the release; see
|
|
docs/pguide-tix4.0.ps. Note that we have not made any changes to
|
|
this document and have not been able to locate the original
|
|
TeX/LaTeX file.
|
|
|
|
14. tix.h: Changed the definition of strcasecmp to be the same as in
|
|
tk8.0.5/win/tkWinPort.h
|
|
|
|
15. Added the BUILD_tix mechanism to tix.h.
|
|
|
|
16. tixInt.h:
|
|
-- Changed EXTERN to extern. The EXTERN macro is used in Tcl
|
|
to implement the DLL import/export mechanism and should
|
|
therefore be used _ONLY_ to declare functions exported from a
|
|
package.
|
|
-- Removed some stuff within "#if 0 ... #endif"
|
|
|
|
================
|
|
ACKNOWLEDGEMENTS:
|
|
================
|
|
|
|
Thanks to the following people for reporting bugs and/or providing
|
|
patches:
|
|
-- Bruce Stephens <bruce@cenderis.demon.co.uk>
|
|
-- Ric Klaren <klaren@telin.nl>
|
|
-- Jean-Paul Dzisiak <JP.Dzisiak@ulg.ac.be>
|
|
-- Jan Nijtmans <Jan.Nijtmans@wxs.nl>
|
|
|
|
========================
|
|
NOTES ON THE 'level' BUG:
|
|
========================
|
|
|
|
Both the 005 and 007 releases print:
|
|
|
|
0
|
|
1
|
|
2
|
|
1 a 2 b 3 c
|
|
|
|
with the following code fragment. But 006 prints incorrect values:
|
|
|
|
0
|
|
2
|
|
4
|
|
|
|
One patch to 006 floating around replaces tixItcl.[ch] and tixMethod.c
|
|
and prints these incorrect values:
|
|
|
|
0
|
|
1
|
|
1
|
|
|
|
Here is the code fragment:
|
|
|
|
------------------------------------------------------------------------
|
|
tixWidgetClass class1 {
|
|
-classname Class2
|
|
-superclass tixPrimitive
|
|
-method {
|
|
foo
|
|
}
|
|
}
|
|
|
|
proc class1:foo {w} {
|
|
puts [info level]
|
|
set a(1) a
|
|
set a(2) b
|
|
set a(3) c
|
|
$w.a baa a
|
|
}
|
|
proc class1:ConstructWidget {w} {
|
|
upvar \#0 $w data
|
|
|
|
tixChainMethod $w ConstructWidget
|
|
|
|
class2 $w.a
|
|
pack $w.a
|
|
set data(w:a) $w.a
|
|
}
|
|
|
|
tixWidgetClass class2 {
|
|
-classname Class2
|
|
-superclass tixPrimitive
|
|
-method {
|
|
baa
|
|
}
|
|
}
|
|
|
|
proc class2:baa {w var} {
|
|
puts [info level]
|
|
upvar 1 $var a
|
|
puts [array get a]
|
|
}
|
|
|
|
class1 .foo
|
|
puts [info level]
|
|
.foo foo
|
|
|
|
------------------------------------------------------------------------
|