Synex ViewPort is a C API to highly customizable C++ SGML/HyTime browser engine, based on more than five years of research and development. The toolkit can be used with virtually any interface builder or application framework, allowing you to continue developing your applications using your favorite tools. Designed as a plug-in module, Synex ViewPort can be integrated in your current applications without redesign.Synex ViewPort is designed for a broad range of SGML applications, from the integrator using a handful of commands to turn an application into a fully-fledged SGML browser, to the advanced developer, creating customized browsers solving the problems at hand.
Synex ViewPort parses and displays any SGML fragment on-the-fly without a precompilation step. Documents may even be assembled at runtime and browsed instantly. The engine also compiles and displays preparsed documents, addressing dynamic and static browsing with equal ease.
Once a document is displayed, Synex ViewPort processes user events, dispatching them to:
Since all of these capabilities are built-in, the developer only has to designate windows to display documents while Synex ViewPort takes care of the rest. However, most of the processing involved is fully tailorableapplication behavior can be adapted to fit your needs.
Synex ViewPort has built-in support for a subset of HyTime (allowing cross-document links to any element or textual span) and for a subset of the efficient TEI extended pointer concept. In addition, there is support for linking into and out of graphics hot spots, using markup based on an architectural form. Synex ViewPort even supports attachment of user defined datasuch as annotations, links, and bookmarksto any textual span or graphic hot spot, using HyTime and SGML addressing.
The built-in navigation capabilities can be customized and enhanced by the use of
callbacks. Also, data may be retrieved from the main application, allowing arbitrary
strings to be added to the display at runtime. A widget feature allows just about
any rectangular object to be displayed by the browser. The widget feature has been used to
implement:
Furthermore, Synex ViewPort has a flexible interface to integrate external graphics viewing packages, extending the graphic formats displayed inline.
Your application can take active part in the browsing. Synex ViewPort not only allows you to inspect the currently displayed elementsyou can pick elements, graphics, or anchors from any position of a window. The engine keeps you informed about any state changes, such as when the user scrolls a page or makes a text selection.
Synex ViewPort is a powerful information retrieval engine to your SGML data. A document's textual content, markup, declared entities, and processing instructions can be examined. Elements can be retrieved using criteria such as ID, generic identifier (GI), attribute value, TEI extended pointer specification, and textual content. Naturally, the entire document tree can be looped through and every element investigated individually by content, GI, and attributes (by type, default values, and actual values).
Since Synex ViewPort is not an API to a browser application, but to a browser engine, the Synex ViewPort developer has total freedom when designing the user interface. A Synex ViewPort application can take any appearance.
With its extensive interface for retrieval of the information components, the toolkit could be used in a system without any browsing whatsoever. It could for instance serve as a receiver and distributor component in an SGML-based EDI system. Due to the flexibility of the input capabilities, the system could even serve as a browser tool for non-SGML data, where the data would be converted to SGML on-the-fly, as it is fed to the parser.
This technical brief opens the hood of the Synex ViewPort engine, revealing some of the structure and functionality.