libRUIN NEWS -- history of user-visible changes
Copyright (C) 2006 Julian Graham
See the end of copying conditions.

Send comments, questions, and bug reports to libruin-devel@nongnu.org

Each release reports the NEWS in the following sections:

* Changes to the distribution
* Changes to the C interface
* Changes to layout and rendering
* Changes to the Scheme interface


Changes since 0.1.2 development release:

* Changes to the distribution

** Tests

XHTML examples from the W3C's CSS2.1 conformance test suite (distributed with
permission) are now included properly -- they were accidentally left out of
the last release.  They can be found under examples/xhtml. The subset of the
test suite included is dependent upon CSS features which are supported by
libRUIN and will grow as functionality improves.

** OS X support

Some minor fixes have been made to allow libRUIN to build on OS X (10.4).

** Guile 1.6 / 1.8 support

Some refactoring has been done to allow libRUIN to build against either the 1.6
or 1.8 releases of GNU Guile.

* Changes to the C interface

* Changes to layout and rendering

** CSS inheritance correctness

This release includes the latest version of SCSS, which features a number of
significant improvements to the correctness of style lookups. libRUIN itself
also features the following improvements: Automatic inheritance of relevant
style by anonymous inline boxes; correct inheritance of explicit style
(specified in "style" attributes).

** Handling for window resize events

libRUIN now automatically installs a handler for SIGWINCH and will redraw the
window when the terminal is resized.

** Pseudo-class support

There is now (preliminary) support for CSS pseudo-classes, e.g., :focus, :link.
Since these depend to some degree on integration with a user agent, which
libRUIN isn't, really, so this support is provisional and may change.

** Focus handling

Focus is no longer automatically sent to the first focusable element when
rendering is complete. The old focus toggle handlers (which inverted the color
of the focused element) have been removed.

** Rendering of inline elements

A couple of slight improvements: Left and right margins for inline elements are
now supported. Wrapping of lines, particularly those containing words that are
wider than the terminal, should look a bit better.

* Changes to the Scheme interface


Changes since 0.1.1 development release:

* Changes to the distribution

** libRUIN no longer includes guile-lib modules

configure now checks for the presence of the required modules; libRUIN still
includes the SDOM and SCSS Scheme modules, since it is currently unlikely that
users will have these installed.

* Changes to the C interface

* Changes to the Scheme interface

** New Scheme functions ruin:get-style and ruin:set-style!

These functions can be used, respectively, to set explicit style properties on
elements in the document tree. Both functions manipulate the style values that
are actually used during rendering -- i.e., the style information with the
highest precedence. 

ruin:set-style! does not change the element itself; properties set using this
function are stored in internal libRUIN data structures.


Changes since recent CVS:

* Changes to the distribution

** libRUIN includes source selections from guile-lib 

libRUIN incudes the 'assert' and 'time' modules from the 'debugging' tree, and
the 'documentation' and 'session' modules from the 'scheme' tree. This is
mostly to support the source distribution of SXML that is included.

* Changes to the C interface

** ruin_get_width and ruin_get_height have been removed

libruin.h no longer exposes ruin_get_width or ruin_get_height, and both
functions have been removed from the source. There's really no reason either
should have been made available to the user; they're not even really useful
for debugging purposes.

* Changes to the Scheme interface


Copyright information:

Copyright (C) 2006 Julian Graham

   Permission is granted to anyone to make or distribute verbatim copies
   of this document as received, in any medium, provided that the
   copyright notice and this permission notice are preserved,
   thus giving the recipient permission to redistribute in turn.

   Permission is granted to distribute modified versions
   of this document, or of portions of it,
   under the above conditions, provided also that they
   carry prominent notices stating who last changed them.


Local variables:
mode: outline
paragraph-separate: "[ 	]*$"
end:
