[Tickit-dev] Released: Tickit 0.43

Paul "LeoNerd" Evans leonerd at leonerd.org.uk
Wed Apr 2 12:52:39 BST 2014


New things in latest Tickit since 0.40 (the last email):

 * Allow cursor to be hidden on a Window (0.41)

   $win->cursor_visible( 0 ) to make it hidden, without forgetting
   where it is or what shape it should be when it returns.

 * Return text width from RenderBuffer text methods (0.41)

   $rb->text and $rb->text_at now return the text width, similar to
   what $win->print did, simplifying some kinds of rendering code.

 * Extend the RenderBuffer concept down to the Window layer (0.42)

   $win->set_on_expose now takes a name/value pair of arguments,
   indicating the invocation style. CPAN Widget classes should take
   care of this themselves, but any direct access on the Window you
   make in your code should use the new form:

     $win->set_on_expose( with_rb => sub { ... } );

 * More use of RenderBuffer during Window expose (0.43)

   Even when not using the 'with_rb' form of Window expose handler,
   window drawing operations will be performed via the RB anyway. This
   is done by redirecting the goto, print, erase, etc.. methods onto a
   temporary RenderBuffer created by the expose event.

 * Removed CLEAR_BEFORE_RENDER (0.42)

   The long-deprecated CLEAR_BEFORE_RENDER widget behaviour has now
   been removed entirely.

 * CHILD_WINDOWS_LATER is now default-on (0.43)

   Operations that involve adding, removing, or reördering child
   windows now take place "later"; that is, asynchronously after the
   actual method is called, but before any expose events happen. This
   ensures that window layering changes made as a result of handling
   input events do not cause a cyclic double-handling of the event, or
   other kinds of bugs.

And now for a new section for these emails; a warning of deprecations
and removals. These are things scheduled for producing deprecation
warnings, or outright removal, in 0.44 or later:

 * Deprecation: Non-with_rb expose callbacks

 * Deprecation: Non-with_ev key/mouse callbacks

 * Deprecation: Direct use of the "first position" field in
   event-structured key/mouse callbacks as the ->type method

 * Deprecation: switching off CHILD_WINDOWS_LATER

Finally, a new section detailing comments about wider direction, and
other CPAN modules like Widget classes:

 * New Widget size model

   According to the main Tickit Widget grid [1], most of the container
   classes are now updated to the new ->requested_size model. Once the
   remaining ones are all updated, I'll start the next phase of this
   new model, which will be to define some new properties on Widget
   itself, to assist applications and containers define the size of the
   widget. This will likely take the form of two pairs of lines/cols
   properties, for setting the minimum and maximum size. These will
   support using Tickit::Style to set them.

   A feature that may be required in some cases would be to allow
   classes to override the minimum sizes, because they know they can't
   cope with a size smaller than some limit; though hopefully most
   widgets should be renderable right down to 1x1, if that's what the
   user really wanted.


---

[1]: https://github.com/ingydotnet/tickit-info/blob/master/CurrentTickitWidgets.md

-- 
Paul "LeoNerd" Evans

leonerd at leonerd.org.uk
http://www.leonerd.org.uk/  |  https://metacpan.org/author/PEVANS
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 230 bytes
Desc: not available
URL: <http://mail.leonerd.org.uk/pipermail/tickit-dev/attachments/20140402/d84a7856/attachment.sig>


More information about the Tickit-dev mailing list