diff options
author | Dan Gudmundsson <[email protected]> | 2014-02-14 09:52:51 +0100 |
---|---|---|
committer | Dan Gudmundsson <[email protected]> | 2014-02-14 09:52:51 +0100 |
commit | 50093842d6e916a76e4ed42263b1b3f9489d896e (patch) | |
tree | 189db72c1c2c126632ec592e7dfd2e6078b79851 /lib/wx/c_src/wxe_callback_impl.cpp | |
parent | d10a115ab1e66938531b87bef20f886013e7b96b (diff) | |
parent | 7f68f9862f133e07e4b847c91c52fcf81aee79d5 (diff) | |
download | otp-50093842d6e916a76e4ed42263b1b3f9489d896e.tar.gz otp-50093842d6e916a76e4ed42263b1b3f9489d896e.tar.bz2 otp-50093842d6e916a76e4ed42263b1b3f9489d896e.zip |
Merge branch 'dgud/wx/fix-cb-cleanup/OTP-11699'
* dgud/wx/fix-cb-cleanup/OTP-11699:
wx: Test fixes compilation warning
wx: Do not warn for our own deprecated functions
wx: Rewrite eventhandling again
Diffstat (limited to 'lib/wx/c_src/wxe_callback_impl.cpp')
-rw-r--r-- | lib/wx/c_src/wxe_callback_impl.cpp | 27 |
1 files changed, 19 insertions, 8 deletions
diff --git a/lib/wx/c_src/wxe_callback_impl.cpp b/lib/wx/c_src/wxe_callback_impl.cpp index 8ba2557d82..e06f68dcbf 100644 --- a/lib/wx/c_src/wxe_callback_impl.cpp +++ b/lib/wx/c_src/wxe_callback_impl.cpp @@ -30,27 +30,27 @@ * CallbackData * * ****************************************************************************/ -wxeCallbackData::wxeCallbackData(ErlDrvTermData caller, int req, char *req_type, - int funcb, int skip_ev, wxeErlTerm * userData, - wxeEvtListener *handler_cb) - : wxObject() +wxeEvtListener::wxeEvtListener(ErlDrvTermData caller, int req, char *req_type, + int funcb, int skip_ev, wxeErlTerm * userData, + ErlDrvTermData from_port) + : wxEvtHandler() { + port=from_port; listener = caller; obj = req; fun_id = funcb; strcpy(class_name, req_type); skip = skip_ev; user_data = userData; - handler = handler_cb; } -wxeCallbackData::~wxeCallbackData() { - // fprintf(stderr, "CBD Deleteing %p %s\r\n", this, class_name); fflush(stderr); +wxeEvtListener::~wxeEvtListener() { + // fprintf(stderr, "CBD Deleteing %p %s\r\n", this, class_name); fflush(stderr); if(user_data) { delete user_data; } ptrMap::iterator it; - it = ((WxeApp *)wxTheApp)->ptr2ref.find(handler); + it = ((WxeApp *)wxTheApp)->ptr2ref.find(this); if(it != ((WxeApp *)wxTheApp)->ptr2ref.end()) { wxeRefData *refd = it->second; wxeReturn rt = wxeReturn(WXE_DRV_PORT, refd->memenv->owner, false); @@ -61,6 +61,17 @@ wxeCallbackData::~wxeCallbackData() { rt.addTupleCount(4); rt.send(); } + ((WxeApp *)wxTheApp)->clearPtr(this); +} + +void wxeEvtListener::forward(wxEvent& event) +{ +#ifdef DEBUG + if(!sendevent(&event, port)) + fprintf(stderr, "Couldn't send event!\r\n"); +#else +sendevent(&event, port); +#endif } /* *****************************************************************/ |