Esempio n. 1
0
        internal override void DrawSelfAndChildren(Camera camera)
        {
            if (Highlighted)
            {
                float xPos            = .5f + mWorldUnitX + Width / 2.0f;
                float yPos            = mWorldUnitY;
                float highlightScaleX = .5f + this.Width / 2.0f;
                float highlightScaleY = mTextScale;

                StaticVertices[0].Position.X          = xPos - (float)highlightScaleX;
                StaticVertices[0].Position.Y          = (float)(yPos - highlightScaleY);
                StaticVertices[0].TextureCoordinate.X = .0234375f;
                StaticVertices[0].TextureCoordinate.Y = .65f;

                StaticVertices[1].Position.X          = xPos - (float)highlightScaleX;
                StaticVertices[1].Position.Y          = (float)(yPos + highlightScaleY);
                StaticVertices[1].TextureCoordinate.X = .0234375f;
                StaticVertices[1].TextureCoordinate.Y = .65f;

                StaticVertices[2].Position.X          = xPos + (float)highlightScaleX;
                StaticVertices[2].Position.Y          = (float)(yPos + highlightScaleY);
                StaticVertices[2].TextureCoordinate.X = .02734375f;
                StaticVertices[2].TextureCoordinate.Y = .66f;

                StaticVertices[3] = StaticVertices[0];
                StaticVertices[4] = StaticVertices[2];

                StaticVertices[5].Position.X          = xPos + (float)highlightScaleX;
                StaticVertices[5].Position.Y          = (float)(yPos - highlightScaleY);
                StaticVertices[5].TextureCoordinate.X = .02734375f;
                StaticVertices[5].TextureCoordinate.Y = .66f;

                GuiManager.WriteVerts(StaticVertices);
            }

            base.DrawSelfAndChildren(camera);
        }
Esempio n. 2
0
        internal override void DrawSelfAndChildren(Camera camera)
        {
            if (Visible == false)
            {
                return;
            }

            mTextBox.DrawSelfAndChildren(camera);

            #region draw the custom UpDown button

            float xToUse = (mUpDownButton.WorldUnitX);
            float yToUse = (mUpDownButton.WorldUnitY);
#if FRB_MDX
            float zToUse = (camera.Z + 100);
#else
            float zToUse = camera.Z - 100;
#endif

            StaticVertices[0].Color      = StaticVertices[1].Color = StaticVertices[2].Color = StaticVertices[3].Color = StaticVertices[4].Color = StaticVertices[5].Color = mColor;
            StaticVertices[0].Position.Z = StaticVertices[1].Position.Z = StaticVertices[2].Position.Z = StaticVertices[3].Position.Z = StaticVertices[4].Position.Z = StaticVertices[5].Position.Z = zToUse;


            if (mUpDownButton.ButtonPushedState == ButtonPushedState.Down)
            {
                StaticVertices[0].Position.X          = xToUse - mUpDownButton.ScaleX;
                StaticVertices[0].Position.Y          = yToUse - mUpDownButton.ScaleY;
                StaticVertices[0].TextureCoordinate.X = rightUp;
                StaticVertices[0].TextureCoordinate.Y = bottomUp;

                StaticVertices[1].Position.X          = xToUse - mUpDownButton.ScaleX;
                StaticVertices[1].Position.Y          = yToUse + mUpDownButton.ScaleY;
                StaticVertices[1].TextureCoordinate.X = rightUp;
                StaticVertices[1].TextureCoordinate.Y = topUp;

                StaticVertices[2].Position.X          = xToUse + mUpDownButton.ScaleX;
                StaticVertices[2].Position.Y          = yToUse + mUpDownButton.ScaleY;
                StaticVertices[2].TextureCoordinate.X = rightDown;
                StaticVertices[2].TextureCoordinate.Y = topUp;

                StaticVertices[3] = StaticVertices[0];
                StaticVertices[4] = StaticVertices[2];

                StaticVertices[5].Position.X          = xToUse + mUpDownButton.ScaleX;
                StaticVertices[5].Position.Y          = yToUse - mUpDownButton.ScaleY;
                StaticVertices[5].TextureCoordinate.X = rightDown;
                StaticVertices[5].TextureCoordinate.Y = bottomUp;

                GuiManager.WriteVerts(StaticVertices);
            }
            else
            {
                StaticVertices[0].Position.X          = xToUse - mUpDownButton.ScaleX;
                StaticVertices[0].Position.Y          = yToUse - mUpDownButton.ScaleY;
                StaticVertices[0].TextureCoordinate.X = leftUp;
                StaticVertices[0].TextureCoordinate.Y = bottomUp;

                StaticVertices[1].Position.X          = xToUse - mUpDownButton.ScaleX;
                StaticVertices[1].Position.Y          = yToUse + mUpDownButton.ScaleY;
                StaticVertices[1].TextureCoordinate.X = leftUp;
                StaticVertices[1].TextureCoordinate.Y = topUp;

                StaticVertices[2].Position.X          = xToUse + mUpDownButton.ScaleX;
                StaticVertices[2].Position.Y          = yToUse + mUpDownButton.ScaleY;
                StaticVertices[2].TextureCoordinate.X = rightUp;
                StaticVertices[2].TextureCoordinate.Y = topUp;

                StaticVertices[3] = StaticVertices[0];
                StaticVertices[4] = StaticVertices[2];

                StaticVertices[5].Position.X          = xToUse + mUpDownButton.ScaleX;
                StaticVertices[5].Position.Y          = yToUse - mUpDownButton.ScaleY;
                StaticVertices[5].TextureCoordinate.X = rightUp;
                StaticVertices[5].TextureCoordinate.Y = bottomUp;

                GuiManager.WriteVerts(StaticVertices);
            }

            #endregion
        }
Esempio n. 3
0
        internal override void DrawSelfAndChildren(Camera camera)
        {
            if (Visible == false)
            {
                return;
            }

            if (!mCollapsed)
            {
                base.DrawSelfAndChildren(camera);
            }
            else
            {
                #region collapsed

                float xToUse = (float)(mWorldUnitX);
                float yToUse = (float)(mWorldUnitY);


                StaticVertices[0].Color = StaticVertices[1].Color = StaticVertices[2].Color = StaticVertices[3].Color = StaticVertices[4].Color = StaticVertices[5].Color = mColor;

                StaticVertices[0].Position.Z     = StaticVertices[1].Position.Z = StaticVertices[2].Position.Z =
                    StaticVertices[3].Position.Z = StaticVertices[4].Position.Z = StaticVertices[5].Position.Z =
                        camera.Z + FlatRedBall.Math.MathFunctions.ForwardVector3.Z * 100;


                #region Left Side
                StaticVertices[0].Position.X          = xToUse - ScaleX;
                StaticVertices[0].Position.Y          = yToUse + ScaleY - .4f;
                StaticVertices[0].TextureCoordinate.X = 0;
                StaticVertices[0].TextureCoordinate.Y = .6953125f;

                StaticVertices[1].Position.X          = xToUse - ScaleX;
                StaticVertices[1].Position.Y          = yToUse + ScaleY + 2.8f;
                StaticVertices[1].TextureCoordinate.X = 0;
                StaticVertices[1].TextureCoordinate.Y = .570313f;

                StaticVertices[2].Position.X          = xToUse - ScaleX + .6f;
                StaticVertices[2].Position.Y          = yToUse + ScaleY + 2.8f;
                StaticVertices[2].TextureCoordinate.X = .0234375f;
                StaticVertices[2].TextureCoordinate.Y = .570313f;

                StaticVertices[3] = StaticVertices[0];
                StaticVertices[4] = StaticVertices[2];

                StaticVertices[5].Position.X          = xToUse - ScaleX + .6f;
                StaticVertices[5].Position.Y          = yToUse + ScaleY - .4f;
                StaticVertices[5].TextureCoordinate.X = .0234375f;
                StaticVertices[5].TextureCoordinate.Y = .6953125f;

                GuiManager.WriteVerts(StaticVertices);

                #endregion


                #region Title Bar Center
                StaticVertices[0].Position.X          = xToUse - ScaleX + .59f;
                StaticVertices[0].Position.Y          = yToUse + ScaleY - .4f;
                StaticVertices[0].TextureCoordinate.X = .01953125f;
                StaticVertices[0].TextureCoordinate.Y = .6953125f;

                StaticVertices[1].Position.X          = xToUse - ScaleX + .59f;
                StaticVertices[1].Position.Y          = yToUse + ScaleY + 2.8f;
                StaticVertices[1].TextureCoordinate.X = .01953125f;
                StaticVertices[1].TextureCoordinate.Y = .570313f;

                StaticVertices[2].Position.X          = xToUse + ScaleX - .59f;
                StaticVertices[2].Position.Y          = yToUse + ScaleY + 2.8f;
                StaticVertices[2].TextureCoordinate.X = .0234375f;
                StaticVertices[2].TextureCoordinate.Y = .570313f;

                StaticVertices[3] = StaticVertices[0];
                StaticVertices[4] = StaticVertices[2];

                StaticVertices[5].Position.X          = xToUse + ScaleX - .59f;
                StaticVertices[5].Position.Y          = yToUse + ScaleY - .4f;
                StaticVertices[5].TextureCoordinate.X = .0234375f;
                StaticVertices[5].TextureCoordinate.Y = .6953125f;

                GuiManager.WriteVerts(StaticVertices);

                #endregion

                #region Right Side
                StaticVertices[0].Position.X          = xToUse + ScaleX - .6f;
                StaticVertices[0].Position.Y          = yToUse + ScaleY - .4f;
                StaticVertices[0].TextureCoordinate.X = .0234375f;
                StaticVertices[0].TextureCoordinate.Y = .6953125f;

                StaticVertices[1].Position.X          = xToUse + ScaleX - .6f;
                StaticVertices[1].Position.Y          = yToUse + ScaleY + 2.8f;
                StaticVertices[1].TextureCoordinate.X = .0234375f;
                StaticVertices[1].TextureCoordinate.Y = .570313f;

                StaticVertices[2].Position.X          = xToUse + ScaleX;
                StaticVertices[2].Position.Y          = yToUse + ScaleY + 2.8f;
                StaticVertices[2].TextureCoordinate.X = 0;
                StaticVertices[2].TextureCoordinate.Y = .570313f;

                StaticVertices[3] = StaticVertices[0];
                StaticVertices[4] = StaticVertices[2];

                StaticVertices[5].Position.X          = xToUse + ScaleX;
                StaticVertices[5].Position.Y          = yToUse + ScaleY - .4f;
                StaticVertices[5].TextureCoordinate.X = 0;
                StaticVertices[5].TextureCoordinate.Y = .6953125f;

                GuiManager.WriteVerts(StaticVertices);

                #endregion

                #region title bar text
                if (mName != "")
                {
                    TextManager.mXForVertexBuffer = xToUse - ScaleX + 1.0f;
                    TextManager.mYForVertexBuffer = yToUse + ScaleY + 1.1f;
#if FRB_MDX
                    TextManager.mZForVertexBuffer = (float)camera.Z + 100;
#else
                    TextManager.mZForVertexBuffer = (float)camera.Z - 100;
#endif

                    TextManager.mRedForVertexBuffer   = 255;
                    TextManager.mGreenForVertexBuffer = 255;
                    TextManager.mBlueForVertexBuffer  = 255;

                    TextManager.mScaleForVertexBuffer   = GuiManager.TextHeight / 2.0f;
                    TextManager.mSpacingForVertexBuffer = GuiManager.TextSpacing;


                    TextManager.Draw(ref mName);
                }
                #endregion


                #endregion
            }
        }
