MGS The eWidgets Toolkit is a collection of extended widgets and dialogs for Tcl/Tk. Each widget/dialog is designed to be self-contained, efficient, lightweight, cross-platform, and to work equally well on large and small displays.
This will form the basis for my other project Mogul.
eWidgets was originally going to be a substantial rewrite of the BWidget toolkit, but I got very bogged down in the complexity of its internal architecture. I also had already written many new widgets, so they have formed the basis of this toolkit.
I would like to hear from anyone who has comments (good and bad) about BWidgets and other mega-widget libraries. In particular, things that don't work, things that are missing, extra functionality, etc. And if you're looking for a new kind of widget that doesn't exist, I might be interested in writing it. I'm always looking for new and better ways of doing things. Please feel free to drop me line at markgsaye @ gmail.com
Q. Where does one find this toolkit? I don't see a URL.
A. One doesn't, yet. I'm still very busy writing it. When I have an architecture which is somewhat stable, with widgets that work (!), some examples, and a smidgin of documentation, I will make an announcement, and upload stuff to http://ewidgets.sourceforge.net/ and http://sourceforge.net/projects/ewidgets/ . I'll try to release individual packages as and when available.
Here's a partial list of widgets, dialogs and libraries that will be included:
Widgets
Dialogs
Libraries
Packages
I will put links here to individual packages as and when they become available:
LV [2003/05/14] Q. How do the entries above such as text, frame, etc. that are currently in Tk differ from the Tk versions?
MGS - At the moment, I'm not sure that the text library will exist. It was intended for a collection of miscellaneous text widget commands, most of which have now been split out into separate libraries/widgets such as text::find, text::goto etc.
The label library contains miscellaneous commands specific to label widgets. For example, see label selection and label wrapping. See also: [L2 ]
The canvas library contains miscellaneous commands specific to canvas widgets. For example: canvas::see, canvas::tile, canvas::convert, canvas::rotate, and more.
The window widget is effectively just a toplevel with some syntactic sugaring to incorporate some extra properties, notably the toplevel-specific options from the wm command. i.e. you could do things like: window .mywin -title "My Window Title" -propagate 0 -transient . . This also means that you can put wm properties into the options database.
The frame widget is a scrollable frame widget, but not using a canvas as most scrollable widgets do. The scrollable area of the widget works more intuitively (I think) than, say, the BWidget's version. Actually, I'm trying to come up with a different name - I didn't want to call it scrollframe or anything like that, but something akin to frame that implies the scrollability. I've only got panel and sheet so far, but I've already got a panel widget (like the Outlook panel) and sheet sounds too like a spreadsheet. Back to the thesaurus, I think.
The listbox library contains miscellaneous commands specific to listbox widgets: moving the selection up/down, deleting the selection, chronological selection, sorting, etc.