... uiprivExtern void uiQueueMain(void (*f)(void *data), void *data); typedef struct uiEvent uiEvent; typedef struct uiEventOptions uiEventOptions; typedef void (*uiEventHandler)(void *sender, void *args, void *data); struct uiEventOptions { size_t Size; bool Global; }; uiprivExtern uiEvent *uiNewEvent(const uiEventOptions *options); uiprivExtern void uiEventFree(uiEvent *e); uiprivExtern int uiEventAddHandler(uiEvent *e, uiEventHandler handler, void *sender, void *data); uiprivExtern void uiEventDeleteHandler(uiEvent *e, int id); uiprivExtern void uiEventFire(uiEvent *e, void *sender, void *args); uiprivExtern bool uiEventHandlerBlocked(const uiEvent *e, int id); uiprivExtern void uiEventSetHandlerBlocked(uiEvent *e, int id, bool blocked); uiprivExtern void uiEventInvalidateSender(uiEvent *e, void *sender); typedef struct uiControl uiControl; ... uiprivExtern void *uiControlImplData(uiControl *c); uiprivExtern uiEvent *uiControlOnFree(void); #ifdef __cplusplus ...