XmRenderTableAddRenditions

library call

`XmRenderTableAddRenditions`

Creates a new render table

    #include <Xm/Xm.h>

    XmRenderTable XmRenderTableAddRenditions
    XmRenderTable oldtable
    XmRendition *renditions
    Cardinal rendition_count
    XmMergeMode merge_mode

## DESCRIPTION

`XmRenderTableAddRenditions` is a function to create a new render table that includes the renditions listed in oldtable, if there is one. This function also copies specified renditions (renditions) to the new render table. The first rendition_count renditions of the renditions array are added to the new table. If a rendition is tagged with a tag that matches a tag already in oldtable, then the existing rendition using that tag is either modified or freed and replaced with the new rendition, depending on the value of merge_mode. If oldtable is NULL, `XmRenderTableAddRenditions` creates a new render table containing only the specified renditions.

This function deallocates the original render table after extracting the required information. It is the responsibility of the caller to free the renditions of the renditions array by calling the `XmRenditionFree` function.

oldtable

- Specifies the render table to be added to.

renditions

- Specifies an array of renditions to be added.

rendition_count

- Specifies the number of renditions from renditions to be added.

merge_mode

- Specifies what to do if the `XmNtag` of a rendition matches that of one that already exists in oldtable. The possible values are as follows:

  `XmMERGE_REPLACE`

- Completely replaces the old rendition with the new one.

`XmMERGE_OLD`

- Replaces any unspecified values of the old rendition with the corresponding values from the new rendition.

`XmMERGE_NEW`

- Replaces the old rendition with the new rendition, replacing any unspecified values of the new rendition with the corresponding values from the old rendition.

`XmSKIP`

- Skips over the new rendition, leaving the old rendition intact.

## RETURN

If renditions is NULL or rendition_count is 0 (zero), this function returns oldtable. Otherwise, the function returns a new XmRenderTable. The function allocates space to hold this new render table. The application is responsible for managing this allocated space. The application can recover the allocated space by calling `XmRenderTableFree`.

## RELATED

&cdeman.XmRendition; and &cdeman.XmRenderTableFree;.