protected void AddTextWithShadow(CanvasRenderer renderer, string text, Vector2 position, EHorizontalAlignment horizontalAlign, EVerticalAlignment verticalAlign, ColorValue color, double shadowOffsetInPixels) { Vector2 shadowOffset = shadowOffsetInPixels / Owner.ViewportControl.Viewport.SizeInPixels.ToVector2(); renderer.AddText(null, GetFontSize(), text, position + shadowOffset, horizontalAlign, verticalAlign, new ColorValue(0, 0, 0, color.Alpha / 2.5f)); renderer.AddText(null, GetFontSize(), text, position, horizontalAlign, verticalAlign, color); }
public void AddTextLinesWithShadow(Component_Font font, double fontSize, IList <string> lines, Rectangle rectangle, EHorizontalAlignment horizontalAlign, EVerticalAlignment verticalAlign, ColorValue color) { if (lines.Count == 0) { return; } var renderer = ViewportControl.Viewport.CanvasRenderer; if (font == null || font.Disposed) { font = renderer.DefaultFont; } if (font == null || font.Disposed) { return; } //if( font == null ) // font = EditorFont; if (fontSize < 0) { fontSize = renderer.DefaultFontSize; } Vector2 shadowOffset = shadowDistanceInPixels / ViewportControl.Viewport.SizeInPixels.ToVector2(); float linesHeight = (float)lines.Count * (float)fontSize; double posY = 0; switch (verticalAlign) { case EVerticalAlignment.Top: posY = rectangle.Top; break; case EVerticalAlignment.Center: posY = rectangle.Top + (rectangle.Size.Y - linesHeight) / 2; break; case EVerticalAlignment.Bottom: posY = rectangle.Bottom - linesHeight; break; } for (int n = 0; n < lines.Count; n++) { string line = lines[n]; double posX = 0; switch (horizontalAlign) { case EHorizontalAlignment.Left: posX = rectangle.Left; break; case EHorizontalAlignment.Center: posX = rectangle.Left + (rectangle.Size.X - font.GetTextLength(fontSize, renderer, line)) / 2; break; case EHorizontalAlignment.Right: posX = rectangle.Right - font.GetTextLength(fontSize, renderer, line); break; } Vector2 position = new Vector2(posX, posY); renderer.AddText(font, fontSize, line, position + shadowOffset, EHorizontalAlignment.Left, EVerticalAlignment.Top, new ColorValue(0, 0, 0, color.Alpha / 2)); renderer.AddText(font, fontSize, line, position, EHorizontalAlignment.Left, EVerticalAlignment.Top, color); posY += fontSize; } }
//void CalculateFontSize() //{ // fontSizeInPixels = 12; // float dpi = EditorAPI.DPI; // if( dpi > 96 ) // { // fontSizeInPixels *= dpi / 96; // fontSizeInPixels = (int)fontSizeInPixels; // } //} //[Browsable( false )] //public float FontSizeInPixels //{ // get { return fontSizeInPixels; } // set { fontSizeInPixels = value; } //} //[Browsable( false )] //public EngineFont EditorFont //{ // get { return editorFont; } //} //void UpdateFontSize() //{ // var renderer = ViewportControl.Viewport.CanvasRenderer; // int height = renderer.ViewportForScreenCanvasRenderer.SizeInPixels.Y; // float screenCellSize = (float)fontSizeInPixels / (float)height; // float demandFontHeight = screenCellSize;// * GetZoom(); // if( editorFont == null || editorFont.Height != demandFontHeight ) // editorFont = EngineFontManager.Instance.LoadFont( "Default", demandFontHeight ); //} //!!!!!так? везде так public void AddTextWithShadow(Component_Font font, double fontSize, string text, Vector2 position, EHorizontalAlignment horizontalAlign, EVerticalAlignment verticalAlign, ColorValue color) { var renderer = ViewportControl.Viewport.CanvasRenderer; if (font == null || font.Disposed) { font = renderer.DefaultFont; } if (font == null || font.Disposed) { return; } //if( font == null ) // font = EditorFont; if (fontSize < 0) { fontSize = renderer.DefaultFontSize; } Vector2 shadowOffset = shadowDistanceInPixels / ViewportControl.Viewport.SizeInPixels.ToVector2(); renderer.AddText(font, fontSize, text, position + shadowOffset, horizontalAlign, verticalAlign, new ColorValue(0, 0, 0, color.Alpha / 2)); renderer.AddText(font, fontSize, text, position, horizontalAlign, verticalAlign, color); }
public extern void SetVerticalAlignment(EVerticalAlignment InVerticalAlignment);
/// <summary> /// Adds text to rendering queue. /// </summary> /// <param name="font">The text font.</param> /// <param name="text">The text.</param> /// <param name="position">The text position.</param> /// <param name="horizontalAlign">The text horizontal align.</param> /// <param name="verticalAlign">The text vertical align.</param> /// <param name="color">The text color.</param> public void AddText(Component_Font font, double fontSize, string text, Vector2 position, EHorizontalAlignment horizontalAlign, EVerticalAlignment verticalAlign, ColorValue color, AddTextOptions options = AddTextOptions.PixelAlign) { AddText(font, fontSize, text, position.ToVector2F(), horizontalAlign, verticalAlign, color, options); }
public int AddTextWordWrapWithShadow(Component_Font font, double fontSize, string text, Rectangle rectangle, EHorizontalAlignment horizontalAlign, EVerticalAlignment verticalAlign, ColorValue color) { return(owner.AddTextWordWrapWithShadow(font, fontSize, text, rectangle, horizontalAlign, verticalAlign, color)); }
public void AddTextLinesWithShadow(Component_Font font, double fontSize, IList <string> lines, Rectangle rectangle, EHorizontalAlignment horizontalAlign, EVerticalAlignment verticalAlign, ColorValue color) { owner.AddTextLinesWithShadow(font, fontSize, lines, rectangle, horizontalAlign, verticalAlign, color); }
////public float FontSizeInPixels ////{ //// get { return fontSizeInPixels; } //// set { fontSizeInPixels = value; } ////} ////public EngineFont EditorFont ////{ //// get { return editorFont; } ////} public void AddTextWithShadow(Component_Font font, double fontSize, string text, Vector2 position, EHorizontalAlignment horizontalAlign, EVerticalAlignment verticalAlign, ColorValue color) { owner.AddTextWithShadow(font, fontSize, text, position, horizontalAlign, verticalAlign, color); }
public static void AddTextLinesWithShadow(Viewport viewport, IList <string> lines, Rectangle rectangle, EHorizontalAlignment horizontalAlign, EVerticalAlignment verticalAlign, ColorValue color) { AddTextLinesWithShadow(viewport, null, -1, lines, rectangle, horizontalAlign, verticalAlign, color); }
public int AddTextWordWrap(string text, Rectangle rect, EHorizontalAlignment horizontalAlign, bool alignByWidth, EVerticalAlignment verticalAlign, double textVerticalIndention, ColorValue color, AddTextOptions options = AddTextOptions.PixelAlign) { return(AddTextWordWrap(null, DefaultFontSize, text, rect.ToRectangleF(), horizontalAlign, alignByWidth, verticalAlign, (float)textVerticalIndention, color, options)); }
///////////////////////////////////////// public abstract int AddTextWordWrap(Component_Font font, double fontSize, string text, RectangleF rect, EHorizontalAlignment horizontalAlign, bool alignByWidth, EVerticalAlignment verticalAlign, float textVerticalIndention, ColorValue color, AddTextOptions options = AddTextOptions.PixelAlign);
/// <summary> /// Adds text lines to rendering queue. /// </summary> /// <param name="lines">The text lines.</param> /// <param name="pos">The text position.</param> /// <param name="textVerticalIndention">The vertical intention between lines.</param> /// <param name="horizontalAlign">The text horizontal align.</param> /// <param name="verticalAlign">The text vertical align.</param> /// <param name="color">The text color.</param> public void AddTextLines(IList <string> lines, Vector2 pos, EHorizontalAlignment horizontalAlign, EVerticalAlignment verticalAlign, double textVerticalIndention, ColorValue color, AddTextOptions options = AddTextOptions.PixelAlign) { AddTextLines(null, DefaultFontSize, lines, pos.ToVector2F(), horizontalAlign, verticalAlign, (float)textVerticalIndention, color, options); }
///////////////////////////////////////// /// <summary> /// Adds text lines to rendering queue. /// </summary> /// <param name="font">The font.</param> /// <param name="lines">The text lines.</param> /// <param name="pos">The text position.</param> /// <param name="horizontalAlign">The text horizontal align.</param> /// <param name="verticalAlign">The text vertical align.</param> /// <param name="textVerticalIndention">The vertical intention between lines.</param> /// <param name="color">The text color.</param> public abstract void AddTextLines(Component_Font font, double fontSize, IList <string> lines, Vector2F pos, EHorizontalAlignment horizontalAlign, EVerticalAlignment verticalAlign, float textVerticalIndention, ColorValue color, AddTextOptions options = AddTextOptions.PixelAlign);
/// <summary> /// Adds text to rendering queue. /// </summary> /// <param name="text">The text.</param> /// <param name="position">The text position.</param> /// <param name="horizontalAlign">The text horizontal align.</param> /// <param name="verticalAlign">The text vertical align.</param> public void AddText(string text, Vector2 position, EHorizontalAlignment horizontalAlign, EVerticalAlignment verticalAlign) { AddText(null, DefaultFontSize, text, position.ToVector2F(), horizontalAlign, verticalAlign, new ColorValue(1, 1, 1)); }
/// <summary> /// Adds text to rendering queue. /// </summary> /// <param name="text">The text.</param> /// <param name="position">The text position.</param> /// <param name="horizontalAlign">The text horizontal align.</param> /// <param name="verticalAlign">The text vertical align.</param> /// <param name="color">The text color.</param> public void AddText(string text, Vector2 position, EHorizontalAlignment horizontalAlign, EVerticalAlignment verticalAlign, ColorValue color, AddTextOptions options = AddTextOptions.PixelAlign) { AddText(null, DefaultFontSize, text, position.ToVector2F(), horizontalAlign, verticalAlign, color, options); }
public int AddTextWordWrapWithShadow(Component_Font font, double fontSize, string text, Rectangle rectangle, EHorizontalAlignment horizontalAlign, EVerticalAlignment verticalAlign, ColorValue color) { var renderer = ViewportControl.Viewport.CanvasRenderer; if (font == null || font.Disposed) { font = renderer.DefaultFont; } if (font == null || font.Disposed) { return(0); } //if( font == null ) // font = EditorFont; if (fontSize < 0) { fontSize = renderer.DefaultFontSize; } var items = font.GetWordWrapLines(fontSize, renderer, text, rectangle.Size.X); string[] lines = new string[items.Length]; for (int n = 0; n < lines.Length; n++) { lines[n] = items[n].Text; } AddTextLinesWithShadow(font, fontSize, lines, rectangle, horizontalAlign, verticalAlign, color); return(lines.Length); }
public void SetVerticalAlignment(EVerticalAlignment InVerticalAlignment) { CheckIsValid(); SetVerticalAlignment(_this.Get(), (int)InVerticalAlignment); }
public static int AddTextWordWrapWithShadow(Viewport viewport, string text, Rectangle rectangle, EHorizontalAlignment horizontalAlign, EVerticalAlignment verticalAlign, ColorValue color) { return(AddTextWordWrapWithShadow(viewport, null, -1, text, rectangle, horizontalAlign, verticalAlign, color)); }
public void AddTextWithShadow(string text, Vector2 position, EHorizontalAlignment horizontalAlign, EVerticalAlignment verticalAlign, ColorValue color) { owner.AddTextWithShadow(text, position, horizontalAlign, verticalAlign, color); }
public static void AddTextWithShadow(Viewport viewport, string text, Vector2 position, EHorizontalAlignment horizontalAlign, EVerticalAlignment verticalAlign, ColorValue color) { AddTextWithShadow(viewport, null, -1, text, position, horizontalAlign, verticalAlign, color); }
public void AddTextLinesWithShadow(IList <string> lines, Rectangle rectangle, EHorizontalAlignment horizontalAlign, EVerticalAlignment verticalAlign, ColorValue color) { owner.AddTextLinesWithShadow(lines, rectangle, horizontalAlign, verticalAlign, color); }
void OrderComponents(List<Component> list, EHorizontalAlignment HAlignment, EVerticalAlignment VAlignment, EFormat format, Position origin, Size area) { if (list.Count > 0) { if (format == EFormat.Horizontal) { switch (HAlignment) { case EHorizontalAlignment.HLeft: { int strechSegment = 0; uint widthTakenUp = 0; foreach (Component ele in list) { if (((IElement)ele).HorizontalStyle == EElementStyle.Stretch) { ++strechSegment; } else { Size perfectSize = ele.GetPreferedSize(); widthTakenUp += perfectSize.width; } } uint widthAvailable = (uint)(area.width - Spacer * (list.Count - 1) - widthTakenUp); uint averageWidth = 0; if (strechSegment > 0) { averageWidth = (uint)(widthAvailable / strechSegment); } int tempX = origin.X; foreach (Component comp in list) { Size perfectSize = comp.GetPreferedSize(); if (((IElement)comp).HorizontalStyle == EElementStyle.Fit) { comp.Position.X = tempX; comp.Size.width = perfectSize.width; tempX += (int)(Spacer + perfectSize.width); } else if (((IElement)comp).HorizontalStyle == EElementStyle.Stretch) { comp.Position.X = tempX; comp.Size.width = averageWidth; tempX += (int)(Spacer + averageWidth); } } break; } case EHorizontalAlignment.HRight: { int strechSegment = 0; uint widthTakenUp = 0; foreach (Component ele in list) { if (((IElement)ele).HorizontalStyle == EElementStyle.Stretch) { ++strechSegment; } else { Size perfectSize = ele.GetPreferedSize(); widthTakenUp += perfectSize.width; } } uint widthAvailable = (uint)(area.width - Spacer * (list.Count - 1) - widthTakenUp); uint averageWidth = 0; if (strechSegment > 0) { averageWidth = (uint)(widthAvailable / strechSegment); } int tempX = (int)(origin.X + area.width); for (int i = list.Count - 1; i >= 0; --i) { Component iter = list[i]; Size perfectSize = iter.GetPreferedSize(); if (((IElement)iter).HorizontalStyle == EElementStyle.Fit) { tempX -= (int)perfectSize.width; iter.Position.X = tempX; iter.Size.width = perfectSize.width; tempX -= (int)Spacer; } else if (((IElement)iter).HorizontalStyle == EElementStyle.Stretch) { tempX -= (int)averageWidth; iter.Position.X = tempX; iter.Size.width = averageWidth; tempX -= (int)Spacer; } } break; } case EHorizontalAlignment.HCenter: { bool isStretch = false; int strechSegment = 0; uint widthTakenUp = 0; foreach (Component ele in list) { if (((IElement)ele).HorizontalStyle == EElementStyle.Stretch) { ++strechSegment; isStretch = true; } else { Size perfectSize = ele.GetPreferedSize(); widthTakenUp += perfectSize.width; } } if (isStretch) { uint widthAvailable = (uint)(area.width - Spacer * (list.Count - 1) - widthTakenUp); uint averageWidth = (uint)(widthAvailable / strechSegment); int tempX = origin.X; for (int iter = 0; iter < list.Count - 1; ++iter) { Component comp = list[iter]; Size perfectSize = comp.GetPreferedSize(); if (((IElement)comp).HorizontalStyle == EElementStyle.Fit) { comp.Position.X = tempX; comp.Size.width = perfectSize.width; tempX += (int)(Spacer + perfectSize.width); } else if (((IElement)comp).HorizontalStyle == EElementStyle.Stretch) { comp.Position.X = tempX; comp.Size.width = averageWidth; tempX += (int)(Spacer + averageWidth); } } } else { widthTakenUp += (uint)(Spacer * (list.Count - 1)); int tempX = (int)(origin.X + area.width * 0.5f - widthTakenUp * 0.5f); foreach (Component comp in list) { Size perfectSize = comp.GetPreferedSize(); comp.Position.X = tempX; comp.Size.width = perfectSize.width; tempX += (int)(Spacer + perfectSize.width); } } break; } } switch (VAlignment) { case EVerticalAlignment.VTop: { int tempY = origin.Y; foreach (Component comp in list) { Size perfectSize = comp.GetPreferedSize(); if (((IElement)comp).VerticalStyle == EElementStyle.Stretch) { comp.Position.Y = tempY; comp.Size.height = area.height; } else if (((IElement)comp).VerticalStyle == EElementStyle.Fit) { comp.Position.Y = tempY; comp.Size.height = perfectSize.height; } } break; } case EVerticalAlignment.VBottom: { int tempY = origin.Y; foreach (Component comp in list) { Size perfectSize = comp.GetPreferedSize(); if (((IElement)comp).VerticalStyle == EElementStyle.Stretch) { comp.Position.Y = tempY; comp.Size.height = area.height; } else if (((IElement)comp).VerticalStyle == EElementStyle.Fit) { comp.Position.Y = (int)(tempY + area.height - perfectSize.height); comp.Size.height = perfectSize.height; } } break; } case EVerticalAlignment.VCenter: { int tempY = origin.Y; foreach (Component comp in list) { Size perfectSize = comp.GetPreferedSize(); if (((IElement)comp).VerticalStyle == EElementStyle.Stretch) { comp.Position.Y = tempY; comp.Size.height = area.height; } else if (((IElement)comp).VerticalStyle == EElementStyle.Fit) { comp.Position.Y = (int)(tempY + area.height * 0.5 - perfectSize.height * 0.5); comp.Size.height = perfectSize.height; } } break; } } } else if (format == EFormat.Vertical) { } foreach (Component ele in list) { ele.Pack(); } } }
public int AddTextWordWrapWithShadow(string text, Rectangle rectangle, EHorizontalAlignment horizontalAlign, EVerticalAlignment verticalAlign, ColorValue color) { return(owner.AddTextWordWrapWithShadow(text, rectangle, horizontalAlign, verticalAlign, color)); }
/// <summary> /// Adds text to rendering queue. /// </summary> /// <param name="font">The text font.</param> /// <param name="text">The text.</param> /// <param name="position">The text position.</param> /// <param name="horizontalAlign">The text horizontal align.</param> /// <param name="verticalAlign">The text vertical align.</param> /// <param name="color">The text color.</param> public abstract void AddText(Component_Font font, double fontSize, string text, Vector2F position, EHorizontalAlignment horizontalAlign, EVerticalAlignment verticalAlign, ColorValue color, AddTextOptions options = AddTextOptions.PixelAlign);