From ecaf8b83f8227724e9f862a0a8f64e6004a63d56 Mon Sep 17 00:00:00 2001 From: inmarket Date: Wed, 20 Aug 2014 12:18:27 +1000 Subject: Create a generic GWIN event. The frame now sends a GEVENT_GWIN_CLOSE event on closing. Unfortunately some gwin events have had a field renamed in order to generalise the structure. Demo's updated to match. --- src/gwin/gwidget.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'src/gwin/gwidget.c') diff --git a/src/gwin/gwidget.c b/src/gwin/gwidget.c index c9fff50e..e773dc6c 100644 --- a/src/gwin/gwidget.c +++ b/src/gwin/gwidget.c @@ -302,6 +302,24 @@ void _gwidgetRedraw(GHandle gh) { gw->fnDraw(gw, gw->fnParam); } +void _gwinSendEvent(GHandle gh, GEventType type) { + GSourceListener * psl; + GEventGWin * pge; + + // Trigger a GWIN Event + psl = 0; + while ((psl = geventGetSourceListener(GWIDGET_SOURCE, psl))) { + if (!(pge = (GEventGWin *)geventGetEventBuffer(psl))) + continue; + pge->type = type; + pge->gwin = gh; + #if GWIN_WIDGET_TAGS + pge->tag = (gh->flags & GWIN_FLG_WIDGET) ? ((GWidgetObject *)gh)->tag : 0; + #endif + geventSendEvent(psl); + } +} + void gwinWidgetClearInit(GWidgetInit *pwi) { char *p; unsigned len; -- cgit v1.2.3