void DrawTab() { bool bIsActive = IsActive; Screen.DrawBox(bIsActive ? mNotebook.Style.ActiveTab : mNotebook.Style.Tab, LayoutRect, mNotebook.Style.TabCornerSize, Color.White); if (mNotebook.HoveredTab == this && !bIsActive) { if (Screen.IsActive) { Screen.DrawBox(Screen.Style.ButtonHoverOverlay, LayoutRect, mNotebook.Style.TabCornerSize, Color.White); } } if (IsUnread) { Screen.DrawBox(mNotebook.Style.UnreadTabMarker, LayoutRect, mNotebook.Style.TabCornerSize, Color.White); } if (Screen.IsActive && HasFocus) { Screen.DrawBox(bIsActive ? mNotebook.Style.ActiveTabFocus : mNotebook.Style.TabFocus, LayoutRect, mNotebook.Style.TabCornerSize, Color.White); } mLabel.Draw(); mIcon.Draw(); if (IsClosable) { mCloseButton.Draw(); } }
//----------------------------------------------------------------------- public override void Draw() { if (mbIsHovered) { Color handleColor = Color.White * (mbIsDragging ? 1f : 0.8f); Screen.DrawBox(SplitterFrame, HitBox, SplitterFrameCornerSize, handleColor); float fHandleAngle; switch (mDirection) { case Direction.Left: fHandleAngle = mbCollapsed ? 0f : MathHelper.Pi; break; case Direction.Right: fHandleAngle = mbCollapsed ? MathHelper.Pi : 0f; break; case Direction.Up: fHandleAngle = mbCollapsed ? MathHelper.PiOver2 : (3f * MathHelper.PiOver2); break; case Direction.Down: fHandleAngle = mbCollapsed ? (3f * MathHelper.PiOver2) : MathHelper.PiOver2; break; default: throw new NotSupportedException(); } Screen.Game.SpriteBatch.Draw(HandleTex, new Vector2(HitBox.Center.X, HitBox.Center.Y), null, handleColor, fHandleAngle, new Vector2(HandleTex.Width / 2f, HandleTex.Height / 2f), 1f, SpriteEffects.None, 0f); } if (!InvertDrawOrder) { if (mFirstPane != null && mbDisplayFirstPane) { mFirstPane.Draw(); } if (mSecondPane != null && mbDisplaySecondPane) { mSecondPane.Draw(); } } else { if (mSecondPane != null && mbDisplaySecondPane) { mSecondPane.Draw(); } if (mFirstPane != null && mbDisplayFirstPane) { mFirstPane.Draw(); } } }
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); }
protected internal override void DrawFocused() { if (ClickHandler != null) { Screen.DrawBox(Screen.Style.ButtonFocusOverlay, LayoutRect, Screen.Style.ButtonCornerSize, Color.White); } }
//---------------------------------------------------------------------- public override void Draw() { Screen.DrawBox(Screen.Style.ProgressBarFrame, LayoutRect, Screen.Style.ProgressBarFrameCornerSize, Color.White); if (Value > 0) { Rectangle progressRect = new Rectangle(LayoutRect.X, LayoutRect.Y, Screen.Style.ProgressBar.Width / 2 + (int)((LayoutRect.Width - Screen.Style.ProgressBar.Width / 2) * mfLerpValue / Max), LayoutRect.Height); Screen.DrawBox(Screen.Style.ProgressBar, progressRect, Screen.Style.ProgressBarCornerSize, Color.White); } }
//---------------------------------------------------------------------- public void DrawWithOffset(Point _pOffset) { var rect = LayoutRect; rect.Offset(_pOffset); if (Frame != null) { Screen.DrawBox(Frame, rect, FrameCornerSize, Color.White); } if (Screen.IsActive && mbIsHovered) { Screen.DrawBox(Screen.Style.EditBoxHoverOverlay, rect, Screen.Style.EditBoxCornerSize, Color.White); } Screen.PushScissorRectangle(new Rectangle(rect.X + Padding.Left, rect.Y, rect.Width - Padding.Horizontal, rect.Height)); if (mstrDisplayedText != "") { Screen.Game.SpriteBatch.DrawString(mFont, mstrDisplayedText, new Vector2(mpTextPosition.X - miScrollOffset + _pOffset.X, mpTextPosition.Y + mFont.YOffset + _pOffset.Y), TextColor); } else { Screen.Game.SpriteBatch.DrawString(mFont, PlaceholderText, new Vector2(mpTextPosition.X - miScrollOffset + _pOffset.X, mpTextPosition.Y + mFont.YOffset + _pOffset.Y), TextColor * 0.5f); } Screen.PopScissorRectangle(); const float fBlinkInterval = 0.3f; if (SelectionOffset != 0) { Screen.PushScissorRectangle(new Rectangle(rect.X + Padding.Left, rect.Y + Padding.Top, rect.Width - Padding.Horizontal, rect.Height - Padding.Vertical)); Rectangle selectionRectangle; if (SelectionOffset > 0) { selectionRectangle = new Rectangle(mpTextPosition.X + miCaretX - miScrollOffset, rect.Y + Padding.Top, miSelectionX - miCaretX, rect.Height - Padding.Vertical); } else { selectionRectangle = new Rectangle(mpTextPosition.X + miSelectionX - miScrollOffset, rect.Y + Padding.Top, miCaretX - miSelectionX, rect.Height - Padding.Vertical); } Screen.Game.SpriteBatch.Draw(Screen.Game.WhitePixelTex, selectionRectangle, TextColor * 0.3f); Screen.PopScissorRectangle(); } else if (Screen.IsActive && HasFocus && mfCaretTimer % (fBlinkInterval * 2) < fBlinkInterval) { Screen.Game.SpriteBatch.Draw(Screen.Game.WhitePixelTex, new Rectangle(mpTextPosition.X + miCaretX - miScrollOffset, rect.Y + Padding.Top, Screen.Style.CaretWidth, rect.Height - Padding.Vertical), TextColor); } }
//---------------------------------------------------------------------- public override void Draw() { if (Frame != null) { Screen.DrawBox(Frame, LayoutRect, FrameCornerSize, Color.White); } if (mImage.Texture != null) { mImage.Draw(); } mLabel.Draw(); }
//---------------------------------------------------------------------- public override void Draw() { if (miMax > 0) { Screen.DrawBox( Screen.Style.VerticalScrollbar, new Rectangle( ScrollRect.Right - 5 - Screen.Style.VerticalScrollbar.Width / 2, ScrollRect.Y + 10 + miScrollbarOffset, Screen.Style.VerticalScrollbar.Width, miScrollbarHeight), Screen.Style.VerticalScrollbarCornerSize, mScrollbarColor); } }
public override void Draw() { Rectangle rect = new Rectangle(LayoutRect.X, LayoutRect.Center.Y - Screen.Style.SliderHandleSize / 2, LayoutRect.Width, Screen.Style.SliderHandleSize); Screen.DrawBox(Frame, rect, Screen.Style.SliderFrameCornerSize, Color.White); int handleX = rect.X + (int)((rect.Width - Screen.Style.SliderHandleSize) * (float)(Value - MinValue) / (MaxValue - MinValue)); Screen.DrawBox((!mbIsPressed) ? HandleFrame : HandleDownFrame, new Rectangle(handleX, rect.Y, Screen.Style.SliderHandleSize, Screen.Style.SliderHandleSize), Screen.Style.ButtonCornerSize, Color.White); if (Screen.IsActive && mbIsHovered && !mbIsPressed) { Screen.DrawBox(HandleHoverOverlay, new Rectangle(handleX, rect.Y, Screen.Style.SliderHandleSize, Screen.Style.SliderHandleSize), Screen.Style.ButtonCornerSize, Color.White); } if (Screen.IsActive && HasFocus && !mbIsPressed) { Screen.DrawBox(HandleFocusOverlay, new Rectangle(handleX, rect.Y, Screen.Style.SliderHandleSize, Screen.Style.SliderHandleSize), Screen.Style.ButtonCornerSize, Color.White); } }
//---------------------------------------------------------------------- public override void Draw() { if (mfTooltipTimer < sfTooltipDelay || string.IsNullOrEmpty(Text)) { return; } UIFont font = Screen.Style.MediumFont; Vector2 vSize = font.MeasureString(Text); int iWidth = (int)vSize.X; int iHeight = (int)vSize.Y; Point topLeft = new Point( Math.Min(Screen.Game.InputMgr.MouseState.X, Screen.Width - iWidth - Padding.Horizontal), Math.Min(Screen.Game.InputMgr.MouseState.Y + 20, Screen.Height - iHeight - Padding.Vertical)); Screen.DrawBox(Screen.Style.TooltipFrame, new Rectangle(topLeft.X, topLeft.Y, iWidth + Padding.Horizontal, iHeight + Padding.Vertical), Screen.Style.TooltipCornerSize, Color.White); Screen.Game.SpriteBatch.DrawString(font, Text, new Vector2(topLeft.X + Padding.Left, topLeft.Y + Padding.Top + font.YOffset), Screen.Style.TooltipTextColor); }
//---------------------------------------------------------------------- public override void Draw() { Screen.DrawBox(Screen.Style.EditBoxFrame, LayoutRect, Screen.Style.EditBoxCornerSize, Color.White); if (Screen.IsActive && mbIsHovered) { Screen.DrawBox(Screen.Style.EditBoxHoverOverlay, LayoutRect, Screen.Style.EditBoxCornerSize, Color.White); } Screen.PushScissorRectangle(new Rectangle(LayoutRect.X + Padding.Left, LayoutRect.Y, LayoutRect.Width - Padding.Horizontal, LayoutRect.Height)); Screen.Game.SpriteBatch.DrawString(mFont, DisplayedKey, new Vector2(mpTextPosition.X, mpTextPosition.Y + mFont.YOffset), TextColor); Screen.PopScissorRectangle(); if (HasFocus) { Rectangle selectionRectangle = new Rectangle(mpTextPosition.X, LayoutRect.Y + Padding.Top, miTextWidth, LayoutRect.Height - Padding.Vertical); Screen.Game.SpriteBatch.Draw(Screen.Game.WhitePixelTex, selectionRectangle, TextColor * 0.3f); } }
//---------------------------------------------------------------------- public override void Draw() { Texture2D frame = (!mbIsPressed) ? Style.Frame : Style.DownFrame; if (frame != null) { Screen.DrawBox(frame, LayoutRect, Style.CornerSize, Color.White); } Rectangle marginRect = new Rectangle(LayoutRect.X + Margin.Left, LayoutRect.Y + Margin.Top, LayoutRect.Width - Margin.Left - Margin.Right, LayoutRect.Height - Margin.Top - Margin.Bottom); if (mbIsHovered && !mbIsPressed && mPressedAnim.IsOver) { if (Screen.IsActive && Style.HoverOverlay != null) { Screen.DrawBox(Style.HoverOverlay, marginRect, Style.CornerSize, Color.White); } } else if (mPressedAnim.CurrentValue > 0f) { if (Style.DownOverlay != null) { Screen.DrawBox(Style.DownOverlay, marginRect, Style.CornerSize, Color.White * mPressedAnim.CurrentValue); } } if (Screen.IsActive && HasFocus && !mbIsPressed) { if (Style.FocusOverlay != null) { Screen.DrawBox(Style.FocusOverlay, marginRect, Style.CornerSize, Color.White); } } mLabel.Draw(); mIcon.Draw(); }
//---------------------------------------------------------------------- protected internal override void DrawFocused() { if (IsOpen) { int iLinesDisplayed = Math.Min(siMaxLineDisplayed, Items.Count); var rect = new Rectangle(LayoutRect.X, LayoutRect.Bottom, LayoutRect.Width, iLinesDisplayed * (Screen.Style.MediumFont.LineSpacing + TextPadding.Vertical) + Padding.Vertical); Screen.DrawBox(Screen.Style.ListViewStyle.ListViewFrame, rect, Screen.Style.ListViewStyle.ListViewFrameCornerSize, Color.White); int iMaxIndex = Math.Min(Items.Count - 1, ScrollItemOffset + iLinesDisplayed - 1); for (int iIndex = ScrollItemOffset; iIndex <= iMaxIndex; iIndex++) { if (Screen.IsActive && miHoveredItemIndex == iIndex) { Screen.DrawBox(Screen.Style.DropDownBoxEntryHoverOverlay, new Rectangle(LayoutRect.X + TextPadding.Left, LayoutRect.Bottom + (Screen.Style.MediumFont.LineSpacing + TextPadding.Vertical) * (iIndex - ScrollItemOffset) + TextPadding.Top, LayoutRect.Width - TextPadding.Horizontal, Screen.Style.MediumFont.LineSpacing + TextPadding.Vertical + 10), 10, Color.White); } Items[iIndex].Draw(); } mScrollbar.Draw(); } }
//---------------------------------------------------------------------- public override void Draw() { if (Texture != null) { Screen.DrawBox(Texture, new Rectangle(LayoutRect.X + Margin.Left, LayoutRect.Y + Margin.Top, LayoutRect.Width - Margin.Horizontal, LayoutRect.Height - Margin.Vertical), CornerSize, Color.White); } if (DoClipping) { Screen.PushScissorRectangle(new Rectangle(LayoutRect.X + Padding.Left + Margin.Left, LayoutRect.Y + Padding.Top + Margin.Top, LayoutRect.Width - Padding.Horizontal - Margin.Horizontal, LayoutRect.Height - Padding.Vertical - Margin.Vertical)); } base.Draw(); if (DoClipping) { Screen.PopScissorRectangle(); } if (EnableScrolling) { Scrollbar.Draw(); } }
//---------------------------------------------------------------------- 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); }
//---------------------------------------------------------------------- public override void Draw() { Screen.DrawBox(Style.ListViewFrame, LayoutRect, Style.ListViewFrameCornerSize, Color.White); if (DisplayColumnHeaders) { int iColX = 0; foreach (ListViewColumn col in Columns) { Screen.DrawBox(Style.ColumnHeaderFrame, new Rectangle(LayoutRect.X + Padding.Left + iColX, LayoutRect.Y + Padding.Top, col.Width, Style.RowHeight), Style.ColumnHeaderCornerSize, Color.White); if (col.Label != null) { col.Label.Draw(); } else { col.Image.Draw(); } iColX += col.Width + ColSpacing; } } Screen.PushScissorRectangle(new Rectangle(LayoutRect.X + Padding.Left, LayoutRect.Y + Padding.Top + (DisplayColumnHeaders ? Style.RowHeight : 0), LayoutRect.Width - Padding.Horizontal, LayoutRect.Height - Padding.Vertical - (DisplayColumnHeaders ? Style.RowHeight : 0))); int iRowIndex = 0; foreach (ListViewRow row in Rows) { int iRowY = GetRowY(iRowIndex); if ((iRowY + Style.RowHeight + Style.RowSpacing < 0) || (iRowY > LayoutRect.Height - Padding.Vertical)) { iRowIndex++; continue; } if (MergeColumns) { Rectangle rowRect = new Rectangle(LayoutRect.X + Padding.Left, LayoutRect.Y + Padding.Top + iRowY, LayoutRect.Width - Padding.Horizontal, Style.RowHeight); Screen.DrawBox(SelectedRow == row ? Style.SelectedCellFrame : Style.CellFrame, rowRect, Style.CellCornerSize, Color.White); if (HasFocus && FocusedRow == row) { if (SelectedRow != row) { Screen.DrawBox(Style.CellFocusOverlay, rowRect, Style.CellCornerSize, Color.White); } else if (Style.SelectedCellFocusOverlay != null) { Screen.DrawBox(Style.SelectedCellFocusOverlay, rowRect, Style.CellCornerSize, Color.White); } } if (HoveredRow == row && !IsDragging) { if (SelectedRow != row) { Screen.DrawBox(Style.CellHoverOverlay, rowRect, Style.CellCornerSize, Color.White); } else if (Style.SelectedCellHoverOverlay != null) { Screen.DrawBox(Style.SelectedCellHoverOverlay, rowRect, Style.CellCornerSize, Color.White); } } } int iColX = 0; for (int i = 0; i < row.Cells.Length; i++) { ListViewColumn col = Columns[i]; Rectangle rowRect = new Rectangle(LayoutRect.X + Padding.Left + iColX, LayoutRect.Y + Padding.Top + iRowY, col.Width, Style.RowHeight); if (!MergeColumns) { Screen.DrawBox(SelectedRow == row ? Style.SelectedCellFrame : Style.CellFrame, rowRect, Style.CellCornerSize, Color.White); if (HasFocus && FocusedRow == row) { if (SelectedRow != row) { Screen.DrawBox(Style.CellFocusOverlay, rowRect, Style.CellCornerSize, Color.White); } else if (Style.SelectedCellFocusOverlay != null) { Screen.DrawBox(Style.SelectedCellFocusOverlay, rowRect, Style.CellCornerSize, Color.White); } } if (HoveredRow == row && !IsDragging) { if (SelectedRow != row) { Screen.DrawBox(Style.CellHoverOverlay, rowRect, Style.CellCornerSize, Color.White); } else if (Style.SelectedCellHoverOverlay != null) { Screen.DrawBox(Style.SelectedCellHoverOverlay, rowRect, Style.CellCornerSize, Color.White); } } } row.Cells[i].Draw(new Point(LayoutRect.X + Padding.Left + iColX, LayoutRect.Y + Padding.Top + iRowY)); iColX += col.Width + ColSpacing; } iRowIndex++; } if (NewRowText != null) { int iRowY = GetRowY(iRowIndex); Screen.DrawBox(mbIsHoveringNewRow ? Style.NewRowHoveredFrame : Style.NewRowFrame, new Rectangle(LayoutRect.X + Padding.Left, LayoutRect.Y + Padding.Top + iRowY, LayoutRect.Width - Padding.Horizontal, Style.RowHeight), Style.NewRowFrameCornerSize, Color.White); Vector2 vTextPos = new Vector2(LayoutRect.X + Padding.Left + Style.NewRowHorizontalPadding, LayoutRect.Y + Padding.Top + iRowY + Style.RowHeight / 2f - (int)(Screen.Style.MediumFont.LineSpacing * 0.9f / 2f) + Screen.Style.MediumFont.YOffset); Screen.Game.SpriteBatch.DrawString(Screen.Style.MediumFont, NewRowText, vTextPos, mbIsHoveringNewRow ? Style.NewRowHoveredTextColor : Style.NewRowTextColor); iRowIndex++; } if (HoveredRow != null && !IsDragging) { foreach (Button button in ActionButtons) { button.Draw(); } } if (IsDragging && HitBox.Contains(mHoverPoint)) { int iX = LayoutRect.X + Padding.Left; int iWidth = LayoutRect.Width - Padding.Horizontal; if (HoveredRow != null) { int iY = LayoutRect.Y + Padding.Top + GetRowY(Rows.IndexOf(HoveredRow) + (mbInsertAfter ? 1 : 0)) - (Style.RowSpacing + Screen.Style.ListRowInsertMarker.Height) / 2; Rectangle markerRect = new Rectangle(iX, iY, iWidth, Screen.Style.ListRowInsertMarker.Height); Screen.DrawBox(Screen.Style.ListRowInsertMarker, markerRect, Screen.Style.ListRowInsertMarkerCornerSize, Color.White); } else if (IsHovered) { int iY = LayoutRect.Y + Padding.Top + (mbInsertAfter ? GetRowY(Rows.Count) : 0) - (Style.RowSpacing + Screen.Style.ListRowInsertMarker.Height) / 2; Rectangle markerRect = new Rectangle(iX, iY, iWidth, Screen.Style.ListRowInsertMarker.Height); Screen.DrawBox(Screen.Style.ListRowInsertMarker, markerRect, Screen.Style.ListRowInsertMarkerCornerSize, Color.White); } } Screen.PopScissorRectangle(); Scrollbar.Draw(); }
protected internal override void DrawFocused() { Screen.DrawBox(Screen.Style.ButtonFocusOverlay, mLabel.LayoutRect, Screen.Style.ButtonCornerSize, Color.White); }