void drawCallout(CGContext context, CalloutAnnotation callout) { callout.Color.SetStroke(); context.SaveState(); callout.Clip.AddClip(); callout.Path.Stroke(); context.RestoreState(); callout.Tail.Stroke(); drawLabel(context, displayRect, displayRect.Height - callout.Center.Y, callout.Center.X, CTTextAlignment.Center, callout.Color, callout.CalloutString, true); calloutCount += 1; }
public override void TouchesEnded(NSSet touches, UIEvent evt) { // base.TouchesEnded(touches, evt); if (!TrapState.Shared.HasActiveSnapshotImage) return; switch (Tool) { case Annotate.Tool.Callout: var rect = new CGRect (new CGPoint (pathStart.X - 16, pathStart.Y - 14), new CGSize (32, 28)); // let rect = CGRect(origin: CGPoint(x: pathStart.x - 3, y: pathStart.y - 32), size: CGSize(width: 28, height: 24)) var callout = new CalloutAnnotation (calloutCount, rect, bzPath.LineWidth, strokeColor); annotationDataCache.Add(callout); redrawBitmap(); break; case Annotate.Tool.Marker: case Annotate.Tool.Arrow: case Annotate.Tool.Circle: case Annotate.Tool.Square: if (Tool == Annotate.Tool.Marker) UIGraphics.EndImageContext(); if (touchesDidMove) { var annotation = new PathAnnotation (Tool, bzPath, strokeColor); annotationDataCache.Add(annotation); redrawBitmap(); } break; case Annotate.Tool.Color: break; } bzPath.RemoveAllPoints(); pathStart = CGPoint.Empty; counter = 0; touchesDidMove = false; }