Tk 8.0 for Windows

by Scott Stanton
Sun Microsystems Laboratories
scott.stanton@eng.sun.com

SCCS: @(#) README 1.18 97/08/13 18:52:02

1. Introduction
---------------

This is the directory where you configure and compile the Windows
version of Tk.  This directory also contains source files for Tk
that are specific to Microsoft Windows.  The rest of this file
contains information specific to the Windows version of Tk.

2. Distribution notes
---------------------

Tk 8.0 for Windows is distributed in binary form in addition to the
common source release.  The binary distribution is a self-extracting
archive with a built-in installation script.

Look for the binary release in the same location as the source release
(ftp.smli.com:/pub/tcl or any of the mirror sites).  For most users,
the binary release will be much easier to install and use.  You only
need the source release if you plan to modify the core of Tcl, or if
you need to compile with a different compiler.  With the addition of
the dynamic loading interface, it is no longer necessary to have the
source distribution in order to build and use extensions.

3. Compiling Tk
----------------

In order to compile Tk for Windows, you need the following items:

	Tcl 8.0 Source Distribution (plus any patches)
	Tk 8.0 Source Distribution (plus any patches)

	The latest Win32 SDK header files

	Borland C++ 4.5 or later (32-bit compiler)
	  or
	Visual C++ 2.x or later
	

In the "win" subdirectory of the source release, you will find two
files called "makefile.bc" and "makefile.vc".  These are the makefiles
for the Borland and Visual C++ compilers respectively.  You should
copy the appropriate one to "makefile" and update the paths at the top
of the file to reflect your system configuration.  Now you can use
"make" (or "nmake" for VC++) to build the tk libraries and the wish
executable.

In order to use the binaries generated by these makefiles, you will
need to place the Tk script library files someplace where Tk can
find them.  Tk looks in one of two places for the library files:

	1) The environment variable "TK_LIBRARY".

	2) In the lib\tk8.0 directory under the Tcl installation directory
	   as specified in the registry:

		For Windows NT & 95:
		    HKEY_LOCAL_MACHINE\SOFTWARE\Sun\Tcl\8.0
			Value Name is "Root"

		For Win32s:
		    HKEY_CLASSES_ROOT\SOFTWARE\Sun\Tcl\8.0\

	2) Relative to the directory containing the current .exe.
	    Tk will look for a directory "..\lib\tk8.0" relative to the
	    directory containing the currently running .exe.

Note that in order to run wish80.exe, you must ensure that tcl80.dll,
tclpip80.dll (plus tcl1680.dll under Win32s), and tk80.dll are on your
path, in the system directory, or in the directory containing
wish80.exe.

4. Test suite
-------------

The Windows version of Tk does not pass many of the tests in the test
suite.  This is primarily due to dependencies in the test suite on the
size of particular X fonts, and other X related features as well as
problems with "exec".  We will be working to develop a more general
test suite for Tk under Windows, but for now, you will not be able to
pass many of the tests.

5. Known Bugs
-------------

Here is the current list of known bugs/missing features for the
Windows beta version of Tk:

- There is no support for custom cursors/application icons.  The core
  set of X cursors is supported, although you cannot change their color.
- Stippling of arcs isn't implemented yet.
- Some "wm" functions don't map to Windows and aren't implemented;
  others should map, but just aren't implemented.  The worst offenders
  are the icon manipulation routines.
- Under Win32s, you can only start one instance of Wish at a time.
- Color management on some displays doesn't work properly resulting in
  Tk switching to monochrome mode.
- Tk seems to fail to draw anything on some Matrox Millenium cards.
- Send and winfo interps are not currently supported
- Printing does not work for images (e.g. GIF) on a canvas.
- Tk_dialog appears in the upper left corner.  This is a symptom of a
  larger problem with "wm geometry" when applied to unmapped or
  iconified windows.
- Some keys don't work on international keyboards.
- Grabs do not affect native menus or the title bar.
- PPM images are using the wrong translation mode for writing to
  files, resulting in CR/LF terminated PPM files.
- Tk crashes if the display depth changes while it is running.  Tk
  also doesn't consistently track changes in the system colors.

If you have comments or bug reports for the Windows version of Tk,
please direct them to:

Scott Stanton
scott.stanton@eng.sun.com

or post them to the newsgroup comp.lang.tcl.
