Table of Contents

Name

XtCreateWidget, XtVaCreateWidget, XtCreateManagedWidget, XtVaCreateManagedWidget, XtDestroyWidget - create and destroy widgets

Syntax

Widget XtCreateWidget(name, widget_class, parent, args, num_args)
String name;

WidgetClass widget_class;

Widget parent;

ArgList args;

Cardinal num_args;

Widget XtVaCreateWidget(name, widget_class, parent, ...)
String name;

WidgetClass widget_class;

Widget parent;

Widget XtCreateManagedWidget(name, widget_class, parent, args, num_args)
String name;

WidgetClass widget_class;

Widget parent;

ArgList args;

Cardinal num_args;

Widget XtVaCreateManagedWidget(name, widget_class, parent, ...)
String name;

WidgetClass widget_class;

Widget parent;

void XtDestroyWidget(w)
Widget w;

Arguments

args
Specifies the argument list to override the resource defaults.
name
Specifies the resource name for the created widget, which is used for retrieving resources and, for that reason, should not be the same as any other widget that is a child of same parent.
num_args
Specifies the number of arguments in the argument list.
parent
Specifies the parent widget.
w
Specifies the widget.
widget_class
Specifies the widget class pointer for the created widget.
...
Specifies the variable argument list to override the resource defaults.

Description

The XtCreateWidget function performs much of the boilerplate operations of widget creation:

Note that you can determine the number of arguments in an argument list by using the XtNumber macro. For further information, see Section 11.1.

The XtCreateManagedWidget function is a convenience routine that calls XtCreateWidget and XtManageChild.

The XtDestroyWidget function provides the only method of destroying a widget, including widgets that need to destroy themselves. It can be called at any time, including from an application callback routine of the widget being destroyed. This requires a two-phase destroy process in order to avoid dangling references to destroyed widgets.

In phase one, XtDestroyWidget performs the following:

Entries on the destroy list satisfy the invariant that if w2 occurs after w1 on the destroy list then w2 is not a descendent of w1. (A descendant refers to both normal and pop-up children.)

Phase two occurs when all procedures that should execute as a result of the current event have been called (including all procedures registered with the event and translation managers), that is, when the current invocation of XtDispatchEvent is about to return or immediately if not in XtDispatchEvent.

In phase two, XtDestroyWidget performs the following on each entry in the destroy list:

See Also

XtAppCreateShell(3Xt) , XtCreatePopupShell(3Xt)
X Toolkit Intrinsics - C Language Interface
Xlib - C Language X Interface


Table of Contents