private void DrawOutputndicator(Cairo.Context context) { context.Save(); RelativeLocator locator = new RelativeLocator(-0.04, 1.2); PointD point = locator.Locate(this); context.MoveTo(point); context.LineCap = LineCap.Round; context.Color = s_ioIndicatorColor; double l = 4; //arm lenght of indicator icon double s = 0.4; //spacing between arms in the indicator icon //draw << //up context.RelLineTo (new Distance (-s, -l)); context.RelMoveTo (new Distance (s, l)); //back //right context.RelLineTo (new Distance (l, s)); context.RelMoveTo (new Distance (-l, -s)); //back context.RelMoveTo (new Distance (3, -3)); //repeat above for second arrow context.RelLineTo (new Distance (-s, -l)); context.RelMoveTo (new Distance (s, l)); //back context.RelLineTo (new Distance (l, s)); context.RelMoveTo (new Distance (-l, -s)); //back context.Stroke(); context.Restore(); }
static void DrawLineEndAtIter (Cairo.Context cntx, TextView view, TextIter iter) { Gdk.Rectangle rect = view.GetIterLocation (iter); int x, y; view.BufferToWindowCoords (TextWindowType.Text, rect.X, rect.Y + rect.Height / 2, out x, out y); cntx.Save (); cntx.Color = GetDrawingColorForIter (view, iter); double arrowSize = 3; cntx.MoveTo (x + 10, y); cntx.RelLineTo (new Cairo.Distance (0, -arrowSize)); cntx.RelMoveTo (new Cairo.Distance (0, arrowSize)); cntx.RelLineTo (new Cairo.Distance (-8, 0)); cntx.RelLineTo (new Cairo.Distance (arrowSize, arrowSize)); cntx.RelMoveTo (new Cairo.Distance (-arrowSize, -arrowSize)); cntx.RelLineTo (new Cairo.Distance (arrowSize, -arrowSize)); cntx.Stroke (); cntx.Restore (); }