PARD: Extensions
BLT is an extension to the Tk toolkit. It adds new widgets such as plotting
widgets (X-Y graph, barchart), geometry managers, and miscellaneous
commands.
Gdtclft is a tcl extension for programmatically drawing GIFs, with lines,
polygons, etc. Now with fully scalable, rotate-able, anti-aliased, Unicode,
TrueType text string support.
[incr Tcl] is an object-oriented extension of the Tcl language. It was
created to support more structured programming in Tcl. Tcl scripts that grow
beyond a few thousand lines become extremely difficult to maintain. This is
because the building blocks of vanilla Tcl are procedures and global
variables, and all of these building blocks must reside in a single global
namespace. There is no support for protection or encapsulation.
[incr Tcl] introduces the notion of objects. Each object is a bag of data
with a set of procedures or methods that are used to manipulate
it. Objects are organized into classes with identical
characteristics, and classes can inherit functionality from one another.
This object-oriented paradigm adds another level of organization on top of
the basic variable/procedure elements, and the resulting code is easier to
understand and maintain.
Among other things, [incr Tcl] can be used to create new widgets that look
and work like the usual Tk widgets, but are written entirely at the Tcl
language level (C code is optional). These mega-widgets can be
created using [incr Tk], a set of base classes which provide the core
mega-widget functionality. [incr Widgets] is a set of high-level
mega-widgets built using [incr Tk]. It has more than 50 widget classes, and
can be used right out of the box to create:
- fileselectiondialog
- tabnotebook
- panedwindow
- scrolledhtml
-
combobox
- optionmenu
- scrolledlistbox
- scrolledframe
- messagedialog
- and many others...
Classes and/or related procedures can also be encapsulated in their own
namespace. A namespace is a collection of commands, variables,
classes and other namespaces that is set apart from the usual global scope.
Elements within a namespace can be private or protected
, so that access to them is restricted. An import
command allows all of the elements from one namespace to be integrated into
another.
Mpexpr adds two new commands to Tcl, mpexpr and mpformat
. Mpexpr works much like Tcl's native expr, but does all
calculations using an arbitrary precision math package. Mpexpr numbers can
be any number of digits, with any decimal precision. Final precision is
controlled by a Tcl variable mp_precision, which can be any
reasonable integer.
Mpformat works much like Tcl's format, except it formats
multiple precision numbers in a variety of formats.
Mpexpr also includes most math functions provided by expr, as
well as several new functions. Mpexpr also supports Tcl variables and nested
evaluation, just like expr
The trade-off for mpepxr is in execution time. Since
mpepxr doesn't use native integer or floating point machine
instructions, execution times can be much greater. Larger precision values
(set with mp_precision) also require more execution time that
of smaller values.
This is stooop (a Simple Tcl Only Object Oriented Programming scheme).
Stooop is implemented in a single sourceable file and uses simple techniques
to provide object orientation to the great Tcl language.
If you know C++ or Java, stooop will be easy to use for you. Using the
familiar class, new, delete and virtual keywords and a few coding
conventions, you can start object oriented Tcl code right away.
Stooop supports single and multiple inheritance, data encapsulation (all
member data is public), dynamic binding, nested classes, object copy,
runtime type identification, optional runtime procedure and data access
checking as well as tracing.
The class, new, delete,
virtual and classof commands are implemented as Tcl
procedures.
Stooop was implemented with a constant concern for performance. Member data
is stored in Tcl associative arrays, which are best for random data access.
Classes are implemented as namespaces to improve encapsulation and reduce
naming interferences. Object oriented helper code is kept as small and as
efficient as possible. Typically, only a couple of Tcl lines are added to a
member procedure definition. Program startup time will be slightly increased
due to some class and member procedures preprocessing, but runtime overhead
is kept to a strict minimum. Use of object oriented techniques may actually
improve the performance of your code.
Tcl++ is a tcl-only implementation of [incr Tcl]
Tcl-DP adds TCP and IP connection management, remote procedure call (RPC),
and distributed object support to Tcl/Tk.
Extended Tcl is a set of Tcl extensions and a shell that are oriented
towards Unix system programming tasks and large application development.
Tea is a wrapper around Tcl that provides object-oriented functionality and
features. The model Tea follows is that defined by Java. Tea tries to
implement the "look" of Java from a class definition perspective, yet still
remain as syntactically consistent with Tcl/Tk as possible.
Tea's goal is to make large-scale applications written in Tcl/Tk feasible.
The namespace functionality in Tcl 8.0 is a step in the right direction, but
Tea provides much more by allowing the programmer to use object oriented
design and implementation techniques.
Tea is written in 100% Tcl 8.0 code and should run on any platform that Tcl
8.0 runs on.
In short, if you know and like Java, then you will know and enjoy Tea. I
attempted to marry the best of both worlds (Java and Tcl) into a single
product.
TK only provides a set of primitive widgets that may be tedious to work
with. In constrast, Tix delivers powerful higher-level widgets that fit the
needs of your applications. With Tix, you can forget about the frivolous
details of the TK widgets and concentrate on solving your problems at hand.
The idea is to provide a range of Tcl/Tk extensions that will allow
end-users to build a variety of sound viewers (and perhaps eventually
editors) according to their own taste.
- multi-line cells
- support for embedded windows (one per cell)
-
variable width columns / height rows (interactively resizable)
- row and
column titles
- multiple data sources ((Tcl array || Tcl command) &|
internal caching)
- supports standard Tk reliefs, fonts, etc.
- x/y
scrollbar support
tag styles per row, column or cell to
change colors, font, relief, image, etc...- in-cell editing - returns
value back to data source
- support for disabled (read-only) tables or
cells (via tags)
- multiple selection modes, with "active" cell
-
optional 'flashes' when things update
- cell validation support
TMCI is an extension for Tcl that allows access to the Media Control
Interface (MCI) for Windows. The MCI layer is an abstraction over several
types of media (sound and video) both for recording and playback. The
current range of MCI drivers allow for:
- Recording and playback of video and audio formats such as: mp3, avi and
mpeg
- Live video capture.
- Control of media devices such as CD, VDR and
VCR.
- Handling of asynchronous media events such the termination of
playback.
TMCI introduces two new commands: mci and mci_notify
. TMCI does not require Tk, but can be configured to display its
output in a Tk widget. The library requires the Win32 libraries and should
work well with Win32s.
© 1999 by Stefan Hornburg
<racke@linuxia.de>
Last modified 29. May 1999