HP OpenVMS Systems Documentation

Content starts here

HP DECwindows Motif for OpenVMS
New Features

Previous Contents Index Changes to CDA External Reference Processing


CDA Run-Time Services supports relative file specifications for external references. Relative references are also supported: that is, a reference where the directory path is not fully specified but is relative to the directory path of the parent document. Restructuring CDA Shareable Images


The CDA Viewer includes two shareable images to allow installation on systems where DECwindows is not installed.

In DECwindows Motif for OpenVMS Version 1.2 software, shareable images that use the X services were renamed. Table 4-4 lists the shareable images in the various versions of the CDA Viewer.

Table 4-4 Names of Shareable Images
CDA Version Image Name Description
Version 1.6 CDA$ACCESS CDA Run-Time Services shareable image.
  DDIF$VIEWSHR Callable viewer widget.
Version 1.7 CDA$ACCESS CDA Run-Time Services shareable image.
The DDIF$DECW_VIEWSHR widget is a callable viewer widget that uses the LIB$FIND_IMAGE_SYMBOL routine to invoke the DDIF$DECW_VIEWSHR (DECwindows interface) and DDIF$CC_VIEWSHR (character-cell interface) widgets.
Version 1.8A or later CDA$ACCESS CDA Run-Time Services shareable image.
  DDIF$VIEWSHR12 The DDIF$VIEWSHR12 widget is a callable viewer widget that uses LIB$FIND_IMAGE_SYMBOL to invoke the DDIF$DECW_VIEWSHR12 (DECwindows interface) and DDIF$CC_VIEWSHR (character-cell interface) widgets.

By using the LIB$FIND_IMAGE_SYMBOL routine to reference the entry points to the DDIF$DECW_VIEWSHR, DDIF$DECW_VIEWSHR12, and DDIF$CC_VIEWSHR images, an application can dynamically determine whether it can execute in a given environment. The DDIF$VIEW.EXE application now replaces this routine.

The previous DDIF$VIEWSHR.EXE shareable image is still included to maintain compatibility with applications linked against it. However, new applications (and previous applications that take advantage of new features) should use the new shareable images.

4.2.2 DECterm Programming

This section describes features and changes related to DECterm programming. ReGIS Input Cursors


DECterm supports the following input cursors: cross-hair, rubber-band line, diamond, and rubber-band rectangle. To select input cursors use the S(C(In)) command. Table 4-5 shows the values of n.

Table 4-5 ReGIS Input Cursors---Cursor styles and Values
Cursor Style Variable n
Cross-hair Omitted
Cross-hair (default) 0
Diamond 1
Cross-hair 2
Rubber-band line 3
Rubber-band rectangle 4


If a shape other than the diamond cursor is desired when n is equal to 1, define the logical name DECW$DECTERM_REGIS_CURSOR to be one of the numbers defined in the SYS$LIBRARY:DECW$CURSOR.H file. Page-Movement Escape Sequences


The following page-movement escape sequences are implemented in DECterm:

    NP       <CSI> Pn U       Next Page
    PP       <CSI> Pn V       Previous Page
    PPA      <CSI> Pn P       Page Position Absolute
    PPB      <CSI> Pn R       Page Position Backward
    PPR      <CSI> Pn Q       Page Position Relative

Note that "Pn" is the number of pages to move; the exception is PPA, where "Pn" is the actual page number.


DECterm does not support cursor coupling; the cursor is always bound to the current (displayed) page.

4.3 OSF/Motif Toolkit (Xm) Programming

The following sections contain features related to OSF/Motif Toolkit (Xm) programming.

4.3.1 Drag-and-Drop Enabled Widgets


The drag-and-drop feature lets you move or copy information between widgets. This feature is provided primarily for programmers to incorporate the feature into their applications.

All DECwindows Motif for OpenVMS Version 1.2 and higher applications support the drag-and-drop feature, with the exception of Notepad. DECwindows Mail supports drag-and-drop in all windows except the main message area, where DECwindows Mail has its own drag-and-drop feature; you can use MB2 to move messages around with the SVN interface.

Drag-and-drop functionality has been implemented in the widgets listed in Table 4-6.

Table 4-6 Drag-and-Drop Widgets
Widget Drag Operation Drop Operation
XmText copy and move copy and move
XmTextField copy and move copy and move
XmLabel copy  
XmPushButton copy  
XmToggleButton copy  
XmList copy  

For information about how to include additional drag-and-drop functionality in applications and for an example of a drag-and-drop program, see the Open Software Foundation: OSF/Motif Programmer's Guide, Revision 1.2 manual.

4.4 HP Extensions to Motif (DXm) Programming

The following sections describe features related to HP (Digital) Extensions to Motif (DXm) programming.

4.4.1 SVN Widget Supports Extended Selection


