[Tickit-dev] Released: Tickit 0.23
Paul LeoNerd Evans
leonerd at leonerd.org.uk
Sun Nov 11 16:01:50 GMT 2012
Another mail summarising the important changes since the last mail
(0.17):
0.18 adds a C implementation of the Term and Pen layer, using the
currently-bundled libtickit. Longer term plans will be to release
libtickit as its own standalone C library, much as libtermkey and so
on, but for now it will live in the Tickit perl distribution tarball.
0.19 allows Static widget to store multiple \n-separated lines of text.
0.20 allows $win->goto to move to anywhere at all, even outside of the
window bounds either negatively or too far positive to be within the
window. Movement above, below, or to the right simply removes the
cursor from the screen and disables output; movement too far to the
left tracks the amount of text being displayed until it becomes
visible again. This allows far easier clipping of content.
This release also removed Tickit::Widget::Entry, which can now be
found in the separate Tickit-Widgets distribution.
0.21 has Window printing operations return a Tickit::StringPos object,
which represents the amount of text printed; in bytes, Unicode
characters, graphemes and codepoints.
0.22 adds tracking in Windows of whether they have input focus, and an
event to indicate focus changes. This will likely be hooked into a
Widget event on its main window, so that Widgets can alter their
appearance to indicate focus.
It also allows Windows to store possibly-multiple pending expose
regions, rather than simply redrawing the entire area.
Finally, it adds an optional Window behaviour that will soon become
default; expose-after-scroll. When expose-after-scroll is enabled,
a $win->scroll() method will set pending areas to re-expose; either
the newly-dirty area if it succeeded, or the entire window area if it
failed. This should simplify the logic required to implement
scrollable widgets. Eventually this behaviour may be enabled by
default, so it is recommended that widget classes that perform
scrolling should enable it as soon as possible to test it.
0.23 contains some improvements of the float logic, and prepares for
the next version which likely will remove the distinction between
floating and non-floating child windows. I've added a "future
preview" feature to the code; by setting
TICKIT_FLOAT_ALL_THE_WINDOWS=1
in the environment, all windows will have float-like logic; the only
difference between $win->make_sub and $win->make_float will be the
Z-ordering of the new child window. I've tested all my current Widget
distributions with this behavior enabled, and all seems fine. Since
this will become the default behaviour in future versions, it would
be useful to test modules and applications using this variable now,
and let me know of any problems before I change it.
-----
Future plans for 0.24 include:
* Using the new expose-after-scroll behaviour to support efficient
scrolling even when the area is partly covered by floating windows,
by scrolling the entire area anyway and then repainting the floats
and their shadows, if this would result in a smaller area of redraw
than simply redrawing the whole thing.
* A start on the styles support; allowing Widgets to have styleable
elements, likely as a WidgetRole. This would create a standard API
for Widgets to look up the colour/size/text/etc.. of styleable
elements, and to allow users of the Widgets to set them. This may
also lead to things like stylesheets stored in files, either for
end-user or application preferences.
--
Paul "LeoNerd" Evans
leonerd at leonerd.org.uk
ICQ# 4135350 | Registered Linux# 179460
http://www.leonerd.org.uk/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 190 bytes
Desc: Digital signature
URL: <http://mail.leonerd.org.uk/pipermail/tickit-dev/attachments/20121111/0028d70f/attachment.sig>
More information about the Tickit-dev
mailing list