void UpdateText() { if (Text == null) { return; } var padding = Padding * TextSize; Size = new Vec2(padding, padding) * 2; foreach (var line in Text.Split('\n')) { Size = new Vec2(Math.Max(Size.X, padding * 2 + TextSize * RealFont.Measure(line)), Size.Y + TextSize); } if (FixedWidth != null) { Size = new Vec2(FixedWidth.Value, Size.Y); } }
/// <summary> /// Render this element. /// </summary> public override void Render() { if (Focused) { BorderColor = FocusedBorderColor; } else { BorderColor = DefaultBorderColor; } base.Render(); RenderState.Push(); RenderState.Translate(MidLeft); var padding = Padding * TextSize; RenderState.Translate(padding + (Size.X - 2 * padding) * TextAlign, 0); RenderState.Color = TextColor; RenderState.Scale(TextSize); RenderState.Translate(-RealFont.Measure(Value) * TextAlign, 0); RealFont.Render(Value + (blink < 1 ? "_" : ""), 0, 0.5); RenderState.Pop(); }