Megawidget Library


Potential Pitfalls

The megawidgets included in the library and built with the library have two pitfalls: Both of these, as well as some speed improvements, should come when true megawidget support is introduced in Tk (expected around v8.1). Otherwise, use these widgets as you would normal Tk widgets. A Tk8+ version of the library exists for those who might be interested.

Included Megawidgets

These are the megawidgets currently supplied with the library. I have built numerous others with this system, including building megawidgets using other megawidgets as components.
combobox
Combobox a-la Windows.
console
Based on TkCon, this is an interactive console widget. Warning: consoledialog crashes Windows Tk8.0, but not Unix Tk8.0. However, console works fine on both... (bug in renaming toplevels for Windows, fixed for 8.0p2)
hierarchy
Hierarchical list displayer. Comes two sample variants for viewing the directory or widget hierarchy.
progressbar
Single or multiple document progress bar
tabnotebook
Windows-like tabbed notebook (well, not so Windows-like)
ventry
An entry widget with validation routines
scrolledtext (in widget.tcl)
Hmmmm, let me guess...
There are a few extra files that aren't megawidgets, but are useful anyway.
balloonhelp
This does traditional balloon help, and works for menu items as well.
pane
paned window management routines

Sources

Again, this is all-Tcl, no compiling required. However, this should be considered beta software, not because the routines are immature, but because I haven't taken the time to properly package them for distribution and fully documented everything very well. Some of the newer megawidgets need more testing as well. Each megawidget has full documentation in its headers, and a mini-howto for creating your own is in the file widget.tcl.
61219 Aug 26 1997 widget.tar.gz
This code works for Tk4.2+ (tested through 8.0b2), but uses a simpler, less functional system.
80816 Jun 26 01:46 widget-0.9.tar.gz
This code works for Tk8+ with namespaces and lots more spiffy stuff, but is 0.9 because of lack of docs. The widgets are actually more refined than the above ones though.

Using the Library

One of these days it will be packaged appropriately. Until then, you have to make sure that they are sourced in as needed. The easiest way to do that is to lappend to auto_path the directory in which the megawidgets are located. Otherwise, you can do the packaging that I was to lazy to do and then do a simple package require Widgets or something.