Esempio n. 1
0
        /// <summary>
        ///     Draws a MenuColor
        /// </summary>
        public override void Draw()
        {
            var rectangleName = TechUtilities.GetContainerRectangle(this.Component)
                                .GetCenteredText(null, MenuSettings.Font, this.Component.DisplayName, CenteredFlags.VerticalCenter);

            MenuSettings.Font.DrawText(
                MenuManager.Instance.Sprite,
                this.Component.DisplayName,
                (int)(this.Component.Position.X + MenuSettings.ContainerTextOffset),
                (int)rectangleName.Y,
                MenuSettings.TextColor);

            Line.Width = MenuSettings.ContainerHeight - 7;
            Line.Begin();
            Line.Draw(
                new[]
            {
                new Vector2(
                    this.Component.Position.X + this.Component.MenuWidth - (Line.Width / 2f) - 4,
                    this.Component.Position.Y + 1 + 3),
                new Vector2(
                    this.Component.Position.X + this.Component.MenuWidth - (Line.Width / 2f) - 4,
                    this.Component.Position.Y + Line.Width + 3)
            },
                this.Component.Color);
            Line.End();
            if (this.Component.HoveringPreview)
            {
                Line.Begin();
                Line.Draw(
                    new[]
                {
                    new Vector2(
                        this.Component.Position.X + this.Component.MenuWidth - (Line.Width / 2f) - 4,
                        this.Component.Position.Y + 1 + 3),
                    new Vector2(
                        this.Component.Position.X + this.Component.MenuWidth - (Line.Width / 2f) - 4,
                        this.Component.Position.Y + Line.Width + 3)
                },
                    MenuSettings.HoverColor);
                Line.End();
            }

            if (this.Component.Active)
            {
                MenuManager.Instance.DrawDelayed(
                    delegate
                {
                    Line.Width = ColorPickerBoundaries().Width;
                    Line.Begin();
                    Line.Draw(
                        new[]
                    {
                        new Vector2(ColorPickerBoundaries().X + 165, ColorPickerBoundaries().Y),
                        new Vector2(
                            ColorPickerBoundaries().X + 165,
                            ColorPickerBoundaries().Y + ColorPickerBoundaries().Height)
                    },
                        MenuSettings.RootContainerColor);
                    Line.End();

                    colorBox.DrawControl(new Vector2(ColorBoxBoundaries().X, ColorBoxBoundaries().Y));
                    verticalColorSlider.DrawControl(
                        new Vector2(VerticalColorSliderBoundaries().X, VerticalColorSliderBoundaries().Y));
                    verticalAlphaSlider.DrawControl(
                        new Vector2(VerticalAlphaSliderBoundaries().X, VerticalAlphaSliderBoundaries().Y));

                    Utils.DrawBoxFilled(
                        PreviewBoundaries().X,
                        PreviewBoundaries().Y,
                        PreviewBoundaries().Width,
                        PreviewBoundaries().Height,
                        Color.Black);

                    Utils.DrawBoxFilled(
                        PreviewBoundaries().X,
                        PreviewBoundaries().Y,
                        PreviewBoundaries().Width,
                        PreviewBoundaries().Height,
                        colorBox.Rgb.ToSharpDxColor());

                    var applyButtonTextWidth =
                        MenuSettings.Font.MeasureText(MenuManager.Instance.Sprite, "Apply", 0).Width;
                    var cancelButtonTextWidth =
                        MenuSettings.Font.MeasureText(MenuManager.Instance.Sprite, "Cancel", 0).Width;

                    Line.Width = ApplyButtonBoundaries().Width;
                    Line.Begin();
                    Line.Draw(
                        new[]
                    {
                        new Vector2(ApplyButtonBoundaries().X + 25, ApplyButtonBoundaries().Y),
                        new Vector2(
                            ApplyButtonBoundaries().X + 25,
                            ApplyButtonBoundaries().Y + ApplyButtonBoundaries().Height)
                    },
                        new ColorBGRA(68, 160, 255, 255));
                    Line.End();

                    MenuSettings.Font.DrawText(
                        MenuManager.Instance.Sprite,
                        "Apply",
                        ApplyButtonBoundaries().X - applyButtonTextWidth / 2 + 25,
                        (int)
                        CancelButtonBoundaries()
                        .GetCenteredText(null, MenuSettings.Font, "Apply", CenteredFlags.VerticalCenter)
                        .Y,
                        new ColorBGRA(221, 233, 255, 255));

                    Line.Width = CancelButtonBoundaries().Width;
                    Line.Begin();
                    Line.Draw(
                        new[]
                    {
                        new Vector2(CancelButtonBoundaries().X + 25, CancelButtonBoundaries().Y),
                        new Vector2(
                            CancelButtonBoundaries().X + 25,
                            CancelButtonBoundaries().Y + CancelButtonBoundaries().Height)
                    },
                        new ColorBGRA(68, 160, 255, 255));
                    Line.End();

                    MenuSettings.Font.DrawText(
                        MenuManager.Instance.Sprite,
                        "Cancel",
                        CancelButtonBoundaries().X - cancelButtonTextWidth / 2 + 25,
                        (int)
                        CancelButtonBoundaries()
                        .GetCenteredText(null, MenuSettings.Font, "Cancel", CenteredFlags.VerticalCenter)
                        .Y,
                        new ColorBGRA(221, 233, 255, 255));
                });
            }
        }