XMetaL XMAX 18.0 Release Notes

Contents

Introduction

XMAX is an ActiveX control version of XMetaL Author that you can use from within your application to create a familiar word-processing environment for XML content creation.

New features and enhancements

XML Editor Styling Assistant

The Styling Assistant application is part of the XMetaL XMAX installation.

Developers can extend their applications by providing users with a WYSIWYG environment for modifying active document customization default CSS styles.

XML Editor Styling Assistant allows users to add/overwrite new CSS styles to existing active document customization or generate new default CSS styles. Users can switch between "user-defined" and "default customizations".

XML Editor Styling Assistant allows users with initial knowledge of CSS editing to change active document selected element styles: text font family, size, style, weight, color, decoration, background, alignment, display style, whitespace, etc.

XML Editor Styling Assistant commands include:

  • Adding a new style for the selected element
  • Selecting existing CSS selectors for active document-selected elements when it is possible
  • Copying/Pasting/Deleting/Changing orders of styles
  • Editing existing styles in text mode
  • Importing styles from default document customization or existing CSS file
  • Add and traverse @import statements.
  • Synchronize active document selected element attributes value with CSS wizard.
  • Find the selector by getting Active Document current element name or attribute.
  • Generate default CSS style for active document based on existing CTM rules.
  • Show the location of the selected CSS file in Windows Explorer.
  • Open the selected CSS file with the system default or the customer's preferred CSS editor.
  • Reload current customization CSS styles.
  • Apply CSS style changes to all opened XMetaL documents.
  • Restore CSS selectors from the original file.
  • Restore CSS selectors from the session first saved file.

Support of integration with Microsoft Edge

The XMEdge ActiveX control is part of the XMetaL XMAX installation.

The XMEdge ActiveX control can be embedded into the Active Document as a viewer for an image or referenced content.

Development, build environments and SDKs upgraded to the most recent versions.

Various customer requests and defects were addressed and fixed.

API

Please refer to the XMetaL Developer documentation (when available) for more information.

XMetaL XMAX 18.0

API Description

DocumentHost::XMCreateProcess

Runs an application specified in the command line parameter. Returns Application process ID.
DocumentHost::XMCreateProcessEx Runs an application specified in the command line parameter. Returns WshScriptExec object, which provides the status of the created process with access to the StdIn, StdOut, and StdErr channels.
DocumentHost::XMSendKeys Sends keyboard keystrokes specified in the input parameter to the active window.
DocumentHost::CSSEditorCommand Controls interactions with XML Editor Styling Assistant application.
Documnt::SetHighlightedRangeLocation Additional XMAX API for facilitating the development of document text highlighting customizations.

XMetaL XMAX 17.0

API Description
DocumentHost::RunScript

Allows running the XMAX script assigned to DocumentHost::CustomProperties, with VARIANT-type parameter.

DocumentHost::RunScriptOnIdle

Allows running the XMAX script assigned to DocumentHost::CustomProperties asynchronously after XMAX has entered to an idle state. Optional parameters specify additional delay time and VARIANT-type parameter.

DocumentHost::FireEvent Allows XMAX script customization firing generic event to host application with name-value pair parameters.
DocumentHost::Selection Allows XMAX script customization getting Selection object.

Document::GetHighlightedRangeState Document::

GetHighlightedRangeType Document::

GetHighlightedRangesIDs Document::

SetHighlightedRangeType

Additional XMAX APIs facilitate development of document text highlighting customizations.

XMetaL XMAX 16.0

API Description
DocumentHost::RunMacroOnIdle Runs the XMAX macro script asynchronously after XMAX has entered to an idle state. Optional parameters specify additional delay time and a VARIANT-type parameter that can be passed to the macro.
DocumentHost::RunAfterProcessDone Runs the XMAX macro script asynchronously after a specific Windows process was terminated and XMAX has entered to an idle state. Optional parameters specify a VARIANT-type parameter that can be passed to the macro.
DocumentHost::AddFileChangeMacro Runs the XMAX macro script asynchronously after predefined file(s) were changed and XMAX has entered to an idle state. Optional parameters specify the full file path or pattern and a VARIANT-type parameter that can be passed to the macro. XMetaL provides additional default parameters containing the full path of the file that triggered the event.
DocumentHost::IsFileChangeMacro

DocumentHost::RemoveFileChangeMacro

DocumentHost::IsProcessRunning

DocumentHost::TerminateProcessEx

