static void drawtrect(uiDrawContext *c, struct trect tr, double r, double g, double bl) { uiDrawPath *p; uiDrawBrush b; memset(&b, 0, sizeof (uiDrawBrush)); b.Type = uiDrawBrushTypeSolid; b.R = r; b.G = g; b.B = bl; b.A = 1.0; if (tr.in) { b.R += b.R * 0.75; b.G += b.G * 0.75; b.B += b.B * 0.75; } p = uiDrawNewPath(uiDrawFillModeWinding); uiDrawPathAddRectangle(p, tr.left, tr.top, tr.right - tr.left, tr.bottom - tr.top); uiDrawPathEnd(p); uiDrawFill(c, p, &b); uiDrawFreePath(p); }
static void handlerDraw(uiAreaHandler *a, uiArea *area, uiAreaDrawParams *p) { uiDrawStrokeParams sp; uiDrawBeginPathRGB(p->Context, 0xFF, 0x00, 0x00); uiDrawMoveTo(p->Context, p->ClipX + 5, p->ClipY + 5); uiDrawLineTo(p->Context, (p->ClipX + p->ClipWidth) - 5, (p->ClipY + p->ClipHeight) - 5); sp.Cap = uiDrawLineCapFlat; sp.Join = uiDrawLineJoinMiter; sp.Thickness = 1; sp.MiterLimit = uiDrawDefaultMiterLimit; uiDrawStroke(p->Context, &sp); uiDrawBeginPathRGB(p->Context, 0x00, 0x00, 0xC0); uiDrawMoveTo(p->Context, p->ClipX, p->ClipY); uiDrawLineTo(p->Context, p->ClipX + p->ClipWidth, p->ClipY); uiDrawLineTo(p->Context, 50, 150); uiDrawLineTo(p->Context, 50, 50); uiDrawCloseFigure(p->Context); sp.Cap = uiDrawLineCapFlat; sp.Join = uiDrawLineJoinRound; sp.Thickness = 5; uiDrawStroke(p->Context, &sp); uiDrawBeginPathRGBA(p->Context, 0x00, 0xC0, 0x00, 0x80); uiDrawRectangle(p->Context, 120, 80, 50, 50); uiDrawFill(p->Context, uiDrawFillModeWinding); uiDrawBeginPathRGB(p->Context, 0x00, 0x80, 0x00); uiDrawMoveTo(p->Context, 5, 10); uiDrawLineTo(p->Context, 5, 50); sp.Cap = uiDrawLineCapFlat; sp.Join = uiDrawLineJoinMiter; sp.Thickness = 1; sp.MiterLimit = uiDrawDefaultMiterLimit; uiDrawStroke(p->Context, &sp); uiDrawBeginPathRGB(p->Context, 0x80, 0xC0, 0x00); uiDrawMoveTo(p->Context, 400, 100); uiDrawArcTo(p->Context, 400, 100, 50, 30. * (M_PI / 180.), // note the end angle here // in GDI, the second angle to AngleArc() is relative to the start, not to 0 330. * (M_PI / 180.), 1); // TODO add a checkbox for this uiDrawLineTo(p->Context, 400, 100); uiDrawArcTo(p->Context, 510, 100, 50, 30. * (M_PI / 180.), 330. * (M_PI / 180.), 0); uiDrawCloseFigure(p->Context); sp.Cap = uiDrawLineCapFlat; sp.Join = uiDrawLineJoinMiter; sp.Thickness = 1; sp.MiterLimit = uiDrawDefaultMiterLimit; uiDrawStroke(p->Context, &sp); uiDrawBeginPathRGB(p->Context, 0x00, 0x80, 0xC0); uiDrawMoveTo(p->Context, 300, 300); uiDrawBezierTo(p->Context, 350, 320, 310, 390, 435, 372); sp.Cap = uiDrawLineCapFlat; sp.Join = uiDrawLineJoinMiter; sp.Thickness = 1; sp.MiterLimit = uiDrawDefaultMiterLimit; uiDrawStroke(p->Context, &sp); }