Pango-1.15.4 released [unstable]



Pango-1.15.4 is now available for download at:

  http://download.gnome.org/sources/pango/1.15/
or
  ftp://ftp.gtk.org/pub/pango/1.15

02c8ea6d3851e44520b131f509bea9ff  pango-1.15.4.tar.bz2
45386fabd351e858f1e402d402cd6aa2  pango-1.15.4.tar.gz

This is a development release leading up to Pango-1.16.0, which
will be released just in time for GNOME-2.18.  The major change in this
release is addition of lots of new, useful, public API.  For details,
scroll down.

Notes:

 * This is unstable development release. While it has had
   fairly extensive testing, there are likely bugs
   remaining to be found. This release should not be used
   in production.

 * Installing this version will overwrite your existing
   copy of Pango. If you have problems, you'll need
   to reinstall Pango-1.14.x

 * Bugs should be reported to http://bugzilla.gnome.org.

About Pango
===========

Pango is a library for layout and rendering of text, with an emphasis
on internationalization. Pango can be used anywhere that text layout
is needed, though most of the work on Pango so far has been done in
the context of the GTK+ widget toolkit. Pango forms the core of text
and font handling for GTK+-2.x.

Pango is designed to be modular; the core Pango layout engine can
be used with different font backends. There are three basic backends,
with multiple options for rendering with each.

 - Client side fonts using the FreeType and fontconfig libraries.
   Rendering can be with with Cairo or Xft libraries, or directly
   to an in-memory buffer with no additional libraries.

 - Native fonts on Microsoft Windows using Uniscribe for
   complex-text handling. Rendering can be done via Cairo or
   directly using the native Win32 API.

 - Native fonts on MacOS X, rendering via Cairo.

The integration of Pango with Cairo (http://cairographics.org)
provides a complete solution with high quality text handling
and graphics rendering.

Dynamically loaded modules then handle text layout for particular
combinations of script and font backend. Pango ships with a wide
selection of modules, including modules for Hebrew, Arabic,
Hangul, Thai, and a number of Indic scripts. Virtually all of the
world's major scripts are supported.

As well as the low level layout rendering routines, Pango includes
PangoLayout, a high level driver for laying out entire blocks of text,
and routines to assist in editing internationalized text.

More information about Pango is available from http://www.pango.org/.
Bugs should be reported to http://bugzilla.gnome.org.

Pango 1.15 depends on version 2.12.0 or newer of the GLib
library and version 1.2.2 or newer of the cairo library (if the
cairo backend is desired); more information about GLib and cairo
can be found at http://www.gtk.org/ and http://cairographics.org/
respectively.

Overview of changes between 1.15.3 and 1.15.4
==============================================
General:
- Finish vertical text support.
- Fix various bugs that could cause ellipsization to stop prematurely.
- Fix rendering of background color being off in presence of rise attribute.
- Improved text-on-path example (examples/cairotwisted.c)

Win32 Improvements:
- Don't check for X and don't warn about missing fontconfig. [Tor Lillqvist]
- Automatically use -mms-bitfields on Windows when building with gcc. [Tor]
- Update makefile.msv. [Hans Breuer]

Code base cleanups:
- Whitespace cleanups.  Hopefully patches still apply using patch -l
- Replace C++-style // comments with C-style /* */ ones.
- Move the pango-view tool from examples/ into pango-view/.  The examples/
  dir is still available and for simple examples only.

Public API changes:

- New PangoLayout query functions:

        pango_layout_is_wrapped()
        pango_layout_is_ellipsized()
        pango_layout_get_unknown_glyphs_count()

  The is_wrapped and is_ellipsized functions return whether the layout
  had to wrap/ellipsize any paragraphs, as opposed to the get_wrap and
  get_ellipsize that return the wrap/ellipsize mode set.

- Misc new function:
        pango_parse_enum()

  This is more a convenience function for internal use, but set public
  to go with other pango_parse_* functions.  Bindings should feel free
  to ignore this.


- New header files:

  Moved gravity and matrix stuff into their own header files pango-gravity.h
  and pango-matrix.h.  Both are included from pango-types.h.

- Vertical text:

  New attribute types:

        PANGO_ATTR_GRAVITY
        PANGO_ATTR_GRAVITY_HINT.

  New enum type:

        PangoGravityHint

  New macro:

        PANGO_GRAVITY_IS_VERTICAL()

  New public functions:

        pango_attr_gravity_new()
        pango_attr_gravity_hint_new()
        pango_gravity_hint_get_type
        pango_context_set_gravity_hint()
        pango_context_get_gravity_hint()
        pango_gravity_get_for_matrix()
        pango_gravity_get_for_script()

  Removed:
        pango_matrix_to_gravity()

  replaced by pango_gravity_get_for_matrix()
  
  Gravity API added in previous releases:

        PangoGravity
        pango_gravity_get_type
        pango_context_get_base_gravity
        pango_context_get_gravity
        pango_context_set_base_gravity
        pango_font_description_get_gravity
        pango_font_description_set_gravity
        pango_gravity_to_rotation

  A tip on using the vertical text support: If you just want to get correct
  behavior in rotated labels (say, vertical Chinese/Japanese, but rotated
  Latin, etc), all you need to do is to set the context gravity to
  PANGO_GRAVITY_AUTO.  You can do this for example

        #if defined(PANGO_VERSION_CHECK) && PANGO_VERSION_CHECK(1,15,4)
          pango_context_set_gravity (context, PANGO_GRAVITY_AUTO);
        #endif

Bugs fixed in this release:
        Bug 395328 â Map kATSDeletedGlyphcode to PANGO_GLYPH_EMPTY
        Bug 397337 â Use is_ellipsized and is_wrapped to optimize property
                     changes
        Bug 328585 â Need to know if a layout has unknown glyphs
                     Patch from LingNing Zhang
        Bug 326693 â PangoLayouts should be query-able about their
                     effective properties (width / wrapped / ellipsized / etc)
        Bug 397327 â pango-layout.c: 'pango_layout_is_ellipsized' must return
                     a value
        Bug 323173 â Add layout of mixed direction text for vertical layout
        Bug 394453 â Use -mms-bitfields
        Bug 392628 â Don't check for X on win32


Behdad Esfahbod
18 January 2007


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]