Button for 1977 Button for 1984 Button for 1990 Button for 1995 Button for MDC Button for notes Button for examples

MWAPI - Manipulating Attributes

Draft MDC Standard

3.1 Manipulating Attributes

When an M[UMPS] process begins execution, ^$WINDOW and ^$EVENT are not defined.

Values may be assigned to attributes by referencing ^$WINDOW, ^$DISPLAY or ^$EVENT as a glvn on the left hand side of the equal sign in an M[UMPS] MERGE command or as a setleft in an M[UMPS] SET command.

When attribute values are assigned with an M[UMPS] MERGE command, all visible effects occur at the successful conclusion of the command. Note that this does not require that the MERGE command modify an ssvn in an atomic fashion. Rather, it places the visible effects at the conclusion of the command.

If an application attempts to assign a value to a reserved attribute name, an error condition occurs with an ecode = "M46" and $EREF containing a value that indicates the ssvn reference for which the error occurred.

An entity is created at the conclusion of the first M[UMPS] command that assigns a value to one or more of its attributes. If a value is not explicitly assigned to an attribute when an entity is created, a default value may be provided by the MWAPI or the underlying windowing platform. If the default value is dependent upon the values of one or more attributes of another existing entity, the attribute values of that other entity at the time of the new entity’s creation are used. Subsequent changes to the existing entity’s attribute values do not affect previously established default values.

Note: If there are multiple attributes for which values must be assigned when an entity is created, the entity can only be created using the M[UMPS] MERGE command. All gadgets currently defined by this standard have this characteristic.

Certain attributes of an existing display, window, element, choice or event information structure can be modified by assigning new values to them. Attribute values are also modified by the MWAPI in response to user actions or other occurrences.

If a value domain is specified for an attribute, all values outside the specified domain are reserved. Unless specifically stated otherwise, if an application attempts to assign to an attribute a value that is outside the specified domain of that attribute, an error condition occurs with an ecode = "M47" and $EREF containing a value that indicates the ssvn reference for which the error occurred.

The value of an attribute, whether explicitly assigned by the application, or present by default, or set by the MWAPI, can be obtained by referencing ^$WINDOW, ^$DISPLAY or ^$EVENT.

In any context in which an attribute is modifiable, using the M[UMPS] KILL command to remove the value of an attribute causes the attribute to have the default value that it would have if the entity were created at that instant, if a default is specified, or to become undefined, if no default is specified.

In any context in which an attribute is not modifiable, an attempt by an application to assign a value to the attribute or to remove the value of the attribute is ignored.

An MTERM window that was created by the execution of an OPEN command is destroyed by using its wname as the device designation in an M[UMPS] CLOSE command. Any other window, an element, or a choice is destroyed by removing its wname, ename, or item, respectively, from ^$WINDOW with the M[UMPS] KILL command. Destroying an entity causes it to become undefined and causes all of the attributes of the entity to be removed from ^$WINDOW. When a window is destroyed, all descendant windows and elements are destroyed. When an element is destroyed, all descendant choices are destroyed

Execution of an M[UMPS] KILL command which has a killargument equal to "^$WINDOW" or "^$W" causes all windows defined in ^$WINDOW to be destroyed and causes the ^$WINDOW ssvn to become undefined. When a process executes an M[UMPS] HALT command, all of the windows that belong exclusively to it are destroyed and ^$EVENT becomes undefined.

Button for 1977 Button for 1984 Button for 1990 Button for 1995 Button for MDC Button for notes Button for examples

Copyright © Standard Documents; 1977-2024 MUMPS Development Committee;
Copyright © Examples: 1995-2024 Ed de Moel;
Copyright © Annotations: 2003-2008 Jacquard Systems Research
Copyright © Annotations: 2008-2024 Ed de Moel.

Some specifications are "approved for inclusion in a future standard". Note that the MUMPS Development Committee cannot guarantee that such future standards will indeed be published.

This page most recently updated on 14-Nov-2023, 21:53:30.

For comments, contact Ed de Moel (demoel@jacquardsystems.com)