Makes a post-order traversal of the widget tree rooted at the specified
widget and calls the change_managed procedure of each composite widget
that has one or more managed children.

Constructs an XSetWindowAttributes
structure filled in with information derived from the Core widget
fields and calls the realize procedure for the widget, which adds any widget-specific
attributes and creates the X window.

If the widget is not a subclass of
compositeWidgetClass, XtRealizeWidget returns; otherwise, it continues
and performs the following:

-

Descends recursively to each of the widget's
managed children and calls the realize procedures. Primitive widgets that
instantiate children are responsible for realizing those children themselves.

-

Maps all of the managed children windows that have mapped_when_managed
True. (If a widget is managed but mapped_when_managed is False, the
widget is allocated visual space but is not displayed. Some people seem
to like this to indicate certain states.)

If the widget is a top-level shell
widget (that is, it has no parent), and mapped_when_managed is True,
XtRealizeWidget maps the widget window.

The XtIsRealized function returns
True if the widget has been realized, that is, if the widget has a nonzero
X window ID.

Some widget procedures (for example, set_values) might wish
to operate differently after the widget has been realized.

The XtUnrealizeWidget
function destroys the windows of an existing widget and all of its children
(recursively down the widget tree). To recreate the windows at a later time,
call XtRealizeWidget again. If the widget was managed, it will be unmanaged
automatically before its window is freed.