Version 20 of eWidgets Toolkit

Updated 2003-05-22 15:28:39

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 @ yahoo.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/ .


Here's a partial list of widgets and dialogs that will be included

  • button - generic button/checkbutton/radiobutton widget (designed for toolbars)
  • canvas - library of canvas routines
  • color - library of color routines
  • combobox - combobox widget
  • date - date selector widget (useful with popup widget)
  • dialog - generic dialog window
  • dialog::color - color selector dialog
  • dialog::directory - directory selector dialog
  • dialog::file - file selector dialog
  • dialog::fileprop - file properties dialog
  • dialog::font - font selector dialog
  • dialog::message - message dialog
  • drop - collapsible drop-frame widget
  • filelist - listbox file browser widget
  • filetree - tree file browser widget (using tree widget)
  • font - library of font routines
  • frame - frame widget
  • grid - grid widget/library of grid routines
  • icon - library of icon routines (finding, refcounting, etc)
  • image - library of image routines (sizes, etc)
  • label - library of label routines (wrapping, selection)
  • listbox - library of listbox routines
  • mdi - mdi widget
  • menubar - menubar widget
  • notebook - notebook widget
  • panel - panel widget (like MS Outlook)
  • pathentry - file/path-completion entry widget
  • popup - popup widget (e.g. as used by combobox)
  • progress - progress bar widget
  • scroll - scrollable-widget widget
  • scroller - 2d scrollbar
  • scrollframe - scrollable frame widget
  • slide - slide widget (similar to scale widget)
  • spinbox - spinbox widget
  • text - library of text widget routines (maybe)
  • text::find - text find dialog/widget
  • text::goto - text goto dialog/widget
  • text::listbox - hierarchical listbox widget
  • text::map - graphical widget to display text widget search results (adapted from Roy Terry's Hits!)
  • text::sync - library to synchronize two or more text widgets
  • titleframe - titleframe widget
  • toolbar - toolbar widget
  • tooltip - tooltip widget (balloon help)
  • tree - canvas-based tree widget
  • window - generic window/toplevel widget
  • window::or - library to handle full-screen windows

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.

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 subset (if you like) of the window widget, with just a few extra properties. Not sure if I'll include this widget though (does not include v. many extras, currently just the -propagate option)

The listbox library contains miscellaneous commands specific to listbox widgets: moving the selection up/down, deleting the selection, chronological selection, sorting, etc.


Category Package | Category GUI