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

# XmSetColorCalculation(3)

A function to set the procedure used for default color calculation

## NAME

**XmSetColorCalculation** — A function to set the procedure used for default color calculation

## SYNOPSIS

```
#include <Xm/Xm.h>
XmColorProc XmSetColorCalculation(
XmColorProc color_proc);
```

## DESCRIPTION

**XmSetColorCalculation** sets the procedure to calculate default colors. This procedure is used to calculate the foreground, top shadow, bottom shadow, and select colors on the basis of a given background color. If called with an argument of NULL, it restores the default procedure used to calculate colors.

- *color\_proc*

  Specifies the procedure to use for color calculation.

Following is a description of the **XmColorProc** type used by **XmSetColorCalculation**:

```
void (*color_proc) (background_color, foreground_color, select_color, top_shadow_color,
bottom_shadow_color)
        XColor  *background_color;
        XColor  *foreground_color;
        XColor  *select_color;
        XColor  *top_shadow_color;
        XColor  *bottom_shadow_color;
(void)
```

Specifies the procedure used to calculate default colors. The procedure is passed a pointer to an **XColor** structure representing the background color. The *pixel*, *red*, *green*, and *blue* members of this structure are filled in with values that are valid for the current colormap.

The procedure is passed pointers to **XColor** structures representing the foreground, select, top shadow, and bottom shadow colors to be calculated. The procedure calculates and fills in the *red*, *green*, and *blue* members of these structures. The procedure should not allocate color cells for any of these colors.

- *background\_color*

  Specifies the background color.

- *foreground\_color*

  Specifies the foreground color to be calculated.

- *select\_color*

  Specifies the select color to be calculated.

- *top\_shadow\_color*

  Specifies the top shadow color to be calculated.

- *bottom\_shadow\_color*

  Specifies the bottom shadow color to be calculated.

## RETURN

Returns the color calculation procedure that was used at the time this routine was called.

## RELATED

[**XmChangeColor**(3)](/XmChangeColor/3.md), [**XmGetColors**(3)](/XmGetColors/3.md), and [**XmGetColorCalculation**(3)](/XmGetColorCalculation/3.md).
