1: #include <X/mit-copyright.h>
   2: 
   3: /* $Header: XCreateCursor.c,v 10.5 86/02/01 15:31:11 tony Rel $ */
   4: /* Copyright    Massachusetts Institute of Technology    1985	*/
   5: 
   6: #include "XlibInternal.h"
   7: Cursor XCreateCursor (width, height, cursor, mask, xOffset, yOffset,
   8:     foreground, background, func)
   9:         short *cursor, *mask;
  10:     int width, height;
  11:     int xOffset, yOffset;
  12:     int func;
  13:     int foreground, background;
  14: {
  15:     register Display *dpy;
  16:     register XReq *req;
  17:     XRep rep;
  18:     Bitmap cbitmap, mbitmap = 0;
  19:     int nbytes = BitmapSize (width, height);
  20:     Status status;
  21: 
  22:     GetReq(X_StoreBitmap, 0);
  23:     req->param.s[0] = height;
  24:     req->param.s[1] = width;
  25:     Data (dpy, (char *)cursor, nbytes);
  26: 
  27:     if (mask) {
  28:         GetReq(X_StoreBitmap, 0);
  29:         req->param.s[0] = height;
  30:         req->param.s[1] = width;
  31:         Data (dpy, (char *)mask, nbytes);
  32:         dpy->request--; /* to synchronize properly with XError packets */
  33:         }
  34: 
  35:     cbitmap = _XReply (dpy, &rep) ? rep.param.l[0] : 0;
  36: 
  37:     if (mask) {
  38:         dpy->request++;
  39:         mbitmap = _XReply (dpy, &rep) ? rep.param.l[0] : 0;
  40:         }
  41: 
  42:     if (!cbitmap || (mask && !mbitmap)) {
  43:         /* an error occurred. Clean up and return. */
  44:         if (cbitmap)
  45:             XFreeBitmap (cbitmap);
  46:         if (mbitmap)
  47:             XFreeBitmap (mbitmap);
  48:         return (0);
  49:         }
  50: 
  51:     GetReq(X_StoreCursor, 0);
  52:     req->func = func;
  53:     req->param.l[0] = cbitmap;
  54:     req->param.s[2] = foreground;
  55:     req->param.s[3] = background;
  56:     req->param.l[2] = mbitmap;
  57:     req->param.s[6] = xOffset;
  58:     req->param.s[7] = yOffset;
  59:     status = _XReply (dpy, &rep);
  60:     XFreeBitmap (cbitmap);
  61:     if (mbitmap)
  62:         XFreeBitmap (mbitmap);
  63:     return (status ? rep.param.l[0] : 0);
  64: }
Last modified: 1986-02-01
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 1018
Valid CSS Valid XHTML 1.0 Strict