The Structured Visual Navigation (SVN) widget now allows users to extend a range of selection using the Shift+Down-Arrow key sequence. Note that this change has also been applied to the sample program SVNMSAMPLE.C.

4.4.2 DXmCSText Input Method Support


X11R5 input method support was added to the DXmCSText widget. Specify input methods using the vendor shell XmNinputMethod resource. However, to maintain backward compatibility, the existing input method resources DXmNinputMethod and DXmNinputMethodType are still available.

4.5 X Toolkit Intrinsics (Xt) Programming

The following sections describe features related to the X Toolkit Intrinsics (Xt).

4.5.1 New Functions Available with X11R6.6 Upgrade


The following functions from X11R6.6 have been added to Xt.

Table 4-7 New Xt Functions Supported for X11R6.6
Function Name Description
XtAppAddBlockHook Registers a block hook procedure.
XtAppAddSignal Registers a signal callback.
XtAppGetExitFlag Supports controlled exit from main loop in a multithreaded application by returning the flag set by XtAppSetExitFlag.
XtAppLock Locks the application context in a multithreaded application.
XtAppSetExitFlag Supports controlled exit from main loop in a multithreaded application by setting a flag in the application context.
XtAppUnlock Releases an application context lock.
XtCancelSelectionRequest Cancels a multiple selection request.
XtChangeManagedSet Simultaneously removes from and adds to the geometry managed set of a composite widget.
XtCreateSelectionRequest Adds to a multiple selection request.
XtDispatchEventToWidget Dispatches an event to a specified widget.
XtGetClassExtension Locates a class extension record of an object class.
XtGetDisplays Lists the open displays associated with an application context.
XtGetKeyboardFocusWidget Determines which widget would be the end result of keyboard event forwarding for a keyboard event on a specified widget.
XtGetSelectionParameters Gets target parameters needed to perform a selection conversion.
XtHooksOfDisplay Retrieves the hook registration object for the specified display.
XtInsertEventTypeHandler Registers an event handler procedure by event type.
XtIsSessionShell Widget subclass verification function for the session shell widget.
XtLastEventProcessed Retrieves the last event processed by XtDispatchEvent.
XtNoticeSignal Notifies the X Toolkit that a signal has occurred.
XtOpenApplication Convenience function to initialize intrinsics, create an application context, open a display connection, and create an application shell.
XtProcessLock Locks the X Toolkit process lock.
XtProcessUnlock Releases the X Toolkit process lock.
XtRegisterDrawable Associates a drawable with a widget so that the drawable receives events as if part of the widget.
XtRegisterExtensionSelector Registers a procedure to receive extension events for a widget.
XtRemoveBlockHook Discontinues use of a block hook procedure.
XtRemoveEventTypeHandler Removes a registration created by XtInsertEventTypeHandler.
XtRemoveSignal Removes a registered signal callback.
XtReleasePropertyAtom Releases a reservation made by XtReservePropertyAtom.
XtReservePropertyAtom Reserves a unique atom for selection requests on a widget.
XtSendSelectionRequest Sends a multiple selection request.
XtSessionGetToken With the new session shell widget, gets an additional token for a save callback response with a deferred outcome.
XtSessionReturnToken Returns a token obtained using XtSessionGetToken when checkpoint processing is complete.
XtSetEventDispatcher Registers the event dispatcher procedure for events of the specified type.
XtSetSelectionParameters Associates target parameters with a selection.
XtToolkitThreadInitialize Initializes multithreaded support.
XtUnregisterDrawable Removes an association set by XtRegisterDrawable.
XtVaOpenApplication Convenience function to initialize intrinsics, create an application context, open a display connection, and create an application shell.

In addition, two new variables are provided in support of the new session shell widget:

  • sessionShellClassRec
  • sessionShellWidgetClass

See the X Toolkit Intrinsics - C Language Interface, X Window System, X Version 11 Release 6.4 specification available from X.Org for detailed information about each of these functions and variables.

4.5.2 Support for Easy Resource Configuration


Setting and changing resources in X Window System applications can be difficult for both the application developer and the end user. Resource Configuration Management (RCM) addresses this problem by changing the X Intrinsics to immediately modify a resource for the specified widget and each child widget in the hierarchy. As a result:

  • No sourcing of resource files is required.
  • The application does not need to be restarted for the new resource values to take effect.
  • The change occurs immediately.

RCM was made available as part of the X11R6.4 release and is now available with DECwindows Motif Version 1.3. However, note that RCM is not a standard part of the X Toolkit Intrinsics. It is neither an X Consortium standard nor part of the X Window System specifications. As a result, there are currently no public customization tools that take advantage of this feature.

If you are interested in learning more about RCM, see the X Toolkit Intrinsics - C Language Interface, X Window System, X Version 11 Release 6.4 Release Notes available from X.Org.

4.5.3 New Option for CompositeClassExtensionRec


With X11R6, some modifications were made to the widget internals, as described in the X Window System Toolkit manual.

