Tk/JComboBox version 1.11 ========================= CHANGES OVERVIEW: (details below) Maintenance release to correct various minor bugs and annoyances. OVERVIEW: JComboBox is a Combo Box implementation that combines several features of the various Combo Box implementations available for Perl/Tk and attempts to provide a solution that should cover the majority of your Combo Box needs. The implementation tends to skew somewhat towards the Java and Win32 implementation of a Combo Box more than the Motif one. TEST SUITE: I've spent the majority of the time writing a fairly robust test suite, though there are still a few gaps which are being worked on. A considerable amount of effort has gone into verifying that the unit tests will work on multiple platforms, though I suspect that there may yet be a problem or two remaining (mostly regarding event generation which seems to be a bit tempermental and tests that use fonts). I suspect that many of the reported failures I see have more to do with a bad installation of Tk than JComboBox, but your mileage may vary. The tests mostly serve as a tool for me for regression testing, and for anyone else who decides to tinker with the source. I'm always interested in hearing ways in which the test suite can be improved. Thanks to everyone who has contributed suggestions, code, and any other feedback. I'm not always able to incorporate that feedback, but I've always found it to be helpful. I hope this widget continues to be useful. CHANGES for 1.11 RELEASE: (Full Change history in Changes file) 1.11 Bug Fixes: - Bug: incorrect behavior when state is disabled twice in a row. reported via rt[at]cpan.org (#19154) by: Neal Description: When JComboBox state is disabled, in addition to freezing the controls, the foreground colors are replaced to provide a visual clue that the widget was disabled, which is inline with other Tk widget behavior. Unfortunately, due to a bug in the DisableControls method, setting the state to disabled twice in a row, resulted in the foreground color not getting restored correctly. Resolution: Neal provided a patch to the faulty method, which corrected the problem and doesn't appear to introduct any side-effects that I could observe during testing. Patch gratefully accepted, and applied to code. - Questionable behavior: hard-coded color (white) for listbox bg reported via rt[at]cpan.org (#18357) by: ozcat[at]bigpond.net.au - resolution: removed hard-code color. Notes: I have some recollection of changing this to be white because I wanted to ensure default behavior, but in retrospect, this was a big mistake, and meant that default user/env preferences would be ignored. Glad someone called me on it... - Bug: Forgotten debug line left in code. reported via rt[at]cpan.org (#17785) by: northwind_1980 - resolution: removed line. - Bug: Invalid behavior related to grab (again... aaarrgh!) reported via newsgroup and email by Lars Oeschey Description: Lars sent sample code that featured two JComboBox instances, one defined a -selectcommand callback which called setSelectedIndex(0), and then showPopup in the other instance. The result: grab settings were messed up. Problem: the problem was in the ButtonRelease event handler. In it, I called setSelectedIndext (which in turn triggers the selectcommand callback), before calling hidePopup. Big mistake. This appears to be the only place left in the code where they are ordered this way. hidePopup should always be called before triggering the selectcommand callback, otherwise it's very easy to get the current grab mixed up, before hidePopup has had a chance to clear it correctly. Resolution: reversed ordering of the two lines in ButtonRelease, and the test code appears to work correctly. - Documentation updates: Looking over the docs in AnnoCPAN I noticed that some of the Subwidgets were mislabled. This has been corrected. INSTALLATION To install this module type the following: perl Makefile.PL make make test make install DEPENDENCIES This module requires these other modules and libraries: Tk Tie::Array Tie::Watch COPYRIGHT AND LICENCE Copyright (C) 2006 Rob Seegel This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.