Noumena Corporation

Whitmore Lake

These are a collection of tools and packages developed to help code Tcl applications faster and easier.

Some functionality has since been duplicated in other places with other tools.

A tree display widget
An enhanced version of D. Richard Hipp's tree megawidget.
This widget is an enhancement of D. Richard Hipp's tree megawidget.

The modifications include:

  • Namespace and package support
  • Faster tree building (particularly for large trees)
  • Options to control how the widget behaves
    Can open a directory with a double click (not single) on text, icon, or [+]
    Highlights lines blue when the cursor is above them.
    Alternate color instead of blue
    -bind script
    Bind a script to a line in the tree. The binding is to a single left button click.
  • Options to modify how the tree appears
    If 1, color every other line (graybar/greenbar pattern).
    If set, this is the color to use for the gray lines.
    -text label
    Display a label instead of the node name.

Get tree.zip: (9257 bytes)

Sample Tcl Extension
A sample Tcl extension to demonstrate techniques.
This sample Tcl Extension is a dummy extension that provides examples of passing data and status between the Tcl interpreter and the C functions.

The code is commented and described in detail in my books.

Get sampleExtension.zip: (24884 bytes)

Tcl html widget
A pure Tcl html display widget
htmllib.tcl. This script was written by Steve Uhler while he was with Sun Labs. It's a pure Tcl html display package that is used in TclTutor, htmlview.tcl and TclPoint.

This version supports the Tcl/Tk 8.0 and newer Font conventions and simple tables.

Get htmllib-rel_0_3_4.zip: (112222 bytes)

Client-Server Skeleton
Bare-Bones TCP/IP client and server: Just add application
Client-Server Skeleton. These two scripts provide a simple outline for writing Tcl/Tk based client/server applications. The standard socket controls are here (opening a socket, waiting for input, etc), and you just add the code to process the data.

Note: The client/server skeleton uses parseArgs from the Tools package.

Get cli-serv-Rel_1_1.zip: (6634 bytes)

Tcl Tools
Small and useful Tcl scripts.
These tcl packages include:
  • parseargs - the command line argument parsing procedure used in many Noumena packages.
  • listx - more list handling procedures.
  • stringx - more string handling procedures.

More Info

Get tcltools.zip: (5841 bytes)

MegaWidget skeleton
Building megawidgets in namespaces (pre Tcl8.6)
The Mega Dummy is a dummy megawidget skeleton that simplifies building custom megawidgets. This is the latest version of the script described in Tcl/Tk for Real Programmers and Tcl/Tk: A Developer's Guide.

NOTE: This is a namespace based solution to making megawidgets.

Tcl/Tk: A Developer's Guide, 2'nd edition discusses TclOO and describes better object oriented techniques for creating megaWidgets.

This package includes a script to convert the dummy skeleton into a new package using a number of regular expression substitutions.

More Info

Get megaDummy.zip: (14322 bytes)

dlopen extension
Load shared libraries within Tcl scripts
The dlopen extension loads a shared library that does not contain a xx_Init entry point on Posix or Windows platforms.

This allows loading extensions that require other shared libraries to be resident before they can resolve their symbol tables.

This extension is a single .c file which should compile cleanly on Posix or Windows systems. It's been tested on Linux, and MS-Windows 95 with VC++ 5.0.

Get dlopen.zip: (2138 bytes)