Exemplo n.º 1
0
        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);
                }
            }
        }
Exemplo n.º 2
0
 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);
     }
 }
Exemplo n.º 3
0
        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);
            }
        }
Exemplo n.º 4
0
        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();
        }
Exemplo n.º 5
0
        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);
                }
            }
        }