protected override void UpdateLayout() { skin = Enabled ? (down ? skinPressed : (over ? skinHover : skinEnabled)) : skinDisabled; innerBox = new Rectangle(skin.Border.Left, skin.Border.Top, outerBox.Width - skin.Border.Horizontal, outerBox.Height - skin.Border.Vertical); outer.Width = Math.Min(Math.Max(outer.Width, sizeMin.Width), sizeMax.Width); int innerWidth = outer.Width - skin.Border.Horizontal - outerBox.Width; textSize = skin.Font.ProcessText(textProcessed, text, GLFontAlignment.Left); int minHeight = Math.Max(sizeMin.Height, (int)textSize.Height + skin.Border.Vertical); if (AutoSize) { innerWidth = (int)textSize.Width; outer.Width = innerWidth + outerBox.Width + skin.Border.Horizontal; outer.Height = minHeight; outer.Width = Math.Min(Math.Max(outer.Width, sizeMin.Width), sizeMax.Width); } outer.Height = Math.Min(Math.Max(outer.Height, minHeight), sizeMax.Height); Inner = new Rectangle( outerBox.Right + skin.Border.Left, skin.Border.Top, innerWidth, outer.Height - skin.Border.Vertical); }
public GLCheckBox(GLGui gui) : base(gui) { Render += OnRender; MouseDown += OnMouseDown; MouseUp += OnMouseUp; MouseEnter += OnMouseEnter; MouseLeave += OnMouseLeave; skinEnabled = Gui.Skin.CheckBoxEnabled; skinPressed = Gui.Skin.CheckBoxPressed; skinHover = Gui.Skin.CheckBoxHover; skinDisabled = Gui.Skin.CheckBoxDisabled; outer = outerBox; sizeMin = outerBox.Size; sizeMax = new Size(int.MaxValue, int.MaxValue); HandleMouseEvents = false; }