Version 57 of tklib

Updated 2005-03-30 19:23:56

Purpose: to discuss the package library known as tklib


Overview

Tklib is like Tcllib, a collection of many small packages providing utilities, except that packages here are expected to depend on Tk. Tklib specializes in utilities for GUI programming.

Version 1.7 has been released October 7, 2004.


Tklib Location: Where to find Tklib.

Tcllib Installation: How to install and then use Tcllib.

Tcllib Contribution & Feedback: How to contribute to Tcllib, report errors, etc.

Tklib Contents: List of all the packages found in tklib.


Previous discussions on this page:

from http://tcllib.sourceforge.net/ , its uses, policies, got-chas, etc.

List here the serious candidates for inclusion in tklib (these already exist in the appropriate SourceForge project):


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, vum widgets, 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:

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 megawidgets 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)
  2. get a SourceForge developer login.
  3. Send it to one of the tklib administrators, asking them to add you as a member to the tklib cvs list.
  4. Create a new module in tklib.
  5. Add it to the tklib Makefile module list.
  6. Add in your code.
  7. Hopefully add in documentation and test cases, and perhaps even some demo code.
  8. 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 | Category tklib