XtUnmanageChildren(3)

"

NAME
XtUnmanageChildren — remove a list of children from a parent widget's managed list.

SYNOPSIS
4 March 1996;

void XtUnmanageChildren(children, num_children)
    WidgetList children;
    Cardinal num_children;

  Inputs
6 March 1996;

children
    Specifies an array of child widgets. Each child must be of class RectObj or any subclass thereof.

num_children
    Specifies the number of elements in children.

  Subsidiary Inputs

Inputs into unmanageable children may also include food, drink, and discipline.

Description
5 March 1996;

XtUnmanageChildren() unmaps the specified widgets and removes them from their parent's geometry management. The widgets will disappear from the screen, and (depending on its parent) may no longer have screen space allocated for them.

Each of the widgets in the children array must have the same parent.

See the Algorithm section below for full details of the widget unmanagement procedure.

Usage

Unmanaging widgets is the usual method for temporarily making them invisible. They can be re-managed with XtManageChildren().

You can unmap a widget, but leave it under geometry management by calling XtUnmapWidget(). You can destroy a widget's window without destroying the widget by calling XtUnrealizeWidget(). You can destroy a widget completely with XtDestroyWidget().

If you are only going to unmanage a single widget, it is more convenient to call XtUnmanageChild(). It is often more convenient to call XtUnmanageChild() several times than it is to declare and initialize an array of widgets to pass to XtUnmanageChildren(). Calling XtUnmanageChildren() is more efficient, however, because it only calls the parent's change_managed() method once.

Algorithm

XtUnmanageChildren() performs the following:

    Issues an error if the children do not all have the same parent or if the parent is not a subclass of compositeWidgetClass.

    Returns immediately if the common parent is being destroyed; otherwise, for each unique child on the list, XtUnmanageChildren() performs the following:

-   Ignores the child if it already is unmanaged or is being destroyed.

-   Otherwise, if the child is realized, it makes it nonvisible by unmapping it.

    Calls the change_managed() method of the widgets' parent if the parent is realized.

Structures

The WidgetList type is simply an array of widgets:

typedef Widget *WidgetList;