Esempio n. 4
0
        internal void Draw(Camera camera, double startY, double startX, double maxWidth,
                           int numDeep, ref int itemNum, ref int numDrawn, int startAt, int numToDraw, float distanceBetweenLines)
        {
            if (itemNum > startAt - 1)
            {
                float yForThisRender = (float)(startY - distanceBetweenLines * numDrawn);
                float xPos           = (float)(startX + numDeep * .7);
                if (icons.Count != 0 && icons[0].ScaleX > .7f)
                {
                    xPos += icons[0].ScaleX - .7f;
                }
                float yPos = yForThisRender;

                #region draw the icons

                foreach (ListBoxIcon icon in icons)
                {
                    if (icon.Texture != null)
                    {
                        GuiManager.AddTextureSwitch(icon.Texture);
                    }



                    v[0].Position.X          = xPos - icon.ScaleX;
                    v[0].Position.Y          = yPos - icon.ScaleY;
                    v[0].TextureCoordinate.X = icon.Left;
                    v[0].TextureCoordinate.Y = icon.Bottom;


                    v[1].Position.X          = xPos - icon.ScaleX;
                    v[1].Position.Y          = yPos + icon.ScaleY;
                    v[1].TextureCoordinate.X = icon.Left;
                    v[1].TextureCoordinate.Y = icon.Top;

                    v[2].Position.X          = xPos + icon.ScaleX;
                    v[2].Position.Y          = yPos + icon.ScaleY;
                    v[2].TextureCoordinate.X = icon.Right;
                    v[2].TextureCoordinate.Y = icon.Top;

                    v[3] = v[0];
                    v[4] = v[2];

                    v[5].Position.X          = xPos + icon.ScaleX;
                    v[5].Position.Y          = yPos - icon.ScaleY;
                    v[5].TextureCoordinate.X = icon.Right;
                    v[5].TextureCoordinate.Y = icon.Bottom;

                    GuiManager.WriteVerts(v);

                    xPos += .1f + 2 * icon.ScaleX;
                }
                #endregion

                if (this.Text != null)
                {
                    string textToUse = this.Text.Replace('\n', ' ');



                    int numOfChars = TextManager.GetNumberOfCharsIn((float)(maxWidth - numDeep * .7f), textToUse, GuiManager.TextSpacing);

                    // TODO:  need to modify this to handle varying text sizes
                    TextManager.mScaleForVertexBuffer   = GuiManager.TextHeight / 2.0f;
                    TextManager.mSpacingForVertexBuffer = GuiManager.TextSpacing;

                    TextManager.mYForVertexBuffer = yForThisRender;
#if FRB_MDX
                    TextManager.mZForVertexBuffer = (float)camera.Z + 100;
#else
                    TextManager.mZForVertexBuffer = (float)camera.Z - 100;
#endif
                    if (Enabled)
                    {
                        TextManager.mAlphaForVertexBuffer = 1 * FlatRedBall.Graphics.GraphicalEnumerations.MaxColorComponentValue;
                    }
                    else
                    {
                        TextManager.mAlphaForVertexBuffer = .5f * FlatRedBall.Graphics.GraphicalEnumerations.MaxColorComponentValue;
                    }

                    TextManager.mAlignmentForVertexBuffer = HorizontalAlignment.Left;

                    if (mDrawHighlighted)
                    {
                        TextManager.mRedForVertexBuffer = TextManager.mGreenForVertexBuffer = TextManager.mBlueForVertexBuffer =
                            FlatRedBall.Graphics.GraphicalEnumerations.MaxColorComponentValue;
                    }
                    else
                    {
                        TextManager.mRedForVertexBuffer = TextManager.mGreenForVertexBuffer = TextManager.mBlueForVertexBuffer = 20;
                    }


#if FRB_MDX
                    v[0].Position.Z     = v[1].Position.Z = v[2].Position.Z = v[3].Position.Z =
                        v[4].Position.Z = v[5].Position.Z = camera.Z + 100;
#else
                    v[0].Position.Z     = v[1].Position.Z = v[2].Position.Z = v[3].Position.Z =
                        v[4].Position.Z = v[5].Position.Z = camera.Z - 100;
#endif

                    TextManager.mXForVertexBuffer = xPos;

                    if (numOfChars != 0)
                    {
                        if (numOfChars == textToUse.Length)
                        {
                            TextManager.Draw(ref textToUse);
                        }
                        else
                        {
                            string asString = textToUse.Substring(0, numOfChars);
                            TextManager.Draw(ref asString);
                        }
                    }
                }

                numDrawn++;
            }
            itemNum++;
            if (numDrawn > numToDraw - 1)
            {
                return;
            }
            if (mExpanded)
            {
                for (int i = 0; i < mItems.Count; i++)
                {
                    mItems[i].Draw(camera, startY, startX, maxWidth, numDeep + 1, ref itemNum, ref numDrawn, startAt, numToDraw, distanceBetweenLines);
                    if (numDrawn > numToDraw - 1)
                    {
                        return;
                    }
                }
            }
        }
