Version 87 of BWidget

Updated 2010-12-16 22:37:33 by MHo
What: BWidget
Where: http://tcllib.sf.net/  
Description: High-level widget set for Tcl/Tk using native Tcl 8.x namespaces.
       Contains over 20 widgets, such as progress bars, main frames,
       generic scrolled widget, paned windows, button boxes, notebooks,
       combo boxes, spin boxes, tree widgets, font and color selection
       widgets, balloon help, and more.
       Original authors web site no longer available; source has been
       moved to the Tcllib sf.net CVS repository.  Bug reports,
       mailing lists, etc. are available from that location.
       The compiler-factory site has a binary version of the extension.
       Currently at version 1.9.4 .
Updated: 2010-12-14
Contact: http://sf.net/bugs/?group_id=12883  

MHo: The download name still says "1.9.2", and only the listbox.tcl seems to be renewed. Is that right?


BWidget is a Tcl/Tk script-only set of megawidgets designed to provide the developer additional tools.

Getting started with BWidget

It is currently being maintained as a part of the tcllib http://tcllib.sf.net/ source code repository. BWidget HTML documentation can be found at http://tcllib.sourceforge.net/BWman/contents.html , as well on freshmeat (but that had out of date info there. aku asked to transfer the freshmeat entry to himself and updated the entry to match the current release, available on sf.net.)

Report bugs and feature enhancements at the sf.net site .

Online Documentation at ActiveState



Discussion

escargo 31 Jul 2003 - But isn't BWidget up to 1.6?

aku has been at the tcl'2003 conference - perhaps once he recovers he will update things.

jt - BWidget 1.8 was released 2006-10-11.


Ro: Here are some screenshots of bwidget: http://rohanpall.com/screenshots_of_the_bwidget_demo.html (???)


Zebulon: Some screenshots at this address : http://tcltk.free.fr/Bwidget/


 What:  Kanga Tcl
 Where: http://www.kanga.org/tcl/ktcl-010111.tar.gz
        http://www.kanga.org/tcl/ktcl-010111dev.tar.gz
 Description: Windows NT build 7 "batteries included" distribution,
        including alpha/pre-release versions of some code.
        Includes Tcl/Tk 8.4a2, itcl/tk 3.2, iwidgets 3.0.0,
        BLT 2.4u, Bwidgets 1.3.0, Tix 8.2.0 early access, and
        JPEG 6b, along with a number of patches.  Set up to be
        built under Cygwin or Microsoft Visual C++ .
 Updated: 09/2001
 Contact: mailto:[email protected]

For an example of BWidgets in action, see:

See also ased. portmon, windows registry browser, DOM related megawidgets, kitten, Tcl Xchange's NetCVS mirror, ramdebugger


LV 2008 Mar 25

So, has BWidget been enhanced to take advantage of Ttk when available?

Has there really not been a BWidget release since 2006?

HaO Bugfix release in 2009-07-24 - see [L1 ]. JOB is currently working on a ttk-enabled version.


Has anyone converted the BWidget html reference pages into either doctools or nroff -man formats?

HaO AFAIK - nobody, sorry.


JOB BWidget revitalization:

A modified version for the BWidget toolkit to take advantage of ttk is now available in CVS.

The programming interface of BWidget::use has changed:

# BWidget::use
#   Argument usage:
#      -package ttk
#               |
#               specify a package name to be initialized, currently
#                support for the following packages is implemented:
#                   ttk ... try to use tile'd widget set (if available)
#                
#      -style default / native / myFavoriteStyleName
#             |         |        |
#               |                |         specify a valid style name,
#               |                |         use "BWidget::_get_colordcls" which gives
#               |         |         you a list of what's avaliable for tk
#               |                |
#               |                if specified, BW tries to emulate OS color scheme,
#             |         a specific color schema associated to each individual
#             |         operation system is going to be used
#               |
#             same behaviour as before, stay compatible
#             with previous releases
#         
#      -setoptdb [no=default|0|yes|1]
#                              |
#                              maintain the option database
#                              if you need a dynamic behavior when changing
#                              the underlying style, activate this option!
#
#      -themedirs {} = default / a list of valid directory names,
#                                to specifying additional ttk theme packages