Additional XMAX APIs allow to maintain a customization based on an asynchronous event.
DocumentHost::FileToString Returns the contents of the file specified as a string.
DocumentHost::UniqueFileName Returns a filename, starting with the specified prefix, that is not present in the specified folder.
DocumentHost::FileExists Returns a boolean indicating whether the specified file exists.
DocumentHost::ReadableFileExists Indicates whether the file specified exists and is readable.
DocumentHost::WritableFileExists Indicates whether the file specified exists and is writable.
DocumentHost::WritableDirExists Indicates whether the folder specified exists and is writable.
DocumentHost::ShowFindDialog Shows Find and Replace dialog.
DocumentHost::ShowSpellChecker Show Spell Checking dialog, if it is installed.
DocumentHost::IsSpellCheckerInstalled Check if the Spell Checker is installed.
DocumentHost::CustomProperties Returns a NameVariantProperties object for the custom properties of the DocumentHost.

XMetaL XMAX 15.0

API Description
Document.ZoomPercentage Property that returns or sets the zoom percentage of a document.

XMetaL XMAX 14.0

API Description
IXMetaLControlEvents::OnClick Existing event sink method will now be called whenever a triple-click occurs in Tags On or Normal view modes and is indicated by a clickCount parameter value of 3.
IXMetaLControlEvents::OnDropFiles New event sink method is called when files are dropped onto the XMAX window and allows overriding the built-in behavior.
DocumentHost::DropFileCount Property that returns the number of files drag'n'dropped onto the XMAX window. Property is only valid during the On_Drop_Files event macro.
DocumentHost::DropFileName Property that returns the fullpath filename drag'n'dropped onto the XMAX window for a given index. Property is only valid during the On_Drop_Files event macro.
Find::ExecuteEx Method adds a new parameter over the old Find.Execute method that causes highlighting all matching occurences in the editing window.

XMetaL XMAX 13.0

API Description
IXMetaLControl.AddChangedNodeKey Adds customization-specific changed node lists identified by the given key string.
IXMetaLControl.RemoveChangedNodeKey Removes customization-specific changed node lists identified by the given key string.
DOMElement.wordCount XMetaL-specific DOM extension property that returns the number of words including those in all child elements.

Known issues

After uninstalling XMetaL, some of the XMAX customization dialogs and spell-checking features may stop working.

The implementation of certain XMetaL features requires the use of dynamic-link libraries (DLLs) that are shared with other XMetaL products.

In a system with multiple XMetaL installations, removing one product may cause remaining products to lose certain features.

To correct this issue, goto the Add/Remove Program control panel, select the XMetaL product which is not working, click the "Change" option and wait for the installation wizard to appear. After the installation wizard appears, follow the wizard's instructions and choose the "Repair" option when presented.

Using background-color or border CSS properties may slow editing

Setting CSS background-color or border for elements that contain large amounts of content may compromise the performance of the editor. Workaround: use a CSS override to set 'border:none' for the element. See the online Help for information on overriding base formatting

Background spell checking updated during periods of inactivity

Background spell checking has been optimized to update during periods of inactivity. Consequently, if text is entered at a very high rate, the updating of red underline markers on the page may be delayed

OnContextMenu

The event macro OnContextMenu returns different data, depending on the user context:

When no document is open in the XMAX editor

  • Right-clicking returns screen coordinates.
  • Pressing Shift+F10 returns the screen coordinates of the top left corner of the XMAX editor.
  • The application returns the screen coordinates of the top left corner of the XMAX editor.

When a document is open in the XMAX editor

  • Right-clicking returns screen coordinates of the mouse to the XMAX editor.
  • Pressing Shift+F10 returns the screen coordinates of the cursor to the XMAX editor.
  • The application returns the screen coordinates of the cursor to the XMAX editor

Some properties do not work during debugging

If you are debugging scripts in XMAX from the XMetaL Developer IDE, the property Document.IsValid does not return reliable results. In addition, the property Selection.IsValid may take a very long time to return values, or cause your development system to lock up altogether.

Debugging a customization with an XMAX configuration may cause a memory read problem message

When a customization is configured to use a custom container application written in VB.NET for XMAX when debugging, an error message reading "The memory could not be "read"." is displayed when the custom container application is closed. This error can be ignored. The error does not occur when the customization is built.

XMetaL XMAX appears to have focus when it really doesn't

Sometimes XMetaL XMAX may appear to have focus (colored title bar and flashing cursor), but in reality does not have focus. In those cases, any input from the keyboard affects the application that does have focus (e.g., Internet Explorer if it hosts the XMAX control). In some cases this can cause unpredictable behavior or even result in a crash and loss of data.

There following workarounds are available, depending on the context:

  • If you are working with a document, click anywhere within the XMAX window to set focus.
  • If you are within the execution of a script, use the SetFocus(); method to set focus on the XMAX window.