Esempio n. 5
0
        internal override void DrawSelfAndChildren(Camera camera)
        {
            if (Visible == false)
            {
                return;
            }

            float xToUse    = mWorldUnitX;
            float yToUse    = mWorldUnitY;
            float edgeWidth = .2f;

            #region draw the basic button

            StaticVertices[0].Position.Z     = StaticVertices[1].Position.Z = StaticVertices[2].Position.Z =
                StaticVertices[3].Position.Z = StaticVertices[4].Position.Z = StaticVertices[5].Position.Z =
                    camera.Z + FlatRedBall.Math.MathFunctions.ForwardVector3.Z * 100;

            StaticVertices[0].Color = StaticVertices[1].Color = StaticVertices[2].Color = StaticVertices[3].Color = StaticVertices[4].Color = StaticVertices[5].Color = mColor;
            if (mDrawBase)
            {
                #region state == "down"
                if (ButtonPushedState == ButtonPushedState.Down)
                {
                    #region Top Left of the Window

                    StaticVertices[0].Position.X          = xToUse - ScaleX;
                    StaticVertices[0].Position.Y          = yToUse + ScaleY - edgeWidth;
                    StaticVertices[0].TextureCoordinate.X = .179688f;
                    StaticVertices[0].TextureCoordinate.Y = .64453125f;


                    StaticVertices[1].Position.X          = xToUse - ScaleX;
                    StaticVertices[1].Position.Y          = yToUse + ScaleY;
                    StaticVertices[1].TextureCoordinate.X = .179688f;
                    StaticVertices[1].TextureCoordinate.Y = .640625f;

                    StaticVertices[2].Position.X          = xToUse - ScaleX + edgeWidth;
                    StaticVertices[2].Position.Y          = yToUse + ScaleY;
                    StaticVertices[2].TextureCoordinate.X = .18359375f;
                    StaticVertices[2].TextureCoordinate.Y = .640625f;


                    StaticVertices[3] = StaticVertices[0];

                    StaticVertices[4] = StaticVertices[2];

                    StaticVertices[5].Position.X          = xToUse - ScaleX + edgeWidth;
                    StaticVertices[5].Position.Y          = yToUse + ScaleY - edgeWidth;
                    StaticVertices[5].TextureCoordinate.X = .18359375f;
                    StaticVertices[5].TextureCoordinate.Y = .64453125f;

                    GuiManager.WriteVerts(StaticVertices);

                    #endregion

                    #region Top Border

                    StaticVertices[0].Position.X          = xToUse - ScaleX + edgeWidth;
                    StaticVertices[0].Position.Y          = yToUse + ScaleY - edgeWidth;
                    StaticVertices[0].TextureCoordinate.X = .1796875f;
                    StaticVertices[0].TextureCoordinate.Y = .64453125f;


                    StaticVertices[1].Position.X          = xToUse - ScaleX + edgeWidth;
                    StaticVertices[1].Position.Y          = yToUse + ScaleY;
                    StaticVertices[1].TextureCoordinate.X = .1796875f;
                    StaticVertices[1].TextureCoordinate.Y = .640625f;


                    StaticVertices[2].Position.X          = xToUse + ScaleX - edgeWidth;
                    StaticVertices[2].Position.Y          = yToUse + ScaleY;
                    StaticVertices[2].TextureCoordinate.X = .18359375f;
                    StaticVertices[2].TextureCoordinate.Y = .640625f;


                    StaticVertices[3] = StaticVertices[0];

                    StaticVertices[4] = StaticVertices[2];

                    StaticVertices[5].Position.X          = xToUse + ScaleX - edgeWidth;
                    StaticVertices[5].Position.Y          = yToUse + ScaleY - edgeWidth;
                    StaticVertices[5].TextureCoordinate.X = .18359375f;
                    StaticVertices[5].TextureCoordinate.Y = .64453125f;

                    GuiManager.WriteVerts(StaticVertices);

                    #endregion

                    #region Top Right of the Window
                    StaticVertices[0].Position.X          = xToUse + ScaleX - edgeWidth;
                    StaticVertices[0].Position.Y          = yToUse + ScaleY - edgeWidth;
                    StaticVertices[0].TextureCoordinate.X = .17578125f;
                    StaticVertices[0].TextureCoordinate.Y = .640625f;

                    StaticVertices[1].Position.X          = xToUse + ScaleX - edgeWidth;
                    StaticVertices[1].Position.Y          = yToUse + ScaleY;
                    StaticVertices[1].TextureCoordinate.X = .17578125f;
                    StaticVertices[1].TextureCoordinate.Y = .63671875f;

                    StaticVertices[2].Position.X          = xToUse + ScaleX;
                    StaticVertices[2].Position.Y          = yToUse + ScaleY;
                    StaticVertices[2].TextureCoordinate.X = .1796875f;
                    StaticVertices[2].TextureCoordinate.Y = .63671875f;

                    StaticVertices[3] = StaticVertices[0];

                    StaticVertices[4] = StaticVertices[2];

                    StaticVertices[5].Position.X          = xToUse + ScaleX;
                    StaticVertices[5].Position.Y          = yToUse + ScaleY - edgeWidth;
                    StaticVertices[5].TextureCoordinate.X = .1796875f;
                    StaticVertices[5].TextureCoordinate.Y = .640625f;

                    GuiManager.WriteVerts(StaticVertices);
                    #endregion


                    #region RightBorder
                    StaticVertices[0].Position.X          = xToUse + ScaleX - edgeWidth;
                    StaticVertices[0].Position.Y          = yToUse - ScaleY + edgeWidth;
                    StaticVertices[0].TextureCoordinate.X = .17578125f;
                    StaticVertices[0].TextureCoordinate.Y = .63671875f;

                    StaticVertices[1].Position.X          = xToUse + ScaleX - edgeWidth;
                    StaticVertices[1].Position.Y          = yToUse + ScaleY - edgeWidth;
                    StaticVertices[1].TextureCoordinate.X = .17578125f;
                    StaticVertices[1].TextureCoordinate.Y = .6328125f;

                    StaticVertices[2].Position.X          = xToUse + ScaleX;
                    StaticVertices[2].Position.Y          = yToUse + ScaleY - edgeWidth;
                    StaticVertices[2].TextureCoordinate.X = .1796875f;
                    StaticVertices[2].TextureCoordinate.Y = .6328125f;

                    StaticVertices[3] = StaticVertices[0];

                    StaticVertices[4] = StaticVertices[2];

                    StaticVertices[5].Position.X          = xToUse + ScaleX;
                    StaticVertices[5].Position.Y          = yToUse - ScaleY + edgeWidth;
                    StaticVertices[5].TextureCoordinate.X = .1796875f;
                    StaticVertices[5].TextureCoordinate.Y = .63671875f;

                    GuiManager.WriteVerts(StaticVertices);

                    #endregion


                    #region Bottom Border

                    StaticVertices[0].Position.X          = xToUse - ScaleX + edgeWidth;
                    StaticVertices[0].Position.Y          = yToUse - ScaleY;
                    StaticVertices[0].TextureCoordinate.X = .1796875f;
                    StaticVertices[0].TextureCoordinate.Y = .63671875f;

                    StaticVertices[1].Position.X          = xToUse - ScaleX + edgeWidth;
                    StaticVertices[1].Position.Y          = yToUse - ScaleY + edgeWidth;
                    StaticVertices[1].TextureCoordinate.X = .1796875f;
                    StaticVertices[1].TextureCoordinate.Y = .6328125f;

                    StaticVertices[2].Position.X          = xToUse + ScaleX - edgeWidth;
                    StaticVertices[2].Position.Y          = yToUse - ScaleY + edgeWidth;
                    StaticVertices[2].TextureCoordinate.X = .18359375f;
                    StaticVertices[2].TextureCoordinate.Y = .6328125f;

                    StaticVertices[3] = StaticVertices[0];

                    StaticVertices[4] = StaticVertices[2];

                    StaticVertices[5].Position.X          = xToUse + ScaleX - edgeWidth;
                    StaticVertices[5].Position.Y          = yToUse - ScaleY;
                    StaticVertices[5].TextureCoordinate.X = .18359375f;
                    StaticVertices[5].TextureCoordinate.Y = .63671875f;

                    GuiManager.WriteVerts(StaticVertices);

                    #endregion


                    #region LeftBorder
                    StaticVertices[0].Position.X          = xToUse - ScaleX;
                    StaticVertices[0].Position.Y          = yToUse - ScaleY + edgeWidth;
                    StaticVertices[0].TextureCoordinate.X = .18359375f;
                    StaticVertices[0].TextureCoordinate.Y = .640625f;

                    StaticVertices[1].Position.X          = xToUse - ScaleX;
                    StaticVertices[1].Position.Y          = yToUse + ScaleY - edgeWidth;
                    StaticVertices[1].TextureCoordinate.X = .18359375f;
                    StaticVertices[1].TextureCoordinate.Y = .63671875f;

                    StaticVertices[2].Position.X          = xToUse - ScaleX + edgeWidth;
                    StaticVertices[2].Position.Y          = yToUse + ScaleY - edgeWidth;
                    StaticVertices[2].TextureCoordinate.X = .1875f;
                    StaticVertices[2].TextureCoordinate.Y = .63671875f;

                    StaticVertices[3] = StaticVertices[0];

                    StaticVertices[4] = StaticVertices[2];

                    StaticVertices[5].Position.X          = xToUse - ScaleX + edgeWidth;
                    StaticVertices[5].Position.Y          = yToUse - ScaleY + edgeWidth;
                    StaticVertices[5].TextureCoordinate.X = .1875f;
                    StaticVertices[5].TextureCoordinate.Y = .640625f;

                    GuiManager.WriteVerts(StaticVertices);

                    #endregion

                    #region Bottom Left of the Window
                    StaticVertices[0].Position.X          = xToUse - ScaleX;
                    StaticVertices[0].Position.Y          = yToUse - ScaleY;
                    StaticVertices[0].TextureCoordinate.X = .179688f;
                    StaticVertices[0].TextureCoordinate.Y = .63671875f;

                    StaticVertices[1].Position.X          = xToUse - ScaleX;
                    StaticVertices[1].Position.Y          = yToUse - ScaleY + edgeWidth;
                    StaticVertices[1].TextureCoordinate.X = .179688f;
                    StaticVertices[1].TextureCoordinate.Y = .6328125f;

                    StaticVertices[2].Position.X          = xToUse - ScaleX + edgeWidth;
                    StaticVertices[2].Position.Y          = yToUse - ScaleY + edgeWidth;
                    StaticVertices[2].TextureCoordinate.X = .18359375f;
                    StaticVertices[2].TextureCoordinate.Y = .6328125f;

                    StaticVertices[3] = StaticVertices[0];

                    StaticVertices[4] = StaticVertices[2];

                    StaticVertices[5].Position.X          = xToUse - ScaleX + edgeWidth;
                    StaticVertices[5].Position.Y          = yToUse - ScaleY;
                    StaticVertices[5].TextureCoordinate.X = .18359375f;
                    StaticVertices[5].TextureCoordinate.Y = .63671875f;

                    GuiManager.WriteVerts(StaticVertices);

                    #endregion

                    #region Center
                    StaticVertices[0].Position.X          = xToUse - ScaleX + edgeWidth;
                    StaticVertices[0].Position.Y          = yToUse - ScaleY + edgeWidth;
                    StaticVertices[0].TextureCoordinate.X = .10938f;
                    StaticVertices[0].TextureCoordinate.Y = .63719f;

                    StaticVertices[1].Position.X          = xToUse - ScaleX + edgeWidth;
                    StaticVertices[1].Position.Y          = yToUse + ScaleY - edgeWidth;
                    StaticVertices[1].TextureCoordinate.X = .10938f;
                    StaticVertices[1].TextureCoordinate.Y = .6953125f;


                    StaticVertices[2].Position.X          = xToUse + ScaleX - edgeWidth;
                    StaticVertices[2].Position.Y          = yToUse + ScaleY - edgeWidth;
                    StaticVertices[2].TextureCoordinate.X = .10998f;
                    StaticVertices[2].TextureCoordinate.Y = .6953125f;


                    StaticVertices[3] = StaticVertices[0];


                    StaticVertices[4] = StaticVertices[2];

                    StaticVertices[5].Position.X          = xToUse + ScaleX - edgeWidth;
                    StaticVertices[5].Position.Y          = yToUse - ScaleY + edgeWidth;
                    StaticVertices[5].TextureCoordinate.X = .10998f;
                    StaticVertices[5].TextureCoordinate.Y = .63719f;

                    GuiManager.WriteVerts(StaticVertices);

                    #endregion

                    #region Bottom Right of the Window

                    StaticVertices[0].Position.X          = xToUse + ScaleX - edgeWidth;
                    StaticVertices[0].Position.Y          = yToUse - ScaleY;
                    StaticVertices[0].TextureCoordinate.X = .17578125f;
                    StaticVertices[0].TextureCoordinate.Y = .63671875f;

                    StaticVertices[1].Position.X          = xToUse + ScaleX - edgeWidth;
                    StaticVertices[1].Position.Y          = yToUse - ScaleY + edgeWidth;
                    StaticVertices[1].TextureCoordinate.X = .17578125f;
                    StaticVertices[1].TextureCoordinate.Y = .6328125f;

                    StaticVertices[2].Position.X          = xToUse + ScaleX;
                    StaticVertices[2].Position.Y          = yToUse - ScaleY + edgeWidth;
                    StaticVertices[2].TextureCoordinate.X = .1796875f;
                    StaticVertices[2].TextureCoordinate.Y = .6328125f;

                    StaticVertices[3] = StaticVertices[0];

                    StaticVertices[4] = StaticVertices[2];

                    StaticVertices[5].Position.X          = xToUse + ScaleX;
                    StaticVertices[5].Position.Y          = yToUse - ScaleY;
                    StaticVertices[5].TextureCoordinate.X = .1796875f;
                    StaticVertices[5].TextureCoordinate.Y = .63671875f;

                    GuiManager.WriteVerts(StaticVertices);

                    #endregion
                }
                #endregion

                #region state == "up"
                else
                {
                    #region Top Left of the Window
                    StaticVertices[0].Position.X          = xToUse - ScaleX;
                    StaticVertices[0].Position.Y          = yToUse + ScaleY - edgeWidth;
                    StaticVertices[0].TextureCoordinate.X = .17578125f;
                    StaticVertices[0].TextureCoordinate.Y = .63671875f;

                    StaticVertices[1].Position.X          = xToUse - ScaleX;
                    StaticVertices[1].Position.Y          = yToUse + ScaleY;
                    StaticVertices[1].TextureCoordinate.X = .17578125f;
                    StaticVertices[1].TextureCoordinate.Y = .6328125f;

                    StaticVertices[2].Position.X          = xToUse - ScaleX + edgeWidth;
                    StaticVertices[2].Position.Y          = yToUse + ScaleY;
                    StaticVertices[2].TextureCoordinate.X = .1796875f;
                    StaticVertices[2].TextureCoordinate.Y = .6328125f;

                    StaticVertices[3] = StaticVertices[0];

                    StaticVertices[4] = StaticVertices[2];


                    StaticVertices[5].Position.X          = xToUse - ScaleX + edgeWidth;
                    StaticVertices[5].Position.Y          = yToUse + ScaleY - edgeWidth;
                    StaticVertices[5].TextureCoordinate.X = .1796875f;
                    StaticVertices[5].TextureCoordinate.Y = .63671875f;

                    GuiManager.WriteVerts(StaticVertices);

                    #endregion

                    #region Top Border

                    StaticVertices[0].Position.X          = xToUse - ScaleX + edgeWidth;
                    StaticVertices[0].Position.Y          = yToUse + ScaleY - edgeWidth;
                    StaticVertices[0].TextureCoordinate.X = .1796875f;
                    StaticVertices[0].TextureCoordinate.Y = .63671875f;

                    StaticVertices[1].Position.X          = xToUse - ScaleX + edgeWidth;
                    StaticVertices[1].Position.Y          = yToUse + ScaleY;
                    StaticVertices[1].TextureCoordinate.X = .1796875f;
                    StaticVertices[1].TextureCoordinate.Y = .6328125f;

                    StaticVertices[2].Position.X          = xToUse + ScaleX - edgeWidth;
                    StaticVertices[2].Position.Y          = yToUse + ScaleY;
                    StaticVertices[2].TextureCoordinate.X = .18359375f;
                    StaticVertices[2].TextureCoordinate.Y = .6328125f;

                    StaticVertices[3] = StaticVertices[0];

                    StaticVertices[4] = StaticVertices[2];

                    StaticVertices[5].Position.X          = xToUse + ScaleX - edgeWidth;
                    StaticVertices[5].Position.Y          = yToUse + ScaleY - edgeWidth;
                    StaticVertices[5].TextureCoordinate.X = .18359375f;
                    StaticVertices[5].TextureCoordinate.Y = .63671875f;

                    GuiManager.WriteVerts(StaticVertices);

                    #endregion

                    #region Top Right of the Window
                    StaticVertices[0].Position.X          = xToUse + ScaleX - edgeWidth;
                    StaticVertices[0].Position.Y          = yToUse + ScaleY - edgeWidth;
                    StaticVertices[0].TextureCoordinate.X = .179688f;
                    StaticVertices[0].TextureCoordinate.Y = .63671875f;

                    StaticVertices[1].Position.X          = xToUse + ScaleX - edgeWidth;
                    StaticVertices[1].Position.Y          = yToUse + ScaleY;
                    StaticVertices[1].TextureCoordinate.X = .179688f;
                    StaticVertices[1].TextureCoordinate.Y = .6328125f;

                    StaticVertices[2].Position.X          = xToUse + ScaleX;
                    StaticVertices[2].Position.Y          = yToUse + ScaleY;
                    StaticVertices[2].TextureCoordinate.X = .18359375f;
                    StaticVertices[2].TextureCoordinate.Y = .6328125f;

                    StaticVertices[3] = StaticVertices[0];

                    StaticVertices[4] = StaticVertices[2];

                    StaticVertices[5].Position.X          = xToUse + ScaleX;
                    StaticVertices[5].Position.Y          = yToUse + ScaleY - edgeWidth;
                    StaticVertices[5].TextureCoordinate.X = .18359375f;
                    StaticVertices[5].TextureCoordinate.Y = .63671875f;

                    GuiManager.WriteVerts(StaticVertices);
                    #endregion

                    #region RightBorder
                    StaticVertices[0].Position.X          = xToUse + ScaleX - edgeWidth;
                    StaticVertices[0].Position.Y          = yToUse - ScaleY + edgeWidth;
                    StaticVertices[0].TextureCoordinate.X = .18359375f;
                    StaticVertices[0].TextureCoordinate.Y = .640625f;


                    StaticVertices[1].Position.X          = xToUse + ScaleX - edgeWidth;
                    StaticVertices[1].Position.Y          = yToUse + ScaleY - edgeWidth;
                    StaticVertices[1].TextureCoordinate.X = .18359375f;
                    StaticVertices[1].TextureCoordinate.Y = .63671875f;


                    StaticVertices[2].Position.X          = xToUse + ScaleX;
                    StaticVertices[2].Position.Y          = yToUse + ScaleY - edgeWidth;
                    StaticVertices[2].TextureCoordinate.X = .1875f;
                    StaticVertices[2].TextureCoordinate.Y = .63671875f;



                    StaticVertices[3] = StaticVertices[0];

                    StaticVertices[4] = StaticVertices[2];


                    StaticVertices[5].Position.X          = xToUse + ScaleX;
                    StaticVertices[5].Position.Y          = yToUse - ScaleY + edgeWidth;
                    StaticVertices[5].TextureCoordinate.X = .1875f;
                    StaticVertices[5].TextureCoordinate.Y = .640625f;

                    GuiManager.WriteVerts(StaticVertices);

                    #endregion

                    #region Bottom Right of the Window

                    StaticVertices[0].Position.X          = xToUse + ScaleX - edgeWidth;
                    StaticVertices[0].Position.Y          = yToUse - ScaleY;
                    StaticVertices[0].TextureCoordinate.X = .179688f;
                    StaticVertices[0].TextureCoordinate.Y = .64453125f;

                    StaticVertices[1].Position.X          = xToUse + ScaleX - edgeWidth;
                    StaticVertices[1].Position.Y          = yToUse - ScaleY + edgeWidth;
                    StaticVertices[1].TextureCoordinate.X = .179688f;
                    StaticVertices[1].TextureCoordinate.Y = .640625f;


                    StaticVertices[2].Position.X          = xToUse + ScaleX;
                    StaticVertices[2].Position.Y          = yToUse - ScaleY + edgeWidth;
                    StaticVertices[2].TextureCoordinate.X = .18359375f;
                    StaticVertices[2].TextureCoordinate.Y = .640625f;

                    StaticVertices[3] = StaticVertices[0];
                    StaticVertices[4] = StaticVertices[2];


                    StaticVertices[5].Position.X          = xToUse + ScaleX;
                    StaticVertices[5].Position.Y          = yToUse - ScaleY;
                    StaticVertices[5].TextureCoordinate.X = .18359375f;
                    StaticVertices[5].TextureCoordinate.Y = .64453125f;

                    GuiManager.WriteVerts(StaticVertices);

                    #endregion

                    #region Bottom Border

                    StaticVertices[0].Position.X          = xToUse - ScaleX + edgeWidth;
                    StaticVertices[0].Position.Y          = yToUse - ScaleY;
                    StaticVertices[0].TextureCoordinate.X = .1796875f;
                    StaticVertices[0].TextureCoordinate.Y = .64453125f;

                    StaticVertices[1].Position.X          = xToUse - ScaleX + edgeWidth;
                    StaticVertices[1].Position.Y          = yToUse - ScaleY + edgeWidth;
                    StaticVertices[1].TextureCoordinate.X = .1796875f;
                    StaticVertices[1].TextureCoordinate.Y = .640625f;

                    StaticVertices[2].Position.X          = xToUse + ScaleX - edgeWidth;
                    StaticVertices[2].Position.Y          = yToUse - ScaleY + edgeWidth;
                    StaticVertices[2].TextureCoordinate.X = .18359375f;
                    StaticVertices[2].TextureCoordinate.Y = .640625f;

                    StaticVertices[3] = StaticVertices[0];
                    StaticVertices[4] = StaticVertices[2];

                    StaticVertices[5].Position.X          = xToUse + ScaleX - edgeWidth;
                    StaticVertices[5].Position.Y          = yToUse - ScaleY;
                    StaticVertices[5].TextureCoordinate.X = .18359375f;
                    StaticVertices[5].TextureCoordinate.Y = .64453125f;

                    GuiManager.WriteVerts(StaticVertices);

                    #endregion

                    #region LeftBorder
                    StaticVertices[0].Position.X          = xToUse - ScaleX;
                    StaticVertices[0].Position.Y          = yToUse - ScaleY + edgeWidth;
                    StaticVertices[0].TextureCoordinate.X = .17578125f;
                    StaticVertices[0].TextureCoordinate.Y = .63671875f;

                    StaticVertices[1].Position.X          = xToUse - ScaleX;
                    StaticVertices[1].Position.Y          = yToUse + ScaleY - edgeWidth;
                    StaticVertices[1].TextureCoordinate.X = .17578125f;
                    StaticVertices[1].TextureCoordinate.Y = .6328125f;

                    StaticVertices[2].Position.X          = xToUse - ScaleX + edgeWidth;
                    StaticVertices[2].Position.Y          = yToUse + ScaleY - edgeWidth;
                    StaticVertices[2].TextureCoordinate.X = .1796875f;
                    StaticVertices[2].TextureCoordinate.Y = .6328125f;


                    StaticVertices[3] = StaticVertices[0];
                    StaticVertices[4] = StaticVertices[2];


                    StaticVertices[5].Position.X          = xToUse - ScaleX + edgeWidth;
                    StaticVertices[5].Position.Y          = yToUse - ScaleY + edgeWidth;
                    StaticVertices[5].TextureCoordinate.X = .1796875f;
                    StaticVertices[5].TextureCoordinate.Y = .63671875f;

                    GuiManager.WriteVerts(StaticVertices);

                    #endregion

                    #region Bottom Left of the Window

                    StaticVertices[0].Position.X          = xToUse - ScaleX;
                    StaticVertices[0].Position.Y          = yToUse - ScaleY;
                    StaticVertices[0].TextureCoordinate.X = .17578125f;
                    StaticVertices[0].TextureCoordinate.Y = .640625f;

                    StaticVertices[1].Position.X          = xToUse - ScaleX;
                    StaticVertices[1].Position.Y          = yToUse - ScaleY + edgeWidth;
                    StaticVertices[1].TextureCoordinate.X = .17578125f;
                    StaticVertices[1].TextureCoordinate.Y = .63671875f;


                    StaticVertices[2].Position.X          = xToUse - ScaleX + edgeWidth;
                    StaticVertices[2].Position.Y          = yToUse - ScaleY + edgeWidth;
                    StaticVertices[2].TextureCoordinate.X = .1796875f;
                    StaticVertices[2].TextureCoordinate.Y = .63671875f;


                    StaticVertices[3] = StaticVertices[0];
                    StaticVertices[4] = StaticVertices[2];

                    StaticVertices[5].Position.X          = xToUse - ScaleX + edgeWidth;
                    StaticVertices[5].Position.Y          = yToUse - ScaleY;
                    StaticVertices[5].TextureCoordinate.X = .1796875f;
                    StaticVertices[5].TextureCoordinate.Y = .640625f;

                    GuiManager.WriteVerts(StaticVertices);

                    #endregion

                    #region Center
                    StaticVertices[0].Position.X          = xToUse - ScaleX + edgeWidth;
                    StaticVertices[0].Position.Y          = yToUse - ScaleY + edgeWidth;
                    StaticVertices[0].TextureCoordinate.X = .10938f;
                    StaticVertices[0].TextureCoordinate.Y = .6953125f;


                    StaticVertices[1].Position.X          = xToUse - ScaleX + edgeWidth;
                    StaticVertices[1].Position.Y          = yToUse + ScaleY - edgeWidth;
                    StaticVertices[1].TextureCoordinate.X = .10938f;
                    StaticVertices[1].TextureCoordinate.Y = .63719f;

                    StaticVertices[2].Position.X          = xToUse + ScaleX - edgeWidth;
                    StaticVertices[2].Position.Y          = yToUse + ScaleY - edgeWidth;
                    StaticVertices[2].TextureCoordinate.X = .10998f;
                    StaticVertices[2].TextureCoordinate.Y = .63719f;

                    StaticVertices[3] = StaticVertices[0];
                    StaticVertices[4] = StaticVertices[2];

                    StaticVertices[5].Position.X          = xToUse + ScaleX - edgeWidth;
                    StaticVertices[5].Position.Y          = yToUse - ScaleY + edgeWidth;
                    StaticVertices[5].TextureCoordinate.X = .10998f;
                    StaticVertices[5].TextureCoordinate.Y = .6953125f;

                    GuiManager.WriteVerts(StaticVertices);

                    #endregion
                }
                #endregion
            }
            #endregion

            #region draw overlay texture if it is an icon in our Gui texture

#if FRB_MDX
            uint colorBefore = mColor;
#else
            Color colorBefore = mColor;
#endif

            if (ButtonPushedState == ButtonPushedState.Down && mHighlightOnDown)
            {
                // This will only have an impact on the button if it is using an overlay texture.
#if FRB_MDX
                StaticVertices[0].Color = StaticVertices[1].Color = StaticVertices[2].Color = StaticVertices[3].Color = StaticVertices[4].Color = StaticVertices[5].Color = 0xff333333;
#else
                StaticVertices[0].Color.PackedValue     = StaticVertices[1].Color.PackedValue = StaticVertices[2].Color.PackedValue =
                    StaticVertices[3].Color.PackedValue = StaticVertices[4].Color.PackedValue = StaticVertices[5].Color.PackedValue = 0xff333333;
#endif
            }

            if (ButtonPushedState == ButtonPushedState.Down && downOverlayTL.X != -1)
            {
                StaticVertices[0].Position.X          = xToUse - ScaleX + edgeWidth;
                StaticVertices[0].Position.Y          = yToUse - ScaleY + edgeWidth;
                StaticVertices[0].TextureCoordinate.X = (float)downOverlayBL.X;
                StaticVertices[0].TextureCoordinate.Y = (float)downOverlayBL.Y;


                StaticVertices[1].Position.X          = xToUse - ScaleX + edgeWidth;
                StaticVertices[1].Position.Y          = yToUse + ScaleY - edgeWidth;
                StaticVertices[1].TextureCoordinate.X = (float)downOverlayTL.X;
                StaticVertices[1].TextureCoordinate.Y = (float)downOverlayTL.Y;

                StaticVertices[2].Position.X          = xToUse + ScaleX - edgeWidth;
                StaticVertices[2].Position.Y          = yToUse + ScaleY - edgeWidth;
                StaticVertices[2].TextureCoordinate.X = (float)downOverlayTR.X;
                StaticVertices[2].TextureCoordinate.Y = (float)downOverlayTR.Y;


                StaticVertices[3] = StaticVertices[0];
                StaticVertices[4] = StaticVertices[2];

                StaticVertices[5].Position.X          = xToUse + ScaleX - edgeWidth;
                StaticVertices[5].Position.Y          = yToUse - ScaleY + edgeWidth;
                StaticVertices[5].TextureCoordinate.X = (float)downOverlayBR.X;
                StaticVertices[5].TextureCoordinate.Y = (float)downOverlayBR.Y;

                GuiManager.WriteVerts(StaticVertices);

#if FRB_MDX
                mColor = 0xff000000;
#else
                mColor.PackedValue = 0xff000000;
#endif
            }
            else if (overlayTL.X != -1)
            {
                StaticVertices[0].Position.X          = xToUse - ScaleX + edgeWidth;
                StaticVertices[0].Position.Y          = yToUse - ScaleY + edgeWidth;
                StaticVertices[0].TextureCoordinate.X = (float)overlayBL.X;
                StaticVertices[0].TextureCoordinate.Y = (float)overlayBL.Y;

                StaticVertices[1].Position.X          = xToUse - ScaleX + edgeWidth;
                StaticVertices[1].Position.Y          = yToUse + ScaleY - edgeWidth;
                StaticVertices[1].TextureCoordinate.X = (float)overlayTL.X;
                StaticVertices[1].TextureCoordinate.Y = (float)overlayTL.Y;

                StaticVertices[2].Position.X          = xToUse + ScaleX - edgeWidth;
                StaticVertices[2].Position.Y          = yToUse + ScaleY - edgeWidth;
                StaticVertices[2].TextureCoordinate.X = (float)overlayTR.X;
                StaticVertices[2].TextureCoordinate.Y = (float)overlayTR.Y;


                StaticVertices[3] = StaticVertices[0];
                StaticVertices[4] = StaticVertices[2];

                StaticVertices[5].Position.X          = xToUse + ScaleX - edgeWidth;
                StaticVertices[5].Position.Y          = yToUse - ScaleY + edgeWidth;
                StaticVertices[5].TextureCoordinate.X = (float)overlayBR.X;
                StaticVertices[5].TextureCoordinate.Y = (float)overlayBR.Y;

                GuiManager.WriteVerts(StaticVertices);
            }

            mColor = colorBefore;

            #endregion

            #region draw the overlay texture if it is in a different texture

            if (this.mOverlayTexture != null)
            {
                float left   = mTextureLeft;
                float right  = mTextureRight;
                float top    = mTextureTop;
                float bottom = mTextureBottom;


                if (mFlipHorizontal)
                {
                    float temporary = left;
                    left  = right;
                    right = temporary;
                }

                if (mFlipVertical)
                {
                    float temporary = top;
                    top    = bottom;
                    bottom = temporary;
                }
                GuiManager.AddTextureSwitch(mOverlayTexture);

                StaticVertices[0].Position.X          = xToUse - ScaleX + edgeWidth;
                StaticVertices[0].Position.Y          = yToUse - ScaleY + edgeWidth;
                StaticVertices[0].TextureCoordinate.X = left;
                StaticVertices[0].TextureCoordinate.Y = bottom;

                StaticVertices[1].Position.X          = xToUse - ScaleX + edgeWidth;
                StaticVertices[1].Position.Y          = yToUse + ScaleY - edgeWidth;
                StaticVertices[1].TextureCoordinate.X = left;
                StaticVertices[1].TextureCoordinate.Y = top;

                StaticVertices[2].Position.X          = xToUse + ScaleX - edgeWidth;
                StaticVertices[2].Position.Y          = yToUse + ScaleY - edgeWidth;
                StaticVertices[2].TextureCoordinate.X = right;
                StaticVertices[2].TextureCoordinate.Y = top;

                StaticVertices[3] = StaticVertices[0];
                StaticVertices[4] = StaticVertices[2];

                StaticVertices[5].Position.X          = xToUse + ScaleX - edgeWidth;
                StaticVertices[5].Position.Y          = yToUse - ScaleY + edgeWidth;
                StaticVertices[5].TextureCoordinate.X = right;
                StaticVertices[5].TextureCoordinate.Y = bottom;

                GuiManager.WriteVerts(StaticVertices);
            }

            #endregion



            #region Draw the text

#if FRB_MDX
            TextManager.mZForVertexBuffer = camera.Position.Z + 100;
#else
            TextManager.mZForVertexBuffer = camera.Position.Z - 100;
#endif
            TextManager.mScaleForVertexBuffer     = GuiManager.TextHeight / 2.0f;
            TextManager.mSpacingForVertexBuffer   = GuiManager.TextHeight / 2.0f;
            TextManager.mAlignmentForVertexBuffer = HorizontalAlignment.Center;
            TextManager.mMaxWidthForVertexBuffer  = 1000;

            if (this.overlayTL.X == -1 && this.mOverlayTexture == null && Text != null && Text != "")
            {
                TextManager.mXForVertexBuffer = xToUse;
                TextManager.mYForVertexBuffer = yToUse;

                int numberOfLines = StringFunctions.GetLineCount(mText);

                if (numberOfLines > 1)
                {
                    TextManager.mYForVertexBuffer += TextManager.mSpacingForVertexBuffer * (numberOfLines - 1);
                }

                TextManager.mRedForVertexBuffer = TextManager.mGreenForVertexBuffer = TextManager.mBlueForVertexBuffer = 20;

                if (!Enabled)
                {
                    TextManager.mAlphaForVertexBuffer = FlatRedBall.Graphics.GraphicalEnumerations.MaxColorComponentValue / 2.0f;
                }
                else
                {
                    TextManager.mAlphaForVertexBuffer = FlatRedBall.Graphics.GraphicalEnumerations.MaxColorComponentValue;
                }

                string textToDraw = this.Text;

                TextManager.Draw(ref textToDraw);
            }
            #endregion
        }
