コード例 #1
0
        /// <summary>
        ///     Renders the tooltip
        /// </summary>
        private void RenderToolTip()
        {
            var text  = $"[i] {this.ToolTip}";
            var dim   = MiscUtils.MeasureText(text);
            var width = Math.Max(this.Parent.Width, dim[0] + MenuManager.Instance.Theme.TextSpacing + 15);

            DefaultMenuTheme.DrawRectangleOutline(
                this.Position.X,
                this.Position.Y,
                width,
                MenuManager.MaxHeightItem + MenuManager.Instance.Theme.BonusMenuHeight,
                MenuManager.Instance.Theme.LineWidth,
                MenuManager.Instance.Theme.LineColor);

            var position = this.Position + MenuManager.Instance.Theme.LineWidth;

            Aimtec.Render.Rectangle(
                position,
                width - MenuManager.Instance.Theme.LineWidth,
                MenuManager.MaxHeightItem + MenuManager.Instance.Theme.BonusMenuHeight - MenuManager.Instance.Theme.LineWidth,
                MenuManager.Instance.Theme.MenuBoxBackgroundColor);

            var textPosition = new Aimtec.Rectangle((int)position.X, (int)position.Y, (int)(position.X + width - (MenuManager.Instance.Theme.LineWidth)), (int)(position.Y + MenuManager.MaxHeightItem + MenuManager.Instance.Theme.BonusMenuHeight));

            Aimtec.Render.Text(text, textPosition, RenderTextFlags.VerticalCenter | RenderTextFlags.NoClip | RenderTextFlags.Center, Color.LightBlue);
        }
コード例 #2
0
        public void Render(Vector2 pos)
        {
            var width  = this.Component.Parent.Width;
            var height = MenuManager.MaxHeightItem + this.Theme.BonusMenuHeight;

            var beforeSliderWidth = (float)(this.Component.Value - this.Component.MinValue)
                                    / (this.Component.MaxValue - this.Component.MinValue) * (width - this.Theme.LineWidth * 2);

            var afterSliderWidth = width - beforeSliderWidth - this.Theme.LineWidth;

            this.Theme.DrawMenuItemBorder(pos, width);

            var position = pos + this.Theme.LineWidth;

            this.Theme.DrawMenuItemBox(position, width);

            var displayNamePosition = new Aimtec.Rectangle((int)position.X + this.Theme.TextSpacing, (int)position.Y, (int)(position.X + width), (int)(position.Y + height));

            // Draw light bar before the slider line
            Aimtec.Render.Rectangle(
                position,
                beforeSliderWidth,
                height * 0.95f,
                Color.FromArgb(14, 59, 73));

            var bfSlider = position + new Vector2(beforeSliderWidth, 0);

            Aimtec.Render.Line(
                bfSlider,
                bfSlider + new Vector2(0, height),
                this.Theme.LineWidth,
                false,
                Color.FromArgb(82, 83, 57));

            var afSlider = bfSlider;

            Aimtec.Render.Rectangle(
                afSlider,
                afterSliderWidth - this.Theme.LineWidth,
                height * 0.95f,
                Color.FromArgb(16, 26, 29));

            // draw text
            Aimtec.Render.Text(this.Component.Value.ToString(),
                               new Aimtec.Rectangle((int)pos.X + this.Theme.LineWidth, (int)pos.Y + this.Theme.LineWidth, (int)(pos.X + width - this.Theme.TextSpacing), (int)(pos.Y + height)),
                               RenderTextFlags.VerticalCenter | RenderTextFlags.HorizontalRight, this.Theme.TextColor);

            Aimtec.Render.Text(this.Component.DisplayName + (!string.IsNullOrEmpty(this.Component.ToolTip) ? " [?]" : ""),
                               displayNamePosition,
                               RenderTextFlags.VerticalCenter, this.Theme.TextColor);
        }
