Here is an example that uses a simple event handler.
/************************************** ExampleEHandler *****************************/
#include "EZ.h"
static void frameEventHandler(EZ_Widget *widget, void *data, int etype, XEvent *xev)
{
EZ_Widget *label = (EZ_Widget *)data;
char str[256];
switch(etype)
{
case EZ_BUTTON1_PRESS:
sprintf(str, "Button1Press: (x,y)=(%d, %d)",
EZ_PointerCoordinates[0],EZ_PointerCoordinates[1]);
break;
case EZ_BUTTON1_RELEASE:
sprintf(str, "Button1Release: (x,y)=(%d, %d)",
EZ_PointerCoordinates[0],EZ_PointerCoordinates[1]);
break;
case EZ_POINTER_MOTION:
sprintf(str, "PointerMotion: (x,y)=(%d, %d)",
EZ_PointerCoordinates[0],EZ_PointerCoordinates[1]);
break;
case EZ_KEY_PRESS:
sprintf(str,"KeyPress: key=%c, keycode=%d", EZ_PressedKey,EZ_PressedKey);
break;
case EZ_LEAVE_WINDOW:
sprintf(str, "LeaveWindow");
break;
case EZ_ENTER_WINDOW:
sprintf(str, "EnterWindow");
break;
case EZ_REDRAW:
sprintf(str, "Redraw");
break;
default:
str[0]=0;
break;
}
if(str[0]) EZ_ConfigureWidget(label, EZ_LABEL_STRING, str, 0);
}
main(int ac, char **av)
{
EZ_Widget *frame, *label;
EZ_Initialize(ac,av,0);
frame = EZ_CreateWidget(EZ_WIDGET_FRAME, NULL,
EZ_ORIENTATION, EZ_VERTICAL_BOTTOM,
EZ_SIZE, 400, 300,
0);
label = EZ_CreateWidget(EZ_WIDGET_LABEL, frame,
EZ_EXPAND, True,
EZ_PROPAGATE, False,
EZ_BORDER_WIDTH, 2,
EZ_BORDER_TYPE, EZ_BORDER_SUNKEN,
EZ_TEXT_LINE_LENGTH, 80,
EZ_FOREGROUND, "red",
EZ_BACKGROUND, "bisque2",
0);
EZ_AddEventHandler(frame, frameEventHandler, label, 0);
EZ_DisplayWidget(frame);
EZ_EventMainLoop();
}
/************************************** ExampleEHandler *****************************/