📄 srvnet.c
字号:
if(cde->data) { GsWrite(current_fd, cde->data, cde->datalen); free(cde->data); } cde->datalen = 0; } GsWrite(current_fd, &ret, sizeof(GR_CHAR)); /* EXPERIMENTAL CODE for GTK+ select wait*/ if (ret == 0) { /* tell main loop to call Finish routine on event*/ curclient->waiting_for_event = TRUE; }}static voidGrLineWrapper(void *r){ nxLineReq *req = r; GrLine(req->drawid, req->gcid, req->x1, req->y1, req->x2, req->y2);}static voidGrPointWrapper(void *r){ nxPointReq *req = r; GrPoint(req->drawid, req->gcid, req->x, req->y);}static voidGrPointsWrapper(void *r){ nxPointsReq *req = r; int count; count = GetReqVarLen(req) / sizeof(GR_POINT); GrPoints(req->drawid, req->gcid, count, (GR_POINT *)GetReqData(req));}static voidGrRectWrapper(void *r){ nxRectReq *req = r; GrRect(req->drawid, req->gcid, req->x, req->y, req->width, req->height);}static voidGrFillRectWrapper(void *r){ nxFillRectReq *req = r; GrFillRect(req->drawid, req->gcid, req->x, req->y, req->width, req->height);}static voidGrPolyWrapper(void *r){ nxPolyReq *req = r; int count; count = GetReqVarLen(req) / sizeof(GR_POINT); GrPoly(req->drawid, req->gcid, count, (GR_POINT *)GetReqData(req));}/* FIXME: fails with pointtable size > 64k if sizeof(int) == 2*/static voidGrFillPolyWrapper(void *r){ nxPolyReq *req = r; int count; count = GetReqVarLen(req) / sizeof(GR_POINT); GrFillPoly(req->drawid, req->gcid, count, (GR_POINT *)GetReqData(req));}static voidGrEllipseWrapper(void *r){ nxEllipseReq *req = r; GrEllipse(req->drawid, req->gcid, req->x, req->y, req->rx, req->ry);}static voidGrFillEllipseWrapper(void *r){ nxFillEllipseReq *req = r; GrFillEllipse(req->drawid, req->gcid, req->x, req->y, req->rx, req->ry);}static voidGrArcWrapper(void *r){ nxArcReq *req = r; GrArc(req->drawid, req->gcid, req->x, req->y, req->rx, req->ry, req->ax, req->ay, req->bx, req->by, req->type);}static voidGrArcAngleWrapper(void *r){ nxArcAngleReq *req = r; GrArcAngle(req->drawid, req->gcid, req->x, req->y, req->rx, req->ry, req->angle1, req->angle2, req->type);}static voidGrSetGCForegroundWrapper(void *r){ nxSetGCForegroundReq *req = r; GrSetGCForeground(req->gcid, req->color);}static voidGrSetGCBackgroundWrapper(void *r){ nxSetGCBackgroundReq *req = r; GrSetGCBackground(req->gcid, req->color);}static voidGrSetGCForegroundPixelValWrapper(void *r){ nxSetGCForegroundPixelValReq *req = r; GrSetGCForegroundPixelVal(req->gcid, req->pixelval);}static voidGrSetGCBackgroundPixelValWrapper(void *r){ nxSetGCBackgroundPixelValReq *req = r; GrSetGCBackgroundPixelVal(req->gcid, req->pixelval);}static voidGrSetGCUseBackgroundWrapper(void *r){ nxSetGCUseBackgroundReq *req = r; GrSetGCUseBackground(req->gcid, req->flag);}static voidGrSetGCModeWrapper(void *r){ nxSetGCModeReq *req = r; GrSetGCMode(req->gcid, req->mode);}static voidGrSetGCLineAttributesWrapper(void *r){ nxSetGCLineAttributesReq *req = r; GrSetGCLineAttributes(req->gcid, req->linestyle);}static voidGrSetGCDashWrapper(void *r){ nxSetGCDashReq *req = r; char *buffer = ALLOCA(req->count); memcpy((void *) buffer, GetReqData(req), req->count); GrSetGCDash(req->gcid, buffer, req->count); FREEA(buffer);}static voidGrSetGCFillModeWrapper(void *r){ nxSetGCFillModeReq *req = r; GrSetGCFillMode(req->gcid, req->fillmode);}static voidGrSetGCStippleWrapper(void *r){ nxSetGCStippleReq *req = r; GR_BITMAP *buffer; buffer = ALLOCA(GR_BITMAP_SIZE(req->width, req->height) * sizeof(GR_BITMAP)); memcpy((void *) buffer, GetReqData(req), GR_BITMAP_SIZE(req->width, req->height) * sizeof(GR_BITMAP)); GrSetGCStipple(req->gcid, (GR_BITMAP *)buffer, req->width, req->height); FREEA(buffer);}static voidGrSetGCTileWrapper(void *r){ nxSetGCTileReq *req = r; GrSetGCTile(req->gcid, req->pixmap, req->width, req->height);}static voidGrSetGCTSOffsetWrapper(void *r){ nxSetGCTSOffsetReq *req = r; GrSetGCTSOffset(req->gcid, req->xoffset, req->yoffset);}static voidGrCreateFontWrapper(void *r){ nxCreateFontReq *req = r; GR_FONT_ID fontid; fontid = GrCreateFont(GetReqData(req), req->height, NULL); GsWriteType(current_fd,GrNumCreateFont); GsWrite(current_fd, &fontid, sizeof(fontid));}static voidGrCreateLogFontWrapper(void *r){ nxCreateLogFontReq *req = r; GR_FONT_ID fontid; fontid = GrCreateFont(NULL, 0, &req->lf); GsWriteType(current_fd, GrNumCreateLogFont); GsWrite(current_fd, &fontid, sizeof(fontid));}static voidGrSetFontSizeWrapper(void *r){ nxSetFontSizeReq *req = r; GrSetFontSize(req->fontid, req->fontsize);}static voidGrSetFontRotationWrapper(void *r){ nxSetFontRotationReq *req = r; GrSetFontRotation(req->fontid, req->tenthdegrees);}static voidGrSetFontAttrWrapper(void *r){ nxSetFontAttrReq *req = r; GrSetFontAttr(req->fontid, req->setflags, req->clrflags);}static voidGrDestroyFontWrapper(void *r){ nxDestroyFontReq *req = r; GrDestroyFont(req->fontid);}static voidGrSetGCFontWrapper(void *r){ nxSetGCFontReq *req = r; GrSetGCFont(req->gcid, req->fontid);}static voidGrGetGCTextSizeWrapper(void *r){ nxGetGCTextSizeReq *req = r; GR_SIZE retwidth, retheight, retbase; GrGetGCTextSize(req->gcid, GetReqData(req), req->charcount, req->flags, &retwidth, &retheight, &retbase); GsWriteType(current_fd,GrNumGetGCTextSize); GsWrite(current_fd, &retwidth, sizeof(retwidth)); GsWrite(current_fd, &retheight, sizeof(retheight)); GsWrite(current_fd, &retbase, sizeof(retbase));}/* FIXME: fails with size > 64k if sizeof(int) == 2*/static voidGrReadAreaWrapper(void *r){ nxReadAreaReq *req = r; int size; GR_PIXELVAL * area; /* FIXME: optimize for smaller pixelvals*/ size = req->width * req->height * sizeof(GR_PIXELVAL); if(!(area = malloc(size))) { /*GsPutCh(current_fd, GrRetENoMem);*/ /* FIXME*/ /*return;*/ } GrReadArea(req->drawid, req->x, req->y, req->width, req->height, area); GsWriteType(current_fd,GrNumReadArea); GsWrite(current_fd, area, size); free(area);}/* FIXME: fails with size > 64k if sizeof(int) == 2*/static voidGrAreaWrapper(void *r){ nxAreaReq *req = r; GrArea(req->drawid, req->gcid, req->x, req->y, req->width, req->height, GetReqData(req), req->pixtype);}/* FIXME: fails with bitmapsize > 64k if sizeof(int) == 2*/static voidGrBitmapWrapper(void *r){ nxBitmapReq *req = r; GrBitmap(req->drawid, req->gcid, req->x, req->y, req->width, req->height, GetReqData(req));}static voidGrDrawImageBitsWrapper(void *r){ nxDrawImageBitsReq *req = r; char * addr; int imagesize; GR_IMAGE_HDR hdr; hdr.width = req->width; hdr.height = req->height; hdr.planes = req->planes; hdr.bpp = req->bpp; hdr.pitch = req->pitch; hdr.bytesperpixel = req->bytesperpixel; hdr.compression = req->compression; hdr.palsize = req->palsize; hdr.transcolor = req->transcolor; addr = GetReqData(req); hdr.imagebits = (MWUCHAR *)addr; imagesize = hdr.pitch * hdr.height; hdr.palette = (MWPALENTRY *)(addr + imagesize); GrDrawImageBits(req->drawid, req->gcid, req->x, req->y, &hdr);}static voidGrCopyAreaWrapper(void *r){ nxCopyAreaReq *req = r; GrCopyArea(req->drawid, req->gcid, req->x, req->y, req->width, req->height, req->srcid, req->srcx, req->srcy, req->op);}static voidGrTextWrapper(void *r){ nxTextReq *req = r; GrText(req->drawid, req->gcid, req->x, req->y, GetReqData(req), req->count, req->flags);}static voidGrNewCursorWrapper(void *r){ nxNewCursorReq *req = r; int varlen; char * bitmap; GR_CURSOR_ID cursorid; varlen = GetReqVarLen(req); bitmap = GetReqData(req); cursorid = GrNewCursor(req->width, req->height, req->hotx, req->hoty, req->fgcolor, req->bgcolor, (GR_BITMAP *)bitmap, (GR_BITMAP *)(bitmap+varlen/2)); GsWriteType(current_fd, GrNumNewCursor); GsWrite(current_fd, &cursorid, sizeof(cursorid));}static voidGrMoveCursorWrapper(void *r){ nxMoveCursorReq *req = r; GrMoveCursor(req->x, req->y);}static voidGrGetSystemPaletteWrapper(void *r){ GR_PALETTE pal; GrGetSystemPalette(&pal); GsWriteType(current_fd,GrNumGetSystemPalette); GsWrite(current_fd, &pal, sizeof(pal));}static voidGrSetSystemPaletteWrapper(void *r){ nxSetSystemPaletteReq *req = r; GR_PALETTE pal; pal.count = req->count; memcpy(pal.palette, req->palette, sizeof(pal.palette)); GrSetSystemPalette(req->first, &pal);}static voidGrFindColorWrapper(void *r){ nxFindColorReq *req = r; GR_PIXELVAL pixel; GrFindColor(req->color, &pixel); GsWriteType(current_fd,GrNumFindColor); GsWrite(current_fd, &pixel, sizeof(pixel));}static voidGrInjectEventWrapper(void *r){ nxInjectEventReq *req = r; switch(req->event_type) { case GR_INJECT_EVENT_POINTER: GrInjectPointerEvent(req->event.pointer.x, req->event.pointer.y, req->event.pointer.button, req->event.pointer.visible); break; case GR_INJECT_EVENT_KEYBOARD: GrInjectKeyboardEvent(req->event.keyboard.wid, req->event.keyboard.keyvalue, req->event.keyboard.modifier, req->event.keyboard.scancode, req->event.keyboard.pressed); break; }}static voidGrSetWMPropertiesWrapper(void *r){ nxSetWMPropertiesReq *req = r; GR_WM_PROPERTIES *props = GetReqData(req); if(GetReqVarLen(req) - sizeof(GR_WM_PROPERTIES)) props->title = (GR_CHAR *)props + sizeof(GR_WM_PROPERTIES); else props->title = NULL; GrSetWMProperties(req->windowid, props);}static voidGrGetWMPropertiesWrapper(void *r){ nxGetWMPropertiesReq *req = r; UINT16 textlen; GR_WM_PROPERTIES props; GrGetWMProperties(req->windowid, &props); if(props.title) textlen = strlen((const char *)props.title) + 1; else textlen = 0; GsWriteType(current_fd,GrNumGetWMProperties); GsWrite(current_fd, &props, sizeof(props)); GsWrite(current_fd, &textlen, sizeof(textlen)); if(textlen) GsWrite(current_fd, props.title, textlen);}static voidGrCloseWindowWrapper(void *r){ nxCloseWindowReq *req = r; GrCloseWindow(req->windowid);}static voidGrKillWindowWrapper(void *r){ nxKillWindowReq *req = r; GrKillWindow(req->windowid);}#if MW_FEATURE_IMAGES && defined(HAVE_FILEIO)static voidGrDrawImageFromFileWrapper(void *r){ nxDrawImageFromFileReq *req = r; GrDrawImageFromFile(req->drawid, req->gcid, req->x, req->y, req->width, req->height, GetReqData(req), req->flags);}static voidGrLoadImageFromFileWrapper(void *r){ nxLoadImageFromFileReq *req = r; GR_IMAGE_ID id; id = GrLoadImageFromFile(GetReqData(req), req->flags); GsWriteType(current_fd, GrNumLoadImageFromFile); GsWrite(current_fd, &id, sizeof(id));}#else /* if ! (MW_FEATURE_IMAGES && defined(HAVE_FILEIO)) */#define GrDrawImageFromFileWrapper GrNotImplementedWrapper#define GrLoadImageFromFileWrapper GrNotImplementedWrapper#endif#if MW_FEATURE_IMAGESstatic voidGrDrawImageToFitWrapper(void *r){ nxDrawImageToFitReq *req = r; GrDrawImageToFit(req->drawid, req->gcid, req->x, req->y, req->width, req->height, req->imageid);}static voidGrFreeImageWrapper(void *r){ nxFreeImageReq *req = r; GrFreeImage(req->id);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -