DragonFly On-Line Manual Pages

Search: Section:  


EZ_RegisterWidget(3)            EZWGL Functions           EZ_RegisterWidget(3)

NAME

EZ_RegisterWidget - register your own widget

SYNOPSIS

#include <EZ.h> void EZ_RegisterWidget( int type, void (*Setup) (EZ_Widget * widget), void (*ComputeSize) (EZ_Widget *widget , int *w , int *h), void (*DrawWidget) (EZ_Widget *widget), void (*FreeData) (EZ_Widget *widget)), void (*EventHandle) (EZ_Widget *widget, XEvent *event) );

ARGUMENTS

type Specifies an integer, must be bigger than 65536. Setup Specifies a procedure. This procedure is invoked whenever a new widget of the specified type is created. ComputeSize Specifies a procedure. This procedure will be invoked when the geometry manager needs to update the geometry of widgets of the specified type. DrawWidget Specifies a procedure. This procedure will be executed when the display of a widget of the given type need to be updated. FreeData Specifies a procedure. This procedure will be invoked when a widget of the specified type is being destroyed. EventHandle Specifies a generic event handler for widgets of the specified type.

DESCRIPTION

EZ_RegisterWidget registers a custom designed widget to the EZ widget library. After a new widget is registered, it can be handled the same as other widgets in the library. Here is an example #include "EZ.h" #define TEST_TYPE 65537 /* type starts at 65537 */ void TESTsetup(EZ_Widget *widget) { } void TESTfreeData(EZ_Widget *widget) { } void TESTcomputeSize(EZ_Widget *widget, int *w, int *h) { *w =200; *h=60; } void TESTdraw(EZ_Widget *widget) { EZ_DrawRectBorder(widget, EZ_GetWidgetWindow(widget)); } void TESTeventHandle(EZ_Widget *widget, XEvent *event) { if(event->type == Expose) TESTdraw(widget); } main(int ac, char **av) { EZ_Widget *frame1, *test, *btn; EZ_Initialize(ac,av,0); /* register our TEST widget */ EZ_RegisterWidget(TEST_TYPE, TESTsetup, TESTcomputeSize, TESTdraw, TESTfreeData, TESTeventHandle); frame1 = EZ_CreateWidget(EZ_WIDGET_FRAME, NULL, EZ_FILL_MODE, EZ_FILL_BOTH, EZ_LABEL_STRING, "Test Widget", NULL); test = EZ_CreateWidget(TEST_TYPE, frame1, EZ_BORDER_TYPE, EZ_BORDER_UP, EZ_FOREGROUND, "red", EZ_BACKGROUND, "#00afaf", EZ_BORDER_WIDTH, 6, NULL); btn = EZ_CreateWidget(EZ_WIDGET_NORMAL_BUTTON, tmp, EZ_LABEL_STRING, "A Button", EZ_BACKGROUND, "#af00af", NULL); EZ_DisplayWidget(frame1); EZ_EventMainLoop(); }

SEE ALSO

EZ_GetWritableGC(3) EZWGL EZ_RegisterWidget(3)

Search: Section: