Summary of Changes to Tcl::pTk

1.11  2023-08-10

 * font.t: Avoid `Wide character in print` warnings
 * https://github.com/chrstphrchvz/perl-tcl-ptk/issues/26
   Fix TkHijack error during `use Tk::widgets qw(…)` in Perl 5.39.1:

     Attempt to call undefined import method with arguments via package "Tk::widgets"
     (Perhaps you forgot to load the package?)

 * https://github.com/chrstphrchvz/perl-tcl-ptk/issues/27
   Fix error during `use Tcl::pTk::widgets qw(…)`
   for widgets with .pm files in Perl/Tk but not Tcl::pTk, e.g.:

     Can't locate Tcl/pTk/Label.pm in @INC
     (you may need to install the Tcl::pTk::Label module)

1.10  2022-10-07

 * Perl/Tk compatibility updates to Text widget:
   - get() method returns empty string rather than undef
   - Contents() method does not return trailing newline
     as of Perl/Tk 804.030_500

1.09  2022-05-19

 * Support ttk::treeview `cellselection` command (Tk 8.7 TIP 552)
 * Workaround Tk Aqua bug f16cdb6d04 in bgerror1.t, tkHijack_bgerror1.t,
   and tkHijack_bgerror3.t
 * Workaround Tk Aqua bug fc5073a451 in mainloopMult.t, multMainWindow1.t,
   and tkHijack_bgerror1.t
 * Implement $w->Widget() method
 * Improve $w->imageNames() method; fix bitmapSubClass.t and photoSubClass.t
 * Fix Tcl::pTk::Widget::_addcascade() for Tk 8.7 (TIP 577)

