EZ
Up Prev Next Contents


4.5 Setting and Extracting Client Data

The EZ_Widget data structure provides two special fields for applications to hook in application data to a widget. One is of type int and the other is of type void *. To set these fields, use

void EZ_SetWidgetIntData(EZ_Widget *widget, int i); void EZ_SetWidgetPtrData(EZ_Widget *widget, void *ptr); void EZ_SetWidgetClientData(EZ_Widget *widget, int i, void *ptr);

To extract client data from a widget, use

int EZ_GetWidgetIntData(EZ_Widget *widget); void *EZ_GetWidgetPtrData(EZ_Widget *widget); void EZ_GetWidgetClientData(EZ_Widget *widget, int *i, void **ptr);

EZ widgets are also capable of allocating and managing dynamic storage. This feature provides a convenient way for an application to attach more complex client data to a widget without worrying about memory management. It is particularly convenient for situations when one needs to attach more than one pointers to a widget and doesn't want to introduce a new data structure for it.

The EZ_Widget data structure contains a pointer to EZ_UnknownDataType which serves as the hook for dynamically allocated storage.

typedef union char c; short s; int i; long l; unsigned char uc; unsigned short us; unsigned int ui; unsigned long ul; float f; void *p; EZ_UnknownDataType;

Here are the relevent interface functions.

void EZ_SetWidgetUnknownData(EZ_Widget *widget, int idx, EZ_UnknownDataType value);

(re)allocate (if needed) and set the the idxth element to value.

int EZ_GetWidgetUnknownData(EZ_Widget *widget, int idx, EZ_UnknownDataType *ret);

retrieve the idxth element. Return 1 if succesful, return 0 otherwise.

EZ_UnknownDataType *EZ_GetWidgetUnknownDataPtr(EZ_Widget *widget);

return the dynamically allocated array.


Up Prev Next Contents

HTML Documentation Maintainance:Arturo Espinosa <arturo@nuclecu.unam.mx>