XMetaL XMAX 19.0 Release Notes

Contents

Introduction

XMAX is an ActiveX control version of XMetaL Author, designed to be integrated into your application, providing a familiar, word-processing environment for creating and editing XML content. By embedding XMAX, users can leverage an intuitive interface similar to traditional word processors, streamlining the process of XML authoring.

New features and enhancements

Updated support of integration XMAX with Microsoft Edge

The integration of XMAX with Microsoft Edge has been enhanced, with the XMEdge ActiveX control included as a component of the XMetaL XMAX installation. This control can be embedded in Active Documents as a dynamic viewer for images or content and integrated into XMetaL Form Toolkit (XFT) dialogs and forms as a standard control. It allows developers to improve user workflows and enhance access to supplementary content within the document environment.

New API

The API provides methods for managing document elements and display properties. It includes methods and properties to toggle or check the visibility of graphic rendering, verify node presence, and remove ancestor elements while retaining child nodes. Display-related methods retrieve DPI scaling factors for the X and Y axes, and ranges can be collapsed to a single point.

XMAX has been updated to support the latest Windows updates

XMAX has been updated for compatibility with the latest Windows updates. This update includes improvements to enhance performance, security, and functionality, ensuring seamless integration with new features and enhancements in the latest Windows releases. The goal is to provide a smoother user experience while taking advantage of the latest advancements in the Windows operating system.

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

The development environments, build systems, and software development kits (SDKs) have been upgraded to the latest versions. This update ensures that developers have access to the most current tools, features, and optimizations, enhancing the overall development process. By incorporating the latest SDKs and build environments, the system now supports improved performance, security, and compatibility with modern technologies, enabling developers to create more efficient, reliable, and cutting-edge applications.

Various customer requests and defects were addressed and fixed.

Various customer requests and reported defects were evaluated, addressed, and resolved to enhance system reliability, optimize functionality, and improve the overall user experience.

API

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

XMetaL XMAX 19.0

API Description
Document::ToggleImage Toggles the visibility of the graphic rendering within the document. When invoked, it either displays or hides the image based on its current state.
Document::IsImageHidden Checks the visibility status of the graphic rendering. Returns: TRUE if the graphic rendering is currently hidden; otherwise, FALSE.
Document::HasNode Verifies whether a specific node exists within the document. Returns: TRUE if the node is present in the document; otherwise, FALSE
Document::UnwrapElement Removes the containing ancestor element.
DocumentHost::DpiScaleX Retrieves the scaling factor applied to the X-axis for the application window's DPI (dots per inch).
DocumentHost::DpiScaleY Retrieves the scaling factor applied to the Y-axis for the application window's DPI (dots per inch).
Range::CollapseNodes Collapse tags within the range.

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 customization.

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.