INLINE void wxeReturn::add(const wxHtmlLinkInfo &val) { addAtom("wxHtmlLinkInfo"); add(val.GetHref()); add(val.GetTarget()); addTupleCount(3); }
int wxeReturn::send() { if ((rt.GetCount() == 2 && isResult) || rt.GetCount() == 0) return 1; // not a call bail out if (isResult) { addTupleCount(2); } // rt to array unsigned int rtLength = rt.GetCount(); //signed int size_t size = sizeof(ErlDrvTermData)*(rtLength); ErlDrvTermData* rtData = (ErlDrvTermData *) driver_alloc(size); for (unsigned int i=0; i < rtLength; i++) { rtData[i] = rt[i]; } int res = driver_send_term(port, caller, rtData, rtLength); driver_free(rtData); if(res == -1) { wxString msg; msg.Printf(wxT("Failed to send return or event msg")); send_msg("internal_error", &msg); } reset(); return res; }
INLINE void wxeReturn::addDate(wxDateTime dateTime) { addInt(dateTime.GetYear()); addInt(dateTime.GetMonth()+1); // c++ month is zero based addInt(dateTime.GetDay()); addTupleCount(3); }
int wxeReturn::send() { if ((rt.GetCount() == 2 && isResult) || rt.GetCount() == 0) return 1; // not a call bail out if (isResult) { addTupleCount(2); } // rt to array unsigned int rtLength = rt.GetCount(); //signed int size_t size = sizeof(ErlDrvTermData)*(rtLength); ErlDrvTermData* rtData = (ErlDrvTermData *) driver_alloc(size); for (unsigned int i=0; i < rtLength; i++) { rtData[i] = rt[i]; } int res = erl_drv_send_term(port, caller, rtData, rtLength); driver_free(rtData); #ifdef DEBUG if(res == -1) { fprintf(stderr, "Failed to send return or event msg\r\n"); } #endif reset(); return res; }
INLINE void wxeReturn::add(wxColour colour) { addInt(colour.Red()); addInt(colour.Green()); addInt(colour.Blue()); addInt(colour.Alpha()); addTupleCount(4); }
INLINE void wxeReturn::add(wxRect rect) { addInt(rect.x); addInt(rect.y); addInt(rect.width); addInt(rect.height); addTupleCount(4); }
INLINE void wxeReturn::addRef(const unsigned int ref, const char* className) { addAtom("wx_ref"); addUint(ref); addAtom(className); rt.Add(ERL_DRV_NIL); addTupleCount(4); }
INLINE void wxeReturn::add(wxRect2DDouble rect2D) { addFloat(rect2D.m_x); addFloat(rect2D.m_y); addFloat(rect2D.m_width); addFloat(rect2D.m_height); addTupleCount(4); }
INLINE void wxeReturn::add(wxMouseState val) { addAtom("wxMouseState"); // TODO not int? addUint(val.GetX()); addUint(val.GetY()); addBool(val.LeftDown()); addBool(val.MiddleDown()); addBool(val.RightDown()); addBool(val.ControlDown()); addBool(val.ShiftDown()); addBool(val.AltDown()); addBool(val.MetaDown()); addBool(val.CmdDown()); addTupleCount(11); }
INLINE void wxeReturn::addTime(wxDateTime dateTime) { addInt(dateTime.GetHour()); addInt(dateTime.GetMinute()); addInt(dateTime.GetSecond()); addTupleCount(3); }
INLINE void wxeReturn::add(wxPoint2DDouble pt) { addFloat(pt.m_x); addFloat(pt.m_y); addTupleCount(2); }
INLINE void wxeReturn::add(wxSize size) { addInt(size.GetWidth()); addInt(size.GetHeight()); addTupleCount(2); }
INLINE void wxeReturn::add(wxGBSpan val) { addInt(val.GetRowspan()); addInt(val.GetColspan()); addTupleCount(2); }
INLINE void wxeReturn::add(wxGBPosition val) { addInt(val.GetRow()); addInt(val.GetCol()); addTupleCount(2); }
INLINE void wxeReturn::add(wxGridCellCoords val) { addInt(val.GetRow()); addInt(val.GetCol()); addTupleCount(2); }
INLINE void wxeReturn::add(wxPoint pt) { addInt(pt.x); addInt(pt.y); addTupleCount(2); }
INLINE void wxeReturn::add(wxDateTime dateTime) { addDate(dateTime); addTime(dateTime); addTupleCount(2); }