Esempio n. 6
0
        internal override void DrawSelfAndChildren(Camera camera)
        {
            if (GuiManagerDrawn == false)
            {
                return;
            }


            base.DrawSelfAndChildren(camera);

            float xToUse = WorldUnitX;
            float yToUse = positionBar.WorldUnitY;

            #region Set the color and Z of the vertices once since they'll always remain the same.
            StaticVertices[0].Color = StaticVertices[1].Color = StaticVertices[2].Color = StaticVertices[3].Color = StaticVertices[4].Color = StaticVertices[5].Color = mColor;

            StaticVertices[0].Position.Z     = StaticVertices[1].Position.Z = StaticVertices[2].Position.Z =
                StaticVertices[3].Position.Z = StaticVertices[4].Position.Z = StaticVertices[5].Position.Z =
                    camera.Z + FlatRedBall.Math.MathFunctions.ForwardVector3.Z * 100;
            #endregion


            // give the window a 1 unit border for the elements


            #region draw the horizontal bar
            StaticVertices[0].Position.X          = xToUse - ScaleX + 1;
            StaticVertices[0].Position.Y          = yToUse - .1f;
            StaticVertices[0].TextureCoordinate.X = .59f;
            StaticVertices[0].TextureCoordinate.Y = .84f;

            StaticVertices[1].Position.X          = xToUse - ScaleX + 1;
            StaticVertices[1].Position.Y          = yToUse + .1f;
            StaticVertices[1].TextureCoordinate.X = .59f;
            StaticVertices[1].TextureCoordinate.Y = .835f;

            StaticVertices[2].Position.X          = xToUse + this.ScaleX - 1;
            StaticVertices[2].Position.Y          = yToUse + .1f;
            StaticVertices[2].TextureCoordinate.X = .591f;
            StaticVertices[2].TextureCoordinate.Y = .835f;

            StaticVertices[3] = StaticVertices[0];
            StaticVertices[4] = StaticVertices[2];

            StaticVertices[5].Position.X          = xToUse + this.ScaleX - 1;
            StaticVertices[5].Position.Y          = yToUse - .1f;
            StaticVertices[5].TextureCoordinate.X = .591f;
            StaticVertices[5].TextureCoordinate.Y = .84f;

            GuiManager.WriteVerts(StaticVertices);

            #endregion

            #region draw the larger increments
            double incrementsPassed = mStart / mVerticalBarIncrement;
            if (incrementsPassed != (int)mStart / mVerticalBarIncrement)
            {
                incrementsPassed = (int)incrementsPassed + 1;
            }

            double xPosOfVerticalBar = incrementsPassed * mVerticalBarIncrement;

            // now that we know where the first xPosOfVerticalBar is, we can calculate how many large increment lines/values we'll have.

            float offset = (float)((incrementsPassed * mVerticalBarIncrement) - mStart);

            if (mLargeIncrementPositions.Length != 1 + (int)((mValueWidth - offset) / mVerticalBarIncrement))
            {
                mLargeIncrementPositions = new float[1 + (int)((mValueWidth - offset) / mVerticalBarIncrement)];
            }

            // This is handled in the
            //if( mLargeIncrementValues.Length !=  1 + (int)((mValueWidth-offset)/mVerticalBarIncrement))
            //    mLargeIncrementValues = new float[ 1 + (int)((mValueWidth-offset)/mVerticalBarIncrement)];

            int i = 0;

            float barX;

            float barY = yToUse;

            while (xPosOfVerticalBar <= mStart + mValueWidth && i < mLargeIncrementPositions.Length)
            {
                barX = WorldUnitX + ValueToPositionRelative(xPosOfVerticalBar);


                StaticVertices[0].Position.X          = barX - .2f;
                StaticVertices[0].Position.Y          = barY - .7f;
                StaticVertices[0].TextureCoordinate.X = .59f;
                StaticVertices[0].TextureCoordinate.Y = .84f;

                StaticVertices[1].Position.X          = barX - .2f;
                StaticVertices[1].Position.Y          = barY + .7f;
                StaticVertices[1].TextureCoordinate.X = .59f;
                StaticVertices[1].TextureCoordinate.Y = .835f;

                StaticVertices[2].Position.X          = barX + .2f;
                StaticVertices[2].Position.Y          = barY + .7f;
                StaticVertices[2].TextureCoordinate.X = .591f;
                StaticVertices[2].TextureCoordinate.Y = .835f;

                StaticVertices[3] = StaticVertices[0];
                StaticVertices[4] = StaticVertices[2];

                StaticVertices[5].Position.X          = barX + .2f;
                StaticVertices[5].Position.Y          = barY - .7f;
                StaticVertices[5].TextureCoordinate.X = .591f;
                StaticVertices[5].TextureCoordinate.Y = .84f;

                GuiManager.WriteVerts(StaticVertices);

                mLargeIncrementPositions[i] = barX;

                switch (this.mTimeUnitDisplayed)
                {
                case TimeUnit.Millisecond:
                    mLargeIncrementValues[i] = (float)(xPosOfVerticalBar * 1000);
                    break;

                case TimeUnit.Second:
                    mLargeIncrementValues[i] = (float)(xPosOfVerticalBar);
                    break;
                }
                xPosOfVerticalBar += mVerticalBarIncrement;
                i++;
            }

            #endregion

            #region draw the small increments
            incrementsPassed = mStart / mSmallVerticalBarIncrement;
            if (incrementsPassed != (int)mStart / mSmallVerticalBarIncrement)
            {
                incrementsPassed = (int)incrementsPassed + 1;
            }


            barY = yToUse;


            xPosOfVerticalBar = incrementsPassed * mSmallVerticalBarIncrement;
            while (xPosOfVerticalBar <= mStart + mValueWidth)
            {
                barX = WorldUnitX + ValueToPositionRelative(xPosOfVerticalBar);

                StaticVertices[0].Position.X          = barX - .1f;
                StaticVertices[0].Position.Y          = barY - .5f;
                StaticVertices[0].TextureCoordinate.X = .59f;
                StaticVertices[0].TextureCoordinate.Y = .84f;

                StaticVertices[1].Position.X          = barX - .1f;
                StaticVertices[1].Position.Y          = barY + .5f;
                StaticVertices[1].TextureCoordinate.X = .59f;
                StaticVertices[1].TextureCoordinate.Y = .835f;

                StaticVertices[2].Position.X          = barX + .1f;
                StaticVertices[2].Position.Y          = barY + .5f;
                StaticVertices[2].TextureCoordinate.X = .591f;
                StaticVertices[2].TextureCoordinate.Y = .835f;

                StaticVertices[3] = StaticVertices[0];
                StaticVertices[4] = StaticVertices[2];

                StaticVertices[5].Position.X          = barX + .1f;
                StaticVertices[5].Position.Y          = barY - .5f;
                StaticVertices[5].TextureCoordinate.X = .591f;
                StaticVertices[5].TextureCoordinate.Y = .84f;

                GuiManager.WriteVerts(StaticVertices);

                xPosOfVerticalBar += mSmallVerticalBarIncrement;
            }
            #endregion

            #region draw the large increment text

            if (mShowValues)
            {
                float yPos = WorldUnitY + ScaleY + GuiManager.TextHeight / 2.0f - .2f;

                TextManager.mYForVertexBuffer = yPos;

#if FRB_MDX
                TextManager.mZForVertexBuffer     = camera.Position.Z + 100;
                TextManager.mRedForVertexBuffer   = 20;
                TextManager.mGreenForVertexBuffer = 20;
                TextManager.mBlueForVertexBuffer  = 20;
                TextManager.mAlphaForVertexBuffer = 255;
#else
                TextManager.mZForVertexBuffer     = camera.Position.Z - 100;
                TextManager.mRedForVertexBuffer   = .1f;
                TextManager.mGreenForVertexBuffer = .1f;
                TextManager.mBlueForVertexBuffer  = .1f;
                TextManager.mAlphaForVertexBuffer = 1;
#endif
                TextManager.mSpacingForVertexBuffer = GuiManager.TextSpacing;
                TextManager.mScaleForVertexBuffer   = GuiManager.TextHeight / 2.0f;

                for (i = 0; i < this.mCachedIncrementValues.Count; i++)
                {
                    TextManager.mXForVertexBuffer        = mLargeIncrementPositions[i];
                    TextManager.mRedForVertexBuffer      = TextManager.mGreenForVertexBuffer =
                        TextManager.mBlueForVertexBuffer = 20;

                    string asString = mCachedIncrementValues[i];

                    TextManager.Draw(ref asString);
                }
            }
            #endregion

//			if(CurrentValue >= Start && CurrentValue <= Start + ValueWidth)
//              positionBar.Draw(camera);
        }
