TLC is a Tcl package created by Cyan Ogilvie containing a bunch of Itk based widgets, a simple client / server rpc framework, and a mechanism for building arrays of virtual logic gates for state propagation. (and probably lots more too - I abuse this as a place to put anything I use all the time)Hosted on sourceforge - http://sourceforge.net/projects/tcl-tlcThe intention was to document this lot here. Looking at the list I'm having second thoughts. Bug me at cyan.ogilvie at gmail.com if you have a need for any of this stuff and are hampered by the lack of documentation.
Widgets
- Application - intended as the main window in the application
- Border - base class for building widgets with a configurable border
- Browse_tktreectrl - a tktreectrl based multicolumn listbox for displaying a tlc::Datasource
- Browse_treeview_flat - multicolumn listbox (using BLT::Treeview) for displaying the contents of a tlc::Datasource (with the ability to define realtime filters)
- Calendar - canvas based calendar day selection widget
- Calpopup - popup window containing Calendar
- Checkgroup - convenience widget for building a group of checkbuttons
- Clock - I can't remember. probably a clock display
- Comboselect - popup window handler for tlc::Mycombobox
- Confirm - simple modal dialog box that displays a custom message and waits for the user to peck OK
- Dateentry - label made to look like an entry, with a lookup button to pop up a Calpopup
- Datelookup - lookup button for popping up a Calpopup
- Dcontrol - a frame with multiple associated keys, mapping to child windows which are swapped in and out when their key is selected
- Deny - a simple modal dialog box with a red icon for telling the user they don't have permission to do something, or there was an error
- Dropselect - antiquated code
- Fileselectbox - modified entry for selecting files, with a button to pop up a tkGetOpenFile / tkGetSaveFile
- Formdialog - modal dialog box containing a tlc::Form
- Form - a form rendering widget, for very quickly (and readably) rendering complex form type guis, based on a text schema. Supports validation, custom signals and much more
- Getinf - very simple modal dialog box for asking the user for a few bits of info, suitable for use in an if {} statement
- Hoverbox - tooltip-type toplevel window.
- Infowin - a modal dialog box for informing the user of something
- Label_link - a link that looks and behaves like a hyperlink
- Login - a generic username / password login box, with support for custom password checking callback
- Logtextbox - a text widget for displaying application logs
- Lookup - the base for a lookup type widget
- MDT - a widget based on blt::tabset for displaying multiple items in tabs
- Modal - base class for modal dialog boxes
- Mycombobox - terribly named dropdown combo box widget
- Myentry - antiquated code, for adding tlc::Signal awareness to entry, superceded by tlc::StateToggle
- Mylistbox - ancient (and obsolete) canvas based multi column listbox
- Mymenu - convenience wrapper for creating hierarchies of menus from a list schema
- Myscrollbar - thin wrapper on scrollbar to support fancy behaviour (like unmapping when no scrolling is needed)
- Myscrollbar_win32 - Bad hack to make scrollbars on X11 look like the do on win32
- Mytoplevel - itk::Archetype based toplevel mainly for allowing access to -menu
- Mywidget - widget base class with all the things everything else in tlc relies on
- Panelbar - a panelbar widget
- Radiogroup - a convenience widget for creating a group of radiobuttons
- Signal_monitor - a debugging aid for displaying the state of a tlc::Signalsource's exported signals in real time
- Spinint - simple integer value spinbox
- Spinner - custom value set spinbox, with typeahead and selection dropdown
- Splash - a splash screen widget
- Statusbar - a display area for short transient status messages
- Tagentry - an augmented entry widget, with a configurable text display on the right, and simple validation
- Theme - an attempt to make tk suck less ;)
- Tools - a multi button bar, with tlc::Signal support
- Tooltips - class for adding tooltips support to a widget
- Vartextbox - a wrapper for the text to bind the contents to a -textvariable
Non-GUI classes
- Baseconfig - a base class for config handling (defauls, command line and config file)
- Baselog - a base class for doing nice colourised (on unix anyway) log output with threshold support
- Browsegeneric - base class for things that display tlc::Datasources
- Chain - an ADT for chains (linked list type thing)
- Clientobj - part of the network framework
- Conobj - part of the network framework
- Console - a debugging aid - embedded console with history support, and the ability to dig into classes and display their state
- Daftheme - one of the developer's favoured visual settings pack
- Datasource - a baseclass for things that represent tabular data
- DSchan / DSchan_backend - specialized tlc::Datasource that implements live updating network replicated datasets (needs another, not yet released network framework)
- Datasource_filter - class for stacking on top of a tlc::Datasource to massage the data
- Datasource_list - simple list backed implementation of a tlc::Datasource
- Datasource_sql - implementation of a tlc::Datasource fleshed out with a few SQL queries
- Domino - set them up and knock them over. wheeee
- Expression - a tlc::Signal whose output is dependant on a custom expression
- Filelog - send application log to a file
- Gate - a tlc::Signal whose output is a logical operation of it's inputs
- Handlers - a loosely-coupled, multiple-listener callback system
- Hconfig - a value inherited hierarchical database for storing things like users and application settings
- Interpolate - set up to get a callback with a value interpolated between to extremes over a certain time interval
- Log - simple threshold based application logging framework
- Probe - embed in an application to be able to interrogate it's internal state over the network (by default only localhost). Deprecated in favour of tlc::Console
- Protocol - a snap in protocol translator for the network framework
- Protocol_mpack - a very simple network protocol for the network framework, suitable for embedded devices
- Selector - a tlc::Signal whose output is a selectable one of it's inputs
- Servermodule - part of the network framework
- Serverobj - part of the network framework
- Sessionconobj - part of the network framework
- Sessionobj - part of the network framework
- Signal - the base of the logic signal framework. Has a true / false output and can be connected to other signal type things, and widgets (to control their enabled / disabled state for instance)
- Signalsource - a base class for something that exposes some tlc::Signals
- Stategate_target - a base class for a widget that can take a tlc::Signal to control it's enabled / disabled state
- StateToggle - a class for controlling a peer widget's properties based on an input tlc::Signal
- Textvariable - a base class for providing -textvariable support to a widget
- Uri - a registry for URI type links, used by things like the Label_link
- Vardomino - a tlc::Domino derivative that falls over when a variable is written
- Varwatch - a tlc::Signal that changes to true when any of a set of watched variables is changed
Other bits
- decomment - a routine for stripping comments (say from a config file)
- fake_mainloop - enter the event loop in non-Tk apps (like network servers)
- go_home - all the gymnastics needed to set pwd to the application's script dir (works when info script doesn't)
- intersect3 - a reimplementation of the set intersection command from TclX, in native tcl (and much faster in my tests too)
- stackdup - a command to return a simple call stack display, for debugging
- state - eeek! This is bad old code
- try - a neat wrapper on catch {} to make exception handling easier