protected override void InternalDraw(YSpriteBatch spritebatch, double frameTime) { if (Model.DrawHeader) Model.FontName = "CenturyGothic11Bold"; else Model.FontName = "CenturyGothic11"; if (Model.DrawAsRecessed) { m_RecessedRenderer.Render(spritebatch, Model.ScreenArea); } else { if (Model.Parent.GetType() != typeof(Panel)) { int x = 6; int y = 6; Rectangle shadow_area = new Rectangle(Model.ScreenArea.X - x, Model.ScreenArea.Y - y, Model.ScreenArea.Width + x * 2, Model.ScreenArea.Height + y * 2); m_ShadowRenderer.Render(spritebatch, shadow_area); } m_PanelRenderer.Render(spritebatch, Model.ScreenArea); if (Model.DrawHeader) m_HeaderRenderer.Render(spritebatch, Model.ScreenArea); if (Model.Caption != null && Model.Caption != string.Empty) { Vector2 position = new Vector2( Model.ScreenArea.X + Model.ChildArea.X + (Model.DrawHeader && Model.HeaderIcon != null ? 28 : 4), Model.ScreenArea.Y + 5); spritebatch.DrawString(Font, Model.Caption, position, 18f, Vector2.Zero, Color.White); } } }
public void Draw(YSpriteBatch spritebatch, YSpriteFont font, Rectangle area, string text, float font_size, FontJustification justification, Color color) { if (text != null && text != string.Empty) { // if (m_InternalCaption != text) { m_InternalCaption = text; m_InternalCaptionWithLineBreaks = font.BreakStringIntoLines(m_InternalCaption, area.Width, font_size); } spritebatch.DrawString(font, m_InternalCaptionWithLineBreaks, new Vector2(area.X, area.Y), font_size, new Vector2(area.Width, area.Height), color: color, justification: justification); } }
protected override void InternalDraw(YSpriteBatch spritebatch, double frameTime) { Rectangle area = Model.ScreenArea; m_default.Render(spritebatch, area); area.X += m_hover.Buffer; foreach (MenuElement e in Model.Children) { bool elementDown = false; Vector2 v = Font.MeasureString(e.Label, m_FontSize); if (Model.IsMouseOver) { Rectangle button = new Rectangle(area.X, area.Y, (int)v.X + m_hover.Buffer * 2, m_MenuHeight); if (e.Enabled && button.Contains(Model.MousePosition)) if (Model.IsMouseDown) { m_pressed.Render(spritebatch, button); elementDown = true; } else m_hover.Render(spritebatch, button); } if (!elementDown) area.Y--; Color font_color = e.Enabled ? Color.White : Color.Gray; spritebatch.DrawString(Font, e.Label, new Vector2(area.X + m_hover.Buffer, area.Y + (m_MenuHeight - v.Y) / 2f), m_FontSize, color: font_color); if (!elementDown) area.Y++; area.X += (m_hover.Buffer * 2 + (int)v.X); area.Width -= (m_hover.Buffer * 2 + (int)v.X); } }
protected override void InternalDraw(YSpriteBatch spritebatch, double frameTime) { spritebatch.GUIClipRect_Push(Model.ScreenArea); Color background = new Color(96, 96, 96, 255); Color foreground = background * 1.2f; Color selected = Color.DarkGray; Color border = Color.LightGray; Color clrText = Color.White; DrawCommon_FillBackground(spritebatch, background); // if selection // render selection rect spritebatch.DrawString(Font, Model.Value, new Vector2(Model.ScreenArea.X + 2, Model.ScreenArea.Y + 2), Model.FontSize, color: clrText); if (m_CursorVisible) { Vector2 cursor_pos = Vector2.Zero; if (Model.CursorPosition > 0) cursor_pos = Font.MeasureString(Model.Value.Substring(0, Model.CursorPosition), Model.FontSize); Vector2 cursor_size = Font.MeasureString("|", Model.FontSize); spritebatch.DrawString(Font, "|", new Vector2(Model.ScreenArea.X + cursor_pos.X - cursor_size.X, Model.ScreenArea.Y + 2), Model.FontSize, color: clrText); } DrawCommon_Border(spritebatch, border); spritebatch.GUIClipRect_Pop(); }
protected override void InternalDraw(YSpriteBatch spritebatch, double frameTime) { if (Model.TabCount == 0) { m_TabAreaRenderer.DrawTabs = false; m_TabAreaRenderer.Render(spritebatch, Model.ScreenArea); } else { int tab_space_begin = 8; int tab_space_end = 0; // draw the background of the tab space m_TabAreaUnderRenderer.Render(spritebatch, Model.ScreenArea); // get the width of the tabs TabAreas = new Rectangle[Model.TabCount]; int x = tab_space_begin + 5; for (int i = 0; i < Model.TabCount; i++) { string caption = Model.GetTabCaption(i); Vector2 caption_size = Font.MeasureString(caption, 18f); TabAreas[i] = new Rectangle(x, Model.ScreenArea.Y + 8, (int)caption_size.X + 16, 28); x += TabAreas[i].Width; } m_TabAreaRenderer.DrawTabs = true; m_TabAreaRenderer.TabSpaceBegin = tab_space_begin; m_TabAreaRenderer.TabSpaceWidth = x - 4; m_TabAreaRenderer.Render(spritebatch, Model.ScreenArea); int up = 0, down = 20, hover = 30; for (int i = 0; i < Model.TabCount; i++) { Color text_color; Rendering.HorizontalSlidingRenderer renderer; if (Model.SelectedTab == i) { renderer = m_TabSelectedRenderer; text_color = new Color(up, up, up, 255); } else if (Model.HoverTab == i) { renderer = m_TabUnselectedHoverRenderer; text_color = new Color(hover, hover, hover, 255); } else { renderer = m_TabUnselectedRenderer; text_color = new Color(down, down, down, 255); } renderer.Render(spritebatch, TabAreas[i]); spritebatch.DrawString(Font, Model.GetTabCaption(i), new Vector2(TabAreas[i].X + 8, TabAreas[i].Y + 4), 18f, color: text_color); } tab_space_end = x + 16; if (Model.Caption != null) { spritebatch.DrawString(Font, Model.Caption, new Vector2(tab_space_end, 11), 18f, color: Color.Black); } } }