case 98: { // wxeEvtListener::wxeEvtListener wxeEvtListener *Result = new wxeEvtListener(Ecmd.port); rt.addRef(getRef((void *)Result,memenv), "wxeEvtListener"); break; } case 99: { // wxeEvtListener::destroy wxObject *This = (wxObject *) getPtr(bp,memenv); rt.addAtom("ok"); delete This; break; } case 100: { // wxEvtHandler::Connect wxeEvtListener *Listener = (wxeEvtListener *) getPtr(bp,memenv); bp += 4; wxEvtHandler *This = (wxEvtHandler *) getPtr(bp, memenv); bp += 4; int * winid = (int *) bp; bp += 4; int * lastId = (int *) bp; bp += 4; int * skip = (int *) bp; bp += 4; int * haveUserData = (int *) bp; bp += 4; wxeErlTerm * userData = NULL; int * fun_cb = (int *) bp; bp += 4; int * eventTypeLen = (int *) bp; bp += 4; int * class_nameLen = (int *) bp; bp += 4; if(*haveUserData) { userData = new wxeErlTerm(Ecmd.bin[0]); } int eventType = wxeEventTypeFromAtom(bp); bp += *eventTypeLen; char *class_name = bp; bp+= *class_nameLen; if(eventType > 0 ) { wxeCallbackData * Evt_cb = new wxeCallbackData(Ecmd.caller,getRef(This, memenv), class_name,*fun_cb, *skip, userData, Listener); This->Connect((int) *winid,(int) *lastId,eventType, (wxObjectEventFunction)(wxEventFunction) &wxeEvtListener::forward, Evt_cb, Listener); rt.addAtom("ok"); } else { rt.addAtom("badarg"); rt.addAtom("event_type"); rt.addTupleCount(2); } break; } case 101: { // wxEvtHandler::Disconnect wxeEvtListener *Listener = (wxeEvtListener *) getPtr(bp,memenv); bp += 4; wxEvtHandler *This = (wxEvtHandler *) getPtr(bp, memenv); bp += 4; int * winid = (int *) bp; bp += 4; int * lastId = (int *) bp; bp += 4; int * eventTypeLen = (int *) bp; bp += 4; int eventType = wxeEventTypeFromAtom(bp); bp += *eventTypeLen; if(eventType > 0) { bool Result = This->Disconnect((int) *winid,(int) *lastId,eventType, (wxObjectEventFunction)(wxEventFunction) &wxeEvtListener::forward, NULL, Listener); rt.addBool(Result); } else { rt.addAtom("badarg"); rt.addAtom("event_type"); rt.addTupleCount(2); } break; }