public void DrawWithOffset(Point _pOffset) { Rectangle rect = LayoutRect; rect.Offset(_pOffset); if (ButtonFrame != null) { Screen.DrawBox((!IsOpen && !mbIsPressed) ? ButtonFrame : ButtonFrameDown, rect, Screen.Style.ButtonCornerSize, Color.White); } if (mbIsHovered && !IsOpen && mPressedAnim.IsOver) { if (Screen.IsActive) { Screen.DrawBox(ButtonFrameHover, rect, Screen.Style.ButtonCornerSize, Color.White); } } else { Screen.DrawBox(ButtonFramePressed, rect, Screen.Style.ButtonCornerSize, Color.White * mPressedAnim.CurrentValue); } if (Screen.IsActive && HasFocus && !IsOpen) { Screen.DrawBox(Screen.Style.ButtonFocusOverlay, rect, Screen.Style.ButtonCornerSize, Color.White); } Screen.Game.SpriteBatch.Draw(Screen.Style.DropDownArrow, new Vector2(rect.Right - Padding.Right - TextPadding.Right - Screen.Style.DropDownArrow.Width, rect.Center.Y - Screen.Style.DropDownArrow.Height / 2), Color.White ); mCurrentItemLabel.DrawWithOffset(_pOffset); }
//---------------------------------------------------------------------- public void DrawWithOffset(Point _pOffset) { var rect = mCheckBoxRect; rect.Offset(_pOffset); Screen.DrawBox(Frame, rect, FrameCornerSize, Color.White); if (mbIsHovered) { Screen.DrawBox(Screen.Style.CheckBoxFrameHover, rect, FrameCornerSize, Color.White); } Texture2D tex; switch (CheckState) { case UI.CheckBoxState.Checked: tex = Screen.Style.CheckBoxChecked; break; case UI.CheckBoxState.Unchecked: tex = Screen.Style.CheckBoxUnchecked; break; case UI.CheckBoxState.Inconsistent: tex = Screen.Style.CheckBoxInconsistent; break; default: throw new NotSupportedException(); } Screen.Game.SpriteBatch.Draw(tex, new Vector2(rect.Center.X, rect.Center.Y), null, Color.White, 0f, new Vector2(tex.Width, tex.Height) / 2f, 1f, SpriteEffects.None, 1f); mLabel.DrawWithOffset(_pOffset); }