TLC is a commonly used three letter abbreviation/acronym for '''Tender Loving Care'''. ---- TLC is a [Tcl] [package] created by [Cyan Ogilvie] containing a bunch of [Itk] based [widget]s, a simple [client] / [server] [rpc] [framework], and a mechanism for building [array]s 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-tlc The 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 baseclass for config handling (defauls, command line and config file) * Baselog - a baseclass for doing nice colourised (on unix anyway) log output with threshold support * Browsegeneric - baseclass 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 heirarchical 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 eventloop 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 ---- [Category Acronym] [Category Extension]