Version 26 of eWidgets Toolkit

Updated 2003-07-29 18:24:17

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, dialogs and libraries that will be included:

Widgets

  • button - generic button/checkbutton/radiobutton widget (designed for toolbars)
  • combobox - combobox widget
  • date - date selector widget (useful with popup widget)
  • drop - collapsible drop-frame widget
  • filelist - listbox file browser widget
  • filetree - tree file browser widget (using tree widget)
  • frame - scrollable frame widget
  • grid - grid widget/library of grid 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
  • slide - slide widget (similar to scale widget)
  • spinbox - spinbox widget
  • text::listbox - hierarchical listbox widget
  • text::map - graphical widget to display text widget search results (adapted from Roy Terry's Hits!)
  • titleframe - titleframe widget
  • toolbar - toolbar widget
  • tooltip - tooltip widget (balloon help)
  • tree - canvas-based tree widget
  • window - generic window/toplevel widget

Dialogs

  • 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
  • text::find - text find dialog/widget
  • text::goto - text goto dialog/widget

Libraries

  • canvas - library of canvas widget routines
  • color - library of color routines
  • font - library of font routines
  • icon - library of icon routines (finding, refcounting, etc)
  • image - library of image routines (sizes, etc)
  • label - library of label widget routines (wrapping, selection) See [L1 ]
  • listbox - library of listbox widget routines
  • text - library of text widget routines (maybe)
  • text::sync - library to synchronize two or more text widgets
  • 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