Terminology and Concepts

Open C Dialogs are the pre-defined Open C dialogs, such as uc1616 or UF_UI_select_single.
 
UIStyler Dialogs are any dialogs created via the UIStyler.
 
Custom Dialogs are user created Motif dialogs.
 
Presentation APIs is the generic name to refer to all three types of dialogs: Open C dialogs, Custom Dialogs, and UIStyler dialogs, which are the different Open C methods for presenting a user defined interface.
 
Callback is a customer-supplied C routine which NX invokes automatically in response to an interactive event. The callback responds by performing the desired task.
 
Motif is a commercially available toolkit which allows for the creation of Graphical User Interfaces consisting of objects such as dialogs, push buttons, toggle buttons, etc. Motif requires another commercially available product called the X Toolkit.
 
Persistent Dialog is a dialog that remains visible and active throughout the entire NX session. Usually, you build this dialog using Motif. Clicking on a push button in a persistent dialog results in a call to its corresponding X Toolkit callback. This is also known as a custom dialog.
 
State Change Callback is a customer-supplied callback which is invoked automatically when the state of the NX user interface changes. When invoked, the state change callback should respond by making the appropriate changes to its persistent dialog, in order to protect the user from getting into any unpredictable states.
 
X Toolkit Callback is a customer-supplied callback which is invoked automatically in response to selecting an item on a custom dialog (such as a push button or toggle button). The X Toolkit callback can respond by displaying a Presentation API or performing related processing.
 
Concurrent Cooperative Access with NX provides a straight-forward set of protocols in your X Toolkit callbacks. Custom applications are synchronized with NX - when a custom callback executes an interactive Open C API, NX functionality is inhibited. Similarly, when NX has a Dialog Area 2 displayed (DA2), the custom application's functionality is inhibited. This synchronized behavior presents your custom applications as integral components of NX.
 
NX performs error checking to verify that custom applications follow the given protocols whenever possible. For example, if a custom application attempts to bring up a DA2 while NX has a DA2 displayed, an error message displays recommending specific modifications to the custom application.