---
name: "SoXtMaterialList"
section: "3iv"
platform: "linux"
package: "inventor-doc"
version: "2.1.6+ds-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/SoXtMaterialList"
---

# SoXtMaterialList(3iv)

component which lets you edit a material interactively

## NAME

SoXtMaterialList — component which lets you edit a material interactively

## INHERITS FROM

SoXtComponent \> SoXtMaterialList

## SYNOPSIS

**#include \<Inventor/Xt/SoXtMaterialList.h\>**

**typedef void**	**SoXtMaterialListCB(void \*userData, const SoMaterial \*mtl)**

Methods from class SoXtMaterialList:

	**SoXtMaterialList(Widget parent = NULL, const char \*name = NULL, SbBool buildInsideParent = TRUE, const char \*dir = NULL)**\
 	**~SoXtMaterialList()**\
 	**addCallback(SoXtMaterialListCB \*f, void \*userData = NULL)**\
 	**removeCallback(SoXtMaterialListCB \*f, void \*userData = NULL)**

Methods from class SoXtComponent:

**virtual void**	**show()**\
 **virtual void**	**hide()**\
 **SbBool**	**isVisible()**\
 **Widget**	**getWidget() const**\
 **SbBool**	**isTopLevelShell() const**\
 **Widget**	**getShellWidget() const**\
 **Widget**	**getParentWidget() const**\
 **void**	**setSize(const SbVec2s &size)**\
 **SbVec2s**	**getSize()**\
 **Display \***	**getDisplay()**\
 **void**	**setTitle(const char \*newTitle)**\
 **const char \***	**getTitle() const**\
 **void**	**setIconTitle(const char \*newIconTitle)**\
 **const char \***	**getIconTitle() const**\
 **void**	**setWindowCloseCallback(SoXtComponentCB \*func, void \*data = NULL)**\
 **static SoXtComponent \***	**getComponent(Widget w)**\
 **const char \***	**getWidgetName() const**\
 **const char \***	**getClassName() const**

## DESCRIPTION

**This class is used to choose an SoMaterial** from palettes of predefined materials (for example, gold, silver, or bronze from the metal palette; emerald, pearl, or ruby from the stones palette). The chosen material is passed to callback functions registered with this component.

## METHODS

	**SoXtMaterialList(Widget parent = NULL, const char \*name = NULL, SbBool buildInsideParent = TRUE, const char \*dir = NULL)**\
 	**~SoXtMaterialList()**\
 The constructor is passed a directory name which serves as the home directory for the material palettes. You can have any number of palettes in this directory. A palette is a subdirectory that contains Inventor data files, where each file describes one material. Predefined Inventor materials are found in /usr/share/data/materials.

	**addCallback(SoXtMaterialListCB \*f, void \*userData = NULL)**\
 	**removeCallback(SoXtMaterialListCB \*f, void \*userData = NULL)**\
 Register functions that will be called whenever the user chooses a new material from the list. Each callback when invoked will be passed the **userData** pointer, along with a pointer to the newly selected material.

## SEE ALSO

**SoXtComponent, SoCallbackList, SoMaterial, SoXtMaterialEditor**
