140 likes | 306 Views
Compiling SVG: How and Why. Michael Levy , Quetzalcoatl Bradle y and Calin Somosan NewHeights Software Corporation. The Natural History of UI-1. The Natural History of UI-2. The Natural History of UI - 3. The Natural History of UI - 4. Convergence. Human Interface Guidelines
E N D
Compiling SVG: How and Why Michael Levy, Quetzalcoatl Bradley and Calin Somosan NewHeights Software Corporation
Convergence • Human Interface Guidelines • Are metaphors still appropriate? • Do they reflect converged offerings? • Can they project a brand? • Mitel Design Center • Unify the device (phone on desk) and application • Input vehicle should be irrelevant to user
What about Web Applications? • Interim technology • Many advantages, but • Step backwards in responsiveness • Human perception is continuous, not discreet • Transaction based processing is as bad as Menu driven DOS-like processing
The Role of the Architect • GUI Libraries • Simplify programming • Enforce “look-and-feel” • Biased towards Shell designers metaphor • Too complex for industrial designer • Today’s design tools • Illustrator, Flash
HelixRAD • Graphical element has 4 major parts • Template • VML/DHTML/CSS • Parameters • Elements • Attribute invariants for each element • Semantics • Handlers for actions (Javascript)
Why use SVG? • Elegance/ power of descriptive language • Tools support • Xml compliant • Graphics editors
Why Compile? • Interpreted code is not, and never will be, good enough to compete with compiled code • Example - menu as SVG: • Load the XML • Create the DOM • Change the text attribute for the Menu name • Clone an item node for each menu item • Set the text attribute of each item • Traverse the resulting DOM tree, rendering it.
How to Compile SVG • On Win32, GDI+ library provides most of what is needed • Provide an abstract library for general elements • Compiler subclasses or instantiates particular SVG files • Scheme needed to automate attachment of semantic actions
Conclusions and Future Work • Mismatches between GDI+ and Adobe reference implementation are problematic • Better SVG tool support: • Grouping • Most meaningful element that fits • EG: Square instead of four paths; circle instead of (closed) arc • SVG lacks adequate alternative to DOM clone for class instantiation • Standards for semantics?