Revision history for Changes

0.15    CHANGES:
         * $term->eraseline is now removed
         * Provide a $tickit->tick method to finer-grained event handling
         * Removed Tickit::RootWindow; the root window is now a regular
           Tickit::Window

        BUGFIXES:
         * Force terminal size in t/80tickit.t so it doesn't cause failures on
           oddly-sized terminals

0.14    CHANGES:
         * $term->insertch and ->deletech are now removed
         * Move key input behaviours into Tickit::Term; many other
           refactorings between Tickit and Tickit::Term
         * Renamed $tickit->start / ->stop to ->setup_term / ->teardown_term

0.13    CHANGES:
         * Allow Widget subclasses to disable the clear-before-render
           behaviour
         * Avoid harmless warning about undef during global destruction

        BUGFIXES:
         * Skip Unicode-requiring tests unless we know we have a Unicode-aware
           locale

0.12    CHANGES:
         * Pass an opaque 'id' value through Pen->add_on_changed into
           $observer->on_pen_changed
         * Extend is_display() unit testing function to allow asserting pen
           attributes as well as text-on-display
         * Rewrote many unit tests to use only is_display() and not
           is_termlog()
         * Deleted now-deprecated Window methods of ->penprint, ->insertch and
           ->deletech

0.11    CHANGES:
         * Allow Windows to be created overlapping their parent boundaries;
           clip output - Work In Progress, so far only handles ->print and
           ->erasech, not the scrolling operations
         * Represent on-screen rectangles as first-class Tickit::Rect object,
           pass a 'rect' argument to Window on_expose event
         * More diagnostic output from Tickit::Test::is_termlog failures
         * Support (rarely-used) strikethrough pen attribute
         * No longer depends on Term::TermKey::Async unnecessarily

0.10    CHANGES:
         * Use Perl's ${^UTF8LOCALE} to detect UTF-8ness rather than relying
           on libtermkey's flags. Avoids fragile dependency
         * Use Term::TermKey 0.09's EINTR ability to simplify the main run
           loop
         * Split Tickit::Async out into its own distribution

0.09    CHANGES:
         * Move IO::Async-based code out of Tickit into Tickit::Async,
           reimplement a simple IO framework in Tickit itself.
         * Added Window on_expose event that cascades down the Window tree
         * Implement Widget drawing using Window on_expose events rather than
           cascading logic down th Widget tree
         * Print proper deprecation warnings from deprecated Window methods
           penprint, insertch, deletech

0.08    CHANGES:
         * More efficient XS implementation of low-level string length
           handling utilities in Tickit::Util
         * Allow forcing size of child widgets in Tickit::Widget::VBox and
           ::HBox
         * Pass region information into Widget->render methods; even if
           currently it is a fixed 0/0/$lines/$cols
         * Accept a pen argmuent to Window->print; deprecate ->penprint
         * Implement Window->scrollrect; deprecate ->insertch and ->deletech
         * Print a deprecation warning if a plain Tickit object is used as an
           IO::Async::Notifier

0.07    CHANGES:
         * Provide (trivial) Tickit::Async subclass for users to prepare for
           IO::Async split
         * Try to find $TERM-specific subclass of Tickit::Term for terminal-
           specific optimisations or abilities
         * Support 256 colour xterm
         * Unit test in more generic SCROLLRECT operation

        BUGFIXES:
         * Ensure Tickit::Test and Tickit::Test::MockTerm have a $VERSION

0.06    CHANGES:
         * Shut down terminal state before $SIG{__DIE__}'ing
         * Cope correctly with zero-sized children in {V,H,}Box and Frame
         * Broadcast unhandled keypresses out to sibling windows around the
           widget tree
         * Neater unit testing functions
         * Rearranged code to prepare for abstract/IO::Async split

0.05    CHANGES:
         * Added mouse support
         * Switchable insert/overwrite mode in Entry
         * Markers at beginning/end of Entry to indicate scrolling
         * Reduced API dependency on IO::Async; lazily construct a containing
           Loop in ->run
         * Reduced test-time dependency on IO::Async
         * Export Tickit::Test as real code for out-of-distribution tests
         * Miscellaneous bugfixes and improvements

0.04    CHANGES:
         * Added Tickit::Widget::Frame and ::Box
         * Support text scrolling in Entry
         * Support renderable containers
         * Updated Pen model; first-class objects, observers for updates
         * Support high-intensity colours
         * Entry->text_delete/_splice return the deleted text

0.03    CHANGES:
         * Added Tickit::Widget::Entry
         * Tickit::Pen as first-class object
         * Support more pen attributes - reverse video, alternate font

0.02    CHANGES:
         * Bind Ctrl-C to $loop->loop_stop by default
         * Neater root widget and run API
         * Added SYNOPSIS examples to most widget types; added examples/
           directory
         * Window 'on_key' event handling
         * Keep cursor hidden unless it's on a focused window

0.01    First version, released on an unsuspecting world.

