Revision history for Perl extension Tk::HListbox.
1.0 Mon May 25, 2015
- original version; Derived from Tk::HList and Tk::Listbox,
created by h2xs 1.23 with options -X -n Tk::HListbox
2.0
- Massive cleanup of bindings to make work more exactly like Tk::Listbox.
* Added Tk::Listbox's -listvariable option and bbox() function.
This is implemented using the existing TIE @array feature.
Tk::HListbox previously used Tk::HList's "anchor" as it's "active"
indicator since Tk::HList does not have the concept of an "active"
entry, but now we use a hidden "virtual anchor" variable allowing
us to maintain a proper select anchor while still using Tk::HList's
anchor as the "active" cursor.
* Added Tk::HList's hide() and show() functions and -command callback.
* Added an image-only option (-itemtype => 'image').
* Found and fixed numerous little issues and descrepencies.
It should now be possible to use Tk::HListbox as a complete drop-
in replacement for Tk::Listbox in existing code while simply adding
any additional Tk::HListbox features, such as images, indicators,
and callbacks as needed.
2.1
- * Added "-state" to the list of dynamically-configurable options, ie.
developers can now do "$lb->configure(-state => <state>);" and have
it work.
* Fixed get() function to work like Tk::Listbox->get() and FAIL if
no arguments (indices) given.
2.2 Tue Jul 31, 2018
- * Made "-state => 'disabled'" actually work. Pbm. is that the
underlying HList widget does NOT support disabling, so we had to
manually emulate the feature by removing focusability, changing
the foreground color, disable selecting items, etc. and then the
ability to restore previous state when re-enabled, in order to
work like a normal Tk::Listbox.
- * Fixed issues involving setting background & foreground colors
and allow taking advantage of our custom setPalette.pl module to
properly render the "active element"'s background.
Color options should now work more like they do in Tk::Listbox.
- * Added fixPalette() function for the rare cases it doesn't.weq
- * Added -showimage, -showtext, and -bitmap options to the
itemconfigure() function to be directly handled without it having
to create an itemStyle, as these are supported in the Tk::DItem docs.
- * Added -activeforeground, -selectforeground, and -selectbackground
options.
- * Fixed potential issue of improperly inserting text-only entries
specified in hashref format, where either the wrong itemtype was
being used causing an error, or the "-data" structure was being
duplicated.
- * Made -font option actually work. Default is "{MS Sans Serif} 8" on
M$-Windows and "Helvetica -12 bold" otherwise, the defaults used by
Tk::Listbox and Tk::HMListbox.
- * REGRESSION: Due to the color-related changes above, other style options
applied to individual entries are actually applied to all entries of
that type, ie. all "imagetext", or all "text", etc. entries in the list.
To apply custom style options to individual entries now, one must define
a custom ItemStyle, due to the fact that to get the color optinos to work
properly, we now create a "default ItemStyle" for each of the three valid
"type"s and style options are applied to those (unless a
"-style => $customItemStyle" is specified for the entry).
2.3 Tue Jul 30, 2018
- Added options: -ipadx, -ipady, -tpadx, -tpady
See updated docs. These provide padding values for image/imagetext
and text fields respectively, primarily to assist users of
Tk::HMListbox in adjusting to keep icon and text columns' vertical
allignment synced.
2.4 Thu Jan 06, 2022
- Added option: -showcursoralways
See updated docs. Tk::HListbox no longer displays the keyboard cursor
(active element) when the HListbox widget does not have the keyboard
focus, in order to be consistent with the behaviour of Tk::Listbox.
This option, when set to 1 (or a "true" value) restores the pre-v2.4
behaviour of always showing the keyboard cursor.
2.41 Thu Jan 06, 2022
- Oops - Correct major error in Pod/Docs.
2.42 Thu Jan 07, 2022
- Fix bug introduced in v2.4 that prevented selecting by mouse-dragging.
2.5 Fri Jan 21, 2022
- Add ability to set state to "disabled" (like other Tk widgets).
- Add a "-disabledForeground" (color) option to override the default
text foreground color used when the HListbox widget is set to disabled.
- Fix "-listvariable" tiein to work properly with initial values specified
in the tied array preinitialized with values when the HListbox is
created (as Listbox works).
- Fix some minor focus-traversal issues (when state is set to disabled).
- Overhaul, check, & fix several minor inconsistancies between
Tk::HListbox and Tk::Listbox.
2.51 Sat Jan 29, 2022
- Fix cursor not being hidden when clicking on an HListbox that does not
have the keyboard focus and -takefocus is set to '' instead of 1. (in
which case the HListbox remains unfocused).
2.60 Sat Dec 31, 2022
- Merge numerous patches, new functions & options from Jeff Stephens.
(See docs for details)
- (hopefully) now works fully with "use strict".
- Fix left-tab (reverse) focus-traversal when widget is disabled, and
other minor focusing issues.
- Fix minor isues with user-set color options.
- Fix anchorSet() and a few other minor Listbox-compatability issues.
- Numerous code cleanups and documentation improvements.
2.70 Wed Jan 25, 2023
- Merge more patches & fixups from Jeff Stephens. Most involving hardening
against undefined variable-references.
- WARNING: Fixed selectionSet() to work properly in all valid cases - the
main negative side-effect of this is that it must be called with either
1 or 2 index arguments (specifying a range) - Passing a list (>2)
arguments is no longer valid and will return with a warning.
Users must update any programs that use this (or Tk::HMListbox) affected
by this!
- Fix yview() which is completely broken in the underlying Tk::HList
module, which also seems to fix a known TK::HMListbox scrollbar issue.
This should also resolve reported issues with Tk::HMListbox set to use
dual, optional scrollbars having issues with specific size settings.
- Add xview() which is also completely broken in Tk::HList.
When called with no arguments, now properly return 2 real numbers
between 0 and 1 inclusive (same as Tk::Listbox). NOTE: For xview(),
these values are only approximate, not precise due to Tk::HList issues.
- Fix scan('mark') to use object variables to prevent issues when
multiple HListboxes are active.
- All methods except indexOF() now take indices (0..'end'), not the
underlying Tk::HList "entry-path" numbers, and the docs have been
updated to clarify previous ambiguity. Note also that selectionGet()
still returns entry-paths. The proper reverse of selectionSet() is
(as has always been the case in Tk::Listbox) curselection().
- Switch messaging to (and require) the Carp module.
- Numerous fixups to ensure compatability with Tk::Listbox.
- Numerous other minor code & doc. cleanups and clarifications.
2.71 Sat Jun 24, 2023
- Change default -highlightthickness from HList's default of 2 pixels to
Listbox's default of 1 for more consistant appearance, particularly when
used by Tk::JBrowseEntry.
- Some minor doc. cleanups.