TextPath() публичный Метод

public TextPath ( byte utf8 ) : void
utf8 byte
Результат void
Пример #1
0
        protected override bool OnDrawn(Cairo.Context cr)
        {
            if (this.isDirty)
            {
                this.Rebuild();
            }

            bool baseDrawnResult = base.OnDrawn(cr);

            cr.SetFontSize(FONT_HEIGHT);
            cr.SelectFontFace("Mono", FontSlant.Normal, FontWeight.Normal);

            cr.Rectangle(0.0, 0.0, this.allocRect.Width, this.allocRect.Height);
            cr.SetSourceRGB(1, 1, 1);
            cr.Fill();

            var gradient = new LinearGradient(0.0, 0.0, 0.0, this.allocRect.Height);

            gradient.AddColorStopRgb(0.0, new Color(0.4, 0.4, 0.4));
            gradient.AddColorStopRgb(0.1, new Color(1.0, 1.0, 1.0));
            gradient.AddColorStopRgb(0.2, new Color(0.6, 0.6, 0.6));
            gradient.AddColorStopRgb(1.0, new Color(0.1, 0.1, 0.1));

            cr.LineWidth = 1;

            foreach (var box in this.boxen)
            {
                this.RoundedRect(cr, box.Rect, 4.0);
                cr.SetSource(gradient);
                cr.FillPreserve();
                cr.SetSourceRGB(0, 0, 0);
                cr.Stroke();


                int x = (int)(box.Rect.X + TAGBOX_PADDING * 2 + TAGBOX_XSIZE);
                int y = (int)(box.Rect.Y + box.Rect.Height / 2 + cr.FontExtents.Height / 2 - cr.FontExtents.Descent / 2);
                cr.MoveTo(x, y);
                cr.TextPath(box.Tag);
                cr.SetSourceRGB(1.0, 1.0, 1.0);
                cr.Fill();

                cr.MoveTo(box.Rect.X + TAGBOX_PADDING + TAGBOX_XOFFSET, box.Rect.Y + TAGBOX_PADDING + TAGBOX_XOFFSET);
                cr.RelLineTo(TAGBOX_XSIZE - TAGBOX_XOFFSET * 2, TAGBOX_XSIZE - TAGBOX_XOFFSET * 2);
                cr.MoveTo(box.Rect.X + TAGBOX_PADDING + TAGBOX_XOFFSET, box.Rect.Y + TAGBOX_PADDING + TAGBOX_XSIZE - TAGBOX_XOFFSET);
                cr.RelLineTo(TAGBOX_XSIZE - TAGBOX_XOFFSET * 2, -TAGBOX_XSIZE + TAGBOX_XOFFSET * 2);
                cr.Stroke();
            }

            return(baseDrawnResult);
        }
Пример #2
0
        public override void RealRenderCairo(Cairo.Context context)
        {
            if (Camera.IsRendererOutOfScreen(this))
            {
                return;
            }
            Vector2 screenPos = Camera.WorldToScreenPosition(gameObject.transform.position);
            double  realSize  = (double)gameObject.transform.LocalToWorldLength(size);

            context.MoveTo(screenPos.ToPointD());
            context.SetSourceRGBA(ColorR, ColorG, ColorB, ColorA);
            context.SetFontSize(realSize);
            context.TextPath(text);
            context.Fill();
        }
Пример #3
0
    static void draw(Cairo.Context gr, int width, int height)
    {
        gr.Scale(width, height);
        gr.LineWidth = 0.04;

        gr.SelectFontFace("Sans", FontSlant.Normal, FontWeight.Bold);
        gr.SetFontSize(0.35);

        gr.MoveTo(new PointD(0.04, 0.53));
        gr.ShowText("Hello");

        gr.MoveTo(new PointD(0.27, 0.65));
        gr.TextPath("void");
        gr.ColorRgb = new Color(0.5, 0.5, 1, 0);
        gr.FillPreserve();
        gr.ColorRgb  = new Color(0, 0, 0, 0);
        gr.LineWidth = 0.01;
        gr.Stroke();

        gr.Color = new Color(1, 0.2, 0.2, 0.6);
        gr.Arc(0.04, 0.53, 0.02, 0, 2 * M_PI);
        gr.Arc(0.27, 0.65, 0.02, 0, 2 * M_PI);
        gr.Fill();
    }
Пример #4
0
		public void text(Context cr, int width, int height)
		{
			Normalize (cr, width, height);
			cr.SelectFontFace("Sans", FontSlant.Normal, FontWeight.Bold);
			cr.SetFontSize(0.35);

			cr.MoveTo(0.04, 0.53);
			cr.ShowText("Hello");

			cr.MoveTo(0.27, 0.65);
			cr.TextPath("void");
			cr.Save();
			cr.Color = new Color (0.5,0.5,1);
			cr.Fill();
			cr.Restore();
			cr.LineWidth = 0.01;
			cr.Stroke();

			// draw helping lines
			cr.Color = new Color (1.0, 0.2, 0.2, 0.6);
			cr.Arc(0.04, 0.53, 0.02, 0, 2*Math.PI);
			cr.Arc(0.27, 0.65, 0.02, 0, 2*Math.PI);
			cr.Fill();
		}