#include "lx.h" #include "proto.h" #include "internal.h" static void do_CreateCursor( const char *call, LX_CONN *xc, LX_XID src, LX_XID mask, int fr, int fg, int fb, int br, int bg, int bb, int hotx, int hoty ) { LX_XID cid; unsigned char req[32]; if ( (xc->flags & XCF_FAIL) || (fr < 0) || (fr > 65535) || (fg < 0) || (fg > 65535) || (fb < 0) || (fb > 65535) || (br < 0) || (br > 65535) || (bg < 0) || (bg > 65535) || (bb < 0) || (bb > 65535) || (hotx < 0) || (hotx > 65535) || (hoty < 0) || (hoty > 65535) ) { lx__bad_call(xc,call); return; } cid = lx__new_resource_id(xc); req[0] = XP_REQ_CreateCursor; req[1] = 0; w_card16(&req[2],8); w_card32(&req[4],cid); w_card32(&req[8],src); w_card32(&req[12],(mask==LX_PIXMAP_None)?0:mask); w_card16(&req[16],fr); w_card16(&req[18],fr); w_card16(&req[20],fg); w_card16(&req[22],fb); w_card16(&req[24],br); w_card16(&req[26],bg); w_card16(&req[28],hotx); w_card16(&req[30],hoty); lx__send_req(xc,&req[0],32); } void lx_CreateCursor( LX_CONN *xc, LX_XID src, LX_XID mask, int fr, int fg, int fb, int br, int bg, int bb, int hotx, int hoty ) { do_CreateCursor("lx_CreateCursor",xc,src,mask,fr,fg,fb,br,bg,bb,hotx,hoty); } void lx_CreateCursor_rgb(LX_CONN *xc, LX_XID src, LX_XID mask, LX_RGB fg, LX_RGB bg, int hotx, int hoty) { do_CreateCursor("lx_CreateCursor_rgb",xc,src,mask,fg.r,fg.g,fg.b,bg.r,bg.g,bg.b,hotx,hoty); }