---
name: "XtIsRealized"
section: "3x"
platform: "linux"
package: "libxt-dev"
version: "4.3.0.dfsg.1-14sarge7"
release: "Debian 3.1 (Sarge)"
platforms: ["linux"]
url: "https://new.carta.tech/XtRealizeWidget/3x"
---

# XtIsRealized(3x)

realize and unrealize widgets

Part of [XtRealizeWidget(3x)](/XtRealizeWidget/3x.md).

## NAME

XtRealizeWidget, XtIsRealized, XtUnrealizeWidget - realize and unrealize widgets

## SYNTAX

void XtRealizeWidget(Widget *w*);

Boolean XtIsRealized(Widget *w*);

void XtUnrealizeWidget(Widget *w*);

## ARGUMENTS

- *w*

  Specifies the widget.

## DESCRIPTION

If the widget is already realized, *XtRealizeWidget* simply returns.  Otherwise, it performs the following:

- •

  Binds all action names in the widget's translation table to procedures (see Section 10.1.2).

- •

  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.

## SEE ALSO

XtManageChildren(3Xt)\
 *X Toolkit Intrinsics - C Language Interface*\
 *Xlib - C Language X Interface*
