---
name: "Traits"
section: "5"
platform: "linux"
package: "openmotif"
version: "2.3.8-4"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/Traits"
---

# Traits(5)

Lists the traits used by the Motif Toolkit.

## NAME

**Traits** — Lists the traits used by the Motif Toolkit.

## DESCRIPTION

A trait is a characteristic of a widget. A widget holding a particular trait is announcing a particular ability to other widgets. The following table summarizes the standard Motif traits.

| | | |
| --- | --- | --- |
| **Purpose of Each Trait** |
| **Trait Name** | **A Widget Holding This Trait Can Do The Following:** |
|  |  |  |
| **XmQTaccessTextual** | Display one primary text parcel. |
|  |  |  |
| **XmQTactivatable** | Become a command button in a dialog box. |
|  |  |  |
| **XmQTcareParentVisual** | Borrow its parent's visual information. |
|  |  |  |
| **XmQTcontainer** | Manage container item children. |
|  |  |  |
| **XmQTcontainerItem** | Become a child of a container widget. |
|  |  |  |
| **XmQTdialogShellSavvy** | Become a child of a DialogShell. |
|  |  |  |
| **XmQTjoinSide** | Attach itself to one side of a suitable parent. |
|  |  |  |
| **XmQTmenuSavvy** | Become a menu child. |
|  |  |  |
| **XmQTmenuSystem** | Manage a menu system. |
|  |  |  |
| **XmQTnavigator** | Act as a navigator to a scrollable widget. |
|  |  |  |
| **XmQTscrollFrame** | Handle one or more navigator widgets. |
|  |  |  |
| **XmQTspecifyRenderTable** | Supply the names of its default render tables. |
|  |  |  |
| **XmQTtakesDefault** | Change its appearance to show that it is the default button. |
|  |  |  |
| **XmQTtransfer** | Transfer data to other widgets and/or receive data from other widgets |
|  |  |  |

Traits are not often used in Motif application programs. However, traits are very important to widget writers. For complete details on traits, see the *Motif Widget Writer's Guide*.

The following table lists the names of all widgets and gadgets in the standard Motif widget set that hold a particular trait. For example, the following table shows that the **XmQTcontainerItem** trait is held by the **XmIconGadget**. As the table suggests, some traits are held by many of the standard Motif widgets.

| | | |
| --- | --- | --- |
| **Trait Installation in** Standard Widget Set |
| **Trait Name** | **Is Installed on The Following Widgets:** |
|  |  |  |
| **XmQTaccessTextual** | **XmLabel** and all its subclasses; **XmLabelGadget** and all its subclasses; **XmText; XmTextField** |
|  |  |  |
| **XmQTactivatable** | **XmArrowButton; XmArrowButtonGadget; XmDrawnButton; XmPushButton;** XmPushButtonGadget |
|  |  |  |
| **XmQTcareParentVisual** | All the subclasses of **XmGadget** (but not **XmGadget** itself); **XmPrimitive** and all its subclasses |
|  |  |  |
| **XmQTcontainer** | **XmContainer** |
|  |  |  |
| **XmQTcontainerItem** | **XmIconGadget** |
|  |  |  |
| **XmQTdialogShellSavvy** | **XmBulletinBoard** |
|  |  |  |
| **XmQTjoinSide** | No widgets install this trait |
|  |  |  |
| **XmQTmenuSavvy** | **XmLabel; XmDrawnButton; XmCascadeButton; XmPushButton;** XmToggleButton; XmLabelGadget; XmCascadeButtonGadget; XmPushButtonGadget; XmToggleButtonGadget |
|  |  |  |
| **XmQTmenuSystem** | **XmRowColumn** |
|  |  |  |
| **XmQTnavigator** | **XmScrollBar; XmSpinBox** |
|  |  |  |
| **XmQTscrollFrame** | **XmNotebook; XmScrolledWindow** |
|  |  |  |
| **XmQTspecifyRenderTable** | **XmBulletinBoard** and all its subclasses; **XmMenuShell; XmVendorShell** |
|  |  |  |
| **XmQTtakesDefault** | **XmPushButton; XmPushButtonGadget** |
|  |  |  |
| **XmQTtransfer** | **XmContainer; XmLabel** and all its subclasses; **XmLabelGadget** and all its subclasses; **XmList; XmScale; XmText; XmTextField** |
|  |  |  |