With the modified package (available in CVS) I could get a reasonable good result e.g. for ased3.0b16.vfs by just adding this to the existing code (and copying the requ. theme package to ased.../lib , beside this with no other change!):

    package require BWidget
    BWidget::use \
      -package ttk -style winxpblue -setoptdb 1

The result looks like:

WikiDbImage ased3.0_mod_tile.gif

Comments are welcome!


BWidget 1.9.2

HaO 2010-06-18 ActiveState has distributed the unreleased BWidget 1.9.1 which contains extended themed support with ActiveTcl 8.4.19.4, 8.5.8.2 and 8.6.0.0b3.

There are some incompatibilities in color selection to former BWidgets. A 1.9.2 release followed which is 1.9.0 with some minor bug fixes. Andreas wrote me, that BWidget 1.9.2 is now installable via Teapot. Anybody experiencing compatibility issues is asked to install this release.

Anybody wanting to use Tile and does not need this compatibility may try to use the 1.9.1 in ActiveState or the current trunk from the Tcllib CVS . This is work in progress.

Mho With version 1.9.1 in Tile mode I see that buttons disappear after they are initially drawn correctly and later activated. The text of the button remains intact. Maybe I have to change more than just specifying BWidget::use -package ttk...:

http://home.arcor.de/hoffenbar/prog/hc_012.jpg http://home.arcor.de/hoffenbar/prog/hc_013.jpg

Only if the mouse pointer is over the button, the relief and border are visible again, but with a different style... See BWidget with tile for a code fragment.

HaO: Sorry, for sure a bug or an unfinished feature. Eventually JOB may write more.


MHo: The BWidget demo coming with ActiveState 8.4.19.4 does not work anymore.

HaO: Does it work with BWidget 1.9.2 for you ?


TCLLIB CVS

HaO: There are currently two versions of BWidget in the CVS:

  • The Tile-enabled version by JOB (work in Progress) in the Trunk (future BWidget 2.0)
  • The old version with bug-fixes and very limited Tile support with the sticky tag bwidget

A checkout command for the version with the sticky tag bwidget:

cvs -z3 -d:ext:[email protected]:/cvsroot/tcllib checkout -P -r bwidget bwidget

BWidget 1.9.3 release 5th of December 2010

BWidget Classic and Tile/TTK

I am migrating my own applications to ttk now. There is practically no BWidget widget, which is not replaced by a ttk widget. There are mostly details missing which must be added by additional packets like balloon help (tklib) and drag and drop (tkdnd).

I did not use the work of Johann, because tile is emulated by switching colors. This works well on most Unix platforms but does not bring the complete different look of native windows (and MacOS) widgets. We discussed on that and this approach seams not to be possible. Even a simple ttk::frame may contain a structured bitmap surface which may not be emulated by one color.

I updated the classic BWidget (sticky tag "BWidget" in the repository) within this process. There are tile versions of some widgets which mostly do not support as many options as the normal ones. This is for migration purposes. I would not use it for new projects.

To enable themed mode, use:

BWidget::theme 1

Here is the state and thoughts about some widgets:

  • Label: migrated, was quite easy, because ttk::label supports many options.
  • Button: migrated
  • ScrolledWindow: migrated (for ttk::scrollbars and the background frame)
  • NoteBook: this is my favorite BWidget widget which features scroll-buttons compared to the ttk widget. It is difficult to make a tile version. It requires an implementation of the ArrowButton first. I thought making a ttk::frame as background widget on the canvas.
  • ArrowButton: Is required for many widgets. Is implemented as canvas and thus difficult to migrate. One may create a gif with the triangle dynamically and put it on a themed button.
  • Tree: this is a widget many people use but not me.

BWidget 1.9.4 release 14th of December 2010

Former release has introduced an update bug of multiple nodes in the tree widget, which is fixed here.

MHo 2010-12-16:

  • pkgIndex.tcl is wrong, line 4, say ===1.9.3=== instead of ===1.9.4===