コード例 #3
0
        public void Render(Vector2 pos)
        {
            var width  = this.Component.Parent.Width;
            var height = MenuManager.MaxHeightItem + this.Theme.BonusMenuHeight;

            this.Theme.DrawMenuItemBorder(pos, width);

            var position = pos + this.Theme.LineWidth;

            this.Theme.DrawMenuItemBox(position, width);

            var leftVCenter = RenderTextFlags.VerticalCenter | RenderTextFlags.HorizontalLeft | RenderTextFlags.NoClip
                              | RenderTextFlags.SingleLine;


            var displayNamePosition = new Aimtec.Rectangle((int)position.X + this.Theme.TextSpacing, (int)position.Y, (int)(position.X + width), (int)(position.Y + height));

            Aimtec.Render.Text(this.Component.DisplayName + (!string.IsNullOrEmpty(this.Component.ToolTip) ? " [?]" : ""),
                               displayNamePosition,
                               leftVCenter, this.Theme.TextColor);

            // Render indicator box outline
            Aimtec.Render.Line(
                pos.X + width - this.Theme.IndicatorWidth - this.Theme.LineWidth,
                pos.Y,
                pos.X + width - this.Theme.IndicatorWidth - this.Theme.LineWidth,
                pos.Y + height,
                Color.FromArgb(82, 83, 57));

            // Draw indicator box
            var indBoxPosition = position + new Vector2(width - this.Theme.IndicatorWidth - this.Theme.LineWidth, 0);

            var boolColor = this.Component.Value ? Color.FromArgb(39, 96, 17) : Color.FromArgb(85, 25, 15);

            Aimtec.Render.Rectangle(
                indBoxPosition,
                this.Theme.IndicatorWidth,
                height - this.Theme.LineWidth,
                boolColor);

            var centerArrowBox = new Aimtec.Rectangle(
                (int)indBoxPosition.X,
                (int)indBoxPosition.Y,
                (int)(indBoxPosition.X + this.Theme.IndicatorWidth),
                (int)indBoxPosition.Y + height);


            Aimtec.Render.Text(this.Component.Value ? "ON" : "OFF",
                               centerArrowBox,
                               RenderTextFlags.HorizontalCenter | RenderTextFlags.VerticalCenter, Color.White);
        }
コード例 #4
0
ファイル: DefaultMenu.cs プロジェクト: yegithub/Aimtec.SDK
        public void Render(Vector2 pos)
        {
            var width = this.Component.Parent.Width;

            var height = MenuManager.MaxHeightItem + this.Theme.BonusMenuHeight;

            this.Theme.DrawMenuItemBorder(pos, width);

            var position = pos + new Vector2(this.Theme.LineWidth, this.Theme.LineWidth);

            this.Theme.DrawMenuItemBox(position, width);

            var leftVCenter = RenderTextFlags.VerticalCenter | RenderTextFlags.HorizontalLeft | RenderTextFlags.NoClip
                              | RenderTextFlags.SingleLine;

            var center = RenderTextFlags.VerticalCenter | RenderTextFlags.HorizontalCenter | RenderTextFlags.NoClip
                         | RenderTextFlags.SingleLine;

            var displayNamePosition = new Rectangle((int)position.X + this.Theme.TextSpacing, (int)position.Y, (int)(position.X + width), (int)(position.Y + height));

            Aimtec.Render.Text(this.Component.DisplayName,
                               displayNamePosition,
                               leftVCenter, this.Theme.TextColor);

            // Render arrow outline
            Aimtec.Render.Line(
                pos.X + width - this.Theme.IndicatorWidth - this.Theme.LineWidth,
                pos.Y,
                pos.X + width - this.Theme.IndicatorWidth - this.Theme.LineWidth,
                pos.Y + height,
                this.Theme.LineColor);

            // Draw arrow box
            position += new Vector2(width - this.Theme.IndicatorWidth - this.Theme.LineWidth, 0);

            var arrowBoxColor = Color.FromArgb(14, 59, 73);

            if (!this.Component.Toggled)
            {
                arrowBoxColor = Color.FromArgb(11, 18, 20);
            }

            Aimtec.Render.Rectangle(
                position,
                this.Theme.IndicatorWidth,
                height - this.Theme.LineWidth,
                arrowBoxColor);

            Aimtec.Render.Text(">", new Aimtec.Rectangle((int)position.X, (int)position.Y, (int)(position.X + this.Theme.IndicatorWidth), (int)(position.Y + (height - this.Theme.LineWidth))), center, this.Theme.TextColor);
        }