In particular, a new option in the Composite Class extension record enables you to make bundled changes to the managed set of a Composite widget. Widgets that define a change-managed procedure that performs additions and deletions to the managed set of children in a single invocation should set allows_change_managed_set option to TRUE in the extension record.

For more information about the impact this new option may have on existing applications, see the HP DECwindows Motif for OpenVMS Release Notes.

4.5.4 New Default Format for XtResolvePathname


In XtResolvePathname, the default pathname is required to have certain properties when either no other path information is present in the call, or when it is referenced by the environment variable XFILESEARCHPATH. The former default OpenVMS format of the pathname consisted of a type-name-suffix substitution. The modified pathname now reflects the 6-part fallback, as specified by X11 Release 6.

The new pathname behavior is enabled by setting the DECW$VSW_COMPLIANT variable, as follows:


4.5.5 XtAppMainLoop Routine


Previously, if a program entered its event loop, (for example, by calling XtAppMainLoop) without having opened a display or specified a timer or event flag for the program to wait for (by calling XtAppAddTimeout or XtAppAddInput), Xlib terminated the program with the following error message:

        X Toolkit Error: Error in XMultiplexInput

Starting with DECwindows Motif for OpenVMS Version 1.2--5, if there is nothing to wait for, Xlib stalls waiting for input instead of terminating with an error status.

To allow Xlib to process events at a later time, applications should provide some means of regaining control, such as specifying an event flag (on DECwindows Motif for OpenVMS Version 1.2--6 and previous systems) or a logical connection number (on DECwindows Motif Version 1.3 and higher systems) by calling XtAppAddInput.

4.6 X Window System Library (Xlib)

The following sections describe features related to X Window System library (Xlib).

4.6.1 IPv6 Considerations


The Xlib library now supports both IPv4- and IPv6-compliant transport names discussed in HP DECwindows Motif for OpenVMS Management Guide.

The XOpenDisplay function cannot be called from a user-mode AST when IPv6 support is enabled. This function uses the TCP/IP Services getaddrinfo function which is not supported in user-mode ASTs. If your program must use the XOpenDisplay function from within a user-mode AST, you must ensure that the program is run in an environment where the DECW$IPV6_SUPPORT logical is defined as "DISABLED".

4.6.2 New Functions Available with X11R6.6 Upgrade


As part of the core system upgrade to X11R6.6, the following functions listed in Table 4-8 have been added to the X Window System Library (Xlib). Note that all functions are included in the current version of the DECW$XLIBSHR image.

Table 4-8 New Xlib Functions Supported for X11R6.6
Function Name Description
_XAllocTemp Thread-safe allocation of scratch data space for use by extension writers.
_XFreeTemp Frees the scratch data space allocated by _XAllocTemp.
XCloseOM Closes the specified output method.
XcmsSetCCCOfColormap Sets the color conversion context for the specified colormap.
XAddConnectionWatch Establishes a watch procedure callback for when internal connections are opened or closed.
XConvertCase Obtains the uppercase and lowercase forms of a KeySym.
XContextualDrawing Indicates whether text drawn with the current font set includes context-dependent drawing.
XCreateOC Creates an output context within the specified output method.
XDestroyOC Destroys an output context.
XDirectionalDependentDrawing Indicates whether the drawing functions implement text directionality.
XDisplayOfOM Returns the display associated with the specified output method.
XESetBeforeFlush Defines a procedure that will be called just before data is sent to the X server.
XExtendedMaxRequestSize Returns the maximum request size using extended length encoding (the BIG-REQUESTS extension).
XGetAtomNames Returns the names associated with the specified X atoms.
XGetOCValues Obtains the current output context values.
XGetOMValues Obtains the current output method values.
XInitThreads Initializes support for multiple threads.
XInternalConnectionNumbers Returns a list of the internal connections open for a specified display.
XInternAtoms Returns atoms for an array of names.
XLocaleOfOM Returns the locale associated with the specified output method.
XLockDisplay Locks a display to protect against concurrent access from multiple threads.
XOMOfOC Returns the output method associated with the specified output context.
XOpenOM Opens an X output method for the specified locale and modifiers.
XProcessInternalConnection Processes input available on an internal connection.
XReadBitmapFileData Reads a bitmap from a file and returns it as data.
XRegisterIMInstantiateCallback Registers an input method callback.
XRemoveConnectionWatch Removes a watch procedure established by XAddConnectionWatch.
XSetOCValues Specifies one or more output context values.
XSetOMValues Specifies one or more output method values.
XUnlockDisplay Removes a lock established by XLockDisplay.
XUnregisterIMInstantiateCallback Unregisters an input method instantiation callback.

See the Xlib - C Language X Interface, X Consortium Standard, X Version 11, Release 6.4 specification available from X.Org for detailed information about each of these functions.

Previous Next Contents Index