Copyright © 2009, 2010 Arndt Roger Schneider
Bug-fixes
Scroll region under non-Microsoft-Windows® systems.
An <Configure> event may appear before the window is mapped on screen. It thus can happen, that the container frame is smaller than the canvas window; leading to a perpetual wrong scroll region.
Resize window and precreated rows.
Rows are never deleted! This is highly problematic when the window gets resized (smaller), where row-artifacts will remain. In normal circumstances this artifacts are covered by the newly rendered items...
New Features
Option Database Usage.
Option Database usage is activated. Only lowercase are allowed (e.g. alternatecolor instead of alternateColor). The new window class is: »Hugelist«.
»radius«, Option Database entry only active with tkpathHugelist, creates rounded etiquettes for unselected entries.
»justifyRadius«, Option Database entry only active with tkpathHugelist, creates »left«, »right« or »middle« (both sided) rounded etiquettes for unselected entries.
Performance Improvements.
Some performance improvements during window creation –related to the option database. Two successive configuration sets are applied whenever a window is instantiated. The instance set is used to remove duplicated entries from the default set.
»-vector«, . The »-vector« property allows the definition of a canvas graphics, following the Goolbar vector specification.
Visual Appearance
Related to Aqua OSX®.
Items and multi-selection are separated by a single pixel-width line.
Alternate color combined with item background color.
See option database entries: colorOpacity , alternateOpacity , disabledColorOpacity and disabledAlternateOpacity control the color mixing. There are no command line arguments for these Option Database entries.
The alternate color fades into the background, when the window is disabled.
Technical Changes
width is derived from the window itself.
opget from the Runtime Library 3.0 is being used.
opget is necessary for accessing the Option Database –option get is caught by the hugelist's internal alias option:get.
I would have preferred to use "option get" instead of opget! opget introduces a Runtime Library 3.0 dependency, which I intended to avoid.
hugelist version 1.5 contains a local copy of opget , to make it again independent from the Runtime Library 3.0.
Version 1.5 contains a new window property -ondemandcommand. This property accepts a Tcl-procedure or an empty string as its value. The empty string disables on-demand data gathering.
The registered on-demand command is queried every time an item is displayed inside the of a hugelist. The on-demand command gets queried three times for each item, to retrieve the actual text, image and a vector. Default values for text, image and vector are part of the query.
The signature for ondemandcommand is as following:
proc ondemand {type hugelist ID listindex defaultvalue } { ... # value gets displayed: return $value }
Water marking and transparency can be used inside of the hugelist. The packages »tkpathHugelist« and »tkpath« are required for water marking. See the section called “Water Marking and Vectors with TkPath” for details.
Every change is lavishly commented inside the source-code.