Esempio n. 7
0
        internal override void DrawSelfAndChildren(Camera camera)
		{

            if (Visible == false) return;

            float xToUse = mWorldUnitX;
            float yToUse = mWorldUnitY;

            #region Set the color and Z position for all vertices

            StaticVertices[0].Color = StaticVertices[1].Color = StaticVertices[2].Color = StaticVertices[3].Color = StaticVertices[4].Color = StaticVertices[5].Color = mColor;

			StaticVertices[0].Position.Z = StaticVertices[1].Position.Z = StaticVertices[2].Position.Z = 
                StaticVertices[3].Position.Z = StaticVertices[4].Position.Z = StaticVertices[5].Position.Z = 
                camera.Z + FlatRedBall.Math.MathFunctions.ForwardVector3.Z * 100;

            #endregion

            if (mAlignment == ScrollBarAlignment.Vertical)
            {
                #region draw the back of the scrollbar

                #region Top of window
                StaticVertices[0].Position.X = xToUse - ScaleX;
                StaticVertices[0].Position.Y = yToUse + ScaleY - 2.6f;
                StaticVertices[0].TextureCoordinate.X = .054688f;
                StaticVertices[0].TextureCoordinate.Y = .62109375f;

                StaticVertices[1].Position.X = xToUse - ScaleX;
                StaticVertices[1].Position.Y = yToUse + ScaleY - 1.1f;
                StaticVertices[1].TextureCoordinate.X = .054688f;
                StaticVertices[1].TextureCoordinate.Y = .570313f;

                StaticVertices[2].Position.X = xToUse + ScaleX;
                StaticVertices[2].Position.Y = yToUse + ScaleY - 1.1f;
                StaticVertices[2].TextureCoordinate.X = .1171875f;
                StaticVertices[2].TextureCoordinate.Y = .570313f;

                StaticVertices[3] = StaticVertices[0];
                StaticVertices[4] = StaticVertices[2];

                StaticVertices[5].Position.X = xToUse + ScaleX;
                StaticVertices[5].Position.Y = yToUse + ScaleY - 2.6f;
                StaticVertices[5].TextureCoordinate.X = .1171875f;
                StaticVertices[5].TextureCoordinate.Y = .62109375f;

                GuiManager.WriteVerts(StaticVertices);

                #endregion

                #region Center of window
                StaticVertices[0].Position.X = xToUse - ScaleX;
                StaticVertices[0].Position.Y = yToUse - ScaleY + 2.6f;
                StaticVertices[0].TextureCoordinate.X = .054688f;
                StaticVertices[0].TextureCoordinate.Y = .6328125f;

                StaticVertices[1].Position.X = xToUse - ScaleX;
                StaticVertices[1].Position.Y = yToUse + ScaleY - 2.6f;
                StaticVertices[1].TextureCoordinate.X = .054688f;
                StaticVertices[1].TextureCoordinate.Y = .62109375f;

                StaticVertices[2].Position.X = xToUse + ScaleX;
                StaticVertices[2].Position.Y = yToUse + ScaleY - 2.6f;
                StaticVertices[2].TextureCoordinate.X = .1171875f;
                StaticVertices[2].TextureCoordinate.Y = .62109375f;

                StaticVertices[3] = StaticVertices[0];
                StaticVertices[4] = StaticVertices[2];

                StaticVertices[5].Position.X = xToUse + ScaleX;
                StaticVertices[5].Position.Y = yToUse - ScaleY + 2.6f;
                StaticVertices[5].TextureCoordinate.X = .1171875f;
                StaticVertices[5].TextureCoordinate.Y = .6328125f;

                GuiManager.WriteVerts(StaticVertices);

                #endregion

                #region Bottom of window
                StaticVertices[0].Position.X = xToUse - ScaleX;
                StaticVertices[0].Position.Y = yToUse - ScaleY + 1.1f;
                StaticVertices[0].TextureCoordinate.X = .054688f;
                StaticVertices[0].TextureCoordinate.Y = .570313f;

                StaticVertices[1].Position.X = xToUse - ScaleX;
                StaticVertices[1].Position.Y = yToUse - ScaleY + 2.6f;
                StaticVertices[1].TextureCoordinate.X = .054688f;
                StaticVertices[1].TextureCoordinate.Y = .62109375f;

                StaticVertices[2].Position.X = xToUse + ScaleX;
                StaticVertices[2].Position.Y = yToUse - ScaleY + 2.6f;
                StaticVertices[2].TextureCoordinate.X = .1171875f;
                StaticVertices[2].TextureCoordinate.Y = .62109375f;

                StaticVertices[3] = StaticVertices[0];
                StaticVertices[4] = StaticVertices[2];

                StaticVertices[5].Position.X = xToUse + ScaleX;
                StaticVertices[5].Position.Y = yToUse - ScaleY + 1.1f;
                StaticVertices[5].TextureCoordinate.X = .1171875f;
                StaticVertices[5].TextureCoordinate.Y = .570313f;

                GuiManager.WriteVerts(StaticVertices);

                #endregion

                #endregion

                #region Top button

                if (upButton.ButtonPushedState == ButtonPushedState.Down)
                {
                    StaticVertices[0].Position.X = xToUse - ScaleX;
                    StaticVertices[0].Position.Y = yToUse + ScaleY - 1.1f;
                    StaticVertices[0].TextureCoordinate.X = .25390625f;
                    StaticVertices[0].TextureCoordinate.Y = .675781f;

                    StaticVertices[1].Position.X = xToUse - ScaleX;
                    StaticVertices[1].Position.Y = yToUse + ScaleY;
                    StaticVertices[1].TextureCoordinate.X = .25390625f;
                    StaticVertices[1].TextureCoordinate.Y = .632813f;

                    StaticVertices[2].Position.X = xToUse + ScaleX;
                    StaticVertices[2].TextureCoordinate.X = .31640625f;
                    StaticVertices[2].TextureCoordinate.Y = .632813f;
                    StaticVertices[2].Position.Y = yToUse + ScaleY;

                    StaticVertices[3] = StaticVertices[0];
                    StaticVertices[4] = StaticVertices[2];

                    StaticVertices[5].Position.X = xToUse + ScaleX;
                    StaticVertices[5].TextureCoordinate.X = .31640625f;
                    StaticVertices[5].TextureCoordinate.Y = .675781f;
                    StaticVertices[5].Position.Y = yToUse + ScaleY - 1.1f;

                    GuiManager.WriteVerts(StaticVertices);
                }
                else
                {
                    StaticVertices[0].Position.X = xToUse - ScaleX;
                    StaticVertices[0].TextureCoordinate.X = .1875f;
                    StaticVertices[0].TextureCoordinate.Y = .675781f;
                    StaticVertices[0].Position.Y = yToUse + ScaleY - 1.1f;

                    StaticVertices[1].Position.X = xToUse - ScaleX;
                    StaticVertices[1].TextureCoordinate.X = .1875f;
                    StaticVertices[1].TextureCoordinate.Y = .632813f;
                    StaticVertices[1].Position.Y = yToUse + ScaleY;

                    StaticVertices[2].Position.X = xToUse + ScaleX;
                    StaticVertices[2].TextureCoordinate.X = .25f;
                    StaticVertices[2].TextureCoordinate.Y = .632813f;
                    StaticVertices[2].Position.Y = yToUse + ScaleY;

                    StaticVertices[3] = StaticVertices[0];
                    StaticVertices[4] = StaticVertices[2];

                    StaticVertices[5].Position.X = xToUse + ScaleX;
                    StaticVertices[5].TextureCoordinate.X = .25f;
                    StaticVertices[5].TextureCoordinate.Y = .675781f;
                    StaticVertices[5].Position.Y = yToUse + ScaleY - 1.1f;

                    GuiManager.WriteVerts(StaticVertices);
                }

                #endregion

                #region Bottom button

                if (downButton.ButtonPushedState == ButtonPushedState.Down)
                {
                    StaticVertices[0].Position.X = xToUse - ScaleX;
                    StaticVertices[0].TextureCoordinate.X = .25390625f;
                    StaticVertices[0].TextureCoordinate.Y = .71875f;
                    StaticVertices[0].Position.Y = yToUse - ScaleY;

                    StaticVertices[1].Position.X = xToUse - ScaleX;
                    StaticVertices[1].TextureCoordinate.X = .25390625f;
                    StaticVertices[1].TextureCoordinate.Y = .675781f;
                    StaticVertices[1].Position.Y = yToUse - ScaleY + 1.1f;

                    StaticVertices[2].Position.X = xToUse + ScaleX;
                    StaticVertices[2].TextureCoordinate.X = .31640625f;
                    StaticVertices[2].TextureCoordinate.Y = .675781f;
                    StaticVertices[2].Position.Y = yToUse - ScaleY + 1.1f;


                    StaticVertices[3] = StaticVertices[0];
                    StaticVertices[4] = StaticVertices[2];

                    StaticVertices[5].Position.X = xToUse + ScaleX;
                    StaticVertices[5].TextureCoordinate.X = .31640625f;
                    StaticVertices[5].TextureCoordinate.Y = .71875f;
                    StaticVertices[5].Position.Y = yToUse - ScaleY;

                    GuiManager.WriteVerts(StaticVertices);
                }
                else
                {

                    StaticVertices[0].Position.X = xToUse - ScaleX;
                    StaticVertices[0].TextureCoordinate.X = .1875f;
                    StaticVertices[0].TextureCoordinate.Y = .71875f;
                    StaticVertices[0].Position.Y = yToUse - ScaleY;

                    StaticVertices[1].Position.X = xToUse - ScaleX;
                    StaticVertices[1].TextureCoordinate.X = .1875f;
                    StaticVertices[1].TextureCoordinate.Y = .675781f;
                    StaticVertices[1].Position.Y = yToUse - ScaleY + 1.1f;

                    StaticVertices[2].Position.X = xToUse + ScaleX;
                    StaticVertices[2].TextureCoordinate.X = .25f;
                    StaticVertices[2].TextureCoordinate.Y = .675781f;
                    StaticVertices[2].Position.Y = yToUse - ScaleY + 1.1f;

                    StaticVertices[3] = StaticVertices[0];
                    StaticVertices[4] = StaticVertices[2];

                    StaticVertices[5].Position.X = xToUse + ScaleX;
                    StaticVertices[5].TextureCoordinate.X = .25f;
                    StaticVertices[5].TextureCoordinate.Y = .71875f;
                    StaticVertices[5].Position.Y = yToUse - ScaleY;

                    GuiManager.WriteVerts(StaticVertices);

                }

                #endregion

                #region positionBar
                xToUse = mWorldUnitX;
                yToUse = mWorldUnitY + mPositionBar.WorldUnitRelativeY;

                #region Top of bar
                StaticVertices[0].Position.X = xToUse - ScaleX + .1f;
                StaticVertices[0].TextureCoordinate.X = .11719f;
                StaticVertices[0].TextureCoordinate.Y = .62109375f;
                StaticVertices[0].Position.Y = yToUse + mPositionBar.ScaleY - .8f;

                StaticVertices[1].Position.X = xToUse - ScaleX + .1f;
                StaticVertices[1].TextureCoordinate.X = .11719f;
                StaticVertices[1].TextureCoordinate.Y = .59765625f;
                StaticVertices[1].Position.Y = yToUse + mPositionBar.ScaleY;

                StaticVertices[2].Position.X = xToUse + ScaleX - .1f;
                StaticVertices[2].TextureCoordinate.X = .17578125f;
                StaticVertices[2].TextureCoordinate.Y = .59765625f;
                StaticVertices[2].Position.Y = yToUse + mPositionBar.ScaleY;

                StaticVertices[3] = StaticVertices[0];
                StaticVertices[4] = StaticVertices[2];

                StaticVertices[5].Position.X = xToUse + ScaleX - .1f;
                StaticVertices[5].TextureCoordinate.X = .17578125f;
                StaticVertices[5].TextureCoordinate.Y = .62109375f;
                StaticVertices[5].Position.Y = yToUse + mPositionBar.ScaleY - .8f;

                GuiManager.WriteVerts(StaticVertices);

                #endregion

                #region Center of bar
                StaticVertices[0].Position.X = xToUse - ScaleX + .1f;
                StaticVertices[0].TextureCoordinate.X = .11719f;
                StaticVertices[0].TextureCoordinate.Y = .6328125f;
                StaticVertices[0].Position.Y = yToUse - mPositionBar.ScaleY + .8f;

                StaticVertices[1].Position.X = xToUse - ScaleX + .1f;
                StaticVertices[1].TextureCoordinate.X = .11719f;
                StaticVertices[1].TextureCoordinate.Y = .62109375f;
                StaticVertices[1].Position.Y = yToUse + mPositionBar.ScaleY - .8f;

                StaticVertices[2].Position.X = xToUse + ScaleX - .1f;
                StaticVertices[2].TextureCoordinate.X = .17578125f;
                StaticVertices[2].TextureCoordinate.Y = .62109375f;
                StaticVertices[2].Position.Y = yToUse + mPositionBar.ScaleY - .8f;

                StaticVertices[3] = StaticVertices[0];
                StaticVertices[4] = StaticVertices[2];

                StaticVertices[5].Position.X = xToUse + ScaleX - .1f;
                StaticVertices[5].TextureCoordinate.X = .17578125f;
                StaticVertices[5].TextureCoordinate.Y = .6328125f;
                StaticVertices[5].Position.Y = yToUse - mPositionBar.ScaleY + .8f;

                GuiManager.WriteVerts(StaticVertices);

                #endregion

                #region Bottom of bar
                StaticVertices[0].Position.X = xToUse - ScaleX + .1f;
                StaticVertices[0].TextureCoordinate.X = .11719f;
                StaticVertices[0].TextureCoordinate.Y = .59765625f;
                StaticVertices[0].Position.Y = yToUse - mPositionBar.ScaleY;

                StaticVertices[1].Position.X = xToUse - ScaleX + .1f;
                StaticVertices[1].TextureCoordinate.X = .11719f;
                StaticVertices[1].TextureCoordinate.Y = .62109375f;
                StaticVertices[1].Position.Y = yToUse - mPositionBar.ScaleY + .8f;

                StaticVertices[2].Position.X = xToUse + ScaleX - .1f;
                StaticVertices[2].TextureCoordinate.X = .17578125f;
                StaticVertices[2].TextureCoordinate.Y = .62109375f;
                StaticVertices[2].Position.Y = yToUse - mPositionBar.ScaleY + .8f;

                StaticVertices[3] = StaticVertices[0];
                StaticVertices[4] = StaticVertices[2];

                StaticVertices[5].Position.X = xToUse + ScaleX - .1f;
                StaticVertices[5].TextureCoordinate.X = .17578125f;
                StaticVertices[5].TextureCoordinate.Y = .59765625f;
                StaticVertices[5].Position.Y = yToUse - mPositionBar.ScaleY;

                GuiManager.WriteVerts(StaticVertices);

                #endregion

                #endregion
            }
            else
            {
                #region draw the back of the scrollbar

                #region Left of window
                StaticVertices[0].Position.X = xToUse - ScaleX + 1.1f;
                StaticVertices[0].Position.Y = yToUse - ScaleY;
                StaticVertices[0].TextureCoordinate.X = .054688f;
                StaticVertices[0].TextureCoordinate.Y = .570313f;

                StaticVertices[1].Position.X = xToUse - ScaleX + 1.1f;
                StaticVertices[1].Position.Y = yToUse + ScaleY;
                StaticVertices[1].TextureCoordinate.X = .1171875f;
                StaticVertices[1].TextureCoordinate.Y = .570313f;

                StaticVertices[2].Position.X = xToUse - ScaleX + 2.6f;
                StaticVertices[2].Position.Y = yToUse + ScaleY;
                StaticVertices[2].TextureCoordinate.X = .1171875f;
                StaticVertices[2].TextureCoordinate.Y = .62109375f;

                StaticVertices[3] = StaticVertices[0];
                StaticVertices[4] = StaticVertices[2];

                StaticVertices[5].Position.X = xToUse - ScaleX + 2.6f;
                StaticVertices[5].Position.Y = yToUse - ScaleY;
                StaticVertices[5].TextureCoordinate.X = .054688f;
                StaticVertices[5].TextureCoordinate.Y = .62109375f;

                GuiManager.WriteVerts(StaticVertices);

                #endregion

                #region Center of window
                StaticVertices[0].Position.X = xToUse - ScaleX + 2.6f;
                StaticVertices[0].Position.Y = yToUse - ScaleY;
                StaticVertices[0].TextureCoordinate.X = .054688f;
                StaticVertices[0].TextureCoordinate.Y = .62109375f;

                StaticVertices[1].Position.X = xToUse - ScaleX + 2.6f;
                StaticVertices[1].Position.Y = yToUse + ScaleY;
                StaticVertices[1].TextureCoordinate.X = .1171875f;
                StaticVertices[1].TextureCoordinate.Y = .62109375f;

                StaticVertices[2].Position.X = xToUse + ScaleX - 2.6f;
                StaticVertices[2].Position.Y = yToUse + ScaleY;
                StaticVertices[2].TextureCoordinate.X = .1171875f;
                StaticVertices[2].TextureCoordinate.Y = .6328125f;

                StaticVertices[3] = StaticVertices[0];
                StaticVertices[4] = StaticVertices[2];

                StaticVertices[5].Position.X = xToUse + ScaleX - 2.6f;
                StaticVertices[5].Position.Y = yToUse - ScaleY;
                StaticVertices[5].TextureCoordinate.X = .054688f;
                StaticVertices[5].TextureCoordinate.Y = .62109375f;

                GuiManager.WriteVerts(StaticVertices);

                #endregion

                #region Right of window
                StaticVertices[0].Position.X = xToUse + ScaleX - 2.6f;
                StaticVertices[0].Position.Y = yToUse - ScaleY;
                StaticVertices[0].TextureCoordinate.X = .054688f;
                StaticVertices[0].TextureCoordinate.Y = .62109375f;

                StaticVertices[1].Position.X = xToUse + ScaleX - 2.6f;
                StaticVertices[1].Position.Y = yToUse + ScaleY;
                StaticVertices[1].TextureCoordinate.X = .1171875f;
                StaticVertices[1].TextureCoordinate.Y = .62109375f;

                StaticVertices[2].Position.X = xToUse + ScaleX - 1.1f;
                StaticVertices[2].Position.Y = yToUse + ScaleY;
                StaticVertices[2].TextureCoordinate.X = .1171875f;
                StaticVertices[2].TextureCoordinate.Y = .570313f;

                StaticVertices[3] = StaticVertices[0];
                StaticVertices[4] = StaticVertices[2];

                StaticVertices[5].Position.X = xToUse + ScaleX - 1.1f;
                StaticVertices[5].Position.Y = yToUse - ScaleY;
                StaticVertices[5].TextureCoordinate.X = .054688f;
                StaticVertices[5].TextureCoordinate.Y = .570313f;

                GuiManager.WriteVerts(StaticVertices);

                #endregion

                #endregion

                #region Left button

                if (upButton.ButtonPushedState == ButtonPushedState.Down)
                {
                    StaticVertices[0].Position.X = xToUse - ScaleX;
                    StaticVertices[0].Position.Y = yToUse - ScaleY;
                    StaticVertices[0].TextureCoordinate.X = .25390625f;
                    StaticVertices[0].TextureCoordinate.Y = .632813f;

                    StaticVertices[1].Position.X = xToUse - ScaleX;
                    StaticVertices[1].Position.Y = yToUse + ScaleY;
                    StaticVertices[1].TextureCoordinate.X = .31640625f;
                    StaticVertices[1].TextureCoordinate.Y = .632813f;

                    StaticVertices[2].Position.X = xToUse - ScaleX + 1.1f;
                    StaticVertices[2].Position.Y = yToUse + ScaleY;
                    StaticVertices[2].TextureCoordinate.X = .31640625f;
                    StaticVertices[2].TextureCoordinate.Y = .675781f;

                    StaticVertices[3] = StaticVertices[0];
                    StaticVertices[4] = StaticVertices[2];

                    StaticVertices[5].Position.X = xToUse - ScaleX + 1.1f;
                    StaticVertices[5].Position.Y = yToUse - ScaleY;
                    StaticVertices[5].TextureCoordinate.X = .25390625f;
                    StaticVertices[5].TextureCoordinate.Y = .675781f;

                    GuiManager.WriteVerts(StaticVertices);
                }
                else
                {
                    StaticVertices[0].Position.X = xToUse - ScaleX;
                    StaticVertices[0].Position.Y = yToUse - ScaleY;
                    StaticVertices[0].TextureCoordinate.X = .1875f;
                    StaticVertices[0].TextureCoordinate.Y = .632813f;

                    StaticVertices[1].Position.X = xToUse - ScaleX;
                    StaticVertices[1].Position.Y = yToUse + ScaleY;
                    StaticVertices[1].TextureCoordinate.X = .25f;
                    StaticVertices[1].TextureCoordinate.Y = .632813f;

                    StaticVertices[2].Position.X = xToUse - ScaleX + 1.1f;
                    StaticVertices[2].Position.Y = yToUse + ScaleY;
                    StaticVertices[2].TextureCoordinate.X = .25f;
                    StaticVertices[2].TextureCoordinate.Y = .675781f;

                    StaticVertices[3] = StaticVertices[0];
                    StaticVertices[4] = StaticVertices[2];

                    StaticVertices[5].Position.X = xToUse - ScaleX + 1.1f;
                    StaticVertices[5].Position.Y = yToUse - ScaleY;
                    StaticVertices[5].TextureCoordinate.X = .1875f;
                    StaticVertices[5].TextureCoordinate.Y = .675781f;

                    GuiManager.WriteVerts(StaticVertices);
                }

                #endregion

                #region Right button

                if (downButton.ButtonPushedState == ButtonPushedState.Down)
                {
                    StaticVertices[0].Position.X = xToUse + ScaleX - 1.1f;
                    StaticVertices[0].Position.Y = yToUse - ScaleY;
                    StaticVertices[0].TextureCoordinate.X = .25390625f;
                    StaticVertices[0].TextureCoordinate.Y = .675781f;

                    StaticVertices[1].Position.X = xToUse + ScaleX - 1.1f;
                    StaticVertices[1].Position.Y = yToUse + ScaleY;
                    StaticVertices[1].TextureCoordinate.X = .31640625f;
                    StaticVertices[1].TextureCoordinate.Y = .675781f;

                    StaticVertices[2].Position.X = xToUse + ScaleX;
                    StaticVertices[2].Position.Y = yToUse + ScaleY;
                    StaticVertices[2].TextureCoordinate.X = .31640625f;
                    StaticVertices[2].TextureCoordinate.Y = .71875f;

                    StaticVertices[3] = StaticVertices[0];
                    StaticVertices[4] = StaticVertices[2];

                    StaticVertices[5].Position.X = xToUse + ScaleX;
                    StaticVertices[5].Position.Y = yToUse - ScaleY;
                    StaticVertices[5].TextureCoordinate.X = .25390625f;
                    StaticVertices[5].TextureCoordinate.Y = .71875f;

                    GuiManager.WriteVerts(StaticVertices);
                }
                else
                {

                    StaticVertices[0].Position.X = xToUse + ScaleX - 1.1f;
                    StaticVertices[0].Position.Y = yToUse - ScaleY;
                    StaticVertices[0].TextureCoordinate.X = .1875f;
                    StaticVertices[0].TextureCoordinate.Y = .675781f;

                    StaticVertices[1].Position.X = xToUse + ScaleX - 1.1f;
                    StaticVertices[1].Position.Y = yToUse + ScaleY;
                    StaticVertices[1].TextureCoordinate.X = .25f;
                    StaticVertices[1].TextureCoordinate.Y = .675781f;

                    StaticVertices[2].Position.X = xToUse + ScaleX;
                    StaticVertices[2].Position.Y = yToUse + ScaleY;
                    StaticVertices[2].TextureCoordinate.X = .25f;
                    StaticVertices[2].TextureCoordinate.Y = .71875f;

                    StaticVertices[3] = StaticVertices[0];
                    StaticVertices[4] = StaticVertices[2];

                    StaticVertices[5].Position.X = xToUse + ScaleX;
                    StaticVertices[5].Position.Y = yToUse - ScaleY;
                    StaticVertices[5].TextureCoordinate.X = .1875f;
                    StaticVertices[5].TextureCoordinate.Y = .71875f;

                    GuiManager.WriteVerts(StaticVertices);

                }

                #endregion

                #region positionBar
                xToUse = mWorldUnitX + mPositionBar.WorldUnitRelativeX;
                yToUse = mWorldUnitY;

                #region left of bar
                StaticVertices[0].Position.X = xToUse - mPositionBar.ScaleX;
                StaticVertices[0].Position.Y = yToUse - ScaleY + .1f;
                StaticVertices[0].TextureCoordinate.X = .11719f;
                StaticVertices[0].TextureCoordinate.Y = .59765625f;

                StaticVertices[1].Position.X = xToUse - mPositionBar.ScaleX;
                StaticVertices[1].Position.Y = yToUse + ScaleY - .1f;
                StaticVertices[1].TextureCoordinate.X = .17578125f;
                StaticVertices[1].TextureCoordinate.Y = .59765625f;

                StaticVertices[2].Position.X = xToUse - mPositionBar.ScaleX + .8f;
                StaticVertices[2].Position.Y = yToUse + ScaleY - .1f;
                StaticVertices[2].TextureCoordinate.X = .17578125f;
                StaticVertices[2].TextureCoordinate.Y = .62109375f;

                StaticVertices[3] = StaticVertices[0];
                StaticVertices[4] = StaticVertices[2];

                StaticVertices[5].Position.X = xToUse - mPositionBar.ScaleX + .8f;
                StaticVertices[5].Position.Y = yToUse - ScaleY + .1f;
                StaticVertices[5].TextureCoordinate.X = .11719f;
                StaticVertices[5].TextureCoordinate.Y = .62109375f;

                GuiManager.WriteVerts(StaticVertices);

                #endregion

                #region Center of bar
                StaticVertices[0].Position.X = xToUse - mPositionBar.ScaleX + .8f;
                StaticVertices[0].Position.Y = yToUse - ScaleY + .1f;
                StaticVertices[0].TextureCoordinate.X = .11719f;
                StaticVertices[0].TextureCoordinate.Y = .62109375f;

                StaticVertices[1].Position.X = xToUse - mPositionBar.ScaleX + .8f;
                StaticVertices[1].Position.Y = yToUse + ScaleY - .1f;
                StaticVertices[1].TextureCoordinate.X = .17578125f;
                StaticVertices[1].TextureCoordinate.Y = .62109375f;

                StaticVertices[2].Position.X = xToUse + mPositionBar.ScaleX - .8f;
                StaticVertices[2].Position.Y = yToUse + ScaleY - .1f;
                StaticVertices[2].TextureCoordinate.X = .17578125f;
                StaticVertices[2].TextureCoordinate.Y = .6328125f;

                StaticVertices[3] = StaticVertices[0];
                StaticVertices[4] = StaticVertices[2];

                StaticVertices[5].Position.X = xToUse + mPositionBar.ScaleX - .8f;
                StaticVertices[5].Position.Y = yToUse - ScaleY + .1f;
                StaticVertices[5].TextureCoordinate.X = .11719f;
                StaticVertices[5].TextureCoordinate.Y = .6328125f;

                GuiManager.WriteVerts(StaticVertices);

                #endregion

                #region right of bar
                StaticVertices[0].Position.X = xToUse + mPositionBar.ScaleX - .8f;
                StaticVertices[0].Position.Y = yToUse - ScaleY + .1f;
                StaticVertices[0].TextureCoordinate.X = .11719f;
                StaticVertices[0].TextureCoordinate.Y = .62109375f;

                StaticVertices[1].Position.X = xToUse + mPositionBar.ScaleX - .8f;
                StaticVertices[1].Position.Y = yToUse + ScaleY - .1f;
                StaticVertices[1].TextureCoordinate.X = .17578125f;
                StaticVertices[1].TextureCoordinate.Y = .62109375f;

                StaticVertices[2].Position.X = xToUse + mPositionBar.ScaleX;
                StaticVertices[2].Position.Y = yToUse + ScaleY - .1f;
                StaticVertices[2].TextureCoordinate.X = .17578125f;
                StaticVertices[2].TextureCoordinate.Y = .59765625f;

                StaticVertices[3] = StaticVertices[0];
                StaticVertices[4] = StaticVertices[2];

                StaticVertices[5].Position.X = xToUse + mPositionBar.ScaleX;
                StaticVertices[5].Position.Y = yToUse - ScaleY + .1f;
                StaticVertices[5].TextureCoordinate.X = .11719f;
                StaticVertices[5].TextureCoordinate.Y = .59765625f;

                GuiManager.WriteVerts(StaticVertices);

                #endregion

                #endregion

            }

        }
