public GLLabel(GLGui gui) : base(gui) { Render += OnRender; skinEnabled = Gui.Skin.LabelEnabled; skinDisabled = Gui.Skin.LabelDisabled; outer = new Rectangle(0, 0, 0, 0); sizeMin = new Size(1, (int)skinEnabled.Font.LineSpacing + skinEnabled.Padding.Vertical); sizeMax = new Size(int.MaxValue, int.MaxValue); HandleMouseEvents = false; }
protected override void UpdateLayout() { skin = Enabled ? skinEnabled : skinDisabled; textSize = skin.Font.ProcessText(textProcessed, text, new SizeF(WordWrap ? (AutoSize ? SizeMax.Width - skin.Padding.Horizontal : outer.Width - skin.Padding.Horizontal) : float.MaxValue, Multiline ? (AutoSize ? float.MaxValue : outer.Height - skin.Padding.Vertical) : skin.Font.LineSpacing), skin.TextAlign); if (AutoSize) { outer.Width = (int)textSize.Width + skin.Padding.Horizontal; outer.Height = (int)textSize.Height + skin.Padding.Vertical; } outer.Width = Math.Min(Math.Max(outer.Width, sizeMin.Width), sizeMax.Width); outer.Height = Math.Min(Math.Max(outer.Height, sizeMin.Height), sizeMax.Height); Inner = new Rectangle(skin.Padding.Left, skin.Padding.Top, outer.Width - skin.Padding.Horizontal, outer.Height - skin.Padding.Vertical); }