The following table lists the traits installed on each widget. For example, the following table indicates that the **XmArrowButton** widget holds both the **XmQTactivatable** and **XmQTcareParentVisual** traits.

| | | |
| --- | --- | --- |
| **Trait Use by** |
| Widget |
| **Widget Name** | **Installs These Traits** |
|  |  |  |
| **=** |
|  |  |  |
| **XmArrowButton** | **XmQTactivatable, XmQTcareParentVisual** |
|  |  |  |
| **XmArrowButtonGadget** | **XmQTactivatable, XmQTcareParentVisual** |
|  |  |  |
| **XmBulletinBoard** | **XmQTdialogShellSavvy, XmQTspecifyRenderTable** |
|  |  |  |
| **XmCascadeButton** | **XmQTaccessTextual, XmQTcareParentVisual, XmQTmenuSavvy,** XmQTtransfer |
|  |  |  |
| **XmCascadeButtonGadget** | **XmQTaccessTextual, XmQTcareParentVisual, XmQTmenuSavvy,** XmQTtransfer XmComboBox |
|  |  |  |
| **XmCommand** | **XmQTspecifyRenderTable** |
|  |  |  |
| **XmContainer** | **XmQTcontainer, XmQTtransfer** |
|  |  |  |
| **XmDialogShell** | None |
|  |  |  |
| **XmDisplay** | None |
|  |  |  |
| **XmDragContext** | None |
|  |  |  |
| **XmDragIcon** | None |
|  |  |  |
| **XmDrawingArea** | None |
|  |  |  |
| **XmDrawnButton** | **XmQTaccessTextual, XmQTactivatable, XmQTcareParentVisual,** XmQTmenuSavvy, XmQTtransfer |
|  |  |  |
| **XmDropTransfer** | None |
|  |  |  |
| **XmFileSelectionBox** | **XmQTspecifyRenderTable** |
|  |  |  |
| **XmForm** | **XmQTspecifyRenderTable** |
|  |  |  |
| **XmFrame** | None |
|  |  |  |
| **XmGadget** | None |
|  |  |  |
| **XmIconGadget** | **XmQTcareParentVisual, XmQTcontainerItem** |
|  |  |  |
| **XmLabel** | **XmQTaccessTextual, XmQTcareParentVisual, XmQTmenuSavvy,** XmQTtransfer |
|  |  |  |
| **XmLabelGadget** | **XmQTaccessTextual, XmQTcareParentVisual, XmQTmenuSavvy,** XmQTtransfer |
|  |  |  |
| **XmList** | **XmQTcareParentVisual, XmQTtransfer** |
|  |  |  |
| **XmMainWindow** |
|  |  |  |
| **XmManager** |
|  |  |  |
| **XmMenuShell** | **XmQTspecifyRenderTable** |
|  |  |  |
| **XmMessageBox** | **XmQTspecifyRenderTable** |
|  |  |  |
| **XmNotebook** | **XmQTscrollFrame** |
|  |  |  |
| **XmPanedWindow** |
|  |  |  |
| **XmPrimitive** | **XmQTcareParentVisual** |
|  |  |  |
| **XmPushButton** | **XmQTaccessTextual, XmQTactivatable, XmQTcareParentVisual,** XmQTmenuSavvy, XmQTtakesDefault, XmQTtransfer |
|  |  |  |
| **XmPushButtonGadget** | **XmQTaccessTextual, XmQTactivatable, XmQTcareParentVisual,** XmQTmenuSavvy, XmQTtakesDefault, XmQTtransfer |
|  |  |  |
| **XmRowColumn** | **XmQTmenuSystem** |
|  |  |  |
| **XmScale** | **XmQTtransfer** |
|  |  |  |
| **XmScreen** |  |
|  |  |  |
| **XmScrollbar** | **XmQTcareParentVisual, XmQTnavigator** |
|  |  |  |
| **XmScrolledWindow** | **XmQTscrollFrame** |
|  |  |  |
| **XmSelectionBox** | **XmQTspecifyRenderTable** |
|  |  |  |
| **XmSeparator** | **XmQTcareParentVisual** |
|  |  |  |
| **XmSeparatorGadget** | **XmQTcareParentVisual** |
|  |  |  |
| **XmSpinBox** | **XmQTnavigator** |
|  |  |  |
| **XmText** | **XmQTaccessTextual, XmQTcareParentVisual, XmQTtransfer** |
|  |  |  |
| **XmTextField** | **XmQTaccessTextual, XmQTcareParentVisual,** XmQTtransfer |
|  |  |  |
| **XmToggleButton** | **XmQTaccessTextual, XmQTcareParentVisual,** XmQTtransfer |
|  |  |  |
| **XmToggleButtonGadget** | **XmQTaccessTextual, XmQTcareParentVisual, XmQTtransfer** |
|  |  |  |
| **VendorShell** | **XmQTspecifyRenderTable** |
|  |  |  |

