* ANN: libRUIN project development release 0.1.1
@ 2006-01-31 21:12 Julian Graham
2006-02-01 6:47 ` klaus schilling
2006-02-02 8:29 ` Ludovic Courtès
0 siblings, 2 replies; 5+ messages in thread
From: Julian Graham @ 2006-01-31 21:12 UTC (permalink / raw)
Hi everyone,
I am pleased to announce that the libRUIN project has made its first
formal development release, version 0.1.1.
Our project description, from Savannah: libRUIN (Renderer for User
Interfaces in Ncurses) is a rendering library for various XML-based
user interface markup languages (such as Mozilla XUL), using the
Ncurses terminal control library as a rendering target. GNU Guile and
the SDOM Scheme module are used as the "glue" that manages user input
and event handling. An application programmer passes an XML document
(including, potentially, a set of CSS stylesheets) and an Ncurses
WINDOW structure, and libRUIN paints the WINDOW according to the
markup and CSS; the programmer may subsequently pass Ncurses-style
input strings to that WINDOW via libRUIN, and libRUIN will handle the
resulting event flows.
What this means, in short, is that libRUIN is a little bit like a
browser in that it provides rendering for various flavors of XML+CSS,
but, more importantly, it's an embeddable native library that you can
use to quickly and easily create dynamic Ncurses user interfaces for
your application without having to write any UI code (except perhaps a
few lines of Scheme). Of particular interest to Scheme programmers
and Guile users -- while the exposed API and core of libRUIN is C, the
XML parsing, CSS lookups, and DOM event handling (events are scripted
in Scheme) are all implemented as Guile Scheme modules (see,
respectively, the SSAX/SXML project, SCSS and SDOM).
This release is concertedly alpha- or pre-alpha-quality, but
includes an example application called 'ruinview' that you can use to
check out libRUIN's rendering support for XHTML documents (selections
from the W3C's CSS2.1 Test Suite are included in the distribution) and
see how easy it is to integrate libRUIN with existing C code. For
more information, swing by http://www.nongnu.org/libruin or check out
our project page on Savannah, at
http://savannah.nongnu.org/projects/libruin -- you can pick up the
release from the downloads section.
_______________________________________________
Guile-user mailing list
Guile-user@gnu.org
http://lists.gnu.org/mailman/listinfo/guile-user
^ permalink raw reply [flat|nested] 5+ messages in thread
* ANN: libRUIN project development release 0.1.1
2006-01-31 21:12 ANN: libRUIN project development release 0.1.1 Julian Graham
@ 2006-02-01 6:47 ` klaus schilling
2006-02-01 13:41 ` Julian Graham
2006-02-02 8:29 ` Ludovic Courtès
1 sibling, 1 reply; 5+ messages in thread
From: klaus schilling @ 2006-02-01 6:47 UTC (permalink / raw)
Cc: help-ncurses, guile-user
Julian Graham writes:
>
> What this means, in short, is that libRUIN is a little bit like a
> browser in that it provides rendering for various flavors of XML+CSS,
> but, more importantly, it's an embeddable native library that you can
> use to quickly and easily create dynamic Ncurses user interfaces for
> your application without having to write any UI code (except perhaps a
> few lines of Scheme). Of particular interest to Scheme programmers
> and Guile users -- while the exposed API and core of libRUIN is C, the
> XML parsing, CSS lookups, and DOM event handling (events are scripted
> in Scheme) are all implemented as Guile Scheme modules (see,
> respectively, the SSAX/SXML project, SCSS and SDOM).
>
does libruin depend on the SLIB ?
Klaus Schilling
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: ANN: libRUIN project development release 0.1.1
2006-02-01 6:47 ` klaus schilling
@ 2006-02-01 13:41 ` Julian Graham
0 siblings, 0 replies; 5+ messages in thread
From: Julian Graham @ 2006-02-01 13:41 UTC (permalink / raw)
Cc: help-ncurses, guile-user
Hi Klaus,
libRUIN depends on (and is distributed with) a module called SDOM,
which depends on SLIB. However, I can't figure out why I added this
dependency, so I think I'm going to treat it as a bug and remove it
for the next release. Thanks for pointing that out.
Regards,
Julian
On 2/1/06, klaus schilling <schilling.klaus@web.de> wrote:
> Julian Graham writes:
> >
> > What this means, in short, is that libRUIN is a little bit like a
> > browser in that it provides rendering for various flavors of XML+CSS,
> > but, more importantly, it's an embeddable native library that you can
> > use to quickly and easily create dynamic Ncurses user interfaces for
> > your application without having to write any UI code (except perhaps a
> > few lines of Scheme). Of particular interest to Scheme programmers
> > and Guile users -- while the exposed API and core of libRUIN is C, the
> > XML parsing, CSS lookups, and DOM event handling (events are scripted
> > in Scheme) are all implemented as Guile Scheme modules (see,
> > respectively, the SSAX/SXML project, SCSS and SDOM).
> >
>
> does libruin depend on the SLIB ?
>
> Klaus Schilling
>
_______________________________________________
Guile-user mailing list
Guile-user@gnu.org
http://lists.gnu.org/mailman/listinfo/guile-user
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: ANN: libRUIN project development release 0.1.1
2006-01-31 21:12 ANN: libRUIN project development release 0.1.1 Julian Graham
2006-02-01 6:47 ` klaus schilling
@ 2006-02-02 8:29 ` Ludovic Courtès
2006-02-02 13:37 ` Julian Graham
1 sibling, 1 reply; 5+ messages in thread
From: Ludovic Courtès @ 2006-02-02 8:29 UTC (permalink / raw)
Cc: guile-user
Hi,
Julian Graham <joolean@gmail.com> writes:
> Our project description, from Savannah: libRUIN (Renderer for User
> Interfaces in Ncurses) is a rendering library for various XML-based
> user interface markup languages (such as Mozilla XUL), using the
> Ncurses terminal control library as a rendering target. GNU Guile and
> the SDOM Scheme module are used as the "glue" that manages user input
> and event handling. An application programmer passes an XML document
> (including, potentially, a set of CSS stylesheets) and an Ncurses
> WINDOW structure, and libRUIN paints the WINDOW according to the
> markup and CSS; the programmer may subsequently pass Ncurses-style
> input strings to that WINDOW via libRUIN, and libRUIN will handle the
> resulting event flows.
As I understand it, the interface description (XML) is interpreted at
run-time to actually construct the Ncurses interface. Is this correct?
Is so, are you considering the possibility of ``compiling'' an interface
description directly to, e.g., Scheme code, in order to strip that level
of interpretation? OTOH, on the Scheme side, one could use macros to
that end.
Also, are you planning to write a simple GTK+ (or guile-gnome) back-end
as well? :-)
Thanks for your work!
Ludovic.
_______________________________________________
Guile-user mailing list
Guile-user@gnu.org
http://lists.gnu.org/mailman/listinfo/guile-user
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: ANN: libRUIN project development release 0.1.1
2006-02-02 8:29 ` Ludovic Courtès
@ 2006-02-02 13:37 ` Julian Graham
0 siblings, 0 replies; 5+ messages in thread
From: Julian Graham @ 2006-02-02 13:37 UTC (permalink / raw)
Hi Ludovic,
Yes, the interface description is interpreted at runtime, though it
is amost immediately converted to SXML, an S-expression-based
representation that is isomorphic to the original XML. The C
structures that are used during rendering are tightly bound to the
spine of this S-expression (which is just a list). I'm open to the
idea of a "compiled" document, but it'd need to somehow maintain a
mapping to the structure of the original document, since
event-handling scripts need to be able to refer to this structure via
the DOM -- for exaple, in order to dynamically add and remove UI
elements.
I was planning to add other rendering targets, such as GTK+, but I
wanted to see if there was any way to use existing libraries -- such
as, say, Mozilla Gecko -- before really diving in on that one.
Thanks for your remarks!
Julian
On 2/2/06, Ludovic Courtès <ludovic.courtes@laas.fr> wrote:
> Hi,
>
> Julian Graham <joolean@gmail.com> writes:
>
> > Our project description, from Savannah: libRUIN (Renderer for User
> > Interfaces in Ncurses) is a rendering library for various XML-based
> > user interface markup languages (such as Mozilla XUL), using the
> > Ncurses terminal control library as a rendering target. GNU Guile and
> > the SDOM Scheme module are used as the "glue" that manages user input
> > and event handling. An application programmer passes an XML document
> > (including, potentially, a set of CSS stylesheets) and an Ncurses
> > WINDOW structure, and libRUIN paints the WINDOW according to the
> > markup and CSS; the programmer may subsequently pass Ncurses-style
> > input strings to that WINDOW via libRUIN, and libRUIN will handle the
> > resulting event flows.
>
> As I understand it, the interface description (XML) is interpreted at
> run-time to actually construct the Ncurses interface. Is this correct?
> Is so, are you considering the possibility of ``compiling'' an interface
> description directly to, e.g., Scheme code, in order to strip that level
> of interpretation? OTOH, on the Scheme side, one could use macros to
> that end.
>
> Also, are you planning to write a simple GTK+ (or guile-gnome) back-end
> as well? :-)
>
> Thanks for your work!
>
> Ludovic.
>
>
_______________________________________________
Guile-user mailing list
Guile-user@gnu.org
http://lists.gnu.org/mailman/listinfo/guile-user
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2006-02-02 13:37 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-01-31 21:12 ANN: libRUIN project development release 0.1.1 Julian Graham
2006-02-01 6:47 ` klaus schilling
2006-02-01 13:41 ` Julian Graham
2006-02-02 8:29 ` Ludovic Courtès
2006-02-02 13:37 ` Julian Graham
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).