|
|||||||||||||||||||||||||
|
The SVG Terminal1 March 2006: Second release, with text highlighting! The SVG Terminal is a javascript module for Firefox 1.5 that enables apps to deliver rich views on network screens and fine-grained interactivity with users. It directs all user input from the browser to the app, which sends updates as SVG fragments to the browser. For more on how it works, see the draft SVGT/0.2 protocol spec. It's designed for apps running on a mobile device which need to present a sophisticated UI on nearby screens via wi-fi, and apps which need to drive multiple network screens with graphical scenes in near-real-time. The SVG Terminal package includes a simple demonstration app, and source licensed under the GPL. (Contact us for alternative licensing terms.) The demo app has only been tested on Windows to date, but should compile on Linux & MacOS X with minor changes. The javascript code requires Firefox 1.5. (download Firefox) Getting started: download and unpack the .zip file, then start svgtermdemo.exe. Open a Firefox window, and drag-drop svgterm.xml onto it. The browser will ask you to authorize this file. The Firefox SVG engine currently eats memory slowly but steadily, so you may need to restart Firefox occasionally. When working with Firefox SVG a lot, we suggest creating a separate Firefox profile and launching it with MOZ_NO_REMOTE=1. What's next: we're working on text wrapping, text highlighting, and flowing text around inset objects. We're also plotting to allow OLE objects onto SVG Terminal views, so apps can surface non-SVG content as neccesary. The SVG Terminal fits under the AJAX (asynchronous javascript and XML) umbrella, but differs from most AJAX code in a few ways: The UI is described entirely in SVG, instead of HTML. Almost no input processing is done by the browser. The browser maintains a connection to the server, rather than performing discrete XML-HTTP transactions. SVG Scene/Canvas LibraryFebruary 2006 update: The SVG Scene Lib is no longer being maintained outside of airWRX, and now uses the SVG Terminal protocol to specify drawing instead of rendering via cairo. Our final cairo-based release remains available on this page for the time being. Our SVG Scene toolkit enables applications to create interactive views by constructing and editing an SVG content model, or scene (also known as a canvas). The scene may be presented simultaneously in multiple windows, possibly on separate clients. The scene may be manipulated by multiple processes, enabling compound documents. The SVG Scene library supports ownership of content model elements by widgets of high-level application frameworks, but is not tied in to such frameworks. Rendering of the scene is done via cairo and Pango, which in turn support diverse environments, e.g. Windows, MacOS, Postscript, Xlib, etc. airWRX is based on this library, and offers a sophisticated demo of it. The library comes with example code, but it's simplistic for the sake of clarity. The current release is a prototype that requires Windows 2000 or later. It uses cairo for drawing and Win32 GDI for text and images. Full source code is included, licensed under GNU LGPL. Feedback requested! GoalsProvide a multi-screen drawing toolkit for applications and frameworks SVG object model defines a scene See svgscene.h for an overview of the API, and svgscene-example.cpp for a simple example application. An executable version of the example app is included in the download. History23 Jun 05 - incremental rendering text layout via pango |