There has been numerous improvements and some additions to the ViewPort functionality in version 2.2.
Version
2.1 is a full rewrite of the 2.0 version of ViewPort due to internal architectural
changes. Shipping since December 1998, the major additions in ViewPort version 2.1 are
enhancements in the CGM vector graphics (adding CGM level 3/4 support) and addressing key
XML requirements of full Unicode support and case-sensitive XML handling.
Under Windows, we still support and bring forward the OS specific DLLs (shift-JIS, Chinese, and Korean), while the Unicode version of Synex ViewPort is able to read entities in:
Even though most of the changes between version 2.0 and 2.1 are internal, the support for case sensitivity in XML affects the processing of e.g. style sheets and ViewPort configuration files. The software retains its blazing performance even in the Unicode version.
The
2.0 version of Synex ViewPort, announced at SGML Europe'97 in Barcelona, was
released at the end of Q4 after months of thorough beta-testing. The new release is a
major step ahead for Synex ViewPort, with literally hundreds of additions and
improvements concerning all aspects of the software.
Synex ViewPort version 2.0 features a number of enhancements. The programmer documentation has grown by about 30% from the previous release, so this is not a complete summary of changes and new features, but rather an overview of whats new in no particular order. The sample source now features the Synex SGML/XML Viewer which includes a style sheet, navigator, and hot spot editor.
New CALS table support. The CALS table formatter has been completely rewritten in version 2.0. The formatter supports most of the SGML Open Exchange Table Specification and a lot more of the original CALS table specification (being both a subset and a large superset of the SGML Open Exchange Table model); the CALS tables can have any name, they can be nested, and portions of ALIGN and PGWIDE attributes are interpreted for on-line viewing. The most striking changes are probably support for repeated headers and footers in hard copy and support for fixed and relative width tables using the COLWIDTH attribute. Synex ViewPort support the units '*', 'mm', 'cm', 'pi', 'pt', and 'in' for the COLWIDTH attribute.
New Display Manager. The graphic manager has been replaced by a new display manager that combines and extends the features of the previous widget interface and graphic manager. (Widgets are a general third party extension architecture to add support for arbitrary rectangular objects for seamless integration in SGML documents; the mechanism has been used for handling of forms, video, etc.). The Display Manager is an open, extensible interface for integrating third party libraries and extending or replacing built-in notation support.
New Style Sheet Features.
Hot spot management. The hot spot management has been rewritten to allow hot spots to specify the zoom factor to any percentage value, the hot spot color, and the hot spot shape (rectangle, ellipse, or polygon). An active (selected) hot spot features animated boundaries, which are much easier to locate and visualize compared to static high-lightning such as inverse video or just colored hot spots. Hot spots can be expressed in webs and in documents, and their management is now very much similar.
The hot spots are compatible with the previous rectangular hot spot shapes while providing exciting new functionality:
Better handling of tables split across pages. Previously, Synex ViewPort always ended the current page before splitting a table. In version 2.0, it instead tries to fit the first part of the table on what remains on the page.
Animated TIFFs using multi-page TIFF files. The animation delay is controlled by a notation attribute.
Improved internal font resolution. Synex ViewPort now internally stores font sizes using values 100 times larger than before. This change came about to handle font scaling (which is expressed as a percentage) better.
Automatic panning/scrolling of large tables when following links. If the link target is in a table and is not visible when the link is followed, the table will pan/scroll the target into sight.
Smoother scrolling of tables and graphics. When a large object was displayed in a document view, for instance a large table or graphic, and the bottom of the object had been reached, a line down request made the entire object scroll out of sight. Several users have felt this behavior to be a bit annoying. We have therefore modified Synex ViewPort so that a line down request now never scrolls more than 40 pixels.
Left and right arrow keys are now mapped to panning in document views when horizontal scrolling (panning) is enabled. The arrow keys (LineUp, LineDn, PgUp, PgDn, Home, and End) are disabled when all content fits on the page.
Version Resource. A version resource has been added to each Synex ViewPort DLL.
Parser enhancement. External access to the current location improves handling of parser error messages and allows implementors to build an entity representation of the document.
Renaming of DLLs. The Synex ViewPort DLLs and C interface files have been renamed to avoid naming conflicts with existing Synex ViewPort-based applications.
New default color names supported. Colors can be expressed using any RGB-value. For simplicity, certain pre-defined color names are supported as well. The color names directly supported by Synex ViewPort are: black, dark red, maroon, dark green, dark yellow, olive, dark blue, navy, dark magenta, purple, dark cyan, teal, light gray, silver, money green, sky blue, cream, light gray, medium gray, gray, red, green, lime, yellow, blue, magenta, fuchsia, cyan, aqua, white.
Color extensibility. The host application can now compute color names using a callback. It is therefore possible for an application to support any number of additional color names.
Style information interface enhancement. It is now possible to get the style for an element, i.e. where all qualifiers have been computed and their modifications added. This simplifies generation of e.g. RTF text. The Synex SGML/XML Demo Viewer for Windows (see the developer package sample source) includes such basic RTF-support.
Publisher webs. (<?DOCWEB>) now also apply for binary documents
Microsoft IntelliMouse support. Scrolling/zooming by moving the wheel, and panning, by pressing the wheel.
Web anchor granularity. Web anchors can now span individual characters. Previously, anchors only spanned complete words. This limitation was a major problem for Japanese documents, which lacks the concept of inter-word space.
Text searching enhancements. It is now possible to restrict text searches at word boundaries (as either a suffix or a prefix requirement)
Printing enhancement. When printing an object taller than a page, Synex ViewPort automatically distributes the object over several pages. Previously, the object was truncated after the initial page.
Cursor control. It is possible to control the cursor by a callback (even individually per document, link type, web, etc.). Synex ViewPort also adds a few new default cursors.
Style Sheet qualifier extensibility. Support for adding your own qualifier functions has been added. Such functions are evaluated using a callback, and allow you to adapt the view of the documents from arbitrary configurations in your application.
Autonumbering extensibility. It is now possible to use your own autonumbering text generator. Previously, Synex ViewPort only supported arabic, roman, alphabetic in upper and lower case combinations. In this release, additional methods can be used, handled through a callback.
Text retrieval. It is now possible to retrieve textual content with all tabs and new lines preserved (if the content has been formatted as verbatim), stripped of all processing instructions
Hyperlinking. By default, Synex ViewPort automatically interprets hyperlinks expressed in a variety of conventions (TEI, HyTime, etc.). In some DTDs, ID-IDREF(S) combinations do not actually represent links; it is now possible to prevent the automatic interpretation of IDREF(S) attributes as hyperlinks.
New default public identifiers. The default public identifiers for the style sheet, navigator, and web DTD have changed in version 2.0, to reflect changes in the DTDs due to new functionality.
XPM/XBM graphics. The XPM format is ideal for icons and will be used as of version 2.0 for this purpose in addition to previously supported formats. Synex ViewPort now directly supports (transparent) XPM and XBM graphics.
Icon extensibility. It is now possible to use a separate icon for web bookmarks.
Mouse scrolling. The display is now automatically scrolled when the mouse is dragged out of the window (when selecting text or a hot spot).
Offscreen bitmap. The zoom window now uses an offscreen bitmap. This prevents vector graphics (and hot spot borders) to flicker when the window is repainted.
WebSGML Adaptations. The latest Technical Corrigendum proposal for the SGML standard has a number of interesting features, such as multiple, universal, and implicit attribute list declarations, and corresponding constructs for notations.
XML Support. The XML support is largely based on the WebSGML Adaptations, and currently handles the XML syntax for the character sets ASCII, ISO Latin 1, and shift-JIS.