C_PROCESS

Process a composite window

WSupported on Windows
USupported on Unix
VSupported on OpenVMS
NSupported in Synergy .NET
xcall C_PROCESS(container_id [, a_methoddata1, ..., a_methoddata20])

container_id

The ID for the container window. This must be the ID of a composite container window (created with the DC_CREATE subfunction of %C_CONTAINER). Any other value will cause a fatal Toolkit error. (n)

a_methoddata1 through a_methoddata20

(optional) Up to 20 additional data arguments. See the Discussion. (any)

C_PROCESS processes composite windows by looping through and processing child windows and child lists as well as enabled buttons on the composite container window.

If there are no placed and enabled child windows, child lists, or buttons on the container, C_PROCESS immediately returns control to the routine that called it.

C_PROCESS starts on whatever child currently has context. By default, it starts with the first child window or list in the tabbing order, which is the child with the tabbing index of 1. (If the window has no child, C_PROCESS starts with the first button on the container window.) However, if the container has previously been processed, it starts with the child that was active when C_PROCESS last exited. Additionally, if the DC_CONTEXT subfunction for %C_CONTAINER has been used to specify a child, C_PROCESS starts with that child.

When the processing for a button or child has finished, C_PROCESS checks g_entnam to see if a C_ menu entry that it recognizes is active and, if one is, moves focus as instructed by the C_ menu entry. (Recognized menu entries are listed below.) It then continues the loop by processing the newly active child or button. However, if a processing method or button on the container returns after signaling a menu entry that C_PROCESS does not recognize, C_PROCESS returns control to the routine that called it, and the menu entry is passed on to that routine.

When C_PROCESS is first called, it does not check g_entnam, so using %M_SIGNAL to signal one of the C_ menu entries before calling C_PROCESS will not work. Use the DC_CONTEXT subfunction for %C_CONTAINER to instruct C_PROCESS to start on a child or button other than the default.

Note the following:

To process a child window or list, C_PROCESS calls either the processing method when the child was added (with the DC_ADD subroutine for %C_CONTAINER) or the default Toolkit-supplied method as listed in the table below.

Processing Methods

Child type

Default processing method

ActiveX window

C_METHAX

Composite window

C_METHCTR

Input window

C_METHINP

List

C_METHLST

.NET form window

C_METHNET

Selection window

C_METHSEL

Tab set window

C_METHTS

Text window

C_METHTXT

Other

C_METHNOP

C_PROCESS recognizes the following menu entries:

For the child processing methods (default or otherwise), C_PROCESS passes the following: the container ID, the type of child (window or list), the child ID, the reason the child was activated, and as many method data arguments as are passed in the C_PROCESS call. Additionally, note that

The a_methoddata arguments are optional and are ignored unless C_PROCESS invokes one of the following: the default method for input windows (C_METHINP), the default method for lists (C_METHLST), the default method for selection windows (C_METHSEL), or a method you have created that requires these arguments. Note that for C_METHINP, C_METHLST, and C_METHSEL,

See the %C_CONTAINER Examples.