---
name: "XtCreatePopupShell"
section: "3"
platform: "linux"
package: "libxt"
version: "1.3.1-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/XtCreatePopupShell"
---

# XtCreatePopupShell(3)

create a popup shell

## NAME

XtCreatePopupShell, XtVaCreatePopupShell - create a popup shell

## SYNTAX

\#include \<X11/Intrinsic.h\>

Widget XtCreatePopupShell(const char \**name*, WidgetClass *widget\_class*, Widget *parent*, ArgList *args*, Cardinal *num\_args*);

Widget XtVaCreatePopupShell(const char \**name*, WidgetClass *widget\_class*, Widget *parent*, ...);

## ARGUMENTS

- *args*

  Specifies the argument list to override the resource defaults.

- *name*

  Specifies the text name for the created shell widget.

- *num\_args*

  Specifies the number of arguments in the argument list.

- *parent*

  Specifies the parent widget.

- *widget\_class*

  Specifies the widget class pointer for the created shell widget.

- *...*

  Specifies the variable argument list to override the resource defaults.

## DESCRIPTION

The **XtCreatePopupShell** function ensures that the specified class is a subclass of **Shell** and, rather than using insert\_child to attach the widget to the parent's children list, attaches the shell to the parent's pop-ups list directly.

A spring-loaded pop-up invoked from a translation table already must exist at the time that the translation is invoked, so the translation manager can find the shell by name. Pop-ups invoked in other ways can be created “on-the-fly” when the pop-up actually is needed. This delayed creation of the shell is particularly useful when you pop up an unspecified number of pop-ups. You can look to see if an appropriate unused shell (that is, not currently popped up) exists and create a new shell if needed.

## SEE ALSO

[XtCreateWidget(3)](/XtCreateWidget/3.md), [XtPopdown(3)](/XtPopdown/3.md), [XtPopup(3)](/XtPopup/3.md)\
 *X Toolkit Intrinsics - C Language Interface*\
 *Xlib - C Language X Interface*
