Purpose: to discuss the tklib script library/module from http://tcllib.sourceforge.net/ , its uses, policies, ''got-chas'', etc. ---- Tklib is like [Tcllib], a collection of many small packages providing utilities, except that packages here are expected to depend on [Tk]. IOW Tklib specializes in utilities for GUI programming. Currently tklib includes the following packages: * [autoscroll] - [Scroll bars that appear only when needed] * [ctext] - An extended text widget with customizable Syntax highlighting. By [GPS]. * [cursor] - ::cursor::display , ::cursor::propagate , ::cursor::restore * [datefield] = [tcl-only datefield] - a tcl/tk only clone of iwidgets datefield widget. * [ipentry] - An ip address entry widget. By [AF]. * [plotchart] - See [Plots and charts]. By [AM]. ---- List here the serious candidates for inclusion in tklib (these already exist in the appropriate SourceForge project): * [BWidgets] * [mclistbox] * [scwoop] * [text::sync] * [tkpiechart] * [widget] * [efftcl] from the [BOOK Effective Tcl - Writing Better Programs in Tcl and Tk] ---- [lv] any real reason to put bwidgets into tklib? It already is a [distribution] that many get. Remember to list only items that come in Tk scripting - compiled widgets like [tkimg], [tkhtml], [tktable], [tktreectrl], [blt], [tix], [vu], [tkdnd], etc. belong in the various [Batteries Included] distributions. And some pieces of code here on the wiki that might be useful to add to tklib would include: * [A Little Hex Editor Widget] * [An entry with a history] * [Analog widgets] such as [a voltmeter-like widget: type 1], [a tachometer-like widget: type 1], [a needlemeter widget: type 1] * [Entry Field Processing] * [Gradients Color Transitions] * [Integer entry validation with range check] * [Mentry], [Wcb], [Tablelist] * [RS]'s [keyboard widget] for unicode virtual keyboard entry * [Read-only text widget] * [Right-to-left entry widget] * [Scrolling Widgets With a Scale] * [Time entry that never contains invalid data] * [Validating Credit Card Check Digits] and maybe some addition common edits, like zip codes, social security and phone numbers, etc. * [chart generation support] * [console for Unix] * [dial widget] * [pan] add panning to any widget with xview/yview (including blt::graph) * Perhaps [A wiki-like markup language for the text widget] Another systematic source for tklib-appropriate ideas are ports of the add-ons and widgets that [Perl/Tk] and [Tkinter] (and perhaps [PMW]) build in beyond the core ones provided in Tk itself. I encourage people to list other useful Tk related widgets and add-ons that are not already a part of some other extension. In particular, look around this wiki - I suspect there's a number of wonderful possibilities here. For instance, check out [Commonly requested widgets] - if you can find well written versions of these, putting them into tklib would be a wonderful idea. Do be careful to verify the licensing status of the code, and '''GET PERMISSION FROM THE AUTHOR''' before adding code to the library though. ---- The other thing needed is a person interested enough in seeing more [Tk] [megawidget]s being commonly available that the work necessary to integrate the code into tk begins. So far, lots of words, but no action. ---- If you read the [tcllib] page, you will find information about content requirements, submission guidelines, etc. for your software. However, recently [tclguy] summarised the process on news:comp.lang.tcl as: 1. say you want to add a module in one of the forums where the admins hang out (the Wiki chat, http://www.tcl.tk/, comp.lang.tcl, the tcllib developers mailing list are all possible locations) 1. get a [SourceForge] developer login. 1. Send it to one of the tklib administrators, asking them to add you as a member to the tklib cvs list. 1. Create a new module in tklib. 1. Add it to the tklib Makefile module list. 1. Add in your code. 1. Hopefully add in documentation and test cases, and perhaps even some demo code. 1. Commit the changes. Be certain to add relevant comments to the CVS and hopefully the tklib ChangeLog. ---- See also [tcllib] for the policies and discussions relating to another module of this project, which has tcl-only procedures. ---- [AM] Things I can add: * Flash windows (transient windows with a picture) en maximised windows - there are several such scripts around * Bindings for zooming/panning in a canvas * Scaling functions (so that you can add items to a canvas in world coordinates) Further ideas: * emu_graph * gtklook.tcl and general "griffionisations" * presentation graphics - such as the various slide shows ---- [NEM] I am currently working on a [CSS] parser, which will then lead on to work to create CSS megawidgets based around the text widget and the canvas (which is more work, and so much longer term). The CSS parser is pure Tcl, should be finished some time in the next month (it probably has about 2 days more work left + testing, but finding the time...), and I will be submitting it for inclusion in [tcllib] when finished. The megawidgets will probably be written using [snit], and might find their way in to [tklib] at some point. Combined with [tdom] or [TclXML] these might make a decent alternative to [tkhtml] with support for more recent (XML-based) web standards. Much work to do though. ---- Oh, NEM reminded me of something . If you check out tcllib's [snit], you will find a framework for creating megawidgets. I don't know whether there are any megawidgets actually in there, but certainly people are using the snit code to build them. ---- [Category Package] | [Category GUI] | [Category Widget]