1.08_02  2021-04-04

 * Specify GitHub issues as bugtracker
 * Avoid requiring sys/ioctl.ph for emulated fileevent
   on BSD and macOS (RT #125662)

1.08_01  2020-07-18

 * Add internal variable $Tcl::pTk::_Tile_ge_0840 to indicate whether Tile/Ttk
   version is 0.8.4.0 or later, which is needed by certain features.
   Use this variable to address new test failures in tileTree.t on CentOS 6.
 * Make Time::HiRes dependency explicit: it is a core module, but is not
   installed by default on some distributions, e.g. CentOS 6.

1.08  2020-07-17

 * Improved support for ttk::treeview `item`, `selection`, and `tag` commands
   as ttkTreeview methods: these now return Perl lists rather than string
   representations of Tcl lists. See https://git.io/JJZ7C
 * Emulate timeofday() with Time::HiRes::time()
   instead of Tcl 8.5+ [clock microseconds]

1.07  2020-03-13

 * Allow '.' in Cascade labels (RT #125058)

1.06_01  2020-03-12

 * ttkTixNoteBook (RT #132075):
   - add method _identify_unavailable to check if Tile version is too old
     (needs Tcl/Tk 8.5.9 or later, or Tile 0.8.4.0 for Tcl/Tk 8.4)
   - use _identify_unavailable to show error when identify method is called
     and to skip tests in ttkTixNoteBook.t and tkFacelife_notebook.t
     when Tile version is too old
 * Split photo.t into photoTk.t and photoImg.t to separately test formats
   supported either natively by Tk or TkPNG, and those supported by TkImg
   (as photo.t does in Perl/Tk and Tcl::pTk < 0.95)
   - photoTk.t: skip PNG output tests for Tcl/Tk 8.6.5-8.6.6
     (which output invalid PNG files: RT #128803)

1.06  2020-03-10

 * Mark wmStackorder.t as TODO due to unresolved failures (RT #132100)

1.05  2020-03-09

 * Support $toplevel->stackorder method (as used with Perl/Tk)
 * Experimental workaround for regression in Tcl/Tk 8.6.10
   which causes an error when using facelifted LabEntry widgets

1.04_03  2020-03-07

 * Facelift/Hijack tests: don't skip when Tix is unavailable
   for tests that don't depend on Tix

1.04_02  2020-03-07

 * Add tests in repository but missing from MANIFEST and distribution

1.04_01  2020-03-07

 * configureReturn.t:
   - fix check for skipping Tix widget tests
     (was skipping some tests even with Tix present)
   - Workaround for RT #128804: manually destroy $mw at end of test
     to avoid segmentation fault (observed on CentOS 6.10)

1.04  2020-03-07

 * Replaced README with improved markdown README.md;
   documentation fixes (contributions from Vadim Konovalov)
 * Update MANIFEST (README.md was missing from 1.03)

1.03  2020-03-02

 * Mark focusMethods.t as TODO due to unresolved failures (RT #131091)
 * Add internal variable `$Tcl::pTk::_Tile_available` to indicate whether
   Tile/Ttk is available; check this variable rather than checking the
   Tcl/Tk version everywhere. Tile/Ttk should also now work on Tk 8.4
   if the Tile package is installed.
 * Remove need_tk (deprecated; was removed from Tcl::Tk 1.03 in 2011)
 * $Tcl::pTk::platform should be 'unix' when using X11 Tk in Cygwin
   (contribution from Vadim Konovalov)

1.02  2019-06-29

 * Support focusNext and focusPrev methods as used with Perl/Tk

1.01_01  2019-06-24

 * Makefile.PL: fix some of the issues reported by CPAN indexer and CPANTS
   - Specify minimum Perl version for ExtUtils::MakeMaker
   - Don't index unauthorized package MainWindow to avoid permission issue

1.01  2019-06-23

 * More adjustments for macOS Aqua dark mode (Tk 8.6.10 or later)
   - DialogBox: do not set default foreground color
     (would cause text and icon to be difficult to see)
   - Balloon: set default foreground to 'black' for improved legibility
     (black text on yellow background, rather than white text on
     yellow background)

1.00  2019-06-19

 * Fix POD errors (`=cut` outside POD block) reported by CPANTS
   (contribution from Mohammad S Anwar)
 * Improve compliance with `use warnings` and `use strict`
   - Fix errors/warnings in entry3 widget demo
 * Add missing Tile availability check to tileLabelFont.t (RT #128813)
 * photo.t: proceed with remaining test cases after errors (RT #128803)
 * Prevent `unknown color name` errors (e.g. when using `x11` rather than
   `aqua` on macOS) by checking the windowingsystem rather than `$^O`
 * Attempt to fix RT #125049, #129505: in order for menu entries to be legible
   when using the dark menu bar or dark mode on recent macOS versions, do not
   set hardcoded default colors on derived widgets. This change also makes
   UI appearance of other derived widgets more consistent with the defaults
   chosen by Aqua for non-derived widgets, especially when using Tk 8.6.10
   or later with dark mode enabled.
 * Test reports (e.g. from CPAN testers) were displaying some tests as "ok"
   but were actually completely skipped (using `skip()` or `ok()`).
   These tests are now shown as skipped along with the reason it was skipped
   (by instead using `print "1..0 # Skipped: $reason\n"`).
 * Fileevent tests: ensure reason fileevent is unavailable appears
   in test report (reason can't be printed on separate line)
 * Various spelling fixes

0.96  2019-03-03

 * For consistency, use the exact platform name strings when checking `$^O`,
   and use `eq`/`ne` if checking for only one particular platform
   (e.g. `$^O eq/ne 'MSWin32'` rather than `$^O =~/!~ m/win32/i` or `m/mswin/i`)
 * Revert change from 0.81: Don't write Makefile if Makefile.PL
   is supposed to exit when `package require Tk` fails,
   whether due to Tk not being installed (`can't find package Tk`)
   or no X is server available (`couldn't connect to display ""`);
   should address many of the FAIL reports for 0.95
 * Skip fileevent tests if sys/ioctl.ph not available (RT #128627)
 * Mark fileevent tests as TODO on BSD/macOS rather than
   skipping immediately (RT #125662)

0.95  2019-02-25

 * Improve several tests: can now PASS
   on recent Windows, macOS, FreeBSD, and Linux
   - Keep more tests open if command line argument specified for debugging
   - Avoid hardcoded filename and line numbers in tests;
     use `__FILE__` and `__LINE__` instead
   - bgerror2 tests: add code that was missing to toggle the SlideSwitch
     and generate the expected error
   - Use `focusForce()` to prevent failures on Tk Aqua 8.5.9 (RT #125908)
   - Replace `$^W = 1` with `use warnings`
   - Invoke fileeventSubProcesses script using `"$^X"`
     (instead of `perl` from PATH)
   - Skip fileevent tests on BSD and macOS (RT #125662)
   - Mark certain font tests as TODO due to platform-dependent failures (RT #119754)
   - photo.t: if Img package is not present, run tests for formats already
     supported by Tk or TkPNG (if present and using Tk < 8.5)
   - ptk-compat2.t: explicitly disable tearoffs to have consistent number
     of entries across platforms (tearoffs are not supported by Aqua,
     and not normally usable on X11/Windows anyways)
   - scrolledOptional.t: add extra column to avoid failure observed on Ubuntu 18.10
   - Fix Tix Notebook tests on Aqua
 * Improve several widget demos:
   - Use Perl instead of Tcl Unicode escaping in strings in newer
     widget demos adapted from Tcl/Tk
   - Toolbar demo: allow spaces in font names
   - Combo: "Alice Springs" is one city
   - photo1: use after to schedule transparency update rather than blocking
     so that the window always appears right away
 * Incorporate some recent improvements from Tcl::Tk
   - Improve error shown if "package require Tk" fails (RT #127552)
   - Makefile.PL:
     - exit with status 0 if Tk 8.4+ is not present
       (UNKNOWN reports will no longer be generated)
     - warn if tklib is not present
     - Find tclsh8.x command more easily on FreeBSD
     - TCLSH_PROG environment variable is no longer used to specify tclsh
   - Update README
 * Add option `--no-test-for-tk` to have Makefile.PL bypass Tk package checks
 * pTk.pm: `Tk->findINC` should be `Tcl::pTk->findINC` (RT #127529)
 * Patch older Aqua Tk at runtime so that the correct mouse button
   (middle button rather than right button) causes selected text
   to be pasted (RT #127120)
 * Prevent menu entries from having paths like '.mnonf'
 * tooltip: packageRequire() should be pkg_require()
 * Use case-correct image names for Getimage() to work correctly
   on case-sensitive filesystems
 * More usage of `package vcompare` and `package vsatisfies`
   for robustly checking the version of Tcl/Tk present
 * Remove unnecessary executable permissions and shebang lines
 * `use warnings` and `use strict` in more files, performing changes
   as necessary (properly declare/scope variables, quote barewords, etc.)
 * All text files in git repository/distfile now use
   Unix line endings (LF) instead of DOS line endings (CRLF) 
 * Various spelling/grammar fixes
 * Cleanup duplicated/misplaced comments
 * Non-functional code style adjustments

0.94  2018-07-28

 * Change `use Tk;` to `use Tcl::pTk;` in text2.t
 * Allow abbreviated mode flag for search() (used by text2.t)
 * Replace GNU GPLv2 text in LICENSE file with GNU GPLv1
   (which is what Perl 5 license uses)
 * Specify license in MakeMaker LICENSE attribute rather than in META_MERGE
 * Add resources to META_MERGE: GitHub repository, mailing list
 * Keep canIndex.t running if command line arg present (for debugging)
 * Various spelling fixes

0.93  2018-07-13

 * Add missing module `Sub::Name` to PREREQ_PM (RT #116432)
 * Replace corrupted teapot.ppm, mark as binary (RT #125421)
 * Add focusFollowsMouse support (RT #125057)
 * Adjust scrolling units on macOS aqua (RT #125048)
 * Only use buttons 4 and 5 for scrolling on X11 (i.e. not macOS aqua)
 * Use previously-unused variable $wp in Tcl::pTk::Widget::focusForce
 * Add missing `use Text::Tabs;` to top of Text.pm (RT #125460)
 * Remove "Copied $val\n" print debugging statement (RT #125442)
 * Use empty string instead of `undef` to clear $status_bar
   in menus2.pl demo to prevent warning (RT #125826)
 * Keep textRO.t running if command line arg present (for debugging)
 * Bind mouse buttons 2 and 3 appropriately on macOS aqua
   since they are the opposite of what X11 and Windows use
   (RT #125050, #125460)
 * Use `catch` in test-for-tk.tcl to prevent skipping tests for packages
 * Support newer Perl/Tk FindNext() $direction syntax (RT #125532)
   by adapting the relevant Perl/Tk commit (the existing text2.t was
   renamed to text2-old.t, and the new text2.t was copied)
 * Various spelling and POD formatting fixes

0.92  2016-08-21

 * Updated to work with Tcl.pm versions > 1.02. Tcl.pm versions > 1.02 broke compatibility
     with Tcl::pTk, so the Tcl 1.02 interface was moved to Tcl/pTk.pm 
 * Added new ttkTixNotebook widget, which emulates the interface of the Tk Notebook widget.
   Updated Facelift.pm to use this new widget, instead of the old tix NoteBook widget.
 * Fix to Wm.pm to handle an rare condition where if Busy is called when a canvas is opened
   in another window, the new window will popup under the existing window, not on top as expected.
 * Fix for a problem with the dialog box widget that would pop up off the screen if running from
   two displays. Added a test case for this condition.
           
0.90  2015-07-04

 * Updates to work with Tcl/Tk 8.6.
 * Added background error handling (including a ErrorDialog.pm file like perl/tk) that is
   more compatible with the way perl/tk does it.
 * Fixed bug where a repeat call would create a TCL-command in TCL-land for each repeated event. 
   Changed to reuse the Tcl-command. Added test case (repeatSubReuse.t)
           
0.85  2010-11-05

 * Bug-fix Release. Tweaks to HList to support returning photo objects
   when calling entrycget with -image option.

0.84  2010-10-05

 * Bug-fix Release

0.83  2010-09-05

 * Minor updates to be more compatible with Tcl 8.4 installation (although Tcl 8.5 is preferred)

0.82  2010-08-25

 * Minor updates to remove the requirement for the tcl package snit. This is not needed anymore. 

0.81  2010-08-21

 * Minor updates so the CPAN indexer won't index demo directories. 
 * Changed order of execution in Makefile.PL so that CPAN testers will get the proper prereqs
   before the test-for-tk script is run.


0.8  2010-08-18

 * First Public Release.