The following table summarizes how the standard Motif widgets access traits. There are two general ways for a widget to access the traits of another widget.

One way is for a widget to ask another widget if it holds a particular trait. For example, **XmBulletinBoard** asks each of its children widgets if they hold the **XmQTtakesDefault** trait. **XmBulletinBoard** calls none of the trait methods of **XmQTtakesDefault**.

Another kind of access is when one widget calls another widget's trait method(s). For example, **XmBulletinBoard** calls the **getRenderTable** trait method of the **XmQTspecifyRenderTable** trait.

| | | | |
| --- | --- | --- | --- |
| **Trait Access By** |
| Widget |
| **Widget** | **Accesses These Traits:** | **Calls These Trait Methods:** |
|  |  |  |  |
| **XmArrowButton** | None | None |
|  |  |  |  |
| **XmArrowButtonGadget** | None | None |
|  |  |  |  |
| **XmBulletinBoard** | **XmQTtakesDefault** | None |
|  |  |  |  |
| **XmBulletinBoard** | **XmQTspecifyRenderTable** | **getRenderTable** |
|  |  |  |  |
| **XmCascadeButton** | **XmQTmenuSystem** | Many |
|  |  |  |  |
| **XmCascadeButton** | **XmQTspecifyRenderTable** | **getRenderTable** |
|  |  |  |  |
| **XmCascadeButtonGadget** | **XmQTmenuSystem** | Many |
|  |  |  |  |
| **XmCascadeButtonGadget** | **XmQTspecifyRenderTable** | **getRenderTable** |
|  |  |  |  |
| **XmComboBox** | **XmQTaccessTextual** | **getValue, setValue** |
|  |  |  |  |
| **XmCommand** | None | None |
|  |  |  |  |
| **XmContainer** | **XmQTcontainerItem** | **getValues, setValues** |
|  |  |  |  |
| **XmContainer** | **XmQTscrollFrame** | **getInfo** |
|  |  |  |  |
| **XmDialogShell** | **XmQTdialogShellSavvy** | **callMapUnmapCB** |
|  |  |  |  |
| **XmDisplay** | None | None |
|  |  |  |  |
| **XmDragContext** | None | None |
|  |  |  |  |
| **XmDragIcon** | None | None |
|  |  |  |  |
| **XmDrawingArea** | None | None |
|  |  |  |  |
| **XmDrawnButton** | **XmQTmenuSystem** | Many |
|  |  |  |  |
| **XmDrawnButton** | **XmQTspecifyRenderTable** | **getRenderTable** |
|  |  |  |  |
| **XmDropTransfer** | None | None |
|  |  |  |  |
| **XmFileSelectionBox** | **XmQTactivatable** | None |
|  |  |  |  |
| **XmForm** | None | None |
|  |  |  |  |
| **XmFrame** | None | None |
|  |  |  |  |
| **XmGadget** | None | None |
|  |  |  |  |
| **XmIconGadget** | **XmQTcontainer** | **getValues** |
|  |  |  |  |
| **XmIconGadget** | **XmQTspecifyRenderTable** | **getRenderTable** |
|  |  |  |  |
| **XmLabel** | **XmQTmenuSystem** | **various methods** |
|  |  |  |  |
| **XmLabel** | **XmQTspecifyRenderTable** | **getRenderTable** |
|  |  |  |  |
| **XmLabelGadget** | **XmQTmenuSystem** | **various methods** |
|  |  |  |  |
| **XmLabelGadget** | **XmQTspecifyRenderTable** | **getRenderTable** |
|  |  |  |  |
| **XmList** | **XmQTnavigator** | **getValues** |
|  |  |  |  |
| **XmList** | **XmQTscrollFrame** | **getInfo, init** |
|  |  |  |  |
| **XmList** | **XmQTspecifyRenderTable** | **getRenderTable** |
|  |  |  |  |
| **XmMainWindow** | **XmQTmenuSystem** | **various methods** |
|  |  |  |  |
| **XmManager** | None | None |
|  |  |  |  |
| **XmMenuShell** | **XmQTmenuSystem** | **various methods** |
|  |  |  |  |
| **XmMenuShell** | **XmQTspecifyRenderTable** | **getRenderTable** |
|  |  |  |  |
| **XmMessageBox** | **XmQTactivatable** | None |
|  |  |  |  |
| **XmNotebook** | **XmQTscrollFrame** | **init, addNavigator, removeNavigator** |
|  |  |  |  |
| **XmNotebook** | **XmQTnavigator** | **getValue** |
|  |  |  |  |
| **XmNotebook** | **XmQTactivatable** | **changeCB** |
|  |  |  |  |
| **XmNotebook** | **XmQTaccessTextual** | None |
|  |  |  |  |
| **XmPanedWindow** | None | None |
|  |  |  |  |
| **XmPrimitive** | None | None |
|  |  |  |  |
| **XmPushButton** | **XmQTmenuSystem** | **various methods** |
|  |  |  |  |
| **XmPushButton** | **XmQTspecifyRenderTable** | **getRenderTable** |
|  |  |  |  |
| **XmPushButtonGadget** | **XmQTmenuSystem** | **various methods** |
|  |  |  |  |
| **XmPushButtonGadget** | **XmQTspecifyRenderTable** | **getRenderTable** |
|  |  |  |  |
| **XmRowColumn** | **XmQTmenuSavvy** | **getAccelerator, getMnemonic, getActivateCBName** |
|  |  |  |  |
| **XmRowColumn** | **XmQTmenuSystem** | **various methods** |
|  |  |  |  |
| **XmScale** | **XmQTspecifyRenderTable** | **getRenderTable** |
|  |  |  |  |
| **XmScreen** | None | None |
|  |  |  |  |
| **XmScrollbar** | None | None |
|  |  |  |  |
| **XmScrolledWindow** | **XmQTnavigator** | **getValue** |
|  |  |  |  |
| **XmScrolledWindow** | **XmQTscrollFrame** | **init, addNavigator** |
|  |  |  |  |
| **XmSelectionBox** | **XmQTaccessTextual** | **setValue;** |
|  |  |  |  |
| **XmSelectionBox** | **XmQTactivatable** | None |
|  |  |  |  |
| **XmSeparator** | None | None |
|  |  |  |  |
| **XmSeparatorGadget** | None | None |
|  |  |  |  |
| **XmSpinBox** | **XmQTaccessTextual** | **setValue** |
|  |  |  |  |
| **XmText** | **XmQTaccessTextual** | **getValue, setValue** |
|  |  |  |  |
| **XmText** | **XmQTnavigator** | **getValue** |
|  |  |  |  |
| **XmText** | **XmQTscrollFrame** | **getInfo, init** |
|  |  |  |  |
| **XmText** | **XmQTspecifyRenderTable** | **getRenderTable** |
|  |  |  |  |
| **XmTextField** | **XmQTspecifyRenderTable** | **getRenderTable** |
|  |  |  |  |
| **XmToggleButton** | **XmQTmenuSystem** | **various methods** |
|  |  |  |  |
| **XmToggleButton** | **XmQTspecifyRenderTable** | **getRenderTable** |
|  |  |  |  |
| **XmToggleButtonGadget** | **XmQTmenuSystem** | **various methods** |
|  |  |  |  |
| **XmToggleButtonGadget** | **XmQTspecifyRenderTable** | **getRenderTable** |
|  |  |  |  |
| **VendorShell** | **XmQTspecifyRenderTable** | **getRenderTable** |
|  |  |  |  |

## RELATED

The following reference pages are documented in the *Motif Widget Writer's Guide*: **XmeTraitSet**(3), **XmeTraitGet**(3), **XmQTaccessTextual**(3), **XmQTactivatable**(3), **XmQTcareParentVisual**(3), **XmQTcontainer**(3), **XmQTcontainerItem**(3), **XmQTdialogShellSavvy**(3), **XmQTjoinSide**(3), **XmQTmenuSavvy**(3), **XmQTmenuSystem**(3), **XmQTnavigator**(3), **XmQTscrollFrame**(3), **XmQTspecifyRenderTable**(3), and **XmQTtakesDefault**(3).
