Most of the data types in EZwgl are hidden from the user. There are only a few special data types an application programmer needs to be aware of. The important ones are the prototypes for callbacks and event handlers. Below is a list of these data types.
/* these can only be used as pointers */
typedef void EZ_Widget;
typedef void EZ_LabelPixmap;
typedef void EZ_TextProperty;
typedef void EZ_TextProp;
typedef void EZ_Item;
typedef void EZ_TreeNode;
typedef void EZ_Timer;
typedef void EZ_Bitmap;
typedef void EZ_Pixmap;
typedef void EZ_Input;
/* used in the GL */
typedef void EZ_GLImage;
typedef float EZ_Vector[4];
typedef float EZ_Vector3[3];
typedef float EZ_Matrix[4][4];
typedef float EZ_Material;
typedef float EZ_LightSrc;
typedef float EZ_LightModel;
/* prototypes for func ptrs */
typedef void (*EZ_CallBack)(void *object, void *data));
typedef void (*EZ_InputCallback)(void *object, void *data, int fd, int mask));
typedef void (*EZ_EventHandler)(void *object, void *data, int etype, XEvent *event));
typedef void (*EZ_MessageHandler)(void *msgIn, void *client_data);
typedef int (*EZ_DnDEncoder)(void *object, void *data, char **msg,int *len, int *needfree));
typedef int (*EZ_DnDDecoder)(void *object, void *data, char *msg,int len));
typedef void *(*EZ_DirTreeNodeCreator)(char *path, void *data);
typedef void (*EZ_MessageHandler)(void *msgIn, void *client_data);
typedef void (*EZ_WorkAreaGeometryManager)(void *GMData, EZ_Item **data, int nitems,
int Rx,int Ry,int Rw, int Rh, int xsp, int ysp,
int *w_ret, int *h_ret));