#include <Xm/Xm.h>Cardinal XmGetSecondaryResourceData (widget_class, secondary_data_return) WidgetClass widget_class; XmSecondaryResourceData **secondary_data_return;
When a widget class has such resources, this function provides descriptions of the resources in one or more data structures. XmGetSecondaryResourceData takes a widget class argument and returns the number of these data structures associated with the widget class. If the return value is greater than 0, the function allocates and fills an array of pointers to the corresponding data structures. It returns this array at the address that is the value of the secondary_data_return argument.
The type XmSecondaryResourceData is a pointer to a structure with
two members that are useful to an application: resources
, of type
XtResourceList, and num_resources
, of type Cardinal.
The resources
member is a list of the widget resources that are
not accessible using Xt functions.
The num_resources
member is the length of the resources
list.
If the return value is greater than 0, XmGetSecondaryResourceData
allocates memory that the application must free.
Use XtFree to free the resource list in each structure (the value
of the resources
member), the structures themselves, and the array
of pointers to the structures (the array whose address is
secondary_data_return).
XmSecondaryResourceData * block_array ; Cardinal num_blocks, i, j ; if (num_blocks = XmGetSecondaryResourceData (xmTextWidgetClass, &block_array)) { for (i = 0; i < num_blocks; i++) { for (j = 0 ; j < block_array[i]->num_resources; j++) { printf("%s\n", block_array[i]->resources[j].resource_name); } XtFree((char*)block_array[i]->resources); XtFree((char*)block_array[i]); } XtFree((char*)block_array); }