Example #1
0
        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 ();
			}