コード例 #5
0
        public void Render(Vector2 pos)
        {
            var width = this.Component.Parent.Width;

            var height = MenuManager.MaxHeightItem + this.Theme.BonusMenuHeight;

            this.Theme.DrawMenuItemBorder(pos, width);

            var position = pos + this.Theme.LineWidth;

            this.Theme.DrawMenuItemBoxFull(position, width);

            var center = RenderTextFlags.VerticalCenter | RenderTextFlags.HorizontalCenter | RenderTextFlags.NoClip
                         | RenderTextFlags.SingleLine;

            var textPosition = new Aimtec.Rectangle((int)position.X, (int)position.Y, (int)(position.X + width), (int)(position.Y + height));

            Aimtec.Render.Text(this.Component.Value,
                               textPosition,
                               center, this.Theme.TextColor);
        }
コード例 #6
0
        /// <summary>
        ///     Renders at the specified position.
        /// </summary>
        /// <param name="pos">The position.</param>
        public void Render(Vector2 pos)
        {
            var width  = this.Component.Parent.Width;
            var height = MenuManager.MaxHeightItem + this.Theme.BonusMenuHeight;

            this.Theme.DrawMenuItemBorder(pos, width);

            var position = pos + this.Theme.LineWidth;

            this.Theme.DrawMenuItemBox(position, width);

            var leftVCenter = RenderTextFlags.VerticalCenter | RenderTextFlags.HorizontalLeft | RenderTextFlags.NoClip
                              | RenderTextFlags.SingleLine;

            var displayNamePosition = new Aimtec.Rectangle((int)position.X + this.Theme.TextSpacing, (int)position.Y, (int)(position.X + width), (int)(position.Y + height));

            Aimtec.Render.Text(this.Component.DisplayName + (!string.IsNullOrEmpty(this.Component.ToolTip) ? " [?]" : ""),
                               displayNamePosition,
                               leftVCenter, this.Theme.TextColor);

            // Render arrow outline 1 - left arrow
            Aimtec.Render.Line(
                pos.X + width - this.Theme.IndicatorWidth * 2.1F - this.Theme.LineWidth,
                pos.Y,
                pos.X + width - this.Theme.IndicatorWidth * 2.1F - this.Theme.LineWidth,
                pos.Y + height,
                Color.FromArgb(82, 83, 57));

            // Render arrow outline 2 - right arrow
            Aimtec.Render.Line(
                pos.X + width - this.Theme.IndicatorWidth - this.Theme.LineWidth,
                pos.Y,
                pos.X + width - this.Theme.IndicatorWidth - this.Theme.LineWidth,
                pos.Y + height,
                Color.FromArgb(82, 83, 57));

            var leftBoxPosition = position + new Vector2(
                width - this.Theme.IndicatorWidth * 2.1f - this.Theme.LineWidth,
                0);

            var rightBoxPosition = position + new Vector2(width - this.Theme.IndicatorWidth - this.Theme.LineWidth, 0);

            // Draw arrow boxes
            Aimtec.Render.Rectangle(
                leftBoxPosition,
                this.Theme.IndicatorWidth,
                height - this.Theme.LineWidth,
                Color.FromArgb(16, 26, 29));

            var rectLeft = new Aimtec.Rectangle((int)leftBoxPosition.X, (int)leftBoxPosition.Y, (int)(leftBoxPosition.X + this.Theme.IndicatorWidth), (int)(leftBoxPosition.Y + height));

            Aimtec.Render.Text("<",
                               rectLeft,
                               RenderTextFlags.HorizontalCenter | RenderTextFlags.VerticalCenter, this.Theme.TextColor);

            Aimtec.Render.Rectangle(
                rightBoxPosition,
                this.Theme.IndicatorWidth,
                height - this.Theme.LineWidth,
                Color.FromArgb(16, 26, 29));

            var rectRight = new Aimtec.Rectangle((int)rightBoxPosition.X, (int)rightBoxPosition.Y, (int)(rightBoxPosition.X + this.Theme.IndicatorWidth), (int)(rightBoxPosition.Y + height));

            Aimtec.Render.Text(">",
                               rectRight,
                               RenderTextFlags.HorizontalCenter | RenderTextFlags.VerticalCenter, this.Theme.TextColor);

            var valuePosition = new Aimtec.Rectangle((int)position.X + this.Theme.TextSpacing, (int)position.Y, (int)(position.X + width - this.Theme.IndicatorWidth * 2 - this.Theme.LineWidth * 2 - 15), (int)(position.Y + height));

            Aimtec.Render.Text(this.Component.Items[this.Component.Value],
                               valuePosition,
                               RenderTextFlags.VerticalCenter | RenderTextFlags.HorizontalRight, this.Theme.TextColor);

            #endregion
        }