Version History

This section provides information on the major features introduced in each version of Zed.


The following paragraphs detail the feature history for Zed through each of the numbered versions used to checkpoint its development. Most of these numbered versions were used only as internal checkpoints, although several were shared with development partners and testers as they were completed.

While an effort has been made to restrict the items listed to those features that are visible at the user level, many other significant development milestones of an internal nature are also included. Links to other sections of the documentation providing more detail about the items listed are provided where appropriate.


1.2.1 Maintenance release [11 Apr 2005]

  • Allowing nary operations on unary <minus>
  • Removing outer <math> element when inserting document fragments
  • Fixed presentation matrix traversal after editing operation

  • 1.2.0 Update release [30 Jul 2004]

  • Extended the component custom programming interface
  • Created a new formatting toolbar to support layout customization
  • Created a new formatting frame menu to support layout customization
  • Created a new formatting context menu to support layout customization
  • Created a new layout customization wizard
  • Introduced the paren operator to support editing parentheses
  • Added message beeps for invalid cursor operations
  • Fixed various outstanding support issues
  • Added component methods for setting the current font size
  • Added component methods for setting the current cursor position
  • Added component methods for controlling the layout formatting switches
  • Added component methods for applying a given editing transformation
  • Added component methods for applying a named editing transformation
  • Changed the return type for the ShowPalette and HidePalette component methods to boolean
  • Changed the value returned from the configuration customization methods to return true on success, false on failure
  • Renamed component methods in the expression identifier interface
  • Created a toolbar button to invoke the layout customization wizard
  • Created a toolbar combo box for setting the font size
  • Created a toggle button for displaying invisible <times>
  • Created a toggle button for displaying <apply> function
  • Created a toggle button for displaying associative operators
  • Created a toggle button for displaying unary <minus>
  • Created a toggle button for displaying unary <plus>
  • Created the layout transformation for the paren operator
  • Created the editing transformations for the paren operator
  • Reassigned editing transformations for function application
  • Reassigned editing transformations for associative operators
  • Fixed matrix layout transformation crash on an empty <matrix>
  • Fixed <partialdiff> bug that was reversing <bvar> and <degree> on input
  • Fixed layout transformation and binding power for <apply> examples
  • Fixed editing transformations for nary <apply> for f(g(x))
  • Fixed registry key to 'Software/Integre/MathML Equation Editor'
  • Fixed palette initialization to check for invalid position values
  • Fixed splash screens to suppress the techexplorer splash screen
  • Fixed a missing id="Zed" attribute on an object tag in load.html
  • Fixed API bug printing content/presentation for missing IDs

  • 1.1.1 Branding release [17 Mar 2004]

  • Updated product references to reflect Integre branding
  • Fixed file association handling bug in launching MathML files

  • 1.1.0 Update release [25 Mar 2002]

  • Completed the Users Guide
  • Completed the Advanced Topics part of the Users Guide
  • Completed the Examples section of the Users Guide
  • Added Insertable registry key for the component
  • Improved activation of the component in Office containers
  • Improved property persistence for the component
  • Fixed component resize issue on activation
  • Fixed initial draw on transition to run mode
  • Fixed focus issue on component activation
  • Fixed focus issue after drag and drop
  • Fixed quick-click crash during drag and drop

  • 1.0.3 Maintenance release [15 Mar 2002]

  • Filled in some sections of the Advanced Examples
  • No longer treating unary inverse operators as nary operators
  • No longer using template precedence conventions for unary inverse operators
  • Fixed operator precedence for <power> and <exp>
  • Fixed crash caused by loss of focus during drag and drop
  • Fixed insertion of letters within number token elements
  • Fixed insertion of entities within token elements
  • Fixed home, end, ctrl arrow keys within token elements
  • Disabling many other template rules within token elements

  • 1.0.2 Maintenance release [28 Feb 2002]

  • Completed the Configuration section of the Users Guide
  • Completed the Scripting section of the Users Guide
  • Additional Glossary and Index terms
  • Added Example/scripting.html
  • Renamed and reordered configuration dialogs in the user interface
  • Added configuration dialog and property page images to the documentation
  • Fixed palette redraw issue on initial Zed startup
  • Fixed content modification issue with mismatched id attribute

  • 1.0.1 Maintenance release [14 Feb 2002]

  • Completed the Introduction part of the Users Guide
  • Completed the Basic Use part of the Users Guide
  • Added general named entity insertion mechanism
  • More consistent use of the name Integre MathML Equation Editor
  • Now ignoring right mouse button in the palette windows
  • Fixed template merging for operators taking qualifiers
  • Fixed edit source operation for character data
  • Performance enhancement discards hidden palettes instead of reformatting when configuration changes

  • 1.0.0 First release [7 Jan 2002]

  • Completed the Reference part of the Users Guide
  • Moved attribute insertion to Ctrl+Shift+Insert
  • Further improvements for separated token elements
  • Added menu items for complex number functions
  • Added palette and menu items for <forall>, <exists>
  • Bug fixes for outfix templates

  • 0.6.0 First release candidate [20 Dec 2001]

  • Implemented general attribute value input dialogs
  • Prototype support for separated token elements
  • Completed support for <diff>, <partialdiff>, <int>
  • Improved support for <lambda>, <forall>, <exists>

  • 0.5.9 Configuration testing [18 Dec 2001]

  • Implemented cut and paste operations on operators
  • Implemented template operation on extended selection
  • Implemented visible feedback for drag to select
  • Fixed template operation issues uncovered during testing
  • Implemented support for <piecewise> elements
  • Implemented support for <domainofapplication> elements

  • 0.5.8 Installation testing [14 Dec 2001]

  • Completed remaining installation issues
  • Reduced the size of the install/editor images
  • Added a link to the documentation on the menus
  • Ensured documentation navigation works even without frames

  • 0.5.7 MathML Reference [10 Dec 2001]

  • Added the MathML Reference documentation

  • 0.5.6 Registry entries [04 Dec 2001]

  • Completed installation file directory issues
  • Completed installation registry entry issues
  • Implemented unified splash screen for install/editor
  • Prototype component method for loading control data from a file
  • Introduced .zed document type

  • 0.5.5 Install program [30 Nov 2001]

  • Prototype Windows Installer installation program
  • Prototype documentation section framework

  • 0.5.4 Startup performance [26 Nov 2001]

  • Implemented lazy loading for configuration expressions
  • Optimized internal linked list classes (ZList)
  • Created internal expandable array class (ZVector)

  • 0.5.3 Undo/redo operations [14 Nov 2001]

  • Implemented infinite level recursive undo and redo support
  • Introduced outfix templates as a shortcut for common operations
  • Improved support for constant templates to allow insertion

  • 0.5.2 Optional argument operations [13 Nov 2001]

  • Treating operators taking qualifiers as nary operators
  • Improved input handling for derivatives, integrals, others
  • Improved traversal order for repeated derivatives

  • 0.5.1 Configuration files [09 Nov 2001]

  • Improved configuration file support
  • Created configuration load/save HTML example
  • Implemented framework for saving UI customizations in the registry
  • Implemented hiding the palettes when the focus is lost
  • Implemented operations for binary operators
  • Implemented operations for nary operators
  • Implemented drag to select
  • Implemented Ctrl+TAB to switch between child windows

  • 0.5.0 Configuration Interface [02 Nov 2001]

  • Prototype load/save support for configuration files
  • Improved component methods for configuration customization
  • Implemented template matching for arguments and attributes

  • 0.4.9 Content templates [31 Oct 2001]

  • Improved template precedence conventions
  • Improved template support for many content elements
  • Improved template support for semantics elements

  • 0.4.8 Array operations [29 Oct 2001]

  • Improved support for editing matrix elements
  • Implemented basic operations for array operators
  • Implemented special matrix navigation operations
  • Allowing decimal point inside number token elements
  • Implemented additional templates for linear algebra elements
  • Prototype templates for <semantics> elements

  • 0.4.7 Delete operations [26 Oct 2001]

  • Implemented basic operations for nary operators
  • Implemented template support for general functions of any arity
  • Implemented an operation to replace parent with current expression
  • Removed delete template binding for unknown symbols

  • 0.4.6 Token navigation improvements [25 Oct 2001]

  • Additional declarations for associative operators
  • Fixes for interactions between navigation and token input mode
  • Implemented additional templates for constant/symbol elements
  • Implemented Open All Palettes

  • 0.4.5 Token input customization [24 Oct 2001]

  • Implemented customization framework for token element input
  • Implemented additional templates for relations and logic elements
  • Source code reorganizations for cursor input states

  • 0.4.4 Associative operations [19 Oct 2001]

  • Introduced named template identifiers for arrow keys
  • Introduced shift, assoc key modifiers for templates
  • Introduced operator properties for associative operators
  • Implemented basic templates for associative operators

  • 0.4.3 Initialization events [18 Oct 2001]

  • Implemented key binding support for the submit event
  • Implemented support for the ReadyState property
  • Improved drawing performance on initial update
  • Implemented the GrabFocus property
  • Improved control property pages to support source changes
  • Improved control property pages to support config changes
  • Improved control property pages to support AutoSize/GrabFocus
  • Added component methods for controlling the state of visible palettes

  • 0.4.2 Redraw optimizations [15 Oct 2001]

  • Improved internal framework for redrawing performance
  • Further improvements in handling focus changes
  • Implemented cursor color change on getting/losing the focus
  • Implemented additional templates for trig/hyperbolic operators
  • Implemented template support for general one-argument functions
  • Implemented support for clipboard formats for HTML
  • Improved drag and drop to respect the expression cursor
  • Improved mouse action framework

  • 0.4.1 Expression Id Interface [11 Oct 2001]

  • Added component methods to get/set expressions by identifier
  • Fixed various expression cursor issues

  • 0.4.0 Customization Interface [09 Oct 2001]

  • Completed multiple-character identifier input
  • Completed support for juxtaposition as multiplication
  • Implemented component methods for configuration customization
  • Created additional examples demonstrating component methods
  • Improved cut and paste to respect the expression cursor
  • Improved event support for initialization/synchronization
  • Improved expression navigation key support

  • 0.3.9 Token input [04 Oct 2001]

  • Prototype support for token element input
  • Prototype support for multiple-character identifiers

  • 0.3.8 Template precedence [03 Oct 2001]

  • Implemented template precedence
  • Implemented template specifier for final cursor position
  • Implemented Source toolbar and Option toolbar

  • 0.3.7 Content references [02 Oct 2001]

  • Added customization dialog for operator precedence table
  • Added customization dialog for operator traversal order
  • Fixed palette focus and event handling issues
  • Implemented content reference class (ZxReference)

  • 0.3.6 Feature requests [26 Sep 2001]

  • Improved expression navigation key support
  • Added Math/Palette menus to the frame menu
  • Added Close All Palettes

  • 0.3.5 Template input [21 Sep 2001]

  • Completed basic template operations
  • Completed basic keyboard accelerators
  • Completed basic template context menus
  • Completed basic template palettes

  • 0.3.4 Template palettes [20 Sep 2001]

  • Prototype palette windows for template input
  • Added palette menu to the context menus
  • Added template palette editor dialog box
  • Created quadratic equation palette demo

  • 0.3.3 Template menus [14 Sep 2001]

  • Prototype context menus for template input
  • Added template menus to the context menus
  • Added template menu editor dialog box
  • Created quadratic equation context menu demo

  • 0.3.2 Accelerator keys [13 Sep 2001]

  • Prototype keyboard accelerators for template input
  • Extended template names to support key assignments
  • Created quadratic equation keyboard accelerator demo

  • 0.3.1 Basic templates [12 Sep 2001]

  • Prototype named template editing support
  • Prototype initial template collection
  • Prototype expression placeholder handling
  • Created quadratic equation template input demo
  • Implemented template editor dialog box
  • Improved View/Edit menus/toolbars to handle template dialog
  • Implemented lookup methods for named templates
  • Implemented basic template input class (ZxTemplate)
  • Implemented template operator information class (ZxtOpInfo)

  • 0.3.0 Basic traversal [06 Sep 2001]

  • Completed basic file operations
  • Completed basic edit operations
  • Completed text and file drag and drop operations
  • Completed support for MathML content and presentation
  • Completed customizable content to presentation conversions
  • Completed parenthesization via operator precedence
  • Completed arrow key cursor control
  • Completed left mouse button click to select
  • Implemented shift arrow keys for extended selection
  • Implemented basic component programming interface methods
  • Implemented update events
  • Completed Alt+Enter edit source dialog box

  • 0.2.9 Colors and sizing [05 Sep 2001]

  • Updating the background color when system colors change
  • Implemented the AutoSize property

  • 0.2.8 Mouse cursor [30 Aug 2001]

  • Prototype support for mouse event selection
  • Implemented click to select operation
  • Improved cut and paste handling of the math element

  • 0.2.7 Arrow key cursor [23 Aug 2001]

  • Prototype support for arrow key traversal
  • Implemented arrow to select operation
  • Implemented minimum vertical extent for the expression cursor
  • Improved traversal support for elements with attributes

  • 0.2.6 Expression cursor [17 Aug 2001]

  • Prototype inorder expression tree traversal
  • Prototype visual expression cursor
  • Improved handling of content to presentation mappings
  • Added parent pointers to expression classes for traversal
  • Implemented expression cursor class (ZxCursor)
  • Converted uniquified string class to a real symbol class (ZSymbol)

  • 0.2.5 Operator precedence [14 Aug 2001]

  • Implemented operator precedence tables
  • Implemented operator elision and parentheses
  • Improved support for <lambda>, <forall>, <exists>, <partialdiff>
  • Improved support for unknown operator symbols

  • 0.2.4 Content to presentation [07 Aug 2001]

  • Prototype content to presentation conversions
  • Implemented content layout editor dialog box
  • Substantially complete MathML content layout patterns
  • Improved view menu for content/presentation output
  • Improved conversions for content operators
  • Implemented content layout expression class (ZxLayout)

  • 0.2.3 Presentation completeness [30 Jul 2001]

  • Prototype support for presentation MathML
  • Autodetection of presentation v. content
  • Substantially complete presentation conversions
  • Improved support for <partialdiff>
  • Implemented presentation expression class (ZxPresent)
  • Implemented syntax expression base class (ZExpr)
  • Improved reference counting support
  • Source code cleanups to foundation classes

  • 0.2.2 Drag and drop [26 Jul 2001]

  • Implemented file menu operations for the control
  • Implemented drag and drop in the control
  • Implemented Alt+Enter in the control

  • 0.2.1 Event firing [25 Jul 2001]

  • Implemented component property pages
  • Implemented application property dialogs
  • Implemented edit box for changing MathML content
  • Prototype event firing on content changes
  • Created initial HTML example with event handling

  • 0.2.0 ActiveX control [17 Jul 2001]

  • Prototype for the component edition
  • Implemented mapping for UI events and menu commands
  • Support for cut and paste for content MathML
  • Created initial HTML test file embedding the control
  • Implemented content expression class (ZxContent)

  • 0.1.9 Content completeness [13 Jul 2001]

  • Substantially complete content conversions
  • Added content conversions for attributes
  • Additional frame menu commands, toolbar buttons
  • Implemented content operator information class (ZxcOpInfo)
  • Implemented symbol table class (ZSymbolTable)
  • Implemented document serialization

  • 0.1.8 More content conversions [10 Jul 2001]

  • Improved content conversions for bound variables and qualifiers
  • Implemented property lists for strings
  • Implemented reference counting class (ZObject)
  • Implemented expression parsing, matching, substitution

  • 0.1.7 Content conversions [06 Jul 2001]

  • Implemented MathML to Zed content conversions
  • Prototype for the extensible operator framework
  • Improved Zed source view dialog

  • 0.1.6 Context menus [05 Jul 2001]

  • Prototype document context menu
  • Prototype Zed source view dialog
  • Implemented Zed pretty printing
  • Implemented internal Zed expression classes (Zx)

  • 0.1.5 Source reorganization [04 Jul 2001]

  • Improved MathML pretty printing
  • Internal source code reorganization

  • 0.1.4 Implementation inheritance [03 Jul 2001]

  • Implemented Zed implementation inheritance classes (Tz)
  • Implemented generic list type (ZList)
  • Implemented generic table type (ZTable)

  • 0.1.3 Interface inheritance [29 Jun 2001]

  • MathML pretty printing
  • Implemented document source output dialog
  • Implemented techexplorer wrapper classes (Te)
  • Implemented DOM interface inheritance classes (Tx)
  • Implemented uniquified string class (ZString)

  • 0.1.2 Cut and paste [27 Jun 2001]

  • Prototype for cut and paste support
  • Added version numbers to the About dialog

  • 0.1.1 Hello world [26 Jun 2001]

  • Prototype for the application edition
  • Displaying presentation MathML
  • Embedding the techexplorer ActiveX control