Esempio n. 8
0
        internal override void DrawSelfAndChildren(Camera camera)
        {
            #region Draw the base
            base.DrawSelfAndChildren(camera);
            #endregion

            #region Prepare variables for the loop
            float yToUse = mWorldUnitY;

            float xToUse;

            StaticVertices[0].Position.Z     = StaticVertices[1].Position.Z = StaticVertices[2].Position.Z =
                StaticVertices[3].Position.Z = StaticVertices[4].Position.Z = StaticVertices[5].Position.Z =
                    camera.Z + FlatRedBall.Math.MathFunctions.ForwardVector3.Z * 100;

            StaticVertices[0].Color = StaticVertices[1].Color = StaticVertices[2].Color = StaticVertices[3].Color = StaticVertices[4].Color = StaticVertices[5].Color = mColor;
            #endregion

            foreach (Marker marker in markerArray)
            {
                if (marker.Value >= Start && marker.Value <= Start + ValueWidth)
                {
                    #region If the marker is using the default texture, set the texture coordinates appropriately
                    if (marker.Texture == null)
                    {
                        StaticVertices[0].TextureCoordinate.X = 0;
                        StaticVertices[0].TextureCoordinate.Y = .875f;

                        StaticVertices[1].TextureCoordinate.X = 0;
                        StaticVertices[1].TextureCoordinate.Y = .876f;

                        StaticVertices[2].TextureCoordinate.X = 0;
                        StaticVertices[2].TextureCoordinate.Y = .875f;

                        StaticVertices[5].TextureCoordinate.X = .001f;
                        StaticVertices[5].TextureCoordinate.Y = .876f;
                    }
                    #endregion

                    #region Else, the marker is using a custom texture, so add a texture switch and set the coordinates appropriately
                    else
                    {
                        GuiManager.AddTextureSwitch(marker.Texture);

                        StaticVertices[0].TextureCoordinate.X = 0;
                        StaticVertices[0].TextureCoordinate.Y = 1;

                        StaticVertices[1].TextureCoordinate.X = 0;
                        StaticVertices[1].TextureCoordinate.Y = 0;

                        StaticVertices[2].TextureCoordinate.X = 1;
                        StaticVertices[2].TextureCoordinate.Y = 0;

                        StaticVertices[5].TextureCoordinate.X = 1f;
                        StaticVertices[5].TextureCoordinate.Y = 1;
                    }
                    #endregion

                    xToUse =
                        (float)GetPosOnBar(marker.Value);

                    StaticVertices[0].Position.X = xToUse - marker.ScaleX;
                    StaticVertices[0].Position.Y = yToUse - marker.ScaleY;

                    StaticVertices[1].Position.X = xToUse - marker.ScaleX;
                    StaticVertices[1].Position.Y = yToUse + marker.ScaleY;

                    StaticVertices[2].Position.X = xToUse + marker.ScaleX;
                    StaticVertices[2].Position.Y = yToUse + marker.ScaleY;

                    StaticVertices[3] = StaticVertices[0];
                    StaticVertices[4] = StaticVertices[2];

                    StaticVertices[5].Position.X = xToUse + marker.ScaleX;
                    StaticVertices[5].Position.Y = yToUse - marker.ScaleY;

                    GuiManager.WriteVerts(StaticVertices);
                }
            }
        }