Lines Matching refs:linePtr

76 			    Tk_Canvas canvas, LineItem *linePtr,
79 LineItem *linePtr));
84 LineItem *linePtr));
227 LineItem *linePtr = (LineItem *) itemPtr;
244 linePtr->canvas = canvas;
245 linePtr->numPoints = 0;
246 linePtr->coordPtr = NULL;
247 linePtr->width = 1;
248 linePtr->fg = None;
249 linePtr->fillStipple = None;
250 linePtr->capStyle = CapButt;
251 linePtr->joinStyle = JoinRound;
252 linePtr->gc = None;
253 linePtr->arrowGC = None;
260 linePtr->arrow = noneUid;
261 linePtr->arrowShapeA = 8.0;
262 linePtr->arrowShapeB = 10.0;
263 linePtr->arrowShapeC = 3.0;
264 linePtr->firstArrowPtr = NULL;
265 linePtr->lastArrowPtr = NULL;
266 linePtr->smooth = 0;
267 linePtr->splineSteps = 12;
324 LineItem *linePtr = (LineItem *) itemPtr;
332 numCoords = 2*linePtr->numPoints;
333 if (linePtr->firstArrowPtr != NULL) {
334 coordPtr = linePtr->firstArrowPtr;
336 coordPtr = linePtr->coordPtr;
340 coordPtr = linePtr->coordPtr+2;
342 if ((linePtr->lastArrowPtr != NULL) && (i == (numCoords-2))) {
343 coordPtr = linePtr->lastArrowPtr;
360 if (linePtr->numPoints != numPoints) {
361 if (linePtr->coordPtr != NULL) {
362 ckfree((char *) linePtr->coordPtr);
364 linePtr->coordPtr = (double *) ckalloc((unsigned)
366 linePtr->numPoints = numPoints;
370 &linePtr->coordPtr[i]) != TCL_OK) {
380 if (linePtr->firstArrowPtr != NULL) {
381 ckfree((char *) linePtr->firstArrowPtr);
382 linePtr->firstArrowPtr = NULL;
384 if (linePtr->lastArrowPtr != NULL) {
385 ckfree((char *) linePtr->lastArrowPtr);
386 linePtr->lastArrowPtr = NULL;
388 if (linePtr->arrow != noneUid) {
389 ConfigureArrows(canvas, linePtr);
391 ComputeLineBbox(canvas, linePtr);
425 LineItem *linePtr = (LineItem *) itemPtr;
433 (char *) linePtr, flags) != TCL_OK) {
442 if (linePtr->fg == NULL) {
445 gcValues.foreground = linePtr->fg->pixel;
446 gcValues.join_style = linePtr->joinStyle;
447 if (linePtr->width < 0) {
448 linePtr->width = 1;
450 gcValues.line_width = linePtr->width;
452 if (linePtr->fillStipple != None) {
453 gcValues.stipple = linePtr->fillStipple;
457 if (linePtr->arrow == noneUid) {
458 gcValues.cap_style = linePtr->capStyle;
465 if (linePtr->gc != None) {
466 Tk_FreeGC(Tk_Display(tkwin), linePtr->gc);
468 if (linePtr->arrowGC != None) {
469 Tk_FreeGC(Tk_Display(tkwin), linePtr->arrowGC);
471 linePtr->gc = newGC;
472 linePtr->arrowGC = arrowGC;
478 if (linePtr->splineSteps < 1) {
479 linePtr->splineSteps = 1;
480 } else if (linePtr->splineSteps > 100) {
481 linePtr->splineSteps = 100;
490 if ((linePtr->firstArrowPtr != NULL) && (linePtr->arrow != firstUid)
491 && (linePtr->arrow != bothUid)) {
492 linePtr->coordPtr[0] = linePtr->firstArrowPtr[0];
493 linePtr->coordPtr[1] = linePtr->firstArrowPtr[1];
494 ckfree((char *) linePtr->firstArrowPtr);
495 linePtr->firstArrowPtr = NULL;
497 if ((linePtr->lastArrowPtr != NULL) && (linePtr->arrow != lastUid)
498 && (linePtr->arrow != bothUid)) {
501 i = 2*(linePtr->numPoints-1);
502 linePtr->coordPtr[i] = linePtr->lastArrowPtr[0];
503 linePtr->coordPtr[i+1] = linePtr->lastArrowPtr[1];
504 ckfree((char *) linePtr->lastArrowPtr);
505 linePtr->lastArrowPtr = NULL;
507 if (linePtr->arrow != noneUid) {
508 if ((linePtr->arrow != firstUid) && (linePtr->arrow != lastUid)
509 && (linePtr->arrow != bothUid)) {
511 linePtr->arrow, "\": must be none, first, last, or both",
513 linePtr->arrow = noneUid;
516 ConfigureArrows(canvas, linePtr);
523 ComputeLineBbox(canvas, linePtr);
553 LineItem *linePtr = (LineItem *) itemPtr;
555 if (linePtr->coordPtr != NULL) {
556 ckfree((char *) linePtr->coordPtr);
558 if (linePtr->fg != NULL) {
559 Tk_FreeColor(linePtr->fg);
561 if (linePtr->fillStipple != None) {
562 Tk_FreeBitmap(display, linePtr->fillStipple);
564 if (linePtr->gc != None) {
565 Tk_FreeGC(display, linePtr->gc);
567 if (linePtr->arrowGC != None) {
568 Tk_FreeGC(display, linePtr->arrowGC);
570 if (linePtr->firstArrowPtr != NULL) {
571 ckfree((char *) linePtr->firstArrowPtr);
573 if (linePtr->lastArrowPtr != NULL) {
574 ckfree((char *) linePtr->lastArrowPtr);
598 ComputeLineBbox(canvas, linePtr)
600 LineItem *linePtr; /* Item whose bbos is to be
606 coordPtr = linePtr->coordPtr;
607 linePtr->header.x1 = linePtr->header.x2 = *coordPtr;
608 linePtr->header.y1 = linePtr->header.y2 = coordPtr[1];
620 for (i = 1, coordPtr = linePtr->coordPtr+2; i < linePtr->numPoints;
622 TkIncludePoint((Tk_Item *) linePtr, coordPtr);
624 width = linePtr->width;
628 linePtr->header.x1 -= width;
629 linePtr->header.x2 += width;
630 linePtr->header.y1 -= width;
631 linePtr->header.y2 += width;
639 if (linePtr->joinStyle == JoinMiter) {
640 for (i = linePtr->numPoints, coordPtr = linePtr->coordPtr; i >= 3;
648 TkIncludePoint((Tk_Item *) linePtr, miter+j);
658 if (linePtr->arrow != noneUid) {
659 if (linePtr->arrow != lastUid) {
660 for (i = 0, coordPtr = linePtr->firstArrowPtr; i < PTS_IN_ARROW;
662 TkIncludePoint((Tk_Item *) linePtr, coordPtr);
665 if (linePtr->arrow != firstUid) {
666 for (i = 0, coordPtr = linePtr->lastArrowPtr; i < PTS_IN_ARROW;
668 TkIncludePoint((Tk_Item *) linePtr, coordPtr);
678 linePtr->header.x1 -= 1;
679 linePtr->header.x2 += 1;
680 linePtr->header.y1 -= 1;
681 linePtr->header.y2 += 1;
713 LineItem *linePtr = (LineItem *) itemPtr;
720 if (linePtr->gc == None) {
731 if ((linePtr->smooth) && (linePtr->numPoints > 2)) {
732 numPoints = 1 + linePtr->numPoints*linePtr->splineSteps;
734 numPoints = linePtr->numPoints;
743 if ((linePtr->smooth) && (linePtr->numPoints > 2)) {
744 numPoints = TkMakeBezierCurve(canvas, linePtr->coordPtr,
745 linePtr->numPoints, linePtr->splineSteps, pointPtr,
748 for (i = 0, coordPtr = linePtr->coordPtr, pPtr = pointPtr;
749 i < linePtr->numPoints; i += 1, coordPtr += 2, pPtr++) {
762 if (linePtr->fillStipple != None) {
763 Tk_CanvasSetStippleOrigin(canvas, linePtr->gc);
764 Tk_CanvasSetStippleOrigin(canvas, linePtr->arrowGC);
766 XDrawLines(display, drawable, linePtr->gc, pointPtr, numPoints,
776 if (linePtr->firstArrowPtr != NULL) {
777 TkFillPolygon(canvas, linePtr->firstArrowPtr, PTS_IN_ARROW,
778 display, drawable, linePtr->gc, NULL);
780 if (linePtr->lastArrowPtr != NULL) {
781 TkFillPolygon(canvas, linePtr->lastArrowPtr, PTS_IN_ARROW,
782 display, drawable, linePtr->gc, NULL);
784 if (linePtr->fillStipple != None) {
785 XSetTSOrigin(display, linePtr->gc, 0, 0);
786 XSetTSOrigin(display, linePtr->arrowGC, 0, 0);
818 LineItem *linePtr = (LineItem *) itemPtr;
835 if ((linePtr->smooth) && (linePtr->numPoints > 2)) {
836 numPoints = 1 + linePtr->numPoints*linePtr->splineSteps;
843 numPoints = TkMakeBezierCurve(canvas, linePtr->coordPtr,
844 linePtr->numPoints, linePtr->splineSteps, (XPoint *) NULL,
847 numPoints = linePtr->numPoints;
848 linePoints = linePtr->coordPtr;
867 if (((linePtr->capStyle == CapRound) && (count == numPoints))
868 || ((linePtr->joinStyle == JoinRound)
871 - linePtr->width/2.0;
887 TkGetButtPoints(coordPtr+2, coordPtr, (double) linePtr->width,
888 linePtr->capStyle == CapProjecting, poly, poly+2);
889 } else if ((linePtr->joinStyle == JoinMiter) && !changedMiterToBevel) {
895 TkGetButtPoints(coordPtr+2, coordPtr, (double) linePtr->width, 0,
905 if ((linePtr->joinStyle == JoinBevel) || changedMiterToBevel) {
919 TkGetButtPoints(coordPtr, coordPtr+2, (double) linePtr->width,
920 linePtr->capStyle == CapProjecting, poly+4, poly+6);
921 } else if (linePtr->joinStyle == JoinMiter) {
923 (double) linePtr->width, poly+4, poly+6) == 0) {
925 TkGetButtPoints(coordPtr, coordPtr+2, (double) linePtr->width,
929 TkGetButtPoints(coordPtr, coordPtr+2, (double) linePtr->width, 0,
948 if (linePtr->capStyle == CapRound) {
950 - linePtr->width/2.0;
963 if (linePtr->arrow != noneUid) {
964 if (linePtr->arrow != lastUid) {
965 dist = TkPolygonToPoint(linePtr->firstArrowPtr, PTS_IN_ARROW,
974 if (linePtr->arrow != firstUid) {
975 dist = TkPolygonToPoint(linePtr->lastArrowPtr, PTS_IN_ARROW,
987 if ((linePoints != staticSpace) && (linePoints != linePtr->coordPtr)) {
1021 LineItem *linePtr = (LineItem *) itemPtr;
1031 if ((linePtr->smooth) && (linePtr->numPoints > 2)) {
1032 numPoints = 1 + linePtr->numPoints*linePtr->splineSteps;
1039 numPoints = TkMakeBezierCurve(canvas, linePtr->coordPtr,
1040 linePtr->numPoints, linePtr->splineSteps, (XPoint *) NULL,
1043 numPoints = linePtr->numPoints;
1044 linePoints = linePtr->coordPtr;
1052 (double) linePtr->width, linePtr->capStyle, linePtr->joinStyle,
1062 if (linePtr->arrow != noneUid) {
1063 if (linePtr->arrow != lastUid) {
1064 if (TkPolygonToArea(linePtr->firstArrowPtr, PTS_IN_ARROW,
1070 if (linePtr->arrow != firstUid) {
1071 if (TkPolygonToArea(linePtr->lastArrowPtr, PTS_IN_ARROW,
1080 if ((linePoints != staticSpace) && (linePoints != linePtr->coordPtr)) {
1115 LineItem *linePtr = (LineItem *) itemPtr;
1124 if (linePtr->firstArrowPtr != NULL) {
1125 linePtr->coordPtr[0] = linePtr->firstArrowPtr[0];
1126 linePtr->coordPtr[1] = linePtr->firstArrowPtr[1];
1127 ckfree((char *) linePtr->firstArrowPtr);
1128 linePtr->firstArrowPtr = NULL;
1130 if (linePtr->lastArrowPtr != NULL) {
1133 i = 2*(linePtr->numPoints-1);
1134 linePtr->coordPtr[i] = linePtr->lastArrowPtr[0];
1135 linePtr->coordPtr[i+1] = linePtr->lastArrowPtr[1];
1136 ckfree((char *) linePtr->lastArrowPtr);
1137 linePtr->lastArrowPtr = NULL;
1139 for (i = 0, coordPtr = linePtr->coordPtr; i < linePtr->numPoints;
1144 if (linePtr->arrow != noneUid) {
1145 ConfigureArrows(canvas, linePtr);
1147 ComputeLineBbox(canvas, linePtr);
1176 LineItem *linePtr = (LineItem *) itemPtr;
1180 for (i = 0, coordPtr = linePtr->coordPtr; i < linePtr->numPoints;
1185 if (linePtr->firstArrowPtr != NULL) {
1186 for (i = 0, coordPtr = linePtr->firstArrowPtr; i < PTS_IN_ARROW;
1192 if (linePtr->lastArrowPtr != NULL) {
1193 for (i = 0, coordPtr = linePtr->lastArrowPtr; i < PTS_IN_ARROW;
1199 ComputeLineBbox(canvas, linePtr);
1234 LineItem *linePtr = (LineItem *) recordPtr;
1256 if ((Tk_CanvasGetCoord(interp, linePtr->canvas, argv[0], &a) != TCL_OK)
1257 || (Tk_CanvasGetCoord(interp, linePtr->canvas, argv[1], &b)
1259 || (Tk_CanvasGetCoord(interp, linePtr->canvas, argv[2], &c)
1263 linePtr->arrowShapeA = a;
1264 linePtr->arrowShapeB = b;
1265 linePtr->arrowShapeC = c;
1292 Tk_Window tkwin; /* Window associated with linePtr's widget. */
1299 LineItem *linePtr = (LineItem *) recordPtr;
1303 sprintf(buffer, "%.5g %.5g %.5g", linePtr->arrowShapeA,
1304 linePtr->arrowShapeB, linePtr->arrowShapeC);
1322 * Information in linePtr is set up for one or two arrowheads.
1333 ConfigureArrows(canvas, linePtr)
1337 LineItem *linePtr; /* Item to configure for arrows. */
1357 shapeA = linePtr->arrowShapeA + 0.001;
1358 shapeB = linePtr->arrowShapeB + 0.001;
1359 shapeC = linePtr->arrowShapeC + linePtr->width/2.0 + 0.001;
1367 fracHeight = (linePtr->width/2.0)/shapeC;
1369 if (linePtr->arrow != lastUid) {
1370 poly = linePtr->firstArrowPtr;
1374 poly[0] = poly[10] = linePtr->coordPtr[0];
1375 poly[1] = poly[11] = linePtr->coordPtr[1];
1376 linePtr->firstArrowPtr = poly;
1378 dx = poly[0] - linePtr->coordPtr[2];
1379 dy = poly[1] - linePtr->coordPtr[3];
1406 linePtr->coordPtr[0] = poly[0] - backup*cosTheta;
1407 linePtr->coordPtr[1] = poly[1] - backup*sinTheta;
1414 if (linePtr->arrow != firstUid) {
1415 coordPtr = linePtr->coordPtr + 2*(linePtr->numPoints-2);
1416 poly = linePtr->lastArrowPtr;
1422 linePtr->lastArrowPtr = poly;
1485 LineItem *linePtr = (LineItem *) itemPtr;
1489 if (linePtr->fg == NULL) {
1498 if ((!linePtr->smooth) || (linePtr->numPoints <= 2)) {
1499 Tk_CanvasPsPath(interp, canvas, linePtr->coordPtr, linePtr->numPoints);
1501 if (linePtr->fillStipple == None) {
1502 TkMakeBezierPostscript(interp, canvas, linePtr->coordPtr,
1503 linePtr->numPoints);
1518 numPoints = 1 + linePtr->numPoints*linePtr->splineSteps;
1524 numPoints = TkMakeBezierCurve(canvas, linePtr->coordPtr,
1525 linePtr->numPoints, linePtr->splineSteps, (XPoint *) NULL,
1538 sprintf(buffer, "%d setlinewidth\n", linePtr->width);
1541 if (linePtr->capStyle == CapRound) {
1543 } else if (linePtr->capStyle == CapProjecting) {
1548 if (linePtr->joinStyle == JoinRound) {
1550 } else if (linePtr->joinStyle == JoinBevel) {
1554 if (Tk_CanvasPsColor(interp, canvas, linePtr->fg) != TCL_OK) {
1557 if (linePtr->fillStipple != None) {
1559 if (Tk_CanvasPsStipple(interp, canvas, linePtr->fillStipple)
1571 if (linePtr->firstArrowPtr != NULL) {
1572 if (linePtr->fillStipple != None) {
1576 if (ArrowheadPostscript(interp, canvas, linePtr,
1577 linePtr->firstArrowPtr) != TCL_OK) {
1581 if (linePtr->lastArrowPtr != NULL) {
1582 if (linePtr->fillStipple != None) {
1585 if (ArrowheadPostscript(interp, canvas, linePtr,
1586 linePtr->lastArrowPtr) != TCL_OK) {
1616 ArrowheadPostscript(interp, canvas, linePtr, arrowPtr)
1620 LineItem *linePtr; /* Line item for which Postscript is
1626 if (linePtr->fillStipple != None) {
1628 if (Tk_CanvasPsStipple(interp, canvas, linePtr->fillStipple)