diff options
Diffstat (limited to 'lib/wx/c_src/wxe_events.h')
-rw-r--r-- | lib/wx/c_src/wxe_events.h | 39 |
1 files changed, 19 insertions, 20 deletions
diff --git a/lib/wx/c_src/wxe_events.h b/lib/wx/c_src/wxe_events.h index 6bbb0dfa13..718e0ad120 100644 --- a/lib/wx/c_src/wxe_events.h +++ b/lib/wx/c_src/wxe_events.h @@ -30,6 +30,20 @@ public: int cID; }; +/* One EvtListener per listening erlang process */ +/* If callbacks are used the receiver is wxe_master process */ +/* and a wxeEvtListener pre callback is registered */ +class wxeEvtListener : public wxEvtHandler +{ + public: + wxeEvtListener(ErlDrvTermData Thisport) : port(Thisport) + {} + // {fprintf(stderr, "Creating %x\r\n", (unsigned int) this); fflush(stderr);} + ~wxeEvtListener() {} + void forward(wxEvent& event); + ErlDrvTermData port; +}; + void initEventTable(); int wxeEventTypeFromAtom(char *etype_atom); @@ -37,32 +51,17 @@ int wxeEventTypeFromAtom(char *etype_atom); class wxeCallbackData : public wxObject { public: - wxeCallbackData(ErlDrvTermData caller, void *req, char *req_type, - int funcb, int skip_ev, wxeErlTerm * userData); + wxeCallbackData(ErlDrvTermData caller, int req, char *req_type, + int funcb, int skip_ev, wxeErlTerm * userData, + wxeEvtListener *handler_cb); ~wxeCallbackData(); + wxeEvtListener * handler; ErlDrvTermData listener; int fun_id; - void * obj; + int obj; char class_name[40]; int skip; wxeErlTerm * user_data; }; -/* One EvtListener per listening erlang process */ -/* If callbacks are used the receiver is wxe_master process */ -/* and a wxeEvtListener pre callback is registered */ -class wxeEvtListener : public wxEvtHandler -{ -public: - wxeEvtListener(ErlDrvTermData Thisport) : port(Thisport) - {} - // {fprintf(stderr, "Creating %x\r\n", (unsigned int) this); fflush(stderr);} - void forward(wxEvent& event); - ~wxeEvtListener() { - ((WxeApp *)wxTheApp)->clearPtr(this); - // fprintf(stderr, "Deleteing %x\r\n", (unsigned int) this); fflush(stderr); - }; - ErlDrvTermData port; -}; - #endif |