Archive-name: tcl-commercial-faq
Version: 2.0
Last-modified: March 31, 1993
Posted: Around the 1st of each month
COMMERCIAL USE OF TCL/TK
This file contains brief descriptions of how Tcl/Tk is being used in
commercial products. If you have questions about specific postings,
contact the person who made the submission directly. The purpose of
this listing is to show that Tcl/Tk is being used in commercial products
and to discuss that use.
INDEX
0. Rumors and other miscellaneous...
1. Use of TCL/TK for Computational Fluid Dynamics Applications
2. CASE Tool Code Generation
3. CPU's Supervisory Control And Data Aquisition Sytem (SCADA)
4. NeoSoft Tcl
5. Other NeoSoft products
6. Training by AT&T:
"Object Oriented Programming with [incr Tcl]"
7. Training by Computerized Processes Unlimied:
"Introduction to Programming in Tcl/Tk"
8. Training by Computerized Processes Unlimied:
"Building Graphical User Interfaces in Tk"
9. Training by NeoSoft:
"Tcl and Tk: An Applications-Based Approach"
Each posting is prefaced by a line with dashes so you can search to the
beginning of the next message.
Please submit further postings to gwl@cpu.com
---------------------------------
ENTRY 0.
Several companies are using Tcl or Tcl/Tk in their products but
do not advertise that fact.
It is rumored that the following computer vendors may be using tlc/tk in
a future version of some of their management tools: SCO, Digital, Cray.
In addition, numerous companies are using Tcl to automate regression
testing. In essence, they are using the framework developed by folks
at Sun that is used to test the Tcl implementation. Take a look at
the files in tcl/tests.
---------------------------------
ENTRY 1.
Usage: Computational Fluid Dynamics Applications
Company: Pacific Marketing and Communication, Berkeley CA
Contact: Wayne A. Christopher
Email: pmac!faustus@uunet.uu.net
P.M.A.C. is a small company that develops software for computational
fluid dynamics. Our programs are used for generating meshes to
represent objects such as mechanical parts, which are used as input to
fluid flow solvers that typically run on supercomputers.
We have used TCL and TK for two products so far. The first is a
"manager" or graphical shell that coordinates many other programs
that have different and often idiosyncratic interfaces, and presents a
unified view of the high-level data they manipulate. This is a
natural task for TCL and TK, since it is very easy to add new programs
and options, and the simplicity of TCL makes it feasible to include
instructions for users to customize it for their own applications.
The second application is a grid and surface visualizer. This allows
the user to view the grids generated by the system prior to the fluid
flow analysis step, and later, the results of the analysis. The most
graphics-intensive section of the code, which involves calls to both X
and GL and must be able to store and render up to a million polyhedra,
was implemented as a special TK widget, but most of the other code,
including all user interface code, was written in TCL.
-----------------------------------
ENTRY 2.
Usage: CASE Tool Code Generation
Company: Westmount Technology BV, Holland
Contact: Eko Bousema
Email: ekbo@wmt.nl
US Subsidary: Westmount Inc, Boulder, CO 80302
Telephone: +1-303-4439733
Fax: +1-303-4439835
Products:
ISEE is an Open Integrated CASE tool for RDBMS and 4GL developers.
It supports Yourdon SA/SD including Dataflow Diagrams, Entity Relationship
Diagrams and Structure Charts. Full code generation for database and
3GL and 4GL applications is provided. Supported 4GL's include Ingres,
Informix and ACCELL/SQL.
TSEE is a Open Integrated CASE tool for developers of technical systems.
It supports Yourdon SA/SD including Dataflow Diagrams, Entity Relationship
Diagrams and Structure Charts. Code can be generated for C and C with
embedded SQL applications.
TCL/Tk:
The code generation is based on parsing diagrams and generating code
from that. This conversion is written in C++, the generation in Tcl.
The advantage of that is that user can adapt the codegeneration themself,
which is even more interesting because they can also extend the
diagram definitions.
We have extended Tcl with some features which converts diagrams
from the repository into an internal datastructure (model) which
can be accessed from within Tcl.
---------------------
ENTRY 3.
Usage: Supervisory Control And Data Aquisition (SCADA)
Company: Computerized Processes Unlimited
Contact: Gerald W. Lester
Email: gwl@cpu.com
Computerized Processes Unlimited primary business is Systems Integration
Consulting, especially in the area of Supervisory Control And Data Aquisition
(SCADA) systems. Our traditional area of business is in Oil & Gas Production
and Pipelines, but we also do SCADA outside of that, from Electric Utilities to
Food Processing control systems.
Our current generation SCADA system is based on a product from HP called RTAP.
This is toolkit for building SCADA systems, not a complete SCADA package. One
is expected to write the remaining applications, including the GUI, to make it
a SCADA system. What we have done is to bring all of RTAP's API (call
interface) up into tcl as tcl commands (this is the only C/C++ programming we
do anymore). All of our GUI and any application programs we now write are in
SCL Plus (tcl/tk with our RTAP extensions). Our current system is a
distributed client/server model.
We have deployed this system at client sites, the most notable one being the
Shell Auger production platform in the Gulf of Mexico. Auger is a Tension Leg
Platform (TLP) that is expected to produce 150 million cubic feet of natural
gas and 40,000 barrels of crude oil per day. The total cost of Auger was
$1.35 billion, of which about $5 million was for the control systems we put on
the platform. Our control systems operate all aspects of the platform.
We currently have produced over 250,000 lines of tcl/tk code, counting
comments. This, to the best of my knowledge, is the largest tcl/tk project to
date.
For pricing and more detailed information, please contact:
Gerald W. Lester
Computerized Processes Unlimited
4200 S. I-10 Service Road, Suite #205
Metairie, LA 70001
Voice: (504)-889-2784
FAX: (504)-889-2799
E-Mail: gwl@cpu.com
---------------------
ENTRY 4.
Usage: Support
Company: NeoSoft
Contact: Karl Lehenbauer
Email: sales@NeoSoft.com.
NeoSoft Commercial Tcl Support
Thank you for your interest in NeoSoft's commercial Tcl support.
We offer a flexible support plan that can be tailored to your
organization's needs.
NeoSoft Tcl is our integration of the core Tcl technologies into a
professionally maintained and supported release.
Below is a description of NeoSoft Tcl and our Tcl services.
To set up a support contract, or if you need more information, please
contact us at +1 713 684 5969 9-4 M-F, or send email to sales@NeoSoft.com.
NeoSoft Tcl:
Includes the latest Tcl, Extended Tcl, Tk, and XF source.
Includes the graph and photo widgets, compiled in at your option.
NeoSoft's Tcl support libraries are included, providing useful tools
such as dialog boxes, a file requester, and many additional functions.
Includes xpm pixmap library to allow any widget's bitmap to be a
color pixmap, TIFF, GIF, etc.
Point releases of Tcl, Extended Tcl, Tk and XF integrated and
made available within thirty days.
Major releases made when code is stable and needed tools are
available.
No license is required to redistribute with an application.
Documentation comes in nroff and postscript (tm) formats.
Available via FTP, DC-600A data cartridge, DAT tape
(in DATA/DAT format) or 3.5" high density floppy disks.
Service types:
Basic service:
Source copy of NeoSoft Tcl.
Binaries built on your machine using telnet or modem, if needed.
Free updates for a year (available via FTP or media).
20 hours of remote support, including consulting, bug fixing, etc.
Standard documentation set.
Release notes.
NeoSoft Tcl T-shirt (specify L or XL).
Additional support available on an hourly basis.
Price: $2500/year
Additional services (billed as Time and Materials):
Help desk.
24 hour emergency support.
Training.
On-site work.
Hard-copy documentation sets.
Software development.
Software integration, release building and porting.
Builds for additional architectures.
---------------------
ENTRY 5.
Usage: Other
Company: NeoSoft
Contact: Karl Lehenbauer
Email: sales@NeoSoft.com.
Additional NeoSoft products:
Tcl source encryption system.
Tcl X-windows desktop.
Control Station - programmable network monitoring software.
CUTE - programmable, Tcl-based telecommunications program.
To set up a support contract, or if you need more information, please
contact us at +1 713 684 5969 9-4 M-F, or send email to sales@NeoSoft.com.
---------------------
ENTRY 6.
Usage: Training
Company: AT&T Bell Laboratories
Contact: Michael J. McLennan
Email: michael.mclennan@att.com
Course Title: Object-Oriented Programming with [incr Tcl]
Course Length: 2 Days
Course Format: Course material is presented in a lecture format.
Course Fee: $600.00
Course Description: When Tcl/Tk scripts grow larger than a few hundred
lines, the code complexity can be difficult to manage.
[incr Tcl] provides a set of object-oriented extensions
for the Tcl language, enabling programmers to write
high-level building blocks that are more easily
assembled into a finished application. This course
describes object-oriented programming with [incr Tcl].
Fundamental concepts are presented on the first day,
showing how [incr Tcl] can be used to write more modular
code. On the second day, these same concepts are used
to create "mega-widgets", high-level widgets that look
and act like the usual Tk widgets but are constructed
entirely with [incr Tcl] code.
Topics include:
- Designing object classes
- Public/protected data members
- Shared data members
- Member functions (methods)
- Inheritance
- Multiple inheritance
- Object construction/destruction
- Manipulating scope
- Persistent objects
- Anatomy of a mega-widget
- A mega-widget base class
- Example widgets
- Adding new bindings
- Creating reusable libraries
Course Level: Technical: Beginner to Intermediate
Prerequisites: Exposure to tcl/tk programming concepts
For pricing and availablity information, please contact:
Michael J. McLennan
AT&T Bell Laboratories
1247 S. Cedar Creast Blvd., Rm 2C-226
Allentown, PA 18103
Voice: (610)-712-2842
FAX: (610)-712-3843
E-Mail: michael.mclennan@att.com
---------------------
ENTRY 7.
Usage: Training
Company: Computerized Processes Unlimited
Contact: Gerald W. Lester
Email: gwl@cpu.com
Course Title: Introduction to Programming in Tcl
Course Length: 2 Days
Course Format: Course material is presented in a lecture format and
through a hands on laboratory using a
network of X terminals connected to a RISC workstation.
Course Description: This course introduces the participant to programming
in Tcl/TclX.
Topics include:
- Variables
- Arrays
- Lists
- Keyed Lists
- Syntax
- Flow control
- Procedures
o Creating
o Invoking
o Passing variables
o Passing arrays
o Passing lists
- Running programs from Tcl
- Communicating with child processes
- Signal handling
- Error processing
- Accessing system facilities
- Programming techniques
o Using autoloading procedures
o Proper use of quoting
Course Level: Technical: Beginner to Intermediate
Prerequisites: Use of vi or emacs editors
Exposure to programming concepts
Use of csh/ksh (not programming)
For pricing and availablity information, please contact:
Gerald W. Lester
Computerized Processes Unlimited
4200 S. I-10 Service Road, Suite #205
Metairie, LA 70001
Voice: (504)-889-2784
FAX: (504)-889-2799
E-Mail: gwl@cpu.com
---------------------
ENTRY 8.
Usage: Training
Company: Computerized Processes Unlimited
Contact: Gerald W. Lester
Email: gwl@cpu.com
Course Title: Building Graphical User Interfaces in Tk
Course Length: 2 Days
Course Format: Course material is presented in a lecture format and
re-enforced through a hands on laboratory using a
network of X terminals connected to a RISC workstation.
Course Description: This course introduces the participant to building
graphical user interfaces using Tcl/Tk.
Topics include:
- Background Concepts
- A tour of the widgets
- Adding Bindings
- Widget Class Bindings
- Geometry Managers
- Running programs from Tcl/Tk
- Communicating with child processes
- Writing widgets in Tcl/Tk
- Programming techniques
o Proper use of quoting
- Interface Builders for Tk
Course Level: Technical: Beginner to Intermediate
Prerequisites: CPU's "Introduction to Programming in Tcl" course
or understanding and experience using Tcl
For pricing and availablity information, please contact:
Gerald W. Lester
Computerized Processes Unlimited
4200 S. I-10 Service Road, Suite #205
Metairie, LA 70001
Voice: (504)-889-2784
FAX: (504)-889-2799
E-Mail: gwl@cpu.com
---------------------
ENTRY 9.
Usage: Training
Company: NeoSoft
Contact: Karl Lehenbauer
Email: sales@NeoSoft.com.
NeoSoft Tcl and Tk Training Information
NeoSoft is perhaps the premier corporate contributor to the Tcl and Tk toolkit
efforts. Our groundbreaking work in Tcl and Tk dates back to its first
appearance in 1990, and is reflected by the copious amount of concepts and code
taken from Extended Tcl for use in the Tcl baseline. We continue to
collaborate with Dr. John Ousterhout, the author of baseline Tcl and Tk, on the
forthcoming release of Tcl 7.0 and Extended Tcl 7.0.
NeoSoft's Tcl training efforts have been a natural outgrowth of our work with,
and extensions of, Tcl.
The philosophy of the course is one of immediate, maximum impact by rapid
immersion into hands-on building of X-windows graphical user interfaces and the
Tcl programs that underly a number of useful applications. This approach grew
out of our first-generation Tcl training course, where we discovered that
students became very excited once the Tk toolkit was introduced and they could
begin typing statements and interactively creating sophisticated X-windows
interfaces.
This same philosophy is the backbone of a book we're writing, Tcl and Tk: An
Applications-Based Approach, due to be published in the first quarter of 1994
by Prentice-Hall Technical Publications.
Training Options
We are flexible and can customize a course to your specific needs. We have
found that almost everyone is content with one of a few options. The class
lasts for two or three days, at your option. The class can be structured to
support new Tcl and Tk users and/or users with significant prior experience.
In either case, it is nice to allocate some unstructured time at the end of the
class to talk about specific applications and issues that the students are
interested in, including new users, approaches, tools, environments, and the
future of Tcl itself.
Course Location and Times
The course can be taught at your company's facility, or at our training
facility located in Houston, Texas. Enrollment is limited to ten people per
class to provide a substantial amount of instructor attention to each student.
If the course it to be held at your company's facility, there should be no less
than one workstation per two students, if at all possible. The class can be
taught over a weekend. Contact NeoSoft for pricing and availability.
Instructor
The class will be taught by Karl Lehenbauer, the co-author of Extended Tcl.
Karl is an experienced trainer, having taught and/or developed previous courses
on Unix, Unix system administration and Tcl/Tk.
Course Goals
Teach Tcl and Tk with the maximum impact by building real world applications in
the classroom.
Site Prerequisites
Integrated copy of Tcl and Tk, including Extended Tcl, running on site.
Course Contents
Below is the list of basic sections of the class, beginning with the elementary
things that we would teach to users without prior Tcl experience and ending
with building several tools that are useful, real-world applications in their
own right. We can work with you to tailor the course to your organization's
specific needs.
Section 1 Hello, World
Concepts:
Typing commands interactively into the interpreter.
The most important command in Tcl: "proc"
Passing arguments to Tcl procedures.
The C "Hello, World" koan in a graphical context:
The button command
The pack command
Section 2 Making Choices with Buttons
Concepts:
Variables and variable substitution
Radiobuttons
Checkbuttons
More on the pack command
Section 3 A quartet of application launchers
Concepts:
Launching applications
Tcl Language elements:
Variable assignment
Conditional expressions
Beginning file I/O
Square-bracket substitution
Generating window elements from data
Accessing command line arguments
Section 4 Building a support library: The dialog box
Concepts:
The message widget
Control structures: if/else/endif
Default values for procedure arguments
First mention of Tk's event loop
Subordinate toplevel windows
'tkwait' to support sequential control
Section 5 Building pulldown and popup menus
Concepts:
The menu widget
Binding commands to keypress events
Section 6 A few simple but useful applications
Concepts:
Intermediate file I/O
Delayed execution with 'after'
Temporal commands (getclock, fmtclock)
Capturing a spawned command's output in a variable
Section 7 Building a support library: The file selector
Concepts:
The listbox and scrollbar widgets
The frame widget
More about the packer
Section 8 Creating a text editor with the text widget
Concepts:
The text widget
Text widget tags
More about key bindings
Integrating support library examples
Section 9 Creating a hypertext system with the text widget
Concepts:
More about the text widget
More about text widget tags
Builds on the text editor
Section 10 X resource customizer
Concepts:
Use of the "send" command to access another interpreter.
More about text widget tags.
Builds on the text editor to make a new tool.
Section 11 Introduction to the canvas widget
Concepts:
Introduces the canvas widget.
Tags and tag processing.
More on list processing.
Use of different canvas widget types.
Section 12 A second encounter with the canvas widget
Concepts:
Commands and options within the canvas widget.
Combining items with actions.
A new application launcher.
Section 13 Creating a drawing tool with the canvas widget
Concepts:
Traversing items within a canvas widget.
Section 14 Sysadmin tool: New user creator
Section 15 Sysadmin tool: ttytab editor
Section 16 Developer tool: The proc browser
Concepts:
More on using "send" to access another interpreter.
Using "info" to find variables and procedures.
Using entry widgets.
Section 17 Color editor
Concepts:
Slider widget
Performing math with the "expr" command
To set up a support contract, or if you need more information, please
contact us at +1 713 684 5969 9-4 M-F, or send email to sales@NeoSoft.com.
Newsgroups: comp.lang.tcl,comp.answers,news.answers
Path: lvirden
From: lwv26@cas.org (Larry W. Virden)
Subject: FAQ: comp.lang.tcl Frequently Asked Questions (1/5)
(Last updated: April 20, 1994)
Followup-To: comp.lang.tcl
Summary: A regular posting of the comp.lang.tcl Frequently Asked Questions
(FAQ) and their answers. This is the first of five parts.
This part introduces Tcl and Tk and discusses documentation, etc.
Originator: lvirden@cas.org
Keywords: tcl, extended tcl, tk, expect
Sender: lvirden@cas.org
Reply-To: lvirden@cas.org (Larry W. Virden)
Approved: news-answers-request@MIT.Edu
Archive-name: tcl-faq/part1
Version: 5.0
Last-modified: April 20, 1994
For more information concerning Tcl (see "tcl-faq/part2"),
(see "tcl-faq/part3"), (see "tcl-faq/part4"), or (see "tcl-faq/part5").
Index of questions:
I. Origin of the comp.lang.tcl FAQ information.
II. What is Tcl? Tk? Extended Tcl?
III. Do these packages run on my machine?
A. Unix
B. MacOS
C. INTEL DOS-like systems
D. VMS
E. AmigaDOS
F. NeXT
G. Other
IV. Other than C, What languages can talk to tcl/tk?
A. Shell
B. C++
C. Modula-3
D. Eiffel
E. Ada
F. Other
V. Is there a bibliography of material relating to these programs?
A. The Tcl distribution
B. The Expect distribution
C. Miscellaneous other online materials
D. Published articles, books, and similarly available resources
E. Training courses, materials, etc.
F. Time-related seminars, conferences, sessions.
VI. Where do I report problems, bugs, or enhancements - or -
What is comp.lang.tcl?
VII. Are there any mailing lists covering topics related to Tcl/Tk?
VIII. Where can I find the FAQ and who do I contact for more information
about it?
End of FAQ Index
----------------------------------------------------------------------
------------------------------
From: FAQ General information
Subject: -I- Origin of the comp.lang.tcl FAQ information.
The information in this set of FAQs comes from several sources. The
primary source of information is the group itself - I spend (much too
much) time each month culling through what I feel are some of the best
answers, gathering up new information on ports, etc. and adding it
here. I also gather new application information and add it as
best I can. The next most predominant source of information comes from
the authors of the various software packages. Finally, a small amount
comes from my personal experiences.
I am always on the search for folk to assist in the maintenance
of these FAQs. In fact, if you feel that you would like to coordinate
this effort, PLEASE let me know!
------------------------------
From: FAQ General information
Subject: -II- What is Tcl? Tk? Extended Tcl?
Tcl and Tk originated with Dr. John Ousterhout (Oh'-stir-hout -
last syllable rhymes with rout, not root) from the University of California,
Berkeley, California.
Tcl (current release version 7.3) stands for ``tool command
language'' and is pronounced ``tickle.'' The author's home ftp site for
the Tcl source code is ftp.cs.berkeley.edu. Tcl is actually two
things: a language and a library. First, Tcl is a simple textual
language, intended primarily for issuing commands to interactive
programs such as text editors, debuggers, illustrators, and shells. It
has a simple syntax and is also programmable, so Tcl users can write
command procedures to provide more powerful commands than those in the
built-in set.
Second, Tcl is a library package that can be embedded in
application programs. The Tcl library consists of a parser for the Tcl
language, routines to implement the Tcl built-in commands, and
procedures that allow each application to extend Tcl with additional
commands specific to that application. The application program
generates Tcl commands and passes them to the Tcl parser for
execution. Commands may be generated by reading characters from an
input source, or by associating command strings with elements of the
application's user interface, such as menu entries, buttons, or
keystrokes. When the Tcl library receives commands it parses them into
component fields and executes built-in commands directly. For commands
implemented by the application, Tcl calls back to the application to
execute the commands. In many cases commands will invoke recursive
invocations of the Tcl interpreter by passing in additional strings to
execute (procedures, looping commands, and conditional commands all
work in this way).
An application program gains three advantages by using Tcl for
its command language. First, Tcl provides a standard syntax: once
users know Tcl, they will be able to issue commands easily to any
Tcl-based application. Second, Tcl provides programmability. All a
Tcl application needs to do is to implement a few application-specific
low-level commands. Tcl provides many utility commands plus a general
programming interface for building up complex command procedures. By
using Tcl, applications need not re-implement these features. Third,
extensions to Tcl, such as the Tk toolkit, provide mechanisms for
communicating between applications by sending Tcl commands back and
forth. The common Tcl language framework makes it easier for
applications to communicate with one another.
Tk (current release 3.6) - an extension to Tcl which provides
the programmer with an interface to the X11 windowing system. The
author's home ftp site for the Tk source is ftp.cs.berkeley.edu.
Note that many users will encounter Tk via the ``wish'' command. Wish
is a simple windowing shell which permits the user to write Tcl
applications in a prototyping environment.
Extended Tcl (tclX) (Version 7.3a) - This is an extended set of
commands for Tcl developed by Karl Lehenbauer and Mark Diekhans. The
authors' home ftp site for Extended Tcl is ftp.neosoft.com. Extended
Tcl is oriented towards system programming tasks, with many additional
interfaces to the Unix operating system along with other useful
utilities.
------------------------------
From: FAQ General information
Subject: -III- Do these packages run on my machine?
A. Unix
Tcl runs on Sun 3s and 4s running SunOS 4 and SunOS 5 (Solaris
1.x and 2.x), DECstations running Ultrix, DEC VAXen running Ultrix or
BSD, DEC Alphas running OSF/1, 386s running SCO Unix, Xenix, Bell-Tech,
Silicon Graphics running IRIX, HPs running HP-UX as well as HP Snakes
running OSF/1 and HP-UX. Intel [34]86 systems running 386bsd, netbsd,
freebsd, BSDI, and Linux have Tcl ported. Various CPUs running System
V.4 report having ported Tcl. Tcl also appears to be running on
Sequent Symmetry running Dynix as well as OSF/1. It also has been
reported to run fine on IBM RS6000 under AIX 3.x as well as IBM ES/9000
and AIX/ESA. There were few problems getting it running under Mt. Xinu
Mach. It also has been ported to Encore 91's running UMAX V (an 88k
based System V with BSD extension Unix). It also runs on Apollos
running BSD/SYSV. Tcl runs on a Cray running Unicos. At least one
person has ported Tcl to a Mac (IIfx) running A/UX v3.0. Someone
ported Tcl to a Sony NeWS machine running NEWS-OS 4.2.
A port to a Convex 3220 and 3880 was also reported.
Tk (being based on Tcl) generally requires X11R4 or better as the only
additional software requirement. It runs on any of the above Unix
systems with that base of software. It also runs on VMS and OSF/1.
For information on Tcl/Tk/TclX availability (see "tcl-faq/part4").
B. MacOS
See below for details of a Macintosh Tcl Mailing list.
---
Ray Johnson has a package called
MacTcl. This is a fairly straight port of Tcl to the Macintosh. It is
designed to be used as libraries to be embedded into other
applications. A basic shell is included. Most Tcl features are
present, including many Unix-like features. Additional features
include supporting the env variable and sourcing Tcl code from a
resource. The current version is available at
ftp://harbor.ecn.purdue.edu/pub/tcl/distrib/MacTcl7.3.sea.hqx
As of this time, I have no leads on anyone porting Tk to MacOS.
I also have not heard of anyone porting Tcl/Tk to an Apple PowerPC.
Also (see "tcl-faq/part4"), the Tcl programs/packages catalog,
for the latest port locations and versions.
C. INTEL DOS-like systems
Numerous ports to DOS are available. One unsupported port to MS-DOS
of Tcl and Extended Tcl V6.0a, done by "Karl Lehenbauer" ,
is available on ftp://harbor.ecn.purdue.edu/pub/tcl/distrib/dostcl.zoo for
binaries and ftp://harbor.ecn.purdue.edu/pub/tcl/distrib/dostcl60.zoo for
source.
A port of Tcl V6.2 to MS-DOS was done by
"John Martin" and is available via FTP from
ftp://cajal.uoregon.edu/pub/tcl.dos.port/ and
ftp://harbor.ecn.purdue.edu/pub/tcl/distrib/tcl62.dos.tar.Z .
A source code only port of Tcl V6.7 to MS-DOS, done by
PSPRENG@CIPVAX.BIOLAN.UNI-KOELN.DE (Peter Sprenger), is available from
him, somewhere on wuarchive.wustl.edu
or as
ftp://harbor.ecn.purdue.edu/pub/tcl/distrib/tcl67dos.zip .
A port of Tcl, version 7.3, to MS-DOS, done by
tpoind@advtech.uswest.com (Tom Poindexter), is available as
ftp://harbor.ecn.purdue/edu/pub/tcl/distrib/mstcl73*.zip . This
also includes TclX 7.3a and Tk ported to Desqview/X libraries.
A port of Tcl, V6.1 ?, done by unknown, to MS-DOS Windows
V 3.1 ?, is available as binary at
ftp://harbor.ecn.purdue.edu/pub/tcl/distrib/w_tclbin.zip and as source at
ftp://harbor.ecn.purdue.edu/pub/tcl/distrib/w_tclsrc.zip .
An MS-DOS Windows DLL instance of Tcl 6.2 was generated by
Ugo Cei . Contact him for more details.
A Windows DLL was made by ekki@prakinf.tu-ilmenau.de (Ekkehard Beier)
by slightly modifying a DOS 6.2 Tcl port. There are still problems
with the system/WinExec command. A very rudimentary Debugger User Interface
using Borland's Classlib is part of the zip-file, too.
I used it with BC3.1++/AF on MS W3.1. You can get a copy from
ftp://metallica.prakinf.tu-ilmenau.de/pub/DOS/wintcl.zip
via anonymous ftp. Unfortunately Ekki doesn't have time currently to
finish the Windows port and user Interface.
miyata@sra.co.jp (Shigeaki Miyata) reports being in a group
which is preparing a commercial port of Tk to MSDOS Windows. More
details are to follow.
Omar Stanford reported in March of 1994
that he had almost completed his port of Tcl 7.3 to MS-Windows 3.1.
He had incorporated extensions for networking (including NetWare),
Windows Sockets, and many Windows API functions. He also was working on
a facility for dynamically allocating commands to the Tcl environment.
If there are other extensions that one would like to see under Windows 3.1,
or if you are interested in beta testing, drop him a line.
Also, Simon Kenyon of the Information
Technology Centre, Dublin, IRELAND, mentions that they are starting to
port Tk to MS-Windows. There is a mailing list (see below) for
folk who are interested.
Someone, whose name I don't have, reported porting Tcl to QNX
with a fair amount of hacking.
A port of Tcl 7.3, except for glob or commadn pipelines, to OS/2 2.x
using C Set++ has been done by wwb@wwa.com (Bud Bach). As of this date, I
have no leads on anyone porting Tk to any version of OS/2.
Also (see "tcl-faq/part4"), the Tcl programs/packages catalog,
for the latest port locations.
D. VMS
A port of Tcl 7.3 and Tk 3.6 to VMS was done by Angel Li
. The files are at
ftp://mango.rsmas.miami.edu/pub/VMS-tcl/tcl73-tk36-itcl13.tar.Z
and were compressed with the Unix compress command. The pathname may
be subject to change as I have seen notes from Angel Li mentioning that
BLT 1.6 and the photo widget have also been ported. These were compiled
on an Alpha running OpenVMS T6.1.
A port of Tcl 6.3 onto VMS 5.5 was done by Wolfgang Kechel
and Till Imanuel Panzschke. Contact them
directly for assistance.
A port of most of Tcl 6.7 and Tk 3.2 was done by John Kimball
to VMS 5.5. The files are on:
ftp://src.honeywell.com/pub/tcl67-tk32-on-vms55.tar.Z .
A port of Tcl 7.0 and Tk 3.3 has being done to VMS on the
VAX and Alpha. These are available as:
ftp://src.honeywell.com/pub/vms-tcl/tcl70-tk33-on-vms55.tar.Z
or
ftp://src.honeywell.com/pub/tcl70-tk33-on-vms55.tar.Z
Gerald W. Lester (gwlester@cpu.com) says the following _should_ work.
If you installed the POSIX package on VMS (its free), then you should be
able to configure and make tcl. To access tcl you would have to do one
of the following: 1) Use the POSIX shell, or 2) do a "psx tcl".
Tcl scripts would not execute directly from DCL; to execute a script foo.tcl
from DCL you would have to do "psx foo.tcl".
DISCLAIMER: I have not built any version of tcl under VMS POSIX, these
comments are based on other work I've done with VMS POSIX.
Also (see "tcl-faq/part4"), the Tcl programs/packages catalog,
for the latest port locations.
E. AmigaDOS
Karl Lehbauer has indicated that
he started a port of Tcl 3.x to the Amiga. He has a working
version, but is no longer working on it. His version uses the
Amiga's shared libraries and implements the "send" command.
He wrote a MIDI file loader and player as well. Contact him for
further details.
Ty Sarna has ported Tcl 6.x to the Amiga.
He says:
> I've ported 3.3 and several 6.x versions to the Amiga, and it can be
> done in under and hour if you leave out the "Unix" functionality.
> However, "Unix" functionality includes things like file I/O!
Another Amiga user, colas@opossum.inria.fr (Colas Nahaboo), mentioned
that using Amiga gcc and the PD X server DaggeX and Xlibs that a port of
Tk might be possible.
hnm@hermes.bouw.tno.nl (Marco van der Heiden) has completed a port
to the Amiga, and suggests Amiga developers contact him by email.
Also (see "tcl-faq/part4"), the Tcl programs/packages catalog,
for the latest port locations.
F. NeXT
Gianmaria Bertanzon reports:
> We are using tk3.2 on NeXT ( Motorola ) under NextStep 3.0 under X.
> The compilation was easy. (we do not remember precisely all the steps)
Also (see "tcl-faq/part4"), the Tcl programs/packages catalog,
for the latest port locations.
G. Other
A port to the Apple IIgs and GNO 1.1/GSOS environment is underway.
A beta port of Tcl 7 has been done to VxWorks.
You can find it at thor.atd.ucar.edu:~ftp/pub/vx/tclvx7.0.v2.tar.gz .
Also (see "tcl-faq/part4"), the Tcl programs/packages catalog,
for the latest port locations.
------------------------------
From: FAQ General information
Subject: -IV- Other than C, what languages can talk to tcl/tk?
A. Shell
There are at least two interfaces which are shell-like. The
first is wish, which is a windowing shell like interface that is a part
of the Tk package. The second is tcl, a line command interpreter that
is part of the Extended Tcl package.
B. C++
Check out tcl++.h in Extended Tcl. Based on an original
implementation by Parag Patel, it defines a Tcl interpreter class by
which Tcl interpreters can be created as objects under C++.
Also, ftp://harbor.ecn.purdue.edu/pub/tcl/distrib/tk3.2forC++.patch
is a patch that allows tk 3.2 main.c and other extension routines
to be compiled with a C++ compiler. Thanks to Ken Yap
for this code.
Mark Diekhans and Karl Lehenbauer have used this, in
combination with the handle facility in Extended Tcl, to build Tcl
commands around C++ classes.
The Tcl handle facility provides a way to manage table entries
that can be referenced by a textual handle from Tcl code. This is
provided for applications that need to create data structures in one
command, return a reference (i.e. pointer) to that particular data
structure and then access that data structure in other commands. An
example application is file handles.
A handle table was built containing pointers to the instances
of a class that were to be accessed from Tcl, say a class `foo_cl', and
then a "new" command defined that created an instance of that class and
returned a Tcl handle to it. The handle could then passed among Tcl
commands that accessed each member function. The handle is in effect
an explicit `this' pointer.
For example:
set obj [foo_cl::new]
foo_cl::baz $obj "Hello world"
foo_cl::delete $obj
It's not totally object-oriented, but it's still very usable.
C. Modula-3
Norman Ramsey says:
A long time back, Eric Muller posted a Modula-3 interface to
the C Tcl library. I wrote down a Modula-3/Tcl interface that used
Modula-3 types rather than C types, and that used objects to build
closures for commands. I wrote part of the implementation but never
finished it. I have mailed copies to carroll@udel.edu, who asked the
question, and I will post them if there seems to be general interest.
D. Eiffel
stephan@cs.tu-berlin.de (Stephan Herrmann) says:
... [the tclish package provides] the marriage of two very different
principles by means of combining two programming languages into a
hybrid program architecture.
E. Ada
dennis@dennis.cs.colorado.edu (Dennis Heimbigner) introduced
an adatcl package which gives Ada programmers access to Tcl interpreters.
See the catalog for details of the package.
F. Other
Duncan Sinclair has details of a hack
into wish.c some hooks for a Tk <-> any language system, and has been using
it for communication with functional languages such as Haskell and Lazy ML.
A paper, plus sample code, is available by ftp from
ftp://ftp.dcs.gla.ac.uk/pub/glasgow-fp/authors/Duncan_Sinclair/fumx.* .
------------------------------
From: FAQ General information
Subject: -V- Is there a bibliography of material relating to these
programs?
A. The Tcl distribution
With the Tcl distribution there is a Postscript version of a Usenix
paper introducing Tcl. With the Tk distribution, there is a Postscript
version of a Usenix paper introducing Tk.
Ousterhout, J.K., (1990) ``TCL: An Embeddable Command Language'', in
the Proceedings of the 1990 Winter USENIX Conference, pp 133-146.
Ousterhout, J.K., (1991) ``An X11 Toolkit Based on the TCL Language'',
in the Proceedings of the 1991 Winter USENIX Conference, pp 105-115.
Postscript file for introductory papers on Tcl and Tk are available as
the public FTP area on ftp.cs.berkeley.edu (Internet address
128.32.149.78). Their address is:
ftp://ftp.cs.berkeley.edu/ucb/tcl/tclUsenix90.ps
ftp://ftp.cs.berkeley.edu/ucb/tcl/tkUsenix91.ps
ftp://ftp.cs.berkeley.edu/ucb/tcl/tkF10.ps
(The last of these files is the contents of Figure 10 of the Tk paper)
If you have trouble retrieving the papers via FTP or printing them,
send bmiller@cs.berkeley.edu your U.S. Mail address and he will mail
you paper copies.
B. The Expect distribution
With the Expect distribution, there are several Postscript documents
available which have been published.
1. "Curing Those Uncontrollable Fits of Interaction", Don Libes, Proceedings
of the Summer 1990 USENIX Conference, Anaheim, CA, June 11-15, 1990.
This paper is discussion of implementation, philosophy, and design.
It's address is:
ftp://ftp.cme.nist.gov/pub/expect/seminal.ps.Z
2. "Using expect to Automate System Administration Tasks", Don Libes,
Proceedings of the 1990 USENIX Large Systems Administration Conference (LISA)
IV, Colorado Springs, CO, October 17-19, 1990.
This paper is discussion and examples, specifically aimed at system
administrators. The address of this paper is:
ftp://ftp.cme.nist.gov/pub/expect/sysadm.ps.Z
3. "expect: Scripts for Controlling Interactive Programs", Don Libes, Computing
Systems, Vol. 4, No. 2, University of California Press Journals, 1991.
A comprehensive paper of example scripts. This paper's address is:
ftp://ftp.cme.nist.gov/pub/expect/scripts.ps.Z
4. "Regression Testing and Conformance Testing Interactive Programs",
Don Libes, Proceedings of the Summer 1992 USENIX Conference, San Antonio, CA,
June 8-12, 1992.
This paper discusses the application of expect to the verification
of software. This paper's address is:
ftp://ftp.cme.nist.gov/pub/expect/regress.ps.Z
5. "Kibitz - Connecting Multiple Interactive Programs Together",
Don Libes, Software - Practice & Experience, John Wiley & Sons, West
Susses, England, Vol. 23, No. 5, May 1993.
This paper is a discussion of using Tcl and Expect to connect multiple
interactive programs together. This paper's address is:
ftp://ftp.cme.nist.gov/pub/expect/kibitz.ps.Z
6. "X Wrappers for Non-Graphic Interactive Programs", Don Libes,
draft for Xhibition 94.
This paper discusses encapsulating standard command interfaces
into a graphical user interface. This paper's address is:
ftp://ftp.cme.nist.gov/pub/expet/expectk.ps.Z
C. Miscellaneous other online materials
1. The ftp address for a FrameMaker MIF file containing a Quick Reference guide
to Tcl is:
ftp://harbor.ecn.purdue.edu/pub/tcl/docs/QuickRef.tar.gz
Many thanks to "Jeff Tranter" for
contributing it.
2. PostScript versions of the man pages were provided by
"Adrian Ho" . The addresses for these are:
ftp://harbor.ecn.purdue.edu/pub/tcl/docs/tcl6.3.manps.tar.Z
ftp://harbor.ecn.purdue.edu/pub/tcl/docs/tclX6.2b.manps.tar.Z
ftp://harbor.ecn.purdue.edu/pub/tcl/docs/tk2.1.manps.tar.Z
3. An early draft of the Ousterhout text book was available on the net.
The section dealing with writing Tcl scripts is:
ftp://ftp.cs.berkeley.edu/ucb/tcl/book.p1.ps.Z
The section dealing with writing Tcl scripts for Tk is:
ftp://ftp.cs.berkeley.edu/ucb/tcl/book.p2.ps.Z
The section dealing with writing Tcl applications in C is:
ftp://ftp.cs.berkeley.edu/ucb/tcl/book.p3.ps.Z
The section dealing with writing Tk widgets and geometry managers
in C is:
ftp://ftp.cs.berkeley.edu/ucb/tcl/book.p4.ps.Z
The first two parts are about 130 pages in length and the third and fourth
parts are less than 70 pages in length each. This is ONLY a draft and is not
permitted to be redistributed.
4. A series of PostScript slides used in a tutorial on Tcl and Tk at
the 1993 X Conference are available as:
ftp://ftp.cs.berkeley.edu/ucb/tcl/tut.tar.Z
5. A set of Postscript files collected for the Tcl 93 workshop proceedings
is available as:
ftp://harbor.ecn.purdue.edu/pub/tcl/workshop/tcl93-proceedings.tar.Z
This file contains the following papers:
a. "A Debugger for Tcl Applications", by Don Libes, National Institute
of Standards and Technology.
Describes a debugger for Tcl applications.
b. "A Compiler for the Tcl Language", by Adam Sah and Jon Blow, University
of California, Berkeley, CA.
A discussion of the design issues for providing a compiler for the Tcl
language.
c. "[incr tcl] - Object-Oriented Programming in TCL", by Michael J. McLennan,
AT&T Bell Laboratories, Allentown, PA.
Describes a set of extensions for organizing Tcl procedures and
data into packages.
d. "CASTE: A class system for Tcl", by Michael S. Braverman, University of
California, Berkeley, CA.
Introduces a structured object class extension for Tcl.
e. "Interfacing an Object-Oriented Database System from Tcl", by
Dietmar Theobald, Forschungszentrum Informatik, Karlsruhe Germany
A generic interface extension to an object-oriented database.
f. "Tcl Distributed Programming", by Brian C. Smith, Lawrence A. Rowe, and
Stephen C. Yen, University of California, Berkeley, CA.
Introduces the Tcl-DP extension to Tcl.
g. "Cooperating Applications through Tcl/Tk and DCE", by David Richardson,
University of Michigan
Description of integrating Tcl/Tk into Open Software Foundation's
Distributed Computing Environment.
h. "NeoSoft Whiteboard - A framework for Internet-based Collaboration",
by Karl Lehenbauer, Ellyn Mustard, NeoSoft, Inc., Brad Morrison,
Paranet, Inc.
Describes a generic groupware framework using Tcl/Tk.
i. "Tcl/Tk as a Basis for Groupware", by Mark Roseman, University of Calgary,
Alberta Canada
Why Tcl/Tk provides a good environment for groupware developers.
j. "Tcl and Tk Use in the Artifact Based Collaboration System", by
John Menges and Mark Parris, University of North Carolina.
Describes a collaboration system being built at UNC whose user
interfaces are based on Tk.
k. "Ak: An Audio Toolkit for Tcl/Tk", by Andrew C. Payne, Digital Equipment
Corporation, Cambridge Research Lab.
Describes Ak, an audio extension for Tcl build on the AudioFile
System.
l. "A Tcl/Tk Continuous Media Player", by Brian C. Smith, Lawrence A. Rowe, and
Stephen C. Yen, University of California, Berkeley, CA.
A Tk application that supports playback of live digital audio and
video on a Unix workstation.
m. "Tcl in a High-Throughput Biological Lab", by Scott P. Hunicke-Smith &
Dan Mosedale, Stanford Yeast Genome Project
Description of use of Tcl based control of a laboratory robot.
n. "Autonomous Knowledge Agents - How Agents use the Tool Command Language",
by Raymond W. Johnson, Lockheed Missiles and Space Corporation, Palo Alto,
CA.
Descriptions of traits of a software agent and how one of these
traits led to the use of Tcl.
o. "Implementing a Visualization of an Industrial Productions Cell Using
Tcl/Tk", by Arthur Brauer, Claus Lewerentz, and Thomas Lindner,
Forschungszentrum Informatik, Karlsruhe Germany.
Discussion of a complex animated simulation written using Tk/Tcl.
p. "Writing Object-oriented Tcl-based Systems using Objectify", by
Wayne A. Christopher, University of California, Berkeley, CA.
Describes Objectify, a facility for integrating C++ classes into
Tcl-based systems.
q. "Use of Tcl/Tk in DTS, an Interactive Optimization and Scheduling System",
by Benjamin Fried, Aleks Gollu and Othar Hansson, Heuristicrats Research Inc.
An abstract of the work being done with Tcl in a NASA scheduling
system.
r. "Embedding a Scheme Interpreter in the Tk Toolkit", by
Erick Gallesio, Valbonne, France.
Describes STk, which is a Tk package with Scheme replacing Tcl.
s. "The Next, Best Thing in File Browsers", by Michael A. Harrison,
Thomas A. Phelps, University of California, Berkeley, CA.
Describes NBT, an extended NeXTSTEP file selection box.
t. "Tcl/Tk - An Integration Vehicle for the Microwave/Millimeter-Wave
Pilot Sites (MMPS)", by Kevin B. Kenny, Brion D. Sarachan,
Robert N. Sum Jr., and Wayne H. Uejio, GE Corporate R&D.
Describes developing wrappes for commercial vendor
applications like FrameMaker (R) and Xess (R).
u. "Generalising a File Manager into an Address Book and Other Things",
by J. D. Newmarch, University of Canberra, Australia
Describing a redesign of an X file manager to allow the best
features of a command line environment and a graphical interface.
v. "Noosa: Execution Monitoring using Tcl and Tk", by Anthony M. Sloane,
University of Colorado.
An overview of an event-based execution monitoring system.
w. "An Interactive Compiler Development System", by Gary S. Tyson,
Robert J. Shaw and Matthew K. Farrens, University of California, Davis, CA.
Describes an interactive graphical optimizer.
6. A second set of Postscript files consisting primarily of overhead slides
is available as:
ftp://harbor.ecn.purdue.edu/pub/tcl/workshop/tcl93-proceedings2.tar.Z
This file (tcl93-proceedings2) contains the following slides:
a. "Cooperating Applications through Tcl/Tk and DCE", by David Richardson,
University of Michigan.
b. "Ak An Audio Toolkit for Tcl & Tk", by Andrew Payne, Digital Equipment
Corporation, Cambridge Research Laboratory.
c. "Tcl Distributed Programming", by Brian C. Smith, Lawrence A. Rowe,
Stephen C. Yen, University of California at Berkeley.
d. "Supervisory Control Language - Applying Tcl to the Realtime Arena"
presentation by Computerized Processes Unlimited, Inc.
e. "Tcl / Tk as a Basis for Groupware" by Mark Roseman
This file (tcl93-proceedings2) contains the PostScript for the paper:
f. "A Table Manager for Tk", by G. A. Howlett ,
ATT.
This file (tcl93-proceedings2) also contains Usenet postings by:
h. /* ???? */
i. /* ???? */
j. /* ???? */
k. /* ???? */
7. The Tcl Compiler (TC) Frequently Asked Questions by Adam Sah
is a document describing TC, which is a work
in progress. Contact Adam for details.
8. A compact yet detailed overview of Tcl, Tk and Xf is available thanks
to the graciousness of theobald@fzi.de (Dietmar Theobald) at:
ftp://ftp.fzi.de/pub/OBST/OBST3-3/psfiles/TclTk_notes.ps.Z
(compressed format) and
ftp://ftp.fzi.de/pub/OBST/OBST3-3/psfiles/TclTk_notes.ps.gz (gzip format)
9. Softcopy of an article about PhoneStation, a tool using Tk and Tcl, was
presented at the 1993 Winter USENIX Conference.
Uhler, Stephen A. (1993) ``PhoneStation, Moving the Telephone onto the
Virtual Desktop'', in the Proceedings of the 1993 Winter USENIX Conference,
pp ??-??
A softcopy of the paper is available as
ftp://bellcore.com/pub/PhoneStation/USENIX.ps
10. VanAndel, J.H., 1993: ``Design of a New Radar Control and Data Acquisition
System''. Preprints, 26th Conference on Radar Meteorology, Norman, Oklahoma
The paper is available in postscript form via the experimental web server:
Radar Control PS
11. Mark A. Harrison has written a Tk/Tcl
information sheet, providing an introductory look at why one might want to
use Tcl and Tk. Version 1.0 was posted to comp.lang.tcl as
<278ml0$457@news.utdallas.edu>. Contact him for a copy.
12. Cedric Beust has written a short article
giving guidelines on where to start when writing a Tcl extension. You
may find it at ftp://avahi.inria.fr/tcl/writing-a-tcl-extension.ps .
13. Douglas Pan and Mark Linton have
written the paper ``Dish: A Dynamic Invocation Shell for Fresco''.
It is available at ftp://sgi.com/graphics/fresco/dish.ps.Z . The FAQ
as well as some other papers are in ftp://sgi.com/graphics/fresco/ .
Fresco is an X Consortium project - non-members interested in contributing
to the effort should contact Mark Linton.
14. Michael Jipping, Hope College , (1993) ``Using Tcl as a Tool Talk
Encapsulation'', in the Sun User Group Eleventh Annual Conference and
Exhibition PROCEEDINGS, pp 161-174. This details work done writing an
abstract extension to Tcl which enables one to encapsulate tools to
make them ToolTalk aware.
15. A WorldWideWeb (WWW) resource for Ada Tcl is available as:
http://www.cs.colorado.edu/homes/arcadia/public_html/adatcl.html
16. A WWW resource for the MBV Lab's Tcl/Tk support is:
http://cornea.mbvlab.wpafb.af.mil/tcl.html
17. A WWW resource for the HTCLtoTCL program is available at:
http://www.lbl.gov/~clarsen/clarsen.html
18. A WWW resource for describing the set of extra ServiceMail
Tcl scripts is available at:
http://keck.tamu.edu/cgi/staff/emailserver.html
19. A WWW resource describing the HTML to Tcl preprocessor is
available at:
http://www.lbl.gov/~clarsen/projects/htcl.html
20. A WWW resource discussing Tk/Tcl style issues is available at:
http://www.atd.ucar.edu/jva/TCL.style.html
21. A WWW resource discussing Visual Numerics PV-Wave with Tk/Tcl is
available at:
http://www.atd.ucar.edu/jva/rds/wave_tk.html
22. A set of WWW resources discussing the Fermilab's use of Tcl within
a massive data manipulation package can be found at:
http://fndauh.fnal.gov:8000/spectro/doc/www/spectro.home.html
http://fndauh.fnal.gov:8000/shiva/doc/www/shiva.home.html
as well as various pages underneath this set of homes.
23. A soft file containing notes on Tcl and quoting philosophy can be
found at ftp://harbor.ecn.purdue.edu/pub/tcl/docs/README.programmer.gz
24. There are references to Tcl and Tk (and perhaps other Tcl based
interpreters) within the following WWW databases:
The Catalog of Free Compilers and Interpreters:
http://cui_www.unige.ch/freecomp
and
The Language List:
http://cui_www.unige.ch/langlist
25. The first Tcl 'home page' is now available via the WWW URL:
http://www.sco.com/IXI/of_interest/tcl/Tcl.html
Thanks to Mike Hopkirk for the time, energy and resources to make this
available. Note that this page is also available for those behind a
firewall as:
ftp://harbor.ecn.purdue.edu/pub/tcl/docs/tclhtml.tar.gz
26. The home page for Jungle - the Tcl-based WWW server - is available
as:
http://catless.ncl.ac.uk/Programs/Jungle
27. The home page for Nautilus - the Tcl-based [incr tcl] browser -
is available at:
http://catless.ncl.ac.uk/Programs/Nautilus/
28. The home page for Zircon - the Tcl-based Internet Relay Communication
(IRC) browser - is available at:
http://catless.ncl.ac.uk/Programs/Zircon/
29. Documentation on the Tcl processing of WWW's server Common Gateway
Interface (known as CGI) can be found at:
http://www.lbl.gov/~clarsen/projects/htcl/http-proc-args.html
30. Mark Roseman has prepared a brief comparison
between Tcl/Tk and the Interviews C++ toolkit. It is available via
email by contacting him.
31. Information about the SIMON Mosaic hotlist management tool can be
found at http://web.elec.qmw.ac.uk:12121/ .
32. Information about Fritz Heinrichmeyer's experimental Schematic SPICE
interface is available from http://ES-sun2.fernuni-hagen.de/editor.html .
33. Information about ical is now accessible from
http://clef.lcs.mit.edu/~sanjay/ical.html .
34. An attempt to provide various views on the lists of applications and
extensions available to the Tcl community can be found at the URL
http://web.cs.ualberta.ca/~wade/Auto/Tcl.html
35. The URL for a page describing threaded tknews is
http://www.cis.ohio-state.edu/hypertext/people/mdm/tknews.html
showing what the next release should be like.
36. The URL for a Tk-based Karel the Robot project is
http://www.cis.ohio-state.edu/hypertext/people/mdm/karel.html
37. A Tk reference card can be found at:
ftp://harbor.ecn.purdue.edu/pub/tcl/docs/tkrefcard.tar.gz
This TeX and Postscript version of a Tk 3.3 card was provided by
Paul Raines .
38. A good document on Xauth is available at:
ftp://ph-meter.beckman.uiuc.edu/security/xsecurity.ps
or
ftp://ph-meter.beckman.uiuc.edu/security/xsecurity.txt
39. The documentation for the Xf command is available in European page format
as:
ftp://harbor.ecn.purdue.edu/pub/tcl/docs/xf-doc.ps.gz
as well as United States page format as:
ftp://harbor.ecn.purdue.edu/pub/tcl/docs/xf-doc-us.ps.gz
40. Vivek Khera has written a primer on setting up your
environment for xauth (by default a requirement under Tk 3.3) in the
document:
ftp://harbor.ecn.purdue.edu/pub/tcl/docs/Xauthority.gz
41. Wade Holst has begun a hypertext document pointing to all Tcl
applications that he can locate. His URL is
http://web.cs.ualberta.ca/~wade/Auto/Tcl.html
42. A list of MPEG animations, done with Tcl scripts using TSIPP can
be found at: http://www.mcs.csuhayward.edu/tebo/Anims .
D. Published articles, books, and similarly available resources
1. Computer Shopper, V12 N12, page 862 had an article referencing Tickle,
the shareware package under Macintosh System 7 which is based on Tcl.
2. MacWEEK, Sept 14, 1992, V6 N32, page 91(1), Enhancing text editors for
Mac developers.
This article is a product announcement for Alpha 5.0, the Macintosh
editor which incorporates Tcl.
3. Computer Language, V9 N7, page 76 had an article referencing Tcl in
a hardware/software testing package which talks to a remote machine via
a proprietary interface card.
4. SunWorld, V5 N10, pages 95-96 had a article discussing Tcl, Tk and
expect.
5. UNIX REVIEW, V11 N4, April 1993, pages 93-94, Tcl, Tk, and friends
by Richard Morin.
The article, a part of "The Internet Notebook", mentions a little about
Tcl and Tk, where to find the sources, where to find the draft of the
book, and where to find the contributed software.
6. SunExpert, V4 N3, pages 32-36, by Richard Morin. As part of Morin's
I/Opener series of articles, this is just a brief overview of Tcl and Tk.
It mentions some of the technical ideas behind Tcl and Tk, where to find
the Tcl source and mentions that the draft of the book is available on
ftp.cs.berkeley.edu. A 'hello, world' 3 line wish script is really
all that is shown.
7. Libes, Don, "Obfuscated C and Other Mysteries", Wiley & Sons,
January 1993.
This book has a whole chapter on Tcl. Aimed at the C programmer, it
describes how to effectively use Tcl from C applications. Another
chapter is on Expect - a walk-through of some of the more interesting
code in Expect. These chapters originally appeared as separate
articles in The C Users Journal, Vol. 8, No. 7, July 1990, and Vol. 9,
No. 1, 1991. (Incidentally, the reason the book has such a peculiar
title is that it also contains explanations of the Obfuscated C Code
Contest winners.)
8. IEEE Design & Test of Computers, June 1993, pages 46-54,
"RISE++: A Symbolic Environment for Scan-Based Testing" by Steve Vinoski.
An article describing a system called the Remote Interactive Scan
Environment (RISE++) that marries Tcl with RPC for the purpose of
testing remote computer systems.
9. The X Journal, March-April 1993, pages 74-81, "HYPERTOOLS
A revolution in GUI applications" (listed in the TOC as "Hypertools: A GUI
revolution") by John K. Ousterhout and Lawrence A. Rowe.
10. Proceedings 1993 Tcl/Tk Workshop, Berkeley, CA, June, 1993. See above
for online version information concerning these proceedings.
11. iX (multiuser/multitasking magazine), September 1993,
pages 76-84 and 182-185. Two articles written in the German language.
These concern the design (interpreter and library) of Tcl/Tk and its
connections with C++. The articles say where to find the packages and
some associated tools (such as XF). There are short examples on how to
write programs with Tcl/Tk (taken from the demo-directory of the
package) and examples on using XF. Very informative.
12. Network Computing (CMP Publishing, Inc), November 15, 1993, pp. 99
"Very Rich E-Mail". References safe-tcl.
13. The Addison-Wesley Publishing Company's quarterly newsletter "Innovations"
dated Winter 93/94 contains an interview with John K. Ousterhout on pp 2,9,10.
It mentions the April 1994 release date, Dr. Ousterhout's background
at UCB and involvement in Sprite. John gives a overview of what Tk and
Tcl are, what companies are using Tcl, where Tcl/Tk fits in relationship
to AWK, Perl, Motif, and X Windows (sic), mentions there are between 10,000
and 50,000 people developing applications in Tcl/Tk, discusses where in
the classroom the textbook fits, and gives an overview of John's view
of the future of Tcl/Tk.
Also on page 3 of the same newsletter is the overview of the book
listing it as 512 pages and a list price of $36.75.
One can send email to pradeeps@aw.com (Pradeepa Siva) to request a copy
of the newsletter, or call him at Addison-Wesley Publishing Company
617/944-3700, ext 2940, or call Addison-Wesley directly to request
it at 800/238-9682.
14. EXE, Nov. 1993, V8 N6, p84(4), Ticklish X windows.
This is a tutorial as a part of a regular Unix column. It covers Tcl/Tk as a
scripting language for writing small X-Windows applications.
15. UNIX Review, March 1994, V12 N3, p87-90. Tickled Pink, by
Kevin Richard and Eric F. Johnson. This is part of the programming column
"CROSS THOUGHTS".
The authors attempt to provide a very brief taste for Tcl/Tk and to convey
the purposes for which they consider Tcl suited. They provide a standard
example of "Hello, world" in Tcl, and also a version written in Motif/C.
There were quite a few surprisingly negative remarks in a column which
tried to be positive about Tcl/Tk.
16. iX, January 1994, pp 148-152, another German article about the
interpretative class system that is a part of the GOOD graphics system.
17. The first text book dedicated to Tcl and Tk has been published.
The title is _Tcl and the Tk Toolkit_, by John K. Ousterhout. The
publisher is Addison-Wesley, and it became available in April, 1994.
The ISBN for the book is 0-201-63337-X. A note from the author about
the book:
"The Tcl book is more up-to-date than the drafts; for example, the
draft of Part II predates the Tk 3.6 release, so some of the example
scripts don't work with the current Tk release, and the drafts contain
a number of bugs that have been fixed in the final book. The book
also has more information about the individual widget classes than
the draft, an explanation of Tcl_AppInit, and a number of other
improvements. Finally, it has an index."
If you cannot find it in your local bookstore, one place you can call
is Addison-Wesley Publishing Company at 800/822-6339. It is paperback
and the reference price is $36.75.
Note that the examples from the book are available in one large file
as ftp://ftp.cs.berkeley.edu/ucb/tcl/book.examples.Z .
18. Walnut Creek CDROM has published the Tcl/Tk CDROM. This
is a snapshot of the ftp.cs.berkeley.edu and harbor.ecn.purdue.edu
archives, as well as the archives for comp.lang.tcl newsgroup.
The snapshot of the current CDROM is from early April, 1994.
The price is $39.95, plus shipping and handling. Contact:
Walnut Creek CDROM
1547 Palos Verdes Mall, Suite 260
Walnut Creek, CA 94596
1 800 786-9907
1 510 674-0783
1 510 674-0821 FAX
orders@cdrom.com
The disc is available for FREE to anyone that has contributed any of their
own work to the Sprite or Harbor Tcl archives. Just email me your name,
address, and the name of the files(s) that you contributed. Overseas
addresses are okay.
Additional bibliographic references are still being sought.
E. Training courses, materials, etc.
1. There have been, in the past, seminars at Usenix and the MIT X
conference taught by John Ousterhout on Tcl and Tk. See above for the
slides from the most recent of these presentations. Other conferences
are also mentioning Tcl and Tk in their announcements. Recently the
Usenix Very High Level Language Conference mentioned Tcl.
2. NeoSoft Communications Services ( info@NeoSoft.com, (713) 684-5900 ,
9am - 4pm CDT M-F ) can teach introductory and advanced Tcl courses on
site or at their location in Houston, Texas. A syllabus and pricing
information are available on request. Please contact Ellyn Mustard at
(713) 684-5900 or via email to ellyn@neosoft.com for more details.
3. Computerized Processes Unlimited ( gwl@cpu.com, (504) 889-2784
4200 S. I-10 Service Road, Suite #205, Metairie, LA 70001 )
has a combined Tcl/Tclx reference manual for sale. It groups the commands
by chapter based on functionality and has an extensive index. They
also offer courses on Tcl. For instance:
1. Course Title: Introduction to Programming in Tcl
Course Length: 2 Days
Course Format: Course material is presented in a lecture format and
through a hands on laboratory using a
network of X terminals connected to a RISC workstation.
Course Description: This course introduces the participant to programming
in Tcl/TclX.
Topics include:
- Variables
- Arrays
- Lists
- Keyed Lists
- Syntax
- Flow control
- Procedures
o Creating
o Invoking
o Passing variables
o Passing arrays
o Passing lists
- Running programs from Tcl
- Communicating with child processes
- Signal handling
- Error processing
- Accessing system facilities
- Programming techniques
o Using autoloading procedures
o Proper use of quoting
Course Level: Technical: Beginner to Intermediate
Prerequisites: Use of vi or emacs editors
Exposure to programming concepts
Use of csh/ksh (not programming)
2. Course Title: Building Graphical User Interfaces in Tk
Course Length: 2 Days
Course Format: Course material is presented in a lecture format and
re-enforced through a hands on laboratory using a
network of X terminals connected to a RISC workstation.
Course Description: This course introduces the participant to building
graphical user interfaces using Tcl/Tk.
Topics include:
- Background Concepts
- A tour of the widgets
- Adding Bindings
- Widget Class Bindings
- Geometry Managers
- Running programs from Tcl/Tk
- Communicating with child processes
- Writing widgets in Tcl/Tk
- Programming techniques
o Proper use of quoting
- Interface Builders for Tk
Course Level: Technical: Beginner to Intermediate
Prerequisites: CPU's "Introduction to Programming in Tcl" course
or understanding and experience using Tcl
4. A physical copy of the Tcl / Tk distributed documentation is
available at the Northside Copy Central in Berkeley under the name "TCL" and
is titled "Tcl/Tk Documents". Northside Copy Central is at 1862 Euclid
with a phone of (510) 849-9600. It costs approx. $15-$20 for the book in
a spiral bound, pink cover, clear plastic front and back format.
F. Time-related seminars, conferences, sessions.
1. An upcoming USENIX symposium will be dealing with Perl, Tcl and other
similar languages. Here is the information I have to date.
Symposium on Very High Level Languages
October 26-28, 1994
El Dorado Hotel
Santa Fe, New Mexico
Program Chair: Tom Christiansen (tchrist@usenix.org)
Extended abstracts due June 30, 1994
2. The 1994 Tcl/Tk Workshop and Seminars is scheduled to occur June
20-25, 1994, in New Orleans, LA. The seminars will be occuring on June
20-22. They will last from 1-3 days and the number of seminars and
attendance is limited due to space constraints. Cost depends on the
seminar chosen. The seminars being offered are:
Title: Building Graphical User Interfaces in Tcl/TclX/Tk
Duration: 3 Days
Format: Lecture/Lab
Cost: $1,300.00
Provider: Gerald W. Lester, Computerized Processes Unlimited
Min: 10 persons
Max: 20 persons
Dates: June 20-22
Title: Object-Oriented Programming with [incr Tcl]
Duration: 2 Day
Format: Lecture Only
Cost: $600.00
Provider: Michael J. McLennan, ATT&T Bell Laboratories
Min: 15 persons
Max: 30 persons
Dates: June 21-22
Registration fees are due by May 20, 1994.
The workshop will be help June 23-25 and consist of current work and
future direction sessions and attendance will be limited. Registration
fees are $200 and are also due May 20, 1994.
For more details on dates, fees, seminar topics, hotel special rates, etc.
etc., contact gwl@cpu.com.
------------------------------
From: FAQ General information
Subject: -VI- Where do I report problems, bugs, or enhancements - or -
What is comp.lang.tcl?
There are two alternatives for reporting bugs and problems.
The first is the USENET news group news:comp.lang.tcl, an unmoderated USENET
newsgroup, created for the discussion of the Tcl programming language
and tools that embed it, such as the Tk toolkit for the X window
system, expect, and Extended Tcl. Please note that postings of source
code to comp.lang.tcl do not get archived to harbor.ecn.purdue.edu - if
you want your code to be available from the User Contributions archive
you will need to make arrangements for someone to ftp it there. See
elsewhere in the FAQ for more details on the archive site.
The second would be to report problems, suggestions, new
ideas, etc. to the author. Email to
ouster@cs.berkeley.edu (John Ousterhout)
will get comments to the author of Tcl and Tk - to find the email
address of the authors of other Tcl/Tk based programs,
(see "tcl-faq/part3"), (see "tcl-faq/part4"), and (see "tcl-faq/part5").
At least one short term archive of comp.lang.tcl is available for
anonymous ftp from ftp://csc.canberra.edu.au/pub/motif/comp.lang.tcl/ .
------------------------------
From: FAQ General information
VII. Are there any mailing lists covering topics related to Tcl/Tk?
There are quite a number of mailing lists which cover topics
relating to the Tcl community. As you begin one, if you will send
me information relating to the mailing list, I will add it below.
o Basic Object Systems (BOS)
BOS is a SELF-like objects extension to Tcl.
To join, send email to snl+bos-requests@cmu.edu and then
send messages to snl+box@cmu.edu .
o Dejagnu
This set of mailing lists are NOT maintained by Cygnus, the
developers of Dejagnu.
Dejagnu is an expect 5.x based package designed to be a framework
for testing other software. Test suites exist for various GNU
products such as GDB and binutils.
3 mailing lists - dejagnu-bugs, dejagnu-developers, and
dejagnu-questions - have been created as a part of the
yggdrasil.com listserv.
To subscribe, send the line:
subscribe dejagnu-bugs yourname@yoursite.com
to the email address listserv@yggdrasil.com where you put your
own email address in place of yourname@yoursite.com and you put
the name of the mailing list you wish to join after subscribe.
o Comp.Lang.Tcl by email
For those USENET-deprived individuals who are thus unable
to read comp.lang.tcl, an email alternative is available.
If you get comp.lang.tcl you do not need to sign up for this list.
A service called "listserv" is being run out of CERN to forward
comp.lang.tcl postings via e-mail to people who don't have direct
access to the newsgroup. In addition, they are archiving the newsgroup
so you can retrieve old postings from them. Here is some more
information about the service:
1) send a mail to listserv@cernvm.cern.ch with one line in the body:
subscribe tcltk
2) see how it works (you will receive the mail with instructions from
listserv);
3) unsubscribe by a mail to listserv@cernvm.cern.ch with one line
in the body:
signoff tcltk
4) again, signing off will be confirmed by listserv
o Macintosh Tcl
W. Ross Brown previously maintained a
mailing list for discussion of Tcl on the Macintosh. This list
is being phased out and users are encouraged to move to the new
Macintosh Tcl Mailing list. Here is it's announcement:
---
This Mailing List is devoted to the issues of Tcl on
the Macintosh. This includes (but not limited to) such
topics as ports of Tcl to the Mac (MacTcl), Tcl questions
relating only to the Mac (file I/O etc.), and porting of Tk to
the Mac.
A previous mailing list was supported by Ross Brown.
Ross, however, had to manage the list by hand. This list will
be managed by listserv software and will hopefully be more
active. If you were previously on Ross's mailing list you are
encouraged to switch to this new list. Ross's mailing will be
phased out shortly.
To get more information about the mailing list send a message
to "listserv@aic.lockheed.com" with the line "information mactcl" in
the body of the message (the subject is ignored).
To subscribe to the mailing list send a message to
"listserv@aic.lockheed.com" with the line "subscribe mactcl Your Name"
in the body of the message. Substitute 'Your Name' with
whatever your real name is.
Otherwise, all posting of articles to the mailing list
should be sent to mactcl@aic.lockheed.com.
o Microsoft Windows port of Tk
Simon Kenyon announced in early
April 1994 that the Information Technology Centre of Dublin, IRELAND
was undertaking the port of Tk to MS-Windows. He has set up the
mstk mailing list for those interested in discussing it.
If interested, send mail to mstk-list-request@itc.icl.ie
to join the list and send comments and code to mstk@itc.icl.ie .
o Ptolomy
Ptolomy is a simulation and prototyping system which uses tcl.
To join the mailing list, send email to
ptolemy-request@ohm.eecs.berkeley.edu .
o safe-tcl
Safe-tcl is an extension to Tcl which one can use to process
incoming email msgs as tcl scripts.
To subscribe, send a msg to safe-tcl-request@uunet.uu.net and
then further email msgs to safe-tcl@uunet.uu.net .
o ServiceMail Toolkit
ServiceMail is a stand-alone email server written in C and Tcl.
It takes incoming email requests and can perform tasks for the
sender.
To join the mailing list, send email to servicemail-help@eitech.com
or subscribe to servicemail-help mailing list by sending a message
to the "listserv subscribe servicemail-help your-real-name" service at
"services@eitech.com".
o tclMotif
tclMotif is an extension which provides true Motif access to a
Tcl program.
This mailing list is maintained by listserv@ise.canberra.edu.au .
To subscript, send mail to this address with the request
subscribe tclMotif
and you will receive a mail message acknowledging this. From then
on, send mail to tclMotif@ise.canberra.edu.au and it will be
distributed.
o TeenyMUD
TinyMUD is a multi-user dungeon program - allows multiple users
to role play and converse in 'real time'. It uses Tcl.
To join the mailing list, contact
teeny-list-request@fido.econlab.arizona.edu and then send your
mail to teeny-list@fido.econlab.arizona.edu .
o tkWWW
tkWWW is a tk-based WorldWideWeb client. Contact
tk-www-request@athena.mit.edu to join the mailing list and send
your messages to tk-www@athena.mit.edu .
o VMS Tcl/Tk
Folks interested in Tcl on VMS in general can sign up to the
vms-tcl@src.honeywell.com mailing list for more details.
An archive for the mailing list is available at:
ftp://src.honeywell.com/pub/vms-tcl/mailinglist.archive
o WAFE
WAFE is a Athena Widget front end which uses Tcl. To join
the wafe mailing list, contact wafe@wu-wien.ac.at .
o XF
XF is a Graphical User Interface builder which generates Tk and
Tcl code. To subscribe to the xf mailing list,
send a "sub xf-l Your Name" line to listserv@tubvm.cs.tu-berlin.de
o X Protocol Engine Library (XPEL)
To join, send email to xpel-request@cs.unc.edu .
XPEL uses Tcl for an embedded interpretor as well as uses
safe-tcl in external monitor programs.
------------------------------
From: FAQ General information
Subject: -VII- Where can I find the FAQ and who do I contact for more
information about it?
I am going to attempt to keep a copy of this file up to date on
ftp://harbor.ecn.purdue.edu/pub/tcl/docs/tcl-faq.p0[1-5].gz . There
are mirrors of harbor.ecn.purdue.edu maintained elsewhere - for
instance, it appears that cs.huji.il, ftp.denet.dk, ftp.luth.se,
hplyot.obspm.fr, rs3.hrz.th-darmstadt.de, sunsite.unc.edu,
swdsrv.edvz.univie.ac.at all have some portion of the harbor archives
available. Also, I will be posting it on a regular basis to at least
comp.lang.tcl, news.answers, and comp.answers.
Many FAQs, including this one, are available on the archive
site ftp://rtfm.mit.edu/pub/usenet/news/answers/ . The subdirectory and
name under which a FAQ is archived appears in the Archive-name line at
the top of the article. For example, this part of the comp.lang.tcl
FAQ is archived as
ftp://rtfm.mit.edu/pub/usenet/news/answers/tcl-faq/part1.Z .
There is a Northern European archive for the FAQ at
ftp://src.doc.ic.ac.uk/usenet/news.answers/comp.lang.tcl/ .
There is also a mail server from which you can obtain a copy of
the FAQ. Send an email message to mail-server@rtfm.mit.edu or
archive-server@nic.switch.ch) with the word help in the body of the
message to find out how to use it.
Also, this FAQ is available from within gopher (by looking at
any one of the gopher holes presenting news.answers or FAQ lists), from
WAIS servers (such as the comp.lang.tcl.src), from a number of sites
which have available via ftp archives of news.answers and comp.answers
(use archie to locate one of these sites available around the world),
and probably other resources as well.
Other news.answers/FAQ archives (which carry some or all of the FAQs
in the rtfm.mit.edu archive), sorted by country, are:
Belgium
-------
gopher cc1.kuleuven.ac.be port 70
anonymous FTP cc1.kuleuven.ac.be:/anonymous.202
mail-server listserv@cc1.kuleuven.ac.be get avail faqs
Canada
------
gopher jupiter.sun.csd.unb.ca port 70
France
------
anonymous ftp cnam.cnam.fr:/pub/FAQ
grasp1.univ-lyon1.fr:/pub/faq
grasp1.univ-lyon1.fr:/pub/faq-by-newsgroup
gopher gopher.univ-lyon1.fr, port 70
mail server listserver@grasp1.univ-lyon1.fr
Germany
-------
anonymous ftp ftp.Germany.EU.net:/pub/newsarchive/news.answers
ftp.informatik.uni-muenchen.de:/pub/comp/usenet/news.answers
ftp.uni-paderborn.de:/doc/FAQ
ftp.saar.de:/pub/usenet/news.answers (local access only)
gopher gopher.Germany.EU.net, port 70.
gopher.uni-paderborn.de
mail server archive-server@Germany.EU.net
ftp-mailer@informatik.tu-muenchen.de
ftp-mail@uni-paderborn.de
World Wide Web http://www.Germany.EU.net/
FSP ftp.Germany.EU.net, port 2001
gopher index gopher://gopher.Germany.EU.net:70/1.archive
gopher://gopher.uni-paderborn.de:70/0/Service/FTP
The Netherlands
---------------
anonymous ftp ftp.cs.ruu.nl:/pub/NEWS.ANSWERS
ftp.win.tue.nl:/pub/usenet/news.answers
gopher ftp.win.tue.nl, port 70
gopher.win.tue.nl, port 70
mail server mail-server@cs.ruu.nl
World Wide Web http://www.cs.ruu.nl/pub/NEWS.ANSWERS/tcl-faq/part[1-5]
Switzerland
-----------
anonymous ftp nic.switch.ch:/info_service/usenet/periodic-postings
anonymous UUCP chx400:ftp/info_service/Usenet/periodic-postings
mail server archiver-server@nic.switch.ch
telnet nic.switch.ch, log in as "info"
Taiwan
------
anonymous ftp nctuccca.edu.tw:/USENET/FAQ
United States
-------------
anonymous ftp ftp.uu.net:/usenet
World Wide Web http://www.cis.ohio-state.edu/hypertext/faq/usenet/top.html
The Uniform Resource Locator (URL) id for the FAQ is:
http://www.cis.ohio-state.edu/hypertext/faq/usenet/tcl-faq/top.html
The user can use a WorldWideWeb client to access the FAQ from this point.
A WWW URL for the FAQ, where the FAQ is treated simply as one
long scrollable document (suitable for doing a search against, for
instance) is:
http://realsoon.wpi.edu:8080/faqs/tcl.FAQ
A complete archive of the newsgroup is available from:
ftp://ftp.neosoft.com/pub/archive/usenet/comp/lang/tcl/
A good place to start looking through this archive is:
ftp://ftp.neosoft.com/pub/usenet-archives/comp/lang/tcl/+Index
which contains a list of all the filenames and subject lines of each of the
articles.
Let me know when you find the FAQ in new and unusual locations
so I can update this resource guide!
The Tcl commercial use FAQ is available as
ftp://harbor.ecn.purdue.edu/pub/tcl/docs/tcl-commercial-faq.gz
currently. The author, Gerald W. Lester , may in the future
expand the locations where you may find this. It contains information
either about commercial products which incorporate Tcl as a part of them
or which teach about Tcl and Tk in some manner.
If you have corrections, enhancements, modifications,
clarifications, suggestions, ideas, new questions, new answers to
questions which have never been asked, or something else that I have
not covered above, contact me at lvirden@cas.org.
------------------------------
End of comp.lang.tcl Frequently Asked Questions (1/5)
*****************************************************
Newsgroups: comp.lang.tcl,comp.answers,news.answers
Path: lvirden
From: lwv26@cas.org (Larry W. Virden)
Subject: FAQ: comp.lang.tcl Frequently Asked Questions (2/5)
(Last updated: April 20, 1994)
Followup-To: comp.lang.tcl
Summary: A regular posting of the comp.lang.tcl Frequently Asked Questions
(FAQ) and their answers. This is the second of five parts.
This part covers the how-to questions and answers.
Originator: lvirden@cas.org
Keywords: tcl, expect, extended tcl, wish, tk
Sender: lvirden@cas.org
Reply-To: lvirden@cas.org (Larry W. Virden)
Approved: news-answers-request@MIT.Edu
Archive-name: tcl-faq/part2
Version: 5.0
Last-modified: April 20, 1994
Please do not be offended if I neglect to acknowledge your contribution
to this FAQ! I sometimes forget to put an attribution in. I especially
try to add them if it appears that there is further experimentation or
debugging being done though.
For more information concerning Tcl (see "tcl-faq/part1"),
(see "tcl-faq/part3"), (see "tcl-faq/part4"), or (see "tcl-faq/part5").
Index of questions:
VIII. Questions on building Tcl and friends on your system:
Q8A. Is there anywhere I can find help with the details of getting
Tcl to work on my machine?
Q8B. Why does the link step says that some of the functions Tcl,
needs are missing when I am trying to build it?
Q8C. Has anyone built Tcl 6 on an RS/6000 AIX 3.1?
Q8D. Has anyone gotten Tcl to compile under HP-UX?
Q8E. Has anyone gotten Tcl to compile under VMS?
Q8F. What does it take to get Tcl to compile under SCO Unix?
Q8G. Why do I get format and scan errors when I run tclTest
(NeXT, AIX, etc.)?
Q8H. Why do I get lots of errors under Irix 4.0.1 when I run
tclTest?
Q8I. Does anyone else have problems with Tcl on a Cray?
Q8J. Does anyone know how to get Tk to run on a SparcBook or other
laptop with a limited number of colors?
Q8K. What does it take to get Tcl/Tk to compile on 386bsd/Linux
or other POSIX/ANSI C systems not already supported?
Q8L. Why do I get a parse error in tkInit.c when I try to compile
Tk on my Irix machine?
Q8M. What do I need to do to install Tcl 7.x/Tk 3.x on NeXTSTEP 3.1?
Q8N. Why can't I print the draft of the Tcl/Tk book?
Q8O. Why am I getting errors on my SGI Indigo workstation?
Q8P. How do I build expect on Solaris 2.3?
Q8Q. How do I add BLT to a TclX/Tk ?
IX. How, in Tcl, can I XXX:
Q9A. get association lists or property lists?
Q9B. call one proc with the multi parameter value returned by
another proc?
Q9C. pass an array into a proc?
Q9D. pipe output of a command back into a Tcl parsing procedure?
Q9E. merge extended Tcl into other programs such as wish or expect?
Q9F. delete a procedure from within a script?
Q9G. get parray to recognize an array variable I have created
via upvar?
Q9H. get more than 7 digits of double precision?
Q9I. grab the command line whenever a non-built-in call is made?
Q9J. get or set an environment variable?
Q9K. use numbers with leading zeroes?
Q9L. find the command line arguments to my application?
Q9M. put comments in my script, for example in a case statement?
Q9N. redirect stdin or stdout safely, including binary data?
Q9O. trap signals, and other more Unix specific functions?
Q9P. get quoted strings to work the way I want?
Q9Q. share procedures between multiple tcl applications?
Q9R. get items inserted into a list?
Q9S. perform a non-blocking read on a file identifier?
Q9T. read and write from a pipe without locking up?
X. How, in Tk, can I XXX:
A. Question on starting Tk applications
Q10.A.1. get my wish application to execute - I just get a wish prompt!
Q10.A.2. ,using a machine with less than 8 bit color, run?
Q10.A.3. set X11 resources for a wish application in an
app-defaults file?
Q10.A.4. specify bitmap patterns on the command line instead of
as a file name?
Q10.A.5. get a Motif user interface?
Q10.A.6. get an OpenLook user interface?
Q10.A.7. get Tk 3.3 to even start - I get security error messages.
B. Questions on Tk applications and the keyboard
Q10.B.1. change the default class bindings?
Q10.B.2. delete a binding?
Q10.B.3. change a binding while it is being executed?
Q10.B.4. bind the arrow key on my Sun keyboard?
Q10.B.5. get root's mouse bindings to work in my Tk application?
C. Questions on Tk and X11 interactions
Q10.C.1. get an application to also use libXt?
Q10.C.2. change the X11 cursor?
Q10.C.3. raise or lower a window?
Q10.C.4. re-map a withdrawn window id?
Q10.C.5. use Tk in a subwindow of a non-Tk X11 application?
Q10.C.6. bind and to a frame containing other widgets?
Q10.C.7. mix interactions between Xt and Tk/Tcl?
D. Questions on Tk listboxes
Q10.D.1. resize a listbox?
Q10.D.2. select two items that are not adjacent in the listbox at
one time?
Q10.D.3. select items in more than one Tk listbox at a time?
Q10.D.4. avoid fractional white space at the end of a resizable listbox?
E. Questions on Tk canvases
Q10.E.1. get output from a Tk canvas?
Q10.E.2. fill a canvas which is bounded by lines as opposed to a
shape like a polygon, oval, etc.?
Q10.E.3. raise/lower canvas window objects or draw graphics onto a
window object inside a canvas?
Q10.E.4. detect when the canvas has been resized?
F. Other questions
Q10.F.1. get the name of my own interpreter?
Q10.F.2. get -relief to work on my text widgets?
Q10.F.3. create a scrollable window of buttons?
Q10.F.4. pack a text widget so that it can be resized interactively?
Q10.F.5. create a widget with an upper case name?
Q10.F.6. create equal sized buttons?
Q10.F.7. vertically stack radio buttons aligning regardless of font?
Q10.F.8. initialize an entry widget with some text?
End of FAQ Index
----------------------------------------------------------------------
------------------------------
From: -VIII- Questions on building Tcl and friends on your system
Subject: -Q8A- Is there anywhere I can find help with the details of
getting Tcl to work on my machine?
A8A. Glad you asked! Look in the Tcl distribution for the file called
"porting.notes". This will contain a collection of notes that various people
have provided about porting Tcl to various machines and operating systems.
There are also a file called "README" which should be read FIRST - before
doing anything else with the code (this should always be one's first
step with any package). Finally, there is a "changes" file which details
what has changed since the last release - be sure to read this to see
what might need to change in your programs.
------------------------------
From: -VIII- Questions on building Tcl and friends on your system
Subject: -Q8B- Why does the link step says that some of the functions Tcl,
needs are missing when I am trying to build it?
A8B. Did you run the "config" program first, by doing a "csh ./config" or
equivalent? Without doing this, things such as strtoul or strerror
are sometimes mentioned as missing.
Tcl includes equivalents for at least the following functions and include files
which may not be found on some systems:
dirent.h limits.h stdlib.h string.h
opendir.c strerror.c strstr.c strtol.c strtoul.c
strtod.c
------------------------------
From: -VIII- Questions on building Tcl and friends on your system
Subject: -Q8C- Has anyone built Tcl 6 on an RS/6000 AIX 3.1?
A8C. See porting notes - especially the note about strtoul.
One user got Tcl to compile with a few minor source modifications
(for example, duplicate case statements for errno and signal symbols in
tclUnixStr.c).
A few other problems arose in the tests. One is caused by AIX printf
not formatting %#x and %#o correctly when the value to be printed is
zero: they print "0x0" and "00" instead of "0" and "0" respectively.
This was reported as not a problem in earlier releases. No fixes have
been posted.
Finally, a problem occurs in open.test. test 13.6 hangs because "cat"
on the RS6000 is unbuffered. A workaround is to change the execution
of "cat" in open.test to do a "cat -u".
Dov Grobgeld provided info on creating Tcl
and Tk shared libraries under AIX 3.1.5:
For Tcl:
cc -o tkshar.o *.o -bE:tclshar.exp -bM:SRE -berok -lX11 -lm
ar r libtclshr tclshar.o
For Tk:
cc -o tkshar.o *.o -bE:tkshar.exp -bM:SRE -berok -Ltcl -lX11 -lm -ltclshr
ar r libtkshr tkshar.o
where tckshar.exp and tkshar.exp had lists of the external functions.
There are also problems with fonts on AIX and the IBM. A patch is needed
from IBM to fix the X server so that fonts are working
------------------------------
From: -VIII- Questions on building Tcl and friends on your system
Subject: -Q8D- Has anyone gotten Tcl to compile under HP-UX?
A8D. See the porting notes.
------------------------------
From: -VIII- Questions on building Tcl and friends on your system
Subject: -Q8E- Has anyone gotten Tcl to compile under VMS?
A8E. Information from jkimball@src.honeywell.com (John Kimball) on
May 4, 1993 was that he had gotten Tcl 6.7 and Tk 3.2 ported to VMS
5.5. See the catalog for the file information.
------------------------------
From: -VIII- Questions on building Tcl and friends on your system
Subject: -Q8F- What does it take to get Tcl to compile under SCO Unix?
A8F. Add a "#undef select" to tkEvent.c, and remove the reference to
TK_EXCEPTION around line 460 of main.c.
Tk uses its own scheme for allocating the border colors for its 3D
widgets, which causes problems when running TK on a system with
"PseudoColor" display class, and a 16-cell colormap.
If you can't go to eight bitplanes, you can instead start the server
with a "-static" (Xsco) or "-analog" (Xsight) option, making the
display class become "StaticColor". This makes the entire colormap
read-only, and it will return the color that most closely maps to the
desired color as possible.
This information is from Keith Amann
------------------------------
From: -VIII- Questions on building Tcl and friends on your system
Subject: -Q8G- Why do I get format and scan errors when I run tclTest
(NeXT, AIX, etc.)?
A8G. That's a problem (scanf/printf) many systems seem to have. Don't
worry too much about it - just don't use these 'advanced' features. If
you're hacking C, you'll have the same problems.
------------------------------
From: -VIII- Questions on building Tcl and friends on your system
Subject: -Q8H- Why do I get lots of errors under Irix 4.0.1 when I run
tclTest?
A8H. There's a bug in the 4.0.1 optimizer that's fixed in 4.0.2.
Compile tclVar.c using -O0 (no optimization).
------------------------------
From: -VIII- Questions on building Tcl and friends on your system
Subject: -Q8I- Does anyone else have problems with Tcl on a Cray?
A8I. See the porting notes for a set of changes mentioned. Also,
Booker C. Bense reports that version 3.0.1.6
has some real problems with char pointers, causing Tcl to crash. Using
version 3.0.2.1, things are much better, except for a minor formatting
problem and serious problems with scan.
------------------------------
From: -VIII- Questions on building Tcl and friends on your system
Subject: -Q8J- Does anyone know how to get Tk to run on a SparcBook or other
laptop with a limited number of colors?
A8J. On a SparcBook, if you start openwin (the OpenWindows server starting
command) as:
openwin -dev "/dev/fb staticvis"
you get a static visual color model that Tk copes with better than the
default. Some things are ugly, but not as ugly as monochrome.
------------------------------
From: -VIII- Questions on building Tcl and friends on your system
Subject: -Q8K- What does it take to get Tcl/Tk to compile on 386bsd/Linux
or other Posix/ANSI C systems not already supported?
A8K. Patches for 386BSD were posted to comp.lang.tcl back in Nov. 1992 to
alt.sources. See one of the ftp archive sites for this group for them.
Basically, there were some setting of defines and a few places where
const char * had to be used in place of char *.
------------------------------
From: -VIII- Questions on building Tcl and friends on your system
Subject: -Q8L- Why do I get a parse error in tkInit.c when I try to compile
Tk on my Irix machine?
A8L. Jon Knight reports that the version of
Irix that he is using doesn't define a uid_t. One needs to define one
somewhere (or comment out the lines causing the problems) to get the compile
to continue.
------------------------------
From: -VIII- Questions on building Tcl and friends on your system
Subject: -Q8M- What do I need to do to install Tcl 7.1/Tk 3.4 on NeXTSTEP 3.1?
A8M. I have indicated in the past that this particular question seems
to generate controversy - I have replaced previous explanations with the
latest msg from someone who sounds authoritative...
From: Robert Nicholson
This is for TCL7.1 and TK3.4
This is a variation on Thomas Funke's entry.
Installing TCL7.1 on NeXT
=========================
To install tcl7.1 on NeXTSTEP 3.1 you must:
- run configure with predefined CPP:
type "sh" to run a Bourne shell.
then type
CPP='cc -E' ./configure
- edit Makefile:
add tmpnam.o to COMPAT_OBJS:
COMPAT_OBJS = getcwd.o waitpid.o strtod.o tmpnam.o
At this point you probably want to rename the all calls to strtod and
tmpnam to something else in order to distinguish them from those that
are supplied in the NeXT libraries libsys_a.a. You can do this by
adding the following line to AC_FLAGS
-Dstrtod=newstrtod -Dtmpnam=newtmpnam
and renaming the names of the definitions in the appropriate
compat/*.c files.
To check everything is working correctly open a tclsh
% expr {"0" == "+"}
0
Using the wrong strtod function will cause this test to return 1 which
is a serious error. Ignore the precision errors.
Installing TK3.4 on NEXTSTEP 3.1
================================
There is a call to strtod in TK3.4 so you should link against
../tcl-7.1/compat/strtod.o and apply the -Dstrtod=newstrtod
to AC_FLAGS in Tk also.
Note:Tk's raise test will fail when running the tvtwm window manager.
Changing to either twm or even better fvwm ensures that this test will
succeed.
------------------------------
From: -VIII- Questions on building Tcl and friends on your system
Subject: -Q8N- Why can't I print the draft of the Tcl/Tk book?
A8N. From ouster@cs.Berkeley.EDU (John Ousterhout):
Here's my form letter that seems to explain most of the problems people
have had printing parts of the book:
Some old versions of the Transcript spooler software cannot properly
handle encapsulated Postscript files within another Postscript file
when they do page reversal. They tend to garble the page structure of
the file, causing an error at the point of the first EPS file. Part
II of the Tcl book has lots of EPS files embedded in it, one for
each screen dump. If your printer cannot print this file I suggest
checking to see if page reversal is enabled for your printer. If
so, try asking your local system wizard to disable it for you; this
should allow the file to print. Or, find some other way to dump the
Postscript file directly to the printer without going through the
spooling software (e.g. perhaps you can simply cat it to the printer's
serial port).
Others have suggested:
The embedded pictures have CR as the line separator instead of LF and
this may be causing the problem. Try translating them to LFs ...
tr '\015' '\012' fixedbook.p2.ps
and:
This is not the original poster's problem but in countries using A4
paper and on a particular printer, the Dataproducts LZR1260E, the frame
size causes the printing to be stretched vertically. This happens with
other Framemaker generated documents by the way. A PS interpreter bug
no doubt. The fix is to edit the dimensions for A4 paper. This shell
script does both fixes.
#!/bin/sh
cat $1 | tr '\015' '\012' | sed '/FMDOCUMENT$/s/612 792/595 842/'
------------------------------
From: -VIII- Questions on building Tcl and friends on your system
Subject: -Q8O- Why am I getting errors on my SGI Indigo workstation?
A8O. From Gordon Lack we are told that
the SGI c compiler has some bugs with variable arguments.
tclVar.c must be compiled with -O0 at IRIX C 4.0.1 because of a
compiler bug with varargs.
Done by placing specific rule into Makefile.
> # GGR SG needs -O0 for varargs at 4.0.1
>
> CC_SWITCHES0 = -O0 -I. -I${SRC_DIR} ${AC_FLAGS} ${MATH_FLAGS} \
> ${GENERIC_FLAGS} ${PROTO_FLAGS} ${MEM_DEBUG_FLAGS} \
> -DTCL_LIBRARY=\"${TCL_LIBRARY}\"
>
> tclVar.o: tclVar.c
> $(CC) -c $(CC_SWITCHES0) $<
Peter NEELIN also noted that:
I get tclX 7.3a to compile on an SGI (irix 4.0.5) with the following
changes to the Config.mk file:
71c71
< CFLAGS=-cckr -D__GNU_LIBRARY__
---
> #CFLAGS=
106,107c106,107
< TCL_PLUS_BUILD=TCL_PLUS
< CCPLUS=g++
---
> #TCL_PLUS_BUILD=TCL_PLUS
> CCPLUS=CC
191,193c191
< MAN_DIR_SEPARATOR=
<
< LIBOBJS=strftime.o
---
> #MAN_DIR_SEPARATOR=.
The -D__GNU_LIBRARY solves the srandom problem and I think that the -cckr gets
around the prototype error with waitpid (it's crude, but it works).
I've forgotten why I needed the strftime.
If you want the version of Config.mk that worked for me, send me mail.
------------------------------
From: -IX- How, in Tcl, can I XXX:
Subject: -Q8P- How do I build expect on Solaris 2.3?
A8P. From jra@hrcms.jazz.att.com (Jeff Abramson) we are told that,
> using either SunPro cc 2.0.1 or gcc 2.5.8 with
> no problems. For SunPro I do:
>
> CC=cc ./configure --prefix=directory_of_your_choice
> make CC=cc
>
> For gcc I do:
>
> CC="gcc -fwritable-strings" ./configure \
> --prefix=directory_of_your_choice
> make CC="gcc -fwritable-strings"
------------------------------
From: -IX- How, in Tcl, can I XXX:
Subject: -Q8Q- How do I add BLT to a TclX/Tk ?
A8Q. From gah@grenache.mhcnet.att.com (George A. Howlett) we get
the answer:
Instead of adding TclX to blt_wish, try it the other way. Add
BLT to wishx. It's pretty simple.
In the file ./tksrc/tkXAppInit.c, add the a call to the BLT
initialization routine right after line 116.
if (TkX_Init(interp) == TCL_ERROR) {
return TCL_ERROR;
}
if (Blt_Init(interp) != TCL_OK)) {
return TCL_ERROR;
}
Link wishx with libBLT.a and that's it.
Others recommend the tkmkmf or make-a-wish packages.
------------------------------
From: -IX- How, in Tcl, can I XXX:
Subject: -Q9A- association lists or property lists?
A9A. Use Extended Tcl arrays or keyed lists.
For example, if you did a:
keylset ttyFields ttyName tty1a
keylset ttyFields baudRate 57600
keylset ttyFields parity strip
And then an "echo $ttyFields", you'd get:
{ttyName tty1a} {baudRate 57600} {parity strip}
------------------------------
From: -IX- How, in Tcl, can I XXX:
Subject: -Q9B- call one proc with the multi parameter value returned by
another proc?
A9B. Assuming y requires multiple args and x returns multiple words, use
Tcl's eval command :
eval y [x]
------------------------------
From: -IX- How, in Tcl, can I XXX:
Subject: -Q9C- pass an array into a proc?
A9C. Use upvar rather than try to use global variables when possible. If
the function is event driven, you are forced to use global variables.
# print elements of an array
proc show_array arrayName {
upvar $arrayName myArray
foreach element [array names myArray] {
puts stdout "${arrayName}($element) = $myArray($element)"
}
}
set arval(0) zero
set arval(1) one
show_array arval
To return an array from a procedures, just take the array name in as an
argument, as above. Any changes you make in the array will be made in
the parent's array as well.
Extended Tcl introduces a concept called keyed lists which are arrays
made out of lists of key-value pairs and can be passed by value to routines,
over networks, etc.
------------------------------
From: -IX- How, in Tcl, can I XXX:
Subject: -Q9D- pipe output of a command back into a Tcl parsing
procedure?
A9D. For example, to grep a pattern out of a range of files, one might
do:
karl@NeoSoft.com (Karl Lehenbauer) writes:
set files [glob /home/cole/stats/*]
proc parseInfo { site } {
global files
#
# site is chosen from a listbox earlier
#
set in [open [concat "|/usr/bin/grep $site $files"] r]
while {[gets $in line]>-1} {
puts stderr $line
}
catch {close $in}
}
One thing: the matching strings are _not_ returned in directory order.
But what if I want to check the return code AND use the output of
the command? kennykb@dssv01.crd.ge.com (Kevin B. Kenny) writes:
if [catch {exec ls} data] {
# The exec got an error, and $errorCode has its termination status
} else {
# The exec succeeded
}
# In any case, `data' contains all the output from the child process.
Note that Karl Lehenbauer adds that errorCode will be a list containing
three elements, the string "CHILDSTATUS", the process ID of the child,
and the exit status of the child.
------------------------------
From: -IX- How, in Tcl, can I XXX:
Subject: -Q9E- merge extended Tcl into other programs such as wish or expect?
A9E. The latest version of extended Tcl, tclX 6.7c, has been enhanced to
make it easier to incorporate into applications.
------------------------------
From: -IX- How, in Tcl, can I XXX:
Subject: -Q9F- delete a procedure from within a script?
A9F. rename procedureName ""
------------------------------
From: -IX- How, in Tcl, can I XXX:
Subject: -Q9G- get parray to recognize an array variable I have created
via upvar?
A9G. Right now (June, 1992) upvar doesn't allow you to attach to an
individual element of an array. This is considered a bug by
Mr. Ousterhout and has been place on a bug list.
------------------------------
From: -IX- How, in Tcl, can I XXX:
Subject: -Q9H- get more than 7 digits of double precision ?
A9H. In Tcl 6.x, modify the tclExpr.c module to use %lf instead of %g. In
Tcl 7.x, set the global variable tcl_precision instead.
------------------------------
From: -IX- How, in Tcl, can I XXX:
Subject: -Q9I- grab the command line whenever a non-built-in call is made?
A9I. The procedure "unknown" is called automatically with arguments
containing the command and its arguments for any command that couldn't be
found. In fact, Tcl and Extended Tcl use this feature to provide demand
loaded commands, and even entire libraries.
So by modifying the unknown procedure you can provide your own extended
functionality, or even remove the demand loading capability if you so
desire.
------------------------------
From: -IX- How, in Tcl, can I XXX:
Subject: -Q9J- get or set an environment variable?
A9J. By using something like the following.
set olddisplay $env(DISPLAY)
set env(DISPLAY) unix:0
Thanks to "Joel Fine" for the answer.
------------------------------
From: -IX- How, in Tcl, can I XXX:
Subject: -Q9K- use numbers with leading zeroes?
A9K. Dave Morriss was recently having problems because he was trying
to do something like:
set index [expr [exec date +%W]%[llength $pop_server_list]]
but during the 9th and 9th week of the year, he got errors - 08 and 09
are not valid octal numbers in Tcl.
Some of the solutions provided were:
From George A. Howlett , we got:
set wknum [format "%g" [exec date +%W]]
set index [expr [exec $wknum%[llength $pop_server_list]]
From Fred Feirtag :
set index [expr (1[exec date +%W]-100)%[llength $pop_server_list]]
From Dan R. Schenck :
set index [expr [string trimleft [exec date +%W] 0]%[llength $pop_server_list]]
------------------------------
From: -IX- How, in Tcl, can I XXX:
Subject: -Q9L- find the command line arguments to my application?
A9L. If you are using extended Tcl or Expect, you will find the parameters in
the Tcl variable argv as a list. Note that in extended Tcl, the name of
the program is in the Tcl variable programName and NOT in argv[0]. Thanks to
brad@NeoSoft.com (Brad Morrison) and bachww@rtsg.mot.com (Bud Bach) for
this answer.
------------------------------
From: -IX- How, in Tcl, can I XXX:
Subject: -Q9M- put comments in my script, for example in a case statement?
A9M. You can't have comments where you have them. Move the comments inside
of the "{" for the case that you want. Your code should read:
case 1 {
-1 {
#
# Cannot find information sought
#
exit 2
}
0 {
#
# Error in arguments
#
exit 1
}
default {
#
# Desired information found
#
exit 0
}
}
Thanks to gwlester@cpu.com (Gerald W. Lester).
------------------------------
From: -IX- How, in Tcl, can I XXX:
Subject: -Q9N- redirect stdin or stdout safely, including binary data?
A9N. With Extended Tcl you can safely do stuff like:
set infp [open "|compress -dc $fileName"]
set outfp [open "|gzip -c $newFileName" w]
copyfile $infp $outfp
Thanks to karl@NeoSoft.com (Karl Lehenbauer) for the code example.
------------------------------
From: -IX- How, in Tcl, can I XXX:
Subject: -Q9O- trap signals, and other more Unix specific functions?
A9O. Extended Tcl offers many of these types of functions. For instance,
extended Tcl has the 'signal' command:
signal action siglist [command]
where action is one of "default", "ignore", "error", "trap", "get",
plus the POSIX "block" and "unblock" actions (available only on
POSIX systems, of course). Siglist is a list of either the symbolic
or numeric Unix signal (the SIG prefix is optional). Command is your
error handler (or a simple {puts stdout "Don't press *that* key!"} :-)
"trap" does what you expect, and I find "error" and "get" to be
extremely useful in interactive programs which demand keyboard
traversal.
Extended Tcl also has things like fork, etc.
Answer by brad@NeoSoft.com (Brad Morrison).
------------------------------
From: -X- How, in Tcl, can I XXX:
Subject: -Q9P- get quoted strings to work the way I want?
A long article dealing with the issues can be found at
ftp://harbor.ecn.purdue.edu/pub/tcl/docs/README.programmer
Here are some short answers:
Q. I'm trying to build up a command for later execution but am
having trouble with variable values that include whitespace
or special characters.
A. The safest way to build up commands is to use the list command
so that you can keep track of the list structure. Avoid using
double quotes because you can end up with an extra trip through
the evaluator. We'll illustrate this with a command to create
a button that prints out the label on the button when you click it.
Wrong answer #1:
button $myname -text $label -command "puts stdout $label"
Why? because if $label has whitespace then the puts command will
be passed the wrong number of arguments. If $label has $ or [ ]
characters, they will be interpreted instead of printed.
Good answer #2:
button $myname -text $label -command [list puts stdout $label]
Why? because list will properly quote the value of $label
Q. I'm trying to build up a command for later execution but am
having trouble getting some variables to evaluate now, and some
to evaluate later when the command is run.
A. The cleanest way to do this is to define a procedure that hides
the use of the variables at run time, and then build up a call to
that procedure using the list command as described previously. (You
can even define the procedure on the fly. It will have global scope
even it if is created within another procedure.)
Wrong answer #1:
button $myname -text $label -command \
[list puts stdout $ArrayOfDynamicStuff($label)]
Why? The array value will be substituted when the button is created,
not later on when the button is clicked. Also, note that the
command is executed at the global scope, so it is not necessary
to include a "global ArrayOfDynamicStuff" in the command.
Wrong answer #2 (backquotes and list):
button $myname -text $label -command \
[list puts stdout \$ArrayOfDynamicStuff($label)]
Why? Here the list command and the backquote of $ are fighting with
each other. The command ends up being something like:
puts stdout {$ArrayOfDynamicStuff(foo)}
which prevents the substitution of the value of the array element.
Dubious answer #3 (backquotes and double-quotes):
button $myname -text $label -command \
"puts stdout \$ArrayOfDynamicStuff($label)"
Why? This only works if the value of $label has no special characters
or whitespace.
Clean answer #4 (proc):
proc doit { i } {
global ArrayOfDynamicStuff
puts stdout $ArrayOfDynamicStuff($i)
}
button $myname -text $label -command [list doit $label]
Why? Using little TCL procs for your button commands is a good habit
because it eliminates most needs for fancy quoting, and it
makes it easier to tweak the button command later on.
Q. I'm trying to pass along a variable number of args to another procedure
but I'm having trouble getting the $args to expand right.
A. Avoid using eval and double quotes because that results in
an extra trip through the interpreter. The eval command will do
a concat of its arguments if there are more than one, so that
pretty much eliminates the need to group things with double quotes.
Let's extend the button example:
Wrong answer #1:
proc mybutton { myname label args } {
button $myname -text $label -command [list puts stdout $label] $args
}
Why? All the extra arguments to mybutton are grouped into one list element
that is but into the value of $args. However, the button command
expects to see individual arguments, not a sub-list.
Wrong answer #2:
proc mybutton { myname label args } {
eval "button $myname -text $label -command [list puts stdout $label] $args"
}
Why? The double quotes allow expansion of $label as well as $args, so if
$label has any whitespace, the button command will be malformed
Good answer #3:
proc mybutton { myname label args } {
set cmd {button $myname -text $label -command [list puts stdout $label]}
eval $cmd $args
}
Why? Eval will first concatenate its two arguments and then run the
result through the interpreter. Think of this as stripping off the
outer curly braces from $cmd and $arg and making a single list
with all the elements of both. $label will be evaluated exactly
once, so the puts command will remain good, and whatever went into
args will also be processed exactly one time.
Q. Why do I get a syntax error in an if/while/for statement?
A. You may have written something like
wish: set foo bar
wish: if {$foo == bar} {puts stdout bar}
syntax error in expression "$foo == bar"
in which bar is interpreted as neither a string nor a variable, since
strings as operands in expressions MUST be surrounded by double quotes
or braces.
Change to
wish: if {$foo == "bar"} {puts stdout bar}
or
wish: if {$foo == {bar}} {puts stdout bar}
always in expressions, depending on if you want expansion performed or
not.
Contributed by "Jesper Blommaskog"
------------------------------
From: -X- How, in Tcl, can I XXX:
Subject: -Q9Q- share procedures between multiple tcl applications?
A9Q. Rather than sourcing the files explicitly, build a tcl library:
Step 1. Put the files in a common directory
Step 2. Build the tclIndex for the "library". I use a Makefile with
a convention like:
install.index:
(cd ${DESTDIR}/tclscripts/lib; \
echo 'source /usr/local/lib/tcl/init.tcl;\
auto_mkindex . *.tk' | tcl ; exit 0)
Step 3. Modify your tcl scripts to reference the library:
e.g.:
# local additions
lappend auto_path /usr/local/lib/tcl_local $env(RDS_TCL_SCRIPTS)/lib
Now, as soon as your script tried to reference a procedure in the library,
the "unknown" command autoloads the procedure for you.
Contributed by Joe VanAndel
------------------------------
From: -X- How, in Tk, can I XXX:
Subject: -Q9R- get items inserted into a list?
A9R. A user asked why
linsert $list 0 ..
did not result in .. being inserted into list.
d9jesper@dtek.chalmers.se (Jesper Blommaskog) replied:
When doing list operations other than lappend, you must save the
returned value. This applies to list, lindex, lrange, lreplace at
least.
In this example, you would perhaps want to do something like:
set list [ linsert $list 0 .. ]
------------------------------
From: -X- How, in Tk, can I XXX:
Subject: -Q9S- perform a non-blocking read on a file identifier?
A9S. From Frank Smith we are told that
if you have Extended Tcl, you can
read $fileId [fstat $fileId size]
This will read only the number of bytes currently available on 'fileId'
and consequently will not block.
------------------------------
From: -X- How, in Tk, can I XXX:
Subject: -Q9T- read and write from a pipe without locking up?
A9T. The stdio package has an optimization for speed that buffers characters so
that you can avoid un-necessary system calls. This isn't very good for
interactive use so stdio changes it's behaviour if the file is a terminal. When
you write to a pipe you are not writing to a terminal and so your output is
buffered, similarly when the program at the other end of the pipe writes its
response it is also buffered. The end result is the programs at both end of the
pipe stall waiting for input. It is possible to force the buffers to be written
using flush in Tcl and fflush() in C, often though, you don't have control over
the program at the other end of the pipeline and in that case your only
solution is to use a pseudo-teletype (pty). Unfortunately this isn't all that
easy.
While this isn't directly supported in Tcl the spawn command in expect opens a
pty and starts a command.
------------------------------
From: -X- How, in Tk, can I XXX:
Subject: -Q10.A.1- get my wish application to execute - I just get a
wish prompt! Or I just get error msgs about permission
denied, not found, etc.
A10.A.1. Most systems require a full pathname to the interpreter.
So you cannot start a wish script out as
#! wish -f
Likewise, many Unix systems have a maximum length of characters that you can
put on a #! line. If you exceed this, you do not get the behaviour you
expect. So do not try to put something like:
#! /projects/somethingbig/bin/sun4/wish -f
followed by your wish code. Keep the lines short - under 32 characters is
recommended.
Finally, on some machines, white space after the -f causes a problem. Be
sure that the -f are the last characters on the first line of the file.
------------------------------
From: -X- How, in Tk, can I XXX:
Subject: -Q10.A.2- ,using a machine with less than 8 bit color, run?
A10.A.2. Tk doesn't behave very well with less than 8-bit color screens. To
try to use it, find all the places in the Tk/wish source where
DefaultDepthOfScreen is invoked to test the number of bit-planes. Change all
of these to pretend there is just 1 bit-plane, or call a procedure which
monitors a Tcl variable so that it is configurable, and you should be okay.
Another alternative is to see if the server you are using has alternative
visual / color models, such as static visual, etc. One of the alternatives
may allow Tk to work better.
Thanks to "Nathaniel Borenstein" for this info!
------------------------------
From: -X- How, in Tk, can I XXX:
Subject: -Q10.A.3- set X11 resources for a wish application in an
app-defaults file?
A10.A.3. Read the documentation for the option command.
Then you should consider something like the following - assume the program
name is xwf.
The following are two general purpose functions to put into a library:
# envVal envValName
# Looks up the envValName environment variable and returns its
# value, or {} if it does not exists
proc envVal {envValName} {
global env
if [info exists env($envValName)] {return $env($envValName)} {return {}}
}
# loadAppDefaults classNameList ?priority?
# Searches for the app-default files corresponding to classNames in
# the order specified by X Toolkit Intrinsics, and loads them with
# the priority specified (default: startupFile).
proc loadAppDefaults {classNameList {priority startupFile}} {
set filepath "[split [envVal XUSERFILESEARCHPATH] :] \
[envVal XAPPLRESDIR] \
[split [envVal XFILESEARCHPATH] :] \
/usr/lib/X11"
foreach i $classNameList {
foreach j $filepath {
if {[file exists $j/$i]} {
option readfile $j/$i $priority; break
}
}
}
}
# Now, here is what you would put into xwf:
option add Tk.BoldFont "*-lucida sans-Bold-R-Normal-*-100-*" widgetDefault
loadAppDefaults {xwf XWF} userDefault
This sets a program default, then load any defaults specified in the user's
default resources and finally any site or general app-defaults resource.
Of course, you would want to add some xwf command line handling to allow
the user to override things at execution time.
------------------------------
From: -X- How, in Tk, can I XXX:
Subject: -Q10.A.4- specify bitmap patterns on the command line instead of
just as a file name?
A10.A.4. You can not, at least as of June, 1992.
------------------------------
From: -X- How, in Tk, can I XXX:
Subject: -Q10.A.5- get a Motif user interface?
A10.A.5. Tk does not currently use the Xt toolkit, so a strict adherence
to Motif via the libXm.a routines is not possible. However, the authors
of Tk prefer the Motif style of user interface, so you will find that Tk
makes quite an attempt to implement a Motif-like interface.
------------------------------
From: -X- How, in Tk, can I XXX:
Subject: -Q10.A.6- get an OpenLook user interface?
A10.A.6. Unfortunately, Tk does not currently use either XView or Xt based
widgets in its user interface, so an OpenLook compliant (or even
similar) interface is probably not easily achievable in the near future.
------------------------------
From: -X- How, in Tk, can I XXX:
Subject: -Q10.A.7- get Tk 3.3 to even start - I get security error messages.
A10.A.7. Alternate forms of this question often mention that Tk 3.3 send
is broken, or ask how to use xauth.
Under Tk 3.3, the X11 xauth security mechanism is used. While this
provides more security, it does require the user to do a bit more
setup. The user needs to create an Xauthority file (typically
$HOME/.Xauthority) and then restart the X server with the
-auth argument, along with the name of the Xauthority file created.
Read the X11 documentation for your system for the details on how to
use xauth or comparable software to create the authority files needed.
An intro to xauth is available as
ftp://harbor.ecn.purdue.edu/pub/tcl/docs/Xauthority .
Also note that you can configure Tk to not depend on xauth by modifying
the tk3.3/Makefile.in to comment out the following:
# To turn off the security checks that disallow incoming sends when
# the X server appears to be insecure, reverse the comments on the
# following lines:
#SECURITY_FLAGS =
SECURITY_FLAGS = -DTK_NO_SECURITY
------------------------------
From: -X- How, in Tk, can I XXX:
Subject: -Q10.B.1- change the default class bindings?
A10.B.1. All default class bindings for Tk widgets are initialized in
$tk_library/tk.tcl. Use this file as a guide to implement new
bindings. For instance, the following code duplicates Button 1's
drag-select facility in Button 3 for all listboxes:
bind Listbox <3> {%W select from [%W nearest %y]}
bind Listbox {%W select to [%W nearest %y]}
------------------------------
From: -X- How, in Tk, can I XXX:
Subject: -Q10.B.2- delete a binding?
A10.B.2. Give an empty-string command to the "bind" invocation. For
example, to disable the Delete key in all entry fields:
bind Entry {}
------------------------------
From: -X- How, in Tk, can I XXX:
Subject: -Q10.B.3- change a binding while it is being executed?
A10.B.3. As of June, 1992, this was not a safe thing to do in Tk. It was
put on the bug list by John Ousterhout to be fixed in a future version.
The solution for now is not to change the bindings, but to change
something in the code they execute. For example, keep a state variable
that indicates which binding you'd like, but always have the binding
call a given procedure. Then that procedure checks the variable and
executes one piece of code or another. Or, you could just make the
binding's command "eval $cmd" and then change the variable "cmd"
depending on your application's state.
------------------------------
From: -X- How, in Tk, can I XXX:
Subject: -Q10.B.4- bind the arrow key on my Sun keyboard?
A10.B.4. You have to call it rather than . Under X11, keys are
referred to by their keysym. One can use either xmodmap -pk or the xev
program to determine what the keysym a particular key on a keyboard is
currently generating.
If the keysym that is being used is not known by Tk, you may have to edit
its ks_names.h file. There is a note in this file that indicates that
one should not edit it - but this is where the keysym must be for it to
be recognized.
Thanks to Wayne Christopher for this
note.
------------------------------
From: -X- How, in Tk, can I XXX:
Subject: -Q10.B.5- get root's mouse bindings to work in my Tk application?
A10.B.5. Some window managers, such as mwm, define mouse button bindings
which cause Tk some problems. Try saving off the window manager's startup
file (something like /.mwmrc for instance) and then copy in a startup
file from a login id that works. Thanks to brad@NeoSoft.com (Brad Morrison)
for this invaluable tip!
------------------------------
From: -X- How, in Tk, can I XXX:
Subject: -Q10.C.1- get an application to also use libXt?
A10.C.1. Tk2.1 and Xt have different X connections, and XtAppNextEvent will
block is there is nothing coming from the X connection. One way
of fixing this is get the connection number of Tk using
ConnectionNumber(Tk_Display(tk_window));
and using XtAddInput to register this with the Xt event handler. The
callback procedure for XtAddInput wrapper procedure that runs
Tk_OneEvent(1). There might be problems with Tk file sources which
aren't registered with Xt.
Thanks to joe@astro.as.utexas.edu (Joe Wang) for this information.
------------------------------
From: -X- How, in Tk, can I XXX:
Subject: -Q10.C.2- change the X11 cursor?
A10.C.2. Here is a tip from mgc@cray.com (M. G. Christenson).
Look at /usr/include/X11/cursorfont.h for a list of available cursors.
You can use the names in there by removing the 'XC_'.
Here's a little proc I use to make my entire application go 'busy'
while it's doing something. Just call it with the commands you want to
execute, and the watch cursor will be displayed for the time it takes
the commands to complete. Note that any new windows will have their
normal cursor.
proc busy {cmds} {
global errorInfo
set busy {.app .root}
set list [winfo children .]
while {$list != ""} {
set next {}
foreach w $list {
set class [winfo class $w]
set cursor [lindex [$w config -cursor] 4]
if {[winfo toplevel $w] == $w || $cursor != ""} {
lappend busy [list $w $cursor]
}
set next [concat $next [winfo children $w]]
}
set list $next
}
foreach w $busy {
catch {[lindex $w 0] config -cursor watch}
}
update idletasks
set error [catch {uplevel eval [list $cmds]} result]
set ei $errorInfo
foreach w $busy {
catch {[lindex $w 0] config -cursor [lindex $w 1]}
}
if $error {
error $result $ei
} else {
return $result
}
}
------------------------------
From: -X- How, in Tk, can I XXX:
Subject: -Q10.C.3- raise or lower a window?
A10.C.3. This is on the (semi-infinite) list of things to be done in the future.
If you have the time, please go ahead and add it and submit the code and all
will be grateful.
------------------------------
From: -X- How, in Tk, can I XXX:
Subject: -Q10.C.4- re-map a withdrawn window id?
A10.C.4. Use wm deiconify .
------------------------------
From: -X- How, in Tk, can I XXX:
Subject: -Q10.C.5- use Tk in a subwindow of a non-Tk X11 application?
A10.C.5. From faustus@CS.Berkeley.EDU (Wayne A. Christopher):
[C]reate the Tk toplevel window but don't map it (wm withdraw). Then
re-parent the window to be a subwindow of your other one and then map
it. I have done this when the Tk application is a separate process,
but if it's the same process I think you will get into trouble with the
event loop, since each toolkit wants control.
------------------------------
From: -X- How, in Tk, can I XXX:
Subject: -Q10.C.6- bind and to a frame containing
other widgets?
A10.C.6. From John Ousterhout, ouster@cs.Berkeley.EDU):
Each or event has a "detail" field, which you can access
from bindings with "%d". If the detail is "NotifyInferior" it means the
pointer has moved into or out of a child window (so it's really still in
the area of the window receiving the event). You should be able to check
the detail in your scripts and ignore events with a detail of NotifyInferior.
Check the Xlib documentation for Enter/Leave events for complete
information on the detail field.
------------------------------
From: -X- How, in Tk, can I XXX:
Subject: -Q10.C.7- mix interactions between Xt and Tk/Tcl?
A10.C.7.
[From YIP Chi Lap [Beta] ]
I have come up with a CPU hogging polling loop that
works (till now) for my application which not much
direct interaction between a Tk window and an Xt window is made.
(e.g., it won't draw something on a Tk window by a Xt-dispatched routine)
XEvent xevent;
for (;;)
{
if (XtAppPending(appcontext))
{
XtAppNextEvent(appcontext,&xevent);
XtDispatchEvent(&xevent);
}
Tk_DoOneEvent(TK_DONT_WAIT);
}
[ From David C Mudie ]
We use the main event loop below. The basic idea
is to watch for events arriving from either the Xt server
connection or the Tk server connection and then call
the library dispatchers.
The code fragment below will need to be cleaned up for
your usage; there are some missing include statements
and global declarations buried elsewhere in the file.
/* Allow Tcl/Tk and Xt to work at the same time. */
void tkGo(void)
{
extern Widget topLevel;
int width = ulimit(4, -1);
fd_set readfds;
struct timeval timeout;
int nfds;
int tkfd = ConnectionNumber(Tk_Display(mainWindow));
int xtfd = ConnectionNumber(XtDisplay(topLevel));
Tcl_VarEval(interp, "update", NULL);
while (1) {
/* Select on X server connections to wait for event. */
/* Timeout every half second to allow processing of non-X events */
FD_ZERO(&readfds);
FD_SET(tkfd, &readfds);
FD_SET(xtfd, &readfds);
timeout.tv_sec = 0;
timeout.tv_usec = 500000;
nfds = select(width, &readfds, NULL, NULL, &timeout);
if (nfds < 0 && errno != EINTR) {
perror("select");
} else if (nfds == 0) {
/* printf("timeout\n"); */
}
while (XtPending()) {
XtProcessEvent(XtIMAll);
}
while (Tk_DoOneEvent(1)) {
/* do nothing */
}
if (mainWindow == NULL) {
// Tcl_DeleteInterp(interp);
// Tcl_DStringFree(&command);
Tcl_Eval(interp, "exit");
return;
}
}
}
[ From Davide Frisoni ]
One may use Xt properties to communicate between different
applications.
------------------------------
From: -X- How, in Tk, can I XXX:
Subject: -Q10.D.1- resize a listbox?
A10.D.1. Use wm min/maxsize - in a uniform manner. Here is a resizable listbox:
#!/usr/local/bin/wish -f
wm minsize . 20 20
wm maxsize . 1152 900
pack append . [listbox .l -borderwidth 2 -relief raised] {expand fill}
Doing the same with the text widget brings its resizing under control too.
Thanks to "John C Ellson" for this tip.
------------------------------
From: -X- How, in Tk, can I XXX:
Subject: -Q10.D.4- avoid fractional white space at the end of a resizable
listbox?
A10.D.4. First, let's state the problem more clearly. I want to make a
resizable listbox and I don't want to constrain it by setting a
minimum size. So I pack it with fill expand, I use it to set the grid
(so that resizing the window always gives me whole lines) and I set an
initial geometry of 1x1 to override the default. However what I get
is... (run the code below for a demo and try to resize)
listbox .l -geom 1x1 -setgrid 1 -yscrollcommand ".s set" -relief sunken -bd 2
scrollbar .s -command ".l yview"
pack .s -side right -fill y
pack .l -side top -fill both -expand 1
.l insert end one two three four five six seven eight nine ten "THE END"
...a situation where the partially filled listbox has a blank
half-line at the bottom even if there are more items in the list. This
is very confusing because it fools the user into thinking that there
is nothing else beyond what's visible. Why does it happen?
Now for the answer.
Look at the window as it is created, before the resizing. See that
poor, tiny little scrollbar squeezed in that microscopic window? It,
too, requests a minimum size, and it so happens that the starting
geometry for the listbox (i.e. the situation referred to as "1x1")
receives some free fractional space at the bottom. And you never get
rid of it, since the resizing is constrained to be in whole
characters.
The thing to do is to define the initial layout in such a way that the
widget that has -setgrid actually displays an integer number of lines
and columns. In the above example, setting -geom 1x2 does the trick.
Thanks to Frank Stajano for this tip.
------------------------------
From: -X- How, in Tk, can I XXX:
Subject: -Q10.E.1- get output from a Tk canvas?
A10.E.1. The latest Tk has a save suboption on canvas which allows one
to create a file describing the canvas. The default output is Encapsulated
Postscript, but there is an xpm3 suboption as well.
------------------------------
From: -X- How, in Tk, can I XXX:
Subject: -Q10.E.2- fill a canvas which is bounded by lines as opposed to a
shape like a polygon, oval, etc.?
A10.E.2. No, you have to at least use a polygon if you want to fill an area
bounded by some lines.
------------------------------
From: -X- How, in Tk, can I XXX:
Subject: -Q10.E.3- raise/lower canvas window objects or draw graphics onto a
window object inside a canvas?
A10.E.3. You can't yet.
"Jesper Blommaskog" .
------------------------------
From: -X- How, in Tk, can I XXX:
Subject: -Q10.E.4- detect when the canvas has been resized?
A10.E.4. From Nathaniel Pryce :
> I have a window with a canvas containing some stuff that logically
> fills the canvas (say, a chess board or a map of the world). I want
> this toplevel window to be resizable and of course, when the win is
> resized, I want the stuff inside the canvas to be scaled
> accordingly. Now, I can manage the scaling of the stuff, but what
> I'm having trouble with is DETECTING that I should do it. How can I
> be notified that the window has been resized?
Nat's answer is:
You need to bind a command to the Configure event, like this:
proc config {w h} {
puts stdout ".canvas - width = $w, height = $h"
}
bind .canvas "config %w %h"
.canvas - width = 224, height = 251
.canvas - width = 224, height = 151
.canvas - width = 224, height = 243
# and so forth
------------------------------
From: -X- How, in Tk, can I XXX:
Subject: -Q10.F.1- get the name of my own interpreter?
A10.F.1. george.howlett@att.com (George A. Howlett) points us to the winfo manual
page - winfo name . gets the name of the current application.
------------------------------
From: -X- How, in Tk, can I XXX:
Subject: -Q10.F.2- get -relief to work on my text widgets?
A10.F.2. From Owen Rees , we find out that we must:
"[m]ake the border width non-zero as in"
text .t -width 20 -height 20 -relief sunken -borderwidth 4
------------------------------
From: -X- How, in Tk, can I XXX:
Subject: -Q10.F.3- create a scrollable window of buttons?
A10.F.3. There are at least two ways to do this. First, there is a hypertext
widget that one can get from the Tcl User Contributed Code Archive -
(see "tcl-faq/part4") and (see "tcl-faq/part5") for details -
which provides such a facility.
And here is some sample code from
"Michael Moore" which shows a way to
do this using just Tk.
#! /bin/wish -f
#
# This demonstrates how to create a scrollable canvas with multiple
# buttons.
#
# Author : Michael Moore
# Date : November 17, 1992
#
#
# This procedure obtains all the items with the tag "active"
# and prints out their ids.
proc multi_action {} {
set list [.frame.canvas find withtag "active"]
puts stdout "Active Item Ids : "
foreach item $list {
puts stdout $item
}
}
#
# This simulates the toggling of a command button...
# Note that it only works on a color display as is right now
# but the principle is the same for b&w screens.
#
proc multi_activate {num id} {
set tags [.frame.canvas gettags $id]
if {[lsearch $tags "active"] != -1} {
.frame.canvas dtag $id "active"
.frame.canvas.button$num configure \
-background "#060" \
-activebackground "#080"
} else {
.frame.canvas addtag "active" withtag $id
.frame.canvas.button$num configure \
-background "#600" \
-activebackground "#800"
}
}
proc setup {} {
frame .frame
scrollbar .frame.scroll \
-command ".frame.canvas yview" \
-relief raised
canvas .frame.canvas \
-yscroll ".frame.scroll set" \
-scrollregion {0 0 0 650} \
-relief raised \
-confine false \
-scrollincrement 25
pack append .frame \
.frame.scroll {left frame center filly} \
.frame.canvas {left frame center fillx filly}
pack append .\
.frame {left frame center fillx filly}
button .frame.canvas.action \
-relief raised \
-text "Action" \
-command "multi_action"
.frame.canvas create window 1 25 \
-anchor w \
-window .frame.canvas.action
for {set i 2} {$i < 26} {incr i} {
button .frame.canvas.button$i \
-relief raised \
-background "#060" \
-foreground wheat \
-activebackground "#080" \
-activeforeground wheat \
-text "Button $i"
set id [.frame.canvas create window 1 [expr $i*25] \
-anchor w \
-window .frame.canvas.button$i]
.frame.canvas.button$i configure \
-command "multi_activate $i $id"
}
}
setup
------------------------------
From: -X- How, in Tk, can I XXX:
Subject: -Q10.F.4- pack a text widget so that it can be resized interactively?
A10.F.4. From Spencer W. Thomas we find that we need to:
wm minsize . 0 0
text .text
pack append . .text {fill expand}
------------------------------
From: -X- How, in Tk, can I XXX:
Subject: -Q10.F.5- create a widget with an upper case name?
A10.F.5. During a recent revision of Tk, things were changed so that names
beginning with a capital letter are reserved for class names. Specific
instances of widgets must begin with a lower case letter. This enables
X11 resource definitions to distinguish between a class and instance.
------------------------------
From: -X- How, in Tk, can I XXX:
Subject: -Q10.F.6- create equal sized buttons?
A10.F.6. Recently, Micael Salmon posted:
In article <1993Jun23.065417.4302@ericsson.se>, I write:
|> I am currently working on yet another tn3270 emulator and I have run
|> into a problem with creating equal sized buttons. I have created an
|> array of buttons for PF and cursor keys and I would now like to make
|> them all the same size. Arranging them into columns was not
|> a problem but when I add bitmaps the buttons lose their horizontal
|> alignment. What I tried was to read the height and width of the buttons
|> using winfo, determine the largest and then use pads to force them to
|> be the same size, this doesn't seem to work. The technique of using
|> pre-set height and width doesn't seem applicable when using a mixture
|> of bitmaps and text as the size in pixels of a text button is font
|> dependent. All suggestions welcome.
Jim Wight suggested using reqheight and reqwidth
and then specifying padx and pady in the pack command for each button.
Jim says:
I think it only fair to point out that it was Tuomas J Lukka
who suggested the use of reqwidth and reqheight when I asked how to get over the deficiencies in my first attempt at a solution
that I posted to this group.
Since you're all agog I might as well post the final solution (more or less)
that I mailed to Michael.
frame .frame1
frame .frame2
button .frame1.a -text "pretty long button text"
button .frame1.b -text "short one"
button .frame2.c -bitmap "@/usr/include/X11/bitmaps/xlogo32"
button .frame2.d -text "tiny"
set long [winfo reqwidth .frame1.a]
set short [winfo reqwidth .frame1.b]
set medium [winfo reqwidth .frame2.c]
set tiny [winfo reqwidth .frame2.d]
set pady [expr [winfo reqheight .frame2.c]-[winfo reqheight .frame2.d]]
pack append .frame1 .frame1.a "filly pady $pady"
pack append .frame1 .frame1.b "fillx padx [expr $long-$short] filly pady $pady"pack append .frame2 .frame2.c "fillx padx [expr $long-$medium] filly"
pack append .frame2 .frame2.d "fillx padx [expr $long-$tiny] filly pady $pady"
pack append . .frame1 {left} .frame2 {left}
------------------------------
From: -X- How, in Tk, can I XXX:
Subject: -Q10.F.7- vertically stack radio buttons aligning regardless of font?
A10.F.7. Till Brychcy provides
the following example:
radiobutton .times -text Times -anchor w
radiobutton .helvetica -text Helvetica -anchor w
radiobutton .courier -text Courier -anchor w
pack .times .helvetica .courier -side top -fill x
Note that you are using anchor west in the widgets themselves, and not in
the packer. This lets the packer produce full width buttons.
------------------------------
From: -X- How, in Tk, can I XXX:
Subject: -Q10.F.8- initialize an entry widget with some text?
A10.F.8. kesch@kappco.kapp-coburg.de (Peter Kesch) provides us with
one example:
set default "foobar"
entry .foo -width 25 -state disabled -textvariable default
------------------------------
End of comp.lang.tcl Frequently Asked Questions (2/5)
*****************************************************
Newsgroups: comp.lang.tcl,comp.answers,news.answers
Path: lvirden
From: lwv26@cas.org (Larry W. Virden)
Subject: FAQ: comp.lang.tcl Frequently Asked Questions (3/5)
(Last updated: April 20, 1994)
Followup-To: comp.lang.tcl
Summary: A regular posting of the comp.lang.tcl Frequently Asked Questions
(FAQ) and their answers. This is the third of five parts.
This part is a catalog of miscellaneous Tcl-based items.
Originator: lvirden@cas.org
Keywords: tcl, expect, extended tcl, wish, tk
Sender: lvirden@cas.org
Reply-To: lvirden@cas.org (Larry W. Virden)
Approved: news-answers-request@MIT.Edu
Archive-name: tcl-faq/part3
Version: 5.0
Last-modified: April 20, 1994
For more information concerning Tcl (see "tcl-faq/part1"),
(see "tcl-faq/part2"), (see "tcl-faq/part4") or (see "tcl-faq/part5").
Index of questions:
XI. Where can I get these packages?
A. Retrieving Tcl and Tk
B. Accessing the Tcl/Tk User Contributions Archive
C. Expect available via e-mail.
D. EMACS modes for Tcl
E. The tk toolbox project
F. [tv]grind definitions for tcl/tk/expect
G. BNF style notation for Tcl
H. Tk Quick Reference Card
I. Hilit 19 Tcl mode
J. HTML versions of Tcl man pages and FAQ.
End of FAQ Index
----------------------------------------------------------------------
------------------------------
From: FAQ Tcl/Tk Package Catalog
Subject: -XI- Where can I get these packages?
The "home site" for Tcl on the Internet is ftp.cs.berkeley.edu.
Tcl and Extended Tcl were posted to comp.sources.misc, appearing
In volume 25 and then Tcl appeared again in volume 26 and can be found at
most comp.sources.misc archive sites in the tcl and tclx directories.
These are quite old versions actually, but are still usable.
a. Tcl - available on ftp.cs.berkeley.edu and harbor.ecn.purdue.edu
b. Tk - available on ftp.cs.berkeley.edu and harbor.ecn.purdue.edu
c. Extended Tcl - available on ftp.cs.berkeley.edu and harbor.ecn.purdue.edu
Note that currently the beta version of Extended Tcl is only
available on harbor.ecn.purdue.edu.
The IP address for harbor.ecn.purdue.edu is 128.46.128.76 .
Other sites which either mirror the Tcl/Tk submissions or have special
versions are:
ftp://coma.cs.tu-berlin.de/pub/tcl/
ftp://ftp.cs.columbia.edu/pub/archives/tcl/ <- shadow of harbor, etc.
ftp://ftp.funet.fi/pub/languages/tcl/
ftp://ftp.ibp.fr/pub/tcl/ <- shadow of harbor and expect
ftp://ftp.uu.net/languages/tcl/ <- shadow of ftp.cs only
ftp://ftp.x.org/contrib/tcl*/
ftp://ftp.x.org/contrib/tk*/
ftp://gatekeeper.dec.com/pub/UCB/tcl/sprite/ <- shadow of ftp.cs only
ftp://harbor.ecn.purdue.edu/pub/tcl/sprite-mirror/
ftp://iskut.ucs.ubc.ca/pub/X11/tcl/
ftp://nic.funet.fi/pub/languages/tcl/
ftp://oskgate0.mei.co.jp/free/X/toolkits/tcl/ <- shadow of ftp.cs only
ftp://src.doc.ic.ac.uk/packages/tcl/tcl-archive <- shadow of harbor
ftp://src.doc.ic.ac.uk/usenet/news.answers/comp.lang.tcl/ <- shadow of FAQs
ftp://sunsite.unc.edu/pub/languages/tcl/
ftp://syd.dit.csiro.au/pub/tk/ <- shadow of harbor and ftp.cs
ftp://sunsite.unc.edu/pub/Linux/ <- contains port of extended Tcl and
extended Tk to this OS.
------------------------------
From: -XI- Where can I get these packages?
Subject: -A- Retrieving Tcl and Tk
>From: ouster@cs.Berkeley.EDU (John Ousterhout)
>Newsgroups: comp.lang.tcl
>Subject: Obtaining Tcl/Tk sources
For people new to the Tcl/Tk community, here is information on how
to obtain Tcl and Tk sources. The information below describes what
I distribute; other information is available from other machines
also, such as harbor.ecn.purdue.edu.
The sources and documentation for the Tcl command
language library, for the Tk toolkit, and for a few Tcl-based
applications, are in the public FTP area on ftp.cs.berkeley.edu.
All of these files are in the "tcl" subdirectory of the FTP area.
Here is a catalog of what's available. Most of the files are
compressed tar files ("xxx.tar.Z"). There is some overlap
between the contents of the various packages.
tk3.6.tar.Z - This is the latest and most stable release of the
Tk toolkit, released in November 1993 (patch level
206). It includes the sources for the Tk library
and the "wish" windowing shell, plus reference
manual entries and a number of demonstration scripts.
tk3.6p1.patch.Z - Patch file that fixes bugs in Tk version 3.6.
See the beginning of the patch file for information
about the bugs it fixes and how to apply it.
tcl7.3.tar.Z - This is the latest and most stable release of the
Tcl library, released in November 1993 (patch level
106). It includes the sources for the Tcl library
and the "tclsh" application, plus reference manual
entries.
tclX7.3a.tar.Z - Extended Tcl (or NeoSoft Tcl), created by Mark
Diekhans and Karl Lehenbauer, which adds a number
of useful facilities to the base Tcl release.
Among the things in Extended Tcl are a Tcl shell,
many new commands for things like UNIX kernel
call access, keyed lists, and time conversion, and an
on-line help facility. This package works with Tcl
versions 7.3 or later and Tk versions 3.6 or later.
mx.tar.Z - Sources and documentation for a mouse-based text
editor (mx) and terminal emulator (tx) based on
Tcl. This is a very old release: it uses an old
version of Tcl (which is included) and doesn't
even use Tk; it uses an ancient toolkit called
"Sx". These tools will eventually be replaced
with new tools based on Tk and the newest Tcl.
mx-2.5.tar.Z - Newer version of mx (see above) that uses the
standard X selection mechanism rather than the
home-grown mechanism used by previous versions.
Version 2.5 is not backwards compatible with
previous versions (you can't cut and paste between
the two). Still uses sx and an old version of
Tcl (both of which are included).
book.p*.ps.Z Compressed Postscript for an early draft of the
book "Tcl and the Tk Toolkit", which was published
by Addison-Wesley in April 1994 (ISBN 0-201-63337-X).
The draft is in four parts, each in a separate file.
You're probably better off with the published version
of the book, though; it has a number of improvements
and an index.
book.p1.ps.Z This part describes the Tcl language and how to write
scripts in it. About 130 pages in length.
book.p2.ps.Z This part of the book describes how to write
Tcl scripts for Tk. About 125 pages in length.
book.p3.ps.Z This part of the book describes how to write Tcl
applications in C, using the Tcl library procedure.
64 pages in length.
book.p4.ps.Z This part of the book describes how to write new
widgets and geometry managers in C, using the Tk
library procedures. About 70 pages in length.
book.examples.Z Compressed file containing ASCII text for nearly all
of the examples from the Tcl book.
tclUsenix90.ps - Postscript for a paper on Tcl that appeared in the
Winter 1990 USENIX Conference.
tkUsenix91.ps - Postscript for a paper on Tk that appeared in the
Winter 1991 USENIX Conference.
tkF10.ps - Postscript for Figure 10 of the Tk paper.
tut.tar.Z - A collection of materials from a full-day tutorial
on Tcl and Tk. Includes viewgraphs from five one-hour
talks plus a sample widget.
tc-tcl93.ps.gz - PostScript formatted copy of Tcl Compiler paper
presented at the Tcl'93 Workshop.
tc-tcl93.tex.gz - LaTeX source for the Tcl Compiler paper presented
at the Tcl'93 Workshop.
In addition, there may be older releases of some or all of the above
files; look for files with earlier release numbers.
To retrieve any or all of these packages, use anonymous FTP to
ftp.cs.berkeley.edu (Internet address 128.32.149.78). Use user
"anonymous"; when asked for a password, type your email address. Then
retrieve the relevant file(s) with the commands like the following:
type image (try "type binary" if this command is rejected)
cd tcl
get tk3.6.tar.Z
Be sure to retrieve files in image mode (type "type image" to FTP)
in order to make sure that you end up with a corrupted file.
Any file with a .Z extension is a compressed file, which means you must
use the "uncompress" program to get back a normal file. For example, for
the file tk3.6.tar.Z, you should type
uncompress tk3.6.tar.Z
once you've retrieved the file. This will produce a file named "tk3.6.tar".
Then you will need to use tar to extract the members. Typically one
would use a command such as:
tar xv tk3.6.tar
to extract the pieces.
Any file with a .gz extension is a file compressed with gzip, the gnu
portable compression standard. To get a copy, ftp to prep.ai.mit.edu and
look in pub/gnu. For example, to uncompress tc-tcl93.ps.gz, type
gunzip tc-tcl93.ps.gz
once you've retrieved the file. This will produce a file named "tc-tcl93.ps".
Each of the releases has a README file in the top-level directory that
describes how to compile the release, where to find documentation, etc.
Questions or problems about any of these distributions should be directed
to "John Ousterhout" .
------------------------------
From: -XI- Where can I get these packages?
Subject: -B- Accessing the Tcl/Tk User Contributions Archive
Contributions to the Tcl/Tk Contrib Archive are most welcome --
please upload them to:
ftp://harbor.ecn.purdue.edu/incoming [128.46.128.76]
send the archive maintainer a note stating
the names of the files you uploaded and a brief description for the
index.
Harbor is the central file server for the software staff of the
Engineering Computer Network, so please try to refrain from FTPing
stuff between 9am and 5pm EST (GMT -0500). No mail-archive service is
planned as yet -- users without FTP capability should use one of the
following mail-based FTP services (send mail to the appropriate address
with "help" in the body):
BITNET users: BITFTP
Others: "DEC ftpmail"
Europe: ftpmail@grasp1.univ-lyon1.fr
mail-server@ftp.tu-clausthal.de
WARNING! The archive maintainer will NOT be automatically archiving anything
posted to comp.lang.tcl or previously to the mailing list. So if you want
your nifty porting instructions for getting Tcl up on your Seiko wrist watch
or your pen computer to be saved for others benefit, be sure to ftp them into
the archive.
All contributions should be placed in harbor's ~ftp/incoming
subdirectory. Please send tcl-archive@harbor.ecn.purdue.edu and a short
mail message stating the filename(s) of your contribution and a brief
description (for the Index). If you've posted some code to
comp.lang.tcl or the Tcl mailing list, and you want it to be archived
at this site, please deposit it in ~ftp/incoming or mail it in a
suitable form (preferably uuencoded compressed tar file, but a shar
file's OK) to tcl-archive@harbor.ecn.purdue.edu.
Note: I have noticed that some authors prefer to use plain names rather than
version level type names. This means that you should a) make note of when
you get a package, and b) check the archive occasionally to see if a newer
version of the package has appeared.
------------------------------
From: -XI- Where can I get these packages?
Subject: -C- Expect available via e-mail.
Besides being available via ftp://ftp.cme.nist.gov/pub/expect/ ,
expect can also be received by email by sending the message
"send pub/expect/expect.shar.Z" to library@cme.nist.gov .
------------------------------
From: -XI- Where can I get these packages?
Subject: -D- EMACS modes for Tcl
"Sean Levy" has hacked a version of Emacs's C mode into
a tcl-mode.el. He mentions that you must use semi-colons at the end
of each statement to get indentation to work right, but he found that
easier than doing without.
The code is on [128.2.214.236]
ftp://ftp.cs.cmu.edu/afs/cs/user/snl/pub/tcl-mode.el.z
(don't forget binary mode) as well as
ftp://harbor.ecn.purdue.edu/pub/tcl/distrib/tcl-mode.el.Z .
"Julian Anderson" was also working on an Emacs Tcl
minor mode to fundamental.
"Chris Lindblad" has contributed tcl.el, a Tcl mode for
GNU emacs. It's address is
ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tcl.el .
tromey@cns.caltech.edu (Tom Tromey) has contributed tcl-help.el, an
Extended Tcl help mode for GNU emacs. It's address is
ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tcl-help.el .
It is also located at
ftp://archive.cis.ohio-state.edu:/pub/gnu/emacs/elisp-archive/modes/tcl.el.Z
It is also on harbor.ecn.purdue.edu in the pub/tcl archives somewhere.
schmid@fb3-s7.math.TU-Berlin.DE (Gregor Schmid) has written a major mode
for tcl scripts. He posted tcl-mode 1.1 to gnu.emacs.sources in March and
it should appear on
ftp://archive.cis.ohio-state.edu:/pub/gnu/emacs/elisp-archive/modes/
shortly.
------------------------------
From: -XI- Where can I get these packages?
Subject: -E- The tk toolbox project
The Tk Toolbox & Toolchest project.
The Toolchest consists of convenience routines for Tcl and Tk - a kind of a
libc for Tcl. The toolbox is a collection of commonly used code and
some specialized code such as file selectors, dialogs that take care of
keyboard traversal through items automatically, etc.
The project has currently not yet reached a usable state, but each formal
release will be announced in comp.lang.tcl as well as other newsgroups.
There has been, in the past, a mailing list for discussion of the tk toolbox,
kindly provided by Ari Lemmke. To subscribe, write a message with the line:
X-Mn-Admin: join tktools
in the body or header of the message. Send this message to
linux-activists-request@niksula.cs.hut.fi .
To write to the list, send messages to to
linux-activists@niksula.cs.hut.fi
and add the line
X-Mn-Key: TKTOOLS
to the header or the body of the message. Especially remember this when
replying to messages from the list.
For more info about the list server (mailnet), write
an empty message to linux-activists-request@niksula.cs.hut.fi .
The intermediate snapshots are announced on this mailing list.
If you have problems or are willing to donate code or whatever,
you can contact the code maintainer (one of the three main implementors)
at tlukka@snakemail.hut.fi or lukka@helsinki.fi .
Unfortunately, the development effort has currently come to a stop on this
project and it is not yet known when it will be started again.
------------------------------
From: -XI- Where can I get these packages?
Subject: -F- [tv]grind definitions for tcl/tk/expect
"Martin Hamilton" has come up with a preliminary
grindcap definition for Tcl, Tk and expect. These are available as:
ftp://harbor.ecn.purdue.edu/pub/tcl/docs/vgrind.defs
ftp://harbor.ecn.purdue.edu/pub/tcl/docs/vgrind.defs.README
andyr@wizzy.com (Andy Rabagliati) has come up with a preliminary grindcap
definition for Tcl. Contact him for more details.
------------------------------
From: -XI- Where can I get these packages?
Subject: -G- BNF style notation for Tcl
tb06@CS2.cc.lehigh.edu (TERRENCE MONROE BRANNON) in July of 1993, posted
some yacc code for a tcl-to-c parser. This, along with Adam Sah's Tcl
compiler, are a couple of sources with which folk could start.
------------------------------
From: -XI- Where can I get these packages?
Subject: -H- Tk Quick Reference Card
raines@bohr.physics.upenn.edu (Paul E. Raines) has uploaded a quick
reference card for Tk 3.3. You may find it at:
ftp://harbor.ecn.purdue.edu/pub/tcl/docs/tkrefcard.tar.Z
ftp://bohr.physics.upenn.edu/pub/tk/tkrefcard.tar.Z
The tar contains the TeX and PostScript versions of a 3 column listing
of all widget methods and options and summaries of the wm, winfo, pack,
place and bind commands.
------------------------------
From: -XI- Where can I get these packages?
Subject: -I- Hilit 19 Tcl mode
AI. Aaron Roydhouse wrote, and
Julian.Anderson@comp.vuw.ac.nz (Julian Anderson) posted, the following:
(hilit-set-mode-patterns
'tcl-mode
'(("\\s #.*$" nil comment)
("^#.*$" nil comment)
("\"[^\\\"]*\\(\\\\\\(.\\|\n\\)[^\\\"]*\\)*\"" nil string)
("\\$[-_a-zA-Z]+" nil varref)
("^source.*$" nil include)
("\\b\\(global\\|upvar\\)\\b" nil decl)
("\\b\\(error\\|debug\\)\\b" nil decl)
("^\\s *proc\\s +\\(\\w\\|[_']\\)+" nil defun)
("\\b\\(set\\|lset\\|list\\|if\\|case\\|while\\|switch\\|then\\|else\\|
for\\|foreach\\|return\\|expr\\|catch\\)\\b" nil keyword)))
Dwight Shih later posted the following font lock mode:
(defvar tcl-font-lock-keywords
(list
(list (concat "\\b\\("
(mapconcat 'identity
'("set" "lset" "list" "if" "case" "while"
"switch" "then" "else" "for" "foreach"
"return" "expr" "catch" "puts" "proc"
"trace")
"\\|")
"\\)\\b")
1 'font-lock-keyword-face t)
(list (concat "\\b\\("
(mapconcat 'identity
'("global" "upvar" "uplevel" "error" "debug")
"\\|")
"\\)\\b")
1 'font-lock-type-face t)
(list "^\\s *proc\\s +\\(\\(\\w\\|[_']\\)+\\)" 1 'font-lock-function-name-fac
e t))
"keywords for tcl-mode")
(defun font-lock-set-defaults ()
"Set `font-lock-keywords' to something appropriate for this mode."
(setq font-lock-keywords
(cond ((eq major-mode 'lisp-mode) lisp-font-lock-keywords)
((eq major-mode 'emacs-lisp-mode) lisp-font-lock-keywords)
((eq major-mode 'c-mode) c-font-lock-keywords)
((eq major-mode 'c++-c-mode) c-font-lock-keywords)
((eq major-mode 'c++-mode) c++-font-lock-keywords)
((eq major-mode 'tex-mode) tex-font-lock-keywords)
((eq major-mode 'perl-mode) perl-font-lock-keywords)
((eq major-mode 'tcl-mode) tcl-font-lock-keywords)
((eq major-mode 'texinfo-mode) texi-font-lock-keywords)
(t nil))))
------------------------------
From: -XI- Where can I get these packages?
Subject: -J- HTML versions of Tcl man pages and FAQ.
Mike Hopkirk has provided a tar archive of HyperText Markup
Language (HTML) versions of the comp.lang.tcl FAQ, the Tcl/Tk man pages,
index pages for the man pages, and a top level access page to tie together
all the above. It is
ftp://harbor.ecn.purdue.edu/pub/tcl/docs/tclhtml.tar.z
Note that once these have been untarred, one can use a WorldWideWeb (WWW)
browser such as Mosaic, Lynx, etc. to begin at the Tcl.html page and read
the entire distribution. The original source of this package can be
examined at:
http://www.sco.com/IXI/of_interest/tcl/Tcl.html
Having the package in this way provides a means for those behind a firewall
to examine the docs frozen at this point in time. There are no commitments
to continue providing updates to this package.
The man pages provided here were made using a perl script called
man2html originally written by "Brooks Cutter"
and slightly post processed.
Note that the Tcl and Tk man pages are also available courtesy of Tom Phelps
, who has made the man pages available
at ftp://ftp.cs.berkeley.edu/pub/mhgs/tcltk/tcltk-man.html.tar.Z
where, Tom tells us, they will be deleted later after TkMan has been updated
to generate these pages automatically.
------------------------------
End of comp.lang.tcl Frequently Asked Questions (3/5)
*****************************************************
Newsgroups: comp.lang.tcl,comp.answers,news.answers
Path: lvirden
From: lwv26@cas.org (Larry W. Virden)
Subject: FAQ: comp.lang.tcl Frequently Asked Questions (4/5)
(Last updated: April 20, 1994)
Followup-To: comp.lang.tcl
Summary: A regular posting of the comp.lang.tcl Frequently Asked Questions
(FAQ) and their answers. This is the fourth of five parts.
This part is a catalog of Tcl-based programs.
Originator: lvirden@cas.org
Keywords: tcl, expect, extended tcl, wish, tk
Sender: lvirden@cas.org
Reply-To: lvirden@cas.org (Larry W. Virden)
Approved: news-answers-request@MIT.Edu
Archive-name: tcl-faq/part4
Version: 5.0
Last-modified: April 20, 1994
For more information concerning Tcl (see "tcl-faq/part1"),
(see "tcl-faq/part2"), (see "tcl-faq/part3") or (see "tcl-faq/part5").
Note that a Contact address with ??? at the end means that I was
unable to verify the address. Also, Contacts without addresses or marked
as Unknown mean that I had limited to no information about the contact
person.
Index of questions:
XII. What are some examples of applications using Tcl and/or Tk?
o ADDD (A Depository of Development Documents)
o Alpha
o Amiga OS Tcl 3.x port
o Amiga NetBSD Tcl 3.x port
o arswm
o arTCLs
o aXe
o BETH
o biff clock
o bitmap browser
o BOS
o Bowling
o browse.tcl
o budge
o bulletin board
o BYO
o calc.tk
o Calendar / Rolodex
o canvas_ui - a Tk sketcher
o CGI <-> Tcl and/or Tk
o CGI Forms based mailing
o classifyMail
o Clock (Analog)
o Compare Manifest
o coloredit
o Tk cron interface
o CUTE
o dateicon
o DejaGnu
o DGC Tools
o directory browser
o Directory User Agent interface
o dodirectory
o Drag and Drop file browser
o edit-html
o Emil
o evaluate_parameters
o Expect
o Expect (Tcl 6.5 compatible)
o expecTerm
o exmh
o folderbiff
o fn and ForumNet
o Fresco CORBA interpreter
o FSP client
o Gash - a Galaxy interpreter
o getcons - get console
o GOOD
o Graphical Interface to CVS (Chan)
o Graphical Interface to CVS (Marwood)
o Hierarchical Help System (HLP)
o Host Monitoring (hm)
o hp-tcl-cdplay
o HTCLtoTCL
o ical - a calendar manager
o IDL/Pvwave/Matlab <-> Tk
o Iplace - interactively place widgets on a frame
o js tools
o Jungle
o Karel the Robot
o Klondike
o KosherDill
o Lassen
o Libsearch
o Lightwave
o lily
o Linux port of Tcl/Tk
o lookup
o MacOS Tcl, 6.1
o MacTcl, 6.1v2
o MacTcl, 6.7b
o MacTcl, 7.3
o Make-A-Wish
o man.tk
o Math Teaching Aid
o mercurius
o Modules
o Moog
o MS-DOS Tcl, 6.0a
o MS-DOS Tcl, 6.2
o MS-DOS Tcl, 6.7
o MS-DOS Tk/Tcl
o MS-DOS Windows Tcl
o MS-DOS Windows DLL for Tcl
o Mx
o Mxedit
o Netrek Metaserver Monitor
o Newsspy
o Objectify
o Oracle wrap for Tk/Tcl
o OS/2 port of Tcl 7.3
o Palm
o Parseargs
o pgbrowse
o PhoneStation
o Picasso
o pixmap
o Point
o PostgresBrowswer
o ProTcl
o Ptolemy
o RasMol
o Remote control of Tk apps
o reversi
o Roger's Interface Language (RIL)
o rolodex
o RosettaMan
o Rmth
o scotty
o ServiceMail(TM) Toolkit
o ServiceMail extras
o SGI GL interpreter
o Shiva
o SimCity demo
o SIMON
o smaillog
o Spice interface
o STk
o Subway Navigator
o Symbolic derivations
o Tcl
o Tcl / Tk install softlink
o Tcl shells
o tcl++
o tclbot
o Tcl Compiler
o Brannon's Tcl to C compiler
o tcltags (Hoegeman)
o tcltags (LoVerso)
o tcltags (Tromey)
o tcltkgrass
o tcltools
o tcltt, v1
o tclXt, v2
o tdcad
o TeenyMUD
o tess
o tickle
o Tk
o Tk and C++
o Tk extensions via imake
o Tk terminal widget
o tk WWW interface
o Tk xworld
o TkBible
o tkchrom
o TkDispCalc
o tkdvi
o tkelm
o TkFibs
o tkfire
o tkfonts
o tkgnats
o tkgoph - wade
o tkgopher
o tkined
o tkinfo
o tkinspect
o TkIspell
o tkkids
o TkLayers
o TkMail
o tkmaillist
o TkMan
o tkmess
o TkMH
o TkMHn
o tkmines
o tkmotd
o tknews
o Tkolumns
o tkpbiff
o tkpostage
o TkPostit
o tkprompt
o tkSketch
o TkSol
o tk_stattab
o tkview
o Tkwm
o tkwool
o tkxpilots
o Towers of Hanoi
o trajectory
o TUA
o tupact
o twoClocks
o Tx
o unix.tk
o USE
o Usenet gateways for Compuserve and GEnie
o User-Maint
o user-setup
o VMS port of Tcl/Tk (Angel Li)
o VMS port of Tcl/Tk (Kimball)
o VxWorks port of Tcl 7.0
o Wafe
o Wafe graphical cross-reference browser
o Wafeperl
o widget server
o wish compiler
o wtour
o xbible
o XBrowse
o xcal
o Xdig
o xdrum
o xelem
o xf
o xf, Japanization version
o xibc
o xka
o xmpeg
o xmotd
o Xnetlib
o xpel
o xpole
o xreconfirm
o xscript
o XTeXShell
o YART
o Zap Interpreters
o Zircon
End of FAQ Index
----------------------------------------------------------------------
------------------------------
From: FAQ Tcl/Tk Package Catalog
Subject: -XII- What are some examples of applications using Tcl and Tk?
What: Simple name of package
Where: ftp site or 'From the contact'
Description: One to two line description of package, including Tk/Tcl version
requirements.
Contact: Email address for questions, comments, etc.
What: ADDD (A Depository of Development Documents)
Where: ftp://ftp.gmd.de/gmd/addd/
Description: An object oriented Software Engineering Environment extended using
Tcl.
Contact: kobialka@gmd.de, meyke@gmd.de
What: Alpha
Where: ftp://cs.rice.edu/public/Alpha/Alpha_5.31.sea.hqx
Description: Alpha version 5.x is a Macintosh System 7.0 shareware ($25)
Tcl programmable editor. The Think C 5.0 Tcl source for the Mac
is available on cs.rice.edu as well.
Contact: pete@cs.rice.edu
What: Amiga OS Tcl 3.x port
Where: From the contact
Description: A port of Tcl 3.x to the Amiga. Uses Amiga share libraries
and implements "send" under the Amiga OS, plus a post. Includes
a MIDI file loader and player. Works, but is not up to the latest
version of Tcl nor is further work occurring.
Contact: "Karl Lehenbauer"
What: Amiga NetBSD Tcl 3.x port
Where: From the contact
Description: A port of Tcl and Tk for Amiga NetBSD running X11R5.
Contact: "Markus Illenseer"
What: arswm
Where: From the contact
Description: Window manager configurable using Tcl.
Contact: "Bill Burdick"
What: arTCLs
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/artcls.tar.gz
Description: a Wish-based USENET news reader
Contact: "Mike Hoegeman"
What: aXe
Where: ftp://export.lcs.mit.edu/contrib/aXe-5.1.tar.Z
ftp://arjuna.ncl.ac.uk/pub/aXe/aXe-5.1.tar.Z
Description: An easy to use X11R5 text editor. Allows user to optionally
include Tcl as an extension language.
Contact: "J. K. Wight"
What: BETH
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/beth.4.0.tar.gz
Description: Browsing and Editing Tcl Hypertool (BETH).
Contact: "David Svoboda"
What: biff clock
Where: From the contact
Description: Tk example program showing biff and xclock like functions
Contact: "Karl Lehenbauer"
What: bitmap browser
Where: From the contact
Description: bmb.tk is a bitmap browser reminiscent of the xbmbrowser.
Contact: "Bob Bagwill"
What: Bowling
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/xbowl-1.4.gz
ftp://harbor.ecn.purdue.edu/pub/tcl/code/xbowl-dist-2.0.tar.gz
Description: Tk based bowling game, using the core Tcl/Tk.
Contact: "Peter Grina"
What: browse.tcl
Where: alt.sources archives
Description: Directory browser w/Tcl
Contact: "Peter da Silva"
What: budge
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/budge.tar.gz
Description: Tk based arcade/puzzle game - a cross between Sokoban, Pac-Man
and Blind Date (the TV show).
Contact: "Nat Pryce"
What: bulletin board
Where: From the contact
Description: Program based on [incr tcl] which can be used to store
various pieces of info, represented by icons.
Contact: "Mark Roseman"
What: BYO
Where: Locations removed by request of contact
Description: Work is no longer being carried out on BYO and the version
on the archives is out of date, so it has been removed.
Contact: "Peter Wood"
What: calc.tk
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/calc.tk.gz
Description: a simple calculator.
Contact: "David Herron"
What: Calendar / Rolodex
Where: From the contact
Description: A calendar/rolodex written in Tk. Also can browse/edit other
colon-separated field files.
Contact: "Marc Mengel"
What: canvas_ui - a Tk sketcher
Where: From the contact
Description: a Tk sketching program which uses a canvas and creates Postscript
files.
Contact: "Brent Welch"
What: CGI <-> Tcl and/or Tk
Where: From the contact
Description: Simple Common Gateway Interface scripts for invoking
Tcl scripts or Tk scripts.
Contact: "Yechezkal-Shimon Gutfreund"
What: CGI Forms based mailing
Where: From the contact
Description: A Tcl script to allow Common Gateway Interface forms-based
mailing to a specific user.
Contact: "Jon P. Knight"
What: classifyMail
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/tcl-slocal.tcl.gz
Description: Tcl replacement for MH slocal, providing extended capabilities.
Contact: "Bill Burdick"
What: Clock (Analog)
Where: From the contact
Description: Graphical representation of non-digital clock.
Contact: "Karl Lehenbauer"
What: Compare Manifest
Where: From the contact
Description: Extended Tcl program that reads a MANIFEST and compares
directory hierarchy to it.
Contact: "Karl Lehenbauer"
What: coloredit
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/coloredit.tk.gz
Description: Tk script to edit colors
Contact: "Sam Shen"
What: Tk cron interface
Where: ftp://avahi.inria.fr/tcl/tkcron
ftp://harbor.ecn.purdue.edu/pub/tcl/code/tkcron-1.18.tcl.gz
Description: Tk 3.3 simple interface to crontab creation
Contact: "Cedric Beust"
What: CUTE
Where: From the contact
Description: Call Unix/Tcl Environment - a serial port 'expect' like
program.
Contact: "Karl Lehenbauer"
What: dateicon
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/dateicon-0.1.tar.gz
Description: Attach an icon (which displays the current date) to a Tk
window.
Contact: "Peter Williams"
What: DejaGnu
Where: ftp://ftp.cygnus.com/pub/dejagnu/dejagnu-1.2.tar.z
and other GNU sites.
Description: an expect 5.x based package designed to be a framework
for testing other software. Separate test suites exist for
GDB and binutils. Note that the tar includes a complete release
of Tcl 7.3 and expect 5.x. Additional testsuites are available.
Contact: "Rob Savoye"
What: DGC Tools
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/dgctools-0.2.tar.gz
Description: Tke, a multi-window X11 text editor and "Tkt" - a
Terminal Emulator/Command line/Shell window program, and "tkb"
an experimental C++/C source browser. Requires TclX/Tk.
Contact: "Dave Clemans"
What: directory browser
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/dir.shar.gz
Description: Simple directory browser behaving similar to NeXT file browser.
Contact: "Taj Khattra"
What: Directory User Agent interface
Where: ftp://ftp.ics.uci.edu/mrose/fredtcl/fredtcl-sunos4.tar.Z
ftp://ftp.ics.uci.edu/mrose/fredtcl/fredtcl.tar.Z
Description: A program that interrogates the OSI Directory about information
objects, people, programs, organizations, etc.
Contact: isode@nic.ddn.mil
What: dodirectory
Where: From the contact
Description: A tclsh that goes through a directory and copies the user's
permissions to other and group, except that it denies them write.
Contact: "Hume Smith" <850347s@dragon.acadiau.ca> ???
What: Drag and Drop file browser
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/dragndrop.tk.gz
ftp://harbor.ecn.purdue.edu/pub/tcl/code/tkfb.shar.gz
Description: Drag and drop based directory browser (tkfb) and helper
programs with a NeXTStep like interface. Version 2 of
dragndrop.tk was renamed to tkfb.
Contact: "Scott Schwartz"
What: edit-html
Where: ftp://ftp.x.org/contrib/edit-html.tcl.Z
Description: Tk wish script for creating HTML-based documents.
Contact: "Nathan Torkington"
What: Emil
Where: ftp://ftp.sunet.se/pub/unix/mail/email/
ftp://ftp.uu.se//pub/unix/networking/mail/emil/
ftp://scr.doc.ic.ac.uk/computing/mail/emil/
Description: A tool for converting between MIME, Eudora, Mailtool,
PC client, Mac client email formats. Header handling and conversion
control configured in Tcl.
Contact: "Martin Wendel"
What: evaluate_parameters
Where: ftp://ftp.Lehigh.EDU/pub/evap/evap-2.x/evap-2.0.tar.Z
Description: Perl program that generates a Tcl/Tk GUI wrapper around
one's Perl or C program to gather command line arguments interactively.
Contact: lusol@lehigh.edu
What: Expect
Where: ftp://ftp.cme.nist.gov/pub/expect/expect.shar.Z
Description: a scripting language to talk to interactive programs like ftp,
telnet, fsck, and others that cannot be automated from a shell script.
Version 4 is Tcl 6 compatible.
Contact: "Don Libes"
What: Expect (Tcl 7 compatible)
Where: ftp://ftp.cme.nist.gov/pub/expect/alpha.shar.Z
Description: a scripting language to talk to interactive programs like ftp,
telnet, fsck, and others that cannot be automated from a shell script.
Version 5 is Tcl 7 compatible.
Contact: "Don Libes"
What: expecTerm
Where: ftp://ceylon.gte.com/pub/expecterm/expecTerm1.0beta.tar.Z
ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/expecTerm1.0beta.tar.Z
Description: expect with terminal emulation
Contact: "Christopher J. Matheus" and
weissman@gte.com (Mark D. Weissman)
What: exmh
Where: ftp://parcftp.xerox.com/pub/exmh/exmh-1.2.tar.Z
ftp://parcftp.xerox.com/pub/exmh/exmh-1.3.tar.Z
ftp://harbor.ecn.purdue.edu/pub/tcl/code/exmh-1.2.tar.gz
ftp://harbor.ecn.purdue.edu/pub/tcl/code/exmh-1.3gamma.tar.gz
Description: A Tk based UI to MH. Supports nested folders, MIME/metamail.
Contact: "Brent Welch"
What: folderbiff
Where: From the contact
Description: Tk program to watch MH/slocal folders and, when button clicked,
start up an exmh session on a folder that gets new mail
Contact: "Bill Burdick"
What: fn and ForumNet
Where: ftp://f.ms.uky.edu/u/ftp/pub/misc/vms-fn/
Description: ForumNet - teleconferencing system,
fn - client to access ForumNet
Contact: "Sean Casey" ???
"Sean Casey" ???
What: Fresco CORBA interpreter
Where: From the contact
Description: As part of Fresco, a Tcl-based interpreter that uses
CORBA dynamic invocation was developed.
Contact: "Mark Linton"
What: FSP client
Where: ftp://genie.lut.ac.uk/murf/
Description: Wafe/Perl based interface to FSP.
Contact: "Martin Hamilton"
What: Gash - a Galaxy interpreter
Where: From the contact
Description: a Tcl-based interpreter system for the Galaxy Application
Libraries. Software was not available Jun 29, 1993. See contact
for progress.
Contact: "Ross Huitt" ???
What: getcons - get console
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/getcons.shar.Z
Description: Console management tool - a wish based contool so to speak.
Contact: "Steve Osborn"
What: GOOD
Where: ftp://metallica.prakinf.tu-ilmenau.de/pub/PROJECTS/GOOD0.70/
Description: An object oriented C++/Tcl framework for interactive 3D
applications running under the X window system, with special
support to SGI GL, PHIGS, etc. Features a Tcl shading/
raytracing/radiosity kernel, a Tk interaction application builder
and a C++ classlib. There is also an extension available
that implements additional objects for scientific
visualization. There is a Tcl set of objects
for generating interactive 3D graphics included.
Contact: "YART mailing list" ,
"Ekkehard Beier"
What: Graphical Interface to CVS (Chan)
Where: From the contact
Description: Software Engineering Class project.
Contact: "Tony Chan"
What: Graphical Interface to CVS (Marwood)
Where: ftp://ftp.cpsc.ucalgary.ca/pub/projects/grouplab/software/gic-1.2b1.tar.Z
Description: GIC is a Tk interface to the Concurrent Version System, a
revision control system.
Contact: "David Marwood" or
"David Marwood"
saul@cpsc.ucalgary.ca
What: Hierarchical Help System (HLP)
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/HLP.tar.gz
Description: Tk routines that implement a hierarchical menu type help system.
Contact: "Paul Amaranth"
What: Host Monitoring (hm)
Where: ftp://vela.acs.oakland.edu/pub/amaranth/hm0.3-beta.tar.Z
Description: This Tk program current monitors various threshold values
for caution and warning levels for things such as system
load (excluding SYSV), number of users, percent of swap space used,
etc.
Contact: "Paul Amaranth"
What: hp-tcl-cdplay
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/hp-tcl-cdplay.tar.Z
Description: a Tk interface to the HP CD-ROM player
Contact: "Mike Hoegeman"
What: HTCLtoTCL
Where: ftp://www.lbl.gov/pub/htcl.tar
http://www.lbl.gov/~clarsen/projects/htcl.tar
http://www.lbl.gov/~clarsen/projects/htcl.html
Description: Extracts Tcl from HTML/Tcl merged file. Requires itcl.
Also has contains program which parses arguments passed by httpd
type server from FORM input.
Contact: "Case Larsen"
What: ical - a calendar manager
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/ical-1.8.tar.gz
ftp://ftp.lcs.mit.edu/pub/sanjay/ical-1.8.tar.Z
Description: A calendar application - previously required InterViews
libraries but now uses only tk. Designed for Tcl 7/Tk 3.3.
This is implemented as a set of date management extensions and a
wish interpreter.
Contact: "Sanjay Ghemawat"
What: IDL/Pvwave/Matlab <-> Tk
Where: From the contact
Description: A Modified version of Tk which communicates with a
custom RPC interface designed for WAVE and now IDL.
Contact: "Justin Seiferth"
What: Iplace - interactively place widgets on a frame
Where: From the contact
Description: A poor-man's GUI builder.
Contact: "Wayne A. Christopher"
What: js tools
Where: ftp://princeton.edu/pub/js/jstools-tk3.6v2.0.tar.gz
ftp://harbor.ecn.purdue.edu/pub/tcl/code/jstools-tk3.6v2.0.tar.gz
ftp://harbor.ecn.purdue.edu/pub/tcl/code/jstools-tk3.6v2.0.LIBRARIES
Description: A configurable directory browser (similar to the NeXT browser),
a extensible text editor, and a multi-font help viewing system.
Note that there are a large number of useful procecures that come
as a part of this package including a set of rich text management
procedures.
Contact: "Jay Sekora" ???
What: Jungle
Where: From the contact
Description: The contact is developing a "WWW server" (sic) using
Tk/Tcl/Tcl-DP.
Contact: jungle@catless.ncl.ac.uk
What: Karel the Robot
Where: From the contact
Description: This is a program in development by the contact.
Contact: "Michael D. Moore"
What: Klondike
Where: ftp://ftp.cs.ucla.edu/pub/ficus/johnh/klondike.1.2.tar.gz
ftp://harbor.ecn.purdue.edu/pub/tcl/code/klondike.1.2.tar.gz
comp.sources.games archives.
Description: Extended Tcl/Tk based solitaire game.
Contact: "John Heidemann"
What: KosherDill
Where: One of the programs in the BLT distribution
ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/BLT-1.3.tar.gz
Description: Tk program to display the largest and oldest files in your
file system and allow you to look at it, compress it or delete it
using drag&drop operations.
Contact: "George A. Howlett"
What: Lassen
Where: ftp://s2k-ftp.cs.berkeley.edu/pub/sequoia/src/lassen.tar.Z
Description: Multimedia/Information Retrieval research project
Contact: Unknown
What: Libsearch
Where: From the contact
Description: expect driven interface to Internet library databases.
Contact: "Terrence Brannon" ???
What: Lightwave
Where: From the contact
Description: An animation program for the Video Toaster
Contact: "Karl Lehenbauer"
What: lily
Where: ftp://ftp.ece.cmu.edu/cad/lily1.4.tar.Z
Description: A layout editor developed by Dave Svoboda.
Contact: "David Svoboda"
What: Linux port of Tcl/Tk
Where: ftp://sunsite.unc.edu/pub/Linux/Incoming/tcl7.3-bin.tar.z
ftp://sunsite.unc.edu/pub/Linux/Incoming/tcl7.3-src.tar.z
ftp://sunsite.unc.edu/pub/Linux/Incoming/tk3.6-bin.tar.z
ftp://sunsite.unc.edu/pub/Linux/Incoming/tk3.6-src.tar.z
ftp://sunsite.unc.edu/pub/Linux/Incoming/tclX7.3a-bin.tar.z
ftp://sunsite.unc.edu/pub/Linux/Incoming/tclX7.3a-src.tar.z
ftp://sunsite.unc.edu/pub/Linux/Incoming/blt1.0-bin.tar.z
ftp://sunsite.unc.edu/pub/Linux/Incoming/blt1.0-src.tar.z
ftp://sunsite.unc.edu/pub/Linux/Incoming/itcl1.3-bin.tar.z
ftp://sunsite.unc.edu/pub/Linux/Incoming/itcl1.3-src.tar.z
Description: Binary portion of Tcl 7.3 and Tk 3.6. These will be
moved into the Linux hierarchy at some point.
Requires libc-4.4.4 or later and tk/blt and tkX require
XFree86-2.0 or later.
Contact: "David Engel"
What: lookup
Where: From the contact
Description: Look up words in /usr/dict/word file.
Contact: "Paul Raines"
What: Machete
Where: From the contact
Description: Simple html editor in tk.
Contact: "Lindsay Marshall"
What: MacOS Tcl, 6.1
Where: From the contact
Description: Tcl6.1 Mac port (ThinkC 5.0.1)
Contact: "Parag Patel"
What: MacTcl, 6.1v2
Where: From the contact
Description: Mac port (ThinkC 5.0.1) with a few extensions and fixes
Contact: "Ray Johnson"
What: MacTcl, 6.7b
Where: From the contact
Description: MacTcl is a 'straight port' of Tcl to Think C [56].0
The source is included. MacTcl also supports
rm, mv, mkdir, cd, pwd, etc. as well as
the env variable and the auto_load facility.
Contact: "Ray Johnson"
What: MacTcl, 7.3
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/distrib/MacTcl7.3.sea.hqx
Description: Tcl 7.3 source ported to the Mac Think C 6.0 and MPW.
Not that this is _not_ a developement environment but a tool
for embedding Tcl into other applications. This version
includes more robust unix commands and an extended source
command.
Contact: "Ray Johnson"
What: Make-A-Wish
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/make-a-wish-1.2.tar.gz
Description: Set of steps and a simple sh script that tries to aid in
creating Tcl/Tk interpreters with various extensions.
Contact: "Tom Poindexter"
"Tom Poindexter"
What: man.tk
Where: From the contact
Description: Tk based man page browser.
Contact: "John Bowe"
What: Math Teaching Aid
Where: ftp://web.cs.ualberta.ca/~wade/Code/mta.tar.gz
Description: Simple application to graph mathimatical functions.
Allow graphing of arbitrary number of functions at the same time.
Auto or manual axis range, user control of colors,
line widths, etc.
Contact: "Wade Holst"
What: mercurius
Where: ftp://ftp.lii.unitn.it/pub/mercurius/mercurius.tar.Z
Description: Mercurius facilitates composing and reading multimedia electronic
messages compliant with the Multipurpose Internet Mail Extensions
(MIME).
Contact: mercurius-bugs@lii.unitn.it
What: Modules
Where: ftp://ftp.eng.auburn.edu/pub/Modules/Modules-v2.0.tar.Z
Description: a dynamic user environment customization package
Contact: "John L. Furlani"
What: Moog
Where: ftp://genie.lut.ac.uk/moog-0.2.tar.Z
ftp://harbor.ecn.purdue.edu/pub/tcl/code/moog-0.2.tar.gz
Description: An X Window gopher client for Unix boxes, written using
Tk and Perl. This is an Alpha release.
Contact: "Martin Hamilton"
What: MS-DOS Tcl, 6.0a
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/distrib/dostcl.zoo
ftp://harbor.ecn.purdue.edu/pub/tcl/distrib/dostcl60.tar.Z
Description: Experimental MS-DOS Tcl 6.0a port
Contact: "Karl Lehenbauer"
What: MS-DOS Tcl, 6.2
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/distrib/tcl62.dos.tar
ftp://Cajal.uoregon.edu/pub/tcl.dos.port/*
Description: stable port of Tcl 6.2, and extra libraries, ported to MS-DOS
Contact: "John Martin"
What: MS-DOS Tcl, 6.7
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/distrib/tcl67dos.zip
ftp://wuarchive.wustl.edu/incoming
Description: Port of Tcl 6.7 to MS-DOS.
Contact: "Peter Sprenger" ???
What: MS-DOS Tk/Tcl
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/distrib/mstcl73e.zip
ftp://harbor.ecn.purdue.edu/pub/tcl/distrib/mstcl73s.zip
Description: Standard and Extended Tcl and Tk under MS-DOS, using
the DJ Delorie's GO32 32 bit extended and linked with
Quarterdeck's libraries for Desqview/X. Requires Desqview/X
to run.
Contact: "Tom Poindexter"
"Tom Poindexter"
What: MS-DOS Windows Tcl
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/distrib/w_tclbin.zip
ftp://harbor.ecn.purdue.edu/pub/tcl/distrib/w_tclsrc.zip
Description: Port of Tcl (version unknown) to MS-DOS Windows (version unknown).
Contact: Unknown
What: MS-DOS Windows DLL for Tcl
Where: From the contact
Description: An experimental MS-Windows DLL instance of Tcl 6.2.
Contact: "Ugo Cei"
What: Mx
Where: ftp://ftp.cs.berkeley.edu/pub/tcl/mx.tar.Z
ftp://ftp.cs.berkeley.edu/pub/tcl/mx-2.5.tar.Z
Description: a old Tcl/Sx based text editor
Contact: "John Ousterhout"
What: Mxedit
Where: ftp://parcftp.xerox.com/pub/mxedit/mxedit.2.3.1.tar.Z
ftp://harbor.ecn.purdue.edu/pub/tcl/code/mxedit.2.3.1.tar.gz
ftp://harbor.ecn.purdue.edu/pub/tcl/code/mxedit.menus.gz
Description: A Tk text editor. Note that the edit
widget itself is stand-alone so that you can use it in other
applications. Also, mxedit.menus is a Tk script to
put a veneer over Tk menus.
Contact: "Brent Welch"
What: Netrek Metaserver Monitor
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/wishmetaserver.tar.gz
Description: Tk 2.1/tclRawTCP based Tk program to monitor netrek.
Contact: "Sam Shen"
James Hawtin (J.W.Hawtin@lut.ac.uk)
What: Newsspy
Where: ftp://134.93.129.91/pub/newsspy/
Description: A tcl program to connect to a NNTP news server and scan
article headers for special keywords. If found, read article
and append to a file. Can be invoked from cron.
Contact: "hofmann"
What: Objectify
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/objectify-2.0.tar.gz
Description: Preprocessor to turn a C++ class into a Tcl object type.
Contact: "Wayne A. Christopher"
What: Oracle wrap for Tk/Tcl
Where: ftp://ftp.cad.gatech.edu/pub/tk/oracle.tar.Z
Description: A simple ORACLE wrap that implements SQL commands in Tk/Tcl.
Contact: "Mark Andrew Hale"
What: OS/2 port of Tcl 7.3
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/distrib/tcl2-73a.zip
ftp://ftp.cdrom.com/pub/os2/2_x/unix/tcl2-73a.zip
Description: Port of Tcl 7.3 except for glob or command pipelines
to OS/2 2.x, using C Set++.
Contact: "Bud Bach"
What: Palm
Where: ftp://mango.rsmas.miami.edu/pub/palm/palm.shar.gz
Description: A Tk mail program which uses the c-client library. No
support for MIME yet. You need to get c-client, BLT,
and Tcl 7.[01]/Tk 3.[34].
Contact: "angel li"
What: Parseargs
Where: From comp.sources.misc archives, volume 29
ftp://wuarchive.wustl.edu/usenet/comp.sources.misc/volume29/parseargs
Description: Utility library for parsing command line arguments in various
languages (including Tcl) and on various hardware platforms
Contact: "Eric P. Allman"
"Peter da Silva"
"Brad Appleton"
What: pgbrowse
Where: ftp://crseo.ucsb.edu/pub/pgbrowse/
Description: Tk Postgres browser and query tool.
Contact: Unknown
What: PhoneStation
Where: ftp://bellcore.com/pub/PhoneStation/
Description: Software for incorporating a telephone into the Workstation
environment.
Contact: "Stephen A Uhler"
What: Picasso
Where: ftp://zenon.inria.fr/pub/tk/picasso3.8.tar.Z
ftp://harbor.ecn.purdue.edu/pub/tcl/code/picasso3.8.tar.gz
Description: Interactive drawing tool similar to idraw.
Requires Extended Tcl/Tk and Pbmplus comands.
Contact: "Frank Mangin"
What: pixmap
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/pixmap-0.1.tar.gz
Description: A color pixmap editor written in Tk.
Contact: "Sam Shen"
What: Point
Where: ftp://ftp.cs.unm.edu/pub/Point/point1.63.tar.Z
ftp://harbor.ecn.purdue.edu/pub/tcl/code/point1.63.tar.gz
Description: a Tk based text editor - 1.60+ works with Tk 3.
Contact: "Charlie Crowley"
What: PostgresBrowswer
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/postgresbrowser.tcl.gz
Description: An experimental postgres frontend.
Contact: "Frank Sauer"
What: ProTcl
Where: ftp://ftp.ecrc.de/pub/eclipse/progs/protcl/
Description: A Prolog interface to Tcl/Tk. Version 1.1 now works with Tcl 7.
Contact: "Micha Meier"
What: Ptolemy
Where: ftp://ptolemy.eecs.berkeley.edu/pub/ptolemy/
Description: Simulation and prototyping system, written in C++ and using
Tk/Tcl for user interface.
Contact: ptolemy-request@ohm.eecs.berkeley.edu
What: RasMol
Where: ftp://ftp.dcs.ed.ac.uk/pub/rasmol/RasMol2.tar.Z
ftp:////ftp.dcs.ed.ac.uk/pub/rasmol/raswin.zip
Description: A molecular graphics visualisation program intended
for proteins and nucleic acids. Available for X Window System,
IBM PC MS-Windows and VMS/DecWindows environments.
Contact: rasmol@dcs.ed.ac.uk
rasmol@ggr.co.uk
What: Remote control of Tk apps
Where: From the contact
Description: A read-eval-print loop that connects you to a registered Tk
interpreter.
Contact: "Bill Burdick"
What: reversi
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/reversi-1.0.tk.gz
Description: Reversi (othello) game.
Contact: "Joel Fine"
What: Roger's Interface Language (RIL)
Where: alt.sources archives
ftp://ftp.x.org/contrib/ril.tar.Z
Description: a preprocessor for resource files.
Contact: "Roger Reynolds"
What: rolodex
Where: From the Tk demos directory
Description: John Ousterhout's entry to Tom Solbourne's 1992 X toolkit
challenge.
Contact: "John Ousterhout"
What: RosettaMan
Where: ftp://ftp.cs.berkeley.edu/ucb/people/phelps/tcl/rman.tar.Z
Description: UNIX man page filter - converts to other formats.
Contact: "Tom Phelps"
What: Rmth
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/beth4.0.tar.gz
Description: A combination shell emulator, remote command interpreter,
and wish tutorial.
Contact: "David Mark Svoboda"
What: scotty
Where: ftp://ftp.ibr.cs.tu-bs.de/ibr/pub/local/scotty-0.9.tar.Z
Description: A Tcl interpreter extended to set up TCP connections, submit
ping packets, and query RPC services.
Contact: netman@ibr.cs.tu-bs.de
What: ServiceMail(tm) Toolkit (servicemail.tar.Z)
Where: ftp://eitech.com/pub/servicemail/servicemail2.0.1.tar.z
Description: ServiceMail is a standalone email server written in C and Tcl.
It takes incoming email requests and can perform tasks for the
sender.
Contact: "ServiceMail questions" ,
or subscribe to servicemail-help mailing list by sending a message
to the "listserv subscribe servicemail-help your-real-name" service at
"services@eitech.com".
What: ServiceMail extras
Where: ftp://keck.tamu.edu/pub/EmailServer/additional_tcl_scripts*.tar.Z
Description: See http://keck.tamu.edu/cgi/staff/emailserver.html for
a description of the various email services that can be added
using the above tar file. Since the date is embedded in the
file name, a * has been used in this catalog entry to represent
the current version. Package includes ability to send GIF files,
.au files, an ftp status, gopher style searches, etc.
Contact: services@keck.tamu.edu with a subject of help
What: SGI GL interpreter
Where: ftp://metallica.prakinf.tu-ilmenau.de/pub/GLIP/glip0.8.tar.Z
ftp://metallica.prakinf.tu-ilmenau.de/pub/GLIP/glip0.8.doc.ps.Z
Description: Tcl based interpreter for Silicon Graphics GL.
Contact: "Ekkehard Beier"
What: SIMON
Where: ftp://ftp.elec.qmw.ac.uk/pub/simon/
Description: A Tk/Tcl based Mosaic Hotlist/subject space management program.
A subject space server maintains a database for the users of
the software.
Contact: "M. J. Johnson"
What: smaillog
Where: alt.sources archives
Description: email activity report for smail 2.5
Contact: "Karl Lehenbauer"
What: Shiva
Where: Unknown
Description: Survey Human Interface and Visualization Environment
(Shiva) is the supported toolkit to be used
for assembling data reduction pipelines and host software for
the SDSS data acquisition system.
Contact: Unknown
What: SimCity demo
Where: ftp://world.std.com/pub/SimCity/
Description: This is a demo of a commercial product written in Tk/Tcl.
Contact: Unknown
What: Spice interface
Where: http://ES-sun2.fernuni-hagen.de/editor.html
Description: Experimental schematic SPICE interface.
Contact: "Johann Friedrich Heinrichmeyer"
What: STk
Where: ftp://kaolin.unice.fr/pub/STk-2.0.tar.gz
Description: A graphical package which relies on Tk and the Scheme
programming language - think Tk and Scheme rather than Tk and Tcl.
Contact: "Gallesio Erick"
What: Subway Navigator
Where: Source not available at this time
Description: Tk-based Internet service to find routines in the world's
subway systems. Reach the subway via telnet://metro.jussieu.fr:10000
or gopher://gopher.jussieu.fr:70/1/metro .
Contact: "Pierre David"
What: Symbolic derivations
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/tderiv-1.0.tar.gz
Description: A simple symbolic derivation solver.
Contact: "Michael Tiller"
What: Tcl
Where: ftp://ftp.cs.berkeley.edu/ucb/tcl/tcl6.7.tar.Z
ftp://ftp.cs.berkeley.edu/ucb/tcl/tcl7.3.tar.Z
Description: the complete base package for Tcl.
Contact: "John Ousterhout"
What: Tcl / Tk install softlink
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/installtk.gz
Description: installtk is a script which creates a set of softlinks
from the distribution directory to the public installation
directories.
Contact: "Maurice J. LeBrun"
What: Tcl shells
Where: ftp://ftp.fzi.de/pub/OBST/OBST3-3/tclshells.tar.Z
Description: Package to assist users who want to build customized
shells by choosing among Tcl/Tk extensions.
Contact: "Dietmar Theobald"
What: tcl++
Where: From the contact
Description: Tcl based code providing SELF-like prototype-based tcl objects.
Contact: "Hansel Wan"
What: tclbot
Where: ftp://belch.berkeley.edu/pub/mud_robots/tclbot
Description: MUD robot for Tcl programmers
Contact: "Rusty C. Wright" ???
What: Tcl Compiler (TC)
Where: From the contact (not available for release yet)
Description: An extensible compiler and runtime system for the Tcl language.
Contact: "Adam Sah"
What: Brannon's Tcl to C compiler
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/ttc.tar.gz
Description: Compiles Tcl scripts into corresponding C code.
Contact: "TERRENCE MONROE BRANNON" ???
What: tcltags (Hoegeman)
Where: From the contact
Description: Tcl command to generate vi tags file.
Contact: "Michael Hoegeman"
What: tcltags (LoVerso)
Where: From the contact
Description: /bin/sh command to generate vi tags file.
Contact: "John Robert LoVerso"
What: tcltags (Tromey)
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/tcltags.tcl.gz
Description: Emacs TAGS generation for Tcl source.
Contact: "Tom Tromey"
What: tcltkgrass
Where: ftp://moon.cecer.army.mil/grass/incoming/tcltkgrass.tar.Z
Description: Tcl/Tk frontend for GRASS
Contact: "Mark Line"
What: tcltools
Where: ftp://cygnus.com/pub/tcltools-930124.tar.Z
ftp://harbor.ecn.purdue.edu/pub/tcl/code/tcltools-930124.tar.gz
Description: Version of Tcl 6.5 and Tk 3.0 which uses autoconfig for
configuration purposes. Not needed for Tcl 7/Tk 3.4.
Contact: "david d 'zoo' zuhn"
What: tcltt, v1
Where: ftp://ftp.white.toronto.edu/pub/muds/tcltt
Description: Tcl TinyTalk
Contact: "Chris Siebenmann"
What: TCLtt (TCL-TinyTalk)
Where: From the contact
Description: Programmable client for connecting to MUDs (effectively, chat
servers with role playing). Uses TCL 6.7, should be OK with earlier.
Contact: "David Fenger"
What: tdcad
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/tdcad0_1a.tar.gz
Description: A little Tk CAD drawing program in early Alpha stage.
Contact: "Tuan Doan"
What: TeenyMUD
Where: From the contact
Description: a small Multi User Dungeon program which is based on a
heavily modified version of Tcl.
Contact: "TeenyMUD admin addr"
teeny-list@fido.econlab.arizona.edu (Teeny MUD Mailing List)
downsj@atlantis.CS.ORST.EDU (jason downs)
What: tess
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/tess.2.0.tar.gz
Description: tess (tar extraction simplification script) is a tcl/tk based
tar file extraction tool. tess will automatically uncompress/unzip
files ending in .Z or .gz respectively.
Contact: "Paul E Coad"
What: tickle
Where: ftp://ftp.msen.com/pub/vendor/ice/tickle/AppOnly.hqx
ftp://ftp.msen.com/pub/vendor/ice/tickle/DocOnly.hqx
ftp://ftp.msen.com/pub/vendor/ice/tickle/EngineOnly.hqx
ftp://ftp.msen.com/pub/vendor/ice/tickle/scripts.hqx
ftp://ftp.msen.com/pub/vendor/ice/tickle/XTCL.hqx
ftp://ftp.msen.com/pub/vendor/ice/tickle/Tickle5.0v1.hqx
Description: Tickle is a Macintosh text editor and file converter
handling binhex, uudecode, compress, tar, MacBinary,
Apple Single/Double, etc. Supports System 7's drag and drop.
Also handles OSA events.
Contact: tickle@ice.com
What: Tk
Where: ftp://ftp.cs.berkeley.edu/ucb/tcl/tk3.6.tar.Z
ftp://harbor.ecn.purdue.edu/pub/tcl/distrib/tk3.6.tar.Z
Description: Tk is an X11 extension for Tcl. Version 3.6 is for Tcl 7.3.
You need to get the Tcl 7.3 package as well.
Contact: "John Ousterhout"
What: Tk and C++
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tk3.3forC++.patch.Z
Description: A patch to make tk3.3 usable with C++.
Contact: "Ken Yap"
What: Tk extensions via imake
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/tkmkmf-3.6.tar.gz
Description: An imake based utility that simplifies wish extensions so that
no Tk code modification is needed.
Contact: "Jim Wight"
What: Tk terminal widget
Where: From the contact
Description: A Tk terminal emulator-like widget.
Contact: "Rudi Stouffs"
What: tk WWW interface
Where: ftp://www.w3.org/pub/www/dev/tkWWW-0.10.tar.Z
ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tkWWW-0.10.tar.Z
ftp://ftp.x.org/contrib/tkWWW-0.10.tar.Z
Description: A Tk World Wide Web (WWW) browser, requires tk 3.1 or greater.
Contact: "administration of mailing list"
tk-www@athena.mit.edu (WWW Tk Browser Discussion List)
What: Tk xworld
Where: From the contact
Description: Tk world builder for the xworld server
Contact: "Michael D. Moore"
What: TkBible
Where: From the contact.
Description: Present the user with a menubar of the books of the Bible
(obtained from ftp://sifon.cc.mcgill.ca/pub/things_of_interest/bible/)
and display the current book.
Contact: "Michael D. Moore"
What: tkchrom
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/tkchrom-1.1.gz
Description: A clock that uses the orientation of a wedge in a circle to
indicate the time.
Contact: "Tom Phelps"
What: TkDispCalc
Where: From the contact
Description: A Tk display calculator, with memory of previous commands.
Contact: "Eric J. Schwertfeger"
What: tkdvi
Where: ftp://ftp.math.uni-frankfurt.de/pub/tkdvi/tkdvi-0.1.tar.gz
Description: Manipulate .dvi files via a Tk interface. Still in alpha
stage.
Contact: lingnau@math.uni-frankfurt.de
What: tkelm
Where: From the contact
Description: Tk elm-based mail reader.
Contact: "Budi Rahardjo"
What: TkFibs
Where: ftp://shuksan.cs.berkeley.edu/pub/tkfibs/
Description: Tk client that provides an interface to the Fibs
backgammon server.
Contact: tkfibs@shuksan.cs.berkeley.edu
What: tkfire
Where: From the contact
Description: Tk Defender like game
Contact: "Wayne A. Christopher"
What: tkfonts
Where: From the contact
Description: Font selection program.
Contact: "Jay Schmidgall"
What: tkgnats
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/tkgnats.tar.gz
Description: Tk front ends for the GNATS bug management system.
Contact: "Mike Hoegeman"
What: tkgoph - wade
Where: From the contact
Description: A quick and dirty Tk based gopher client.
Contact: "Reed Wade"
What: tkgopher
Where: From the contact
Description: Tk based gopher client which will use TclX, tkPixmap, and
Japanized text if available.
Contact: "Hoshi Takanori"
What: tkined
Where: ftp://ftp.ibr.cs.tu-bs.de/ibr/pub/local/tkined-0.9.tar.Z
Description: A Network Configuration drawing program.
Contact: netman@ibr.cs.tu-bs.de,
tkined-request@ibr.cs.tu-bs.de,
schoenw@ibh.cs.tu-bs.de
What: tkinfo
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/tkinfo-0.6.tar.gz
ftp://ptolemy.eecs.berkeley.edu/pub/misc/tkinfo-0.6.tar.Z
ftp://ptolemy.eecs.berkeley.edu/pub/misc/tkinfo-0.7-beta.tar.Z
Description: GNU info parsing and interpretation code and a Tk program
providing a sample of how to use it.
Contact: "Kennard White"
What: tkinspect
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/tkinspect-4d.tar.gz
Description: Allow browsing/inspection of running Tk applications.
Contact: "Sam Shen"
What: TkIspell
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/tkispell-1.6.tar.gz
ftp://harbor.ecn.purdue.edu/pub/tcl/code/tkispell-1.6.patch1
ftp://bohr.physics.upenn.edu/pub/tk/tkispell-1.6beta.tar.Z
Description: Interface to ispell command. Version 1.6 is intended to
share utility files with TkMail v1.6.
Contact: "Paul Raines"
What: tkkids
Where: From the contact
Description: Two kids' games - a Concentration-like memory game and
a spelling game (requires speak/scat software).
Contact: "Peter Grina"
What: TkLayers
Where: From the contact
Description: Tk/Expectk interface to ulayers, a windowing package
for serial protocol Unix users.
Contact: "Dan Wallach"
What: TkMail
Where: ftp://bohr.physics.upenn.edu/pub/tk/tkmail-1.6.tar.Z
ftp://bohr.physics.upenn.edu/pub/tk/tkmail-1.6.patch1
ftp://bohr.physics.upenn.edu/pub/tk/tkmail-1.6.patch2
ftp://bohr.physics.upenn.edu/pub/tk/tkmail-1.6.patch3
ftp://harbor.ecn.purdue.edu/pub/tcl/code/tkmail-1.6.tar.gz
ftp://harbor.ecn.purdue.edu/pub/tcl/code/tkmail-1.6.patch1.gz
ftp://harbor.ecn.purdue.edu/pub/tcl/code/tkmail-1.6.patch2.gz
ftp://harbor.ecn.purdue.edu/pub/tcl/code/tkmail-1.6.patch3.gz
Description: Tk interface to bsd's Mail command.
Contact: "Paul Raines"
What: tkmaillist
Where: ftp://avahi.inria.fr/tcl/tkmaillist
Description: Tk front-end that lets you subscribe and unsubscribe from
mailing lists.
Contact: "Cedric Beust"
What: TkMan
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/tkman-1.5.tar.gz
Description: A Tk based man page reader with hypertext links. As of version
1.5 support for Silicon Graphics man pages is in the std distribution.
Contact: "Tom Phelps"
What: tkmess
Where: ftp://hplyot.obspm.fr/tcl/tkmess
Description: Tk version of xmessage.
Contact: "Laurent Demailly"
What: TkMH
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/tkmh1.1.tar.gz
Description: Interface for the MH mailing system. Depends on Tcl 7.0 and
Tk 3.3.
Contact: "Martien Verbruggen"
What: TkMHn
Where: From the contact
Description: Interface for the MH mailing system.
Contact: "Thillier Pyves"
What: tkmines
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/tkmines.1.5.shar.gz
Description: Mines game.
Contact: "Joel Fine"
What: tkmotd
Where: From the contact
Description: Tk based tool to display the motd file with acknowlege button.
Contact: "Doug Hughes"
What: tknews
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/tknews.1.2b.tar.gz
Description: Tk-based news reader.
Contact: "Michael D. Moore"
What: Tkolumns
Where: From the contact
Description: Tk Columns game.
Contact: "Tony Bates"
What: tkpbiff
Where: From the contact
Description: Tk version of xpbiff, a pop-up bitmap version of biff.
Contact: "Benjamin Lurie"
What: tkpostage
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/tkpostage-1.3.tar.gz
Description: An xbiff replacement. Requires Tk 3.[34].
Contact: "Dan Wallach"
What: TkPostit
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/tkPostit-1.4.tar.gz
Description: A Tk program behaving like xpostit.
Contact: "Alessandro Rubini"
What: tkprompt
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/tkprompt.shar.gz
Description: Tk xprompt/xprompt2 replacement. Pop up a window with some
prompts and input areas.
Contact: "John Robert LoVerso"
What: tkSketch
Where: From the contact
Description: Tk based Sketch and Schematic editor.
Contact: "Johann Friedrich Heinrichmeyer"
What: TkSol
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/tksol-0.9.tar.gz
ftp://ftp.cs.umd.edu/pub/tksol/tksol-0.9.tar.Z
Description: Solitaire card game in Tk.
Contact: "Bao Trinh"
What: tk_stattab
Where: ftp://odin.mda.uth.tmc.edu/pub/unix/tk_stattab.tar.Z
Description: A packaging of the scientific application Stattab using
Tcl/Tk.
Contact: "Dan Serachitopol"
bwb@odin.mda.uth.tmc.edu (Barry W. Brown)
What: tkview
Where: From the contact
Description: View one or more files from a scrollable Tk text widget.
Contact: "Eric J. Schwertfeger"
What: Tkwm
Where: ftp://busco.lanl.gov/pub/tkwm-0.1a11.tar.gz
Description: A Tcl/Tk window manager, based on extensions to Tk.
Contact: "Eric Schenk"
What: tkwool
Where: From the contact
Description: A version of Tk which uses the wool language rather than
Tcl. A Sun 4 binary is available on avahi.inria.fr/wtk/ .
Contact: "Colas Nahaboo"
What: tkxpilots
Where: From the contact or alt.sources archives
Description: Tk/Tcl script that allows you to create configured
xpilots servers. Best with xpilots-3.1.0 or newer.
Contact: "Richard Oak"