/*
         * DrawText
         */

        /// <summary>
        /// </summary>
        /// <param name="paintParams"></param>
        /// <exception cref="ArgumentNullException"><paramref name="paintParams"/> is <see langword="null"/>.</exception>
        public new void DrawText(NuGenTextPaintParams paintParams)
        {
            if (paintParams == null)
            {
                throw new ArgumentNullException("paintParams");
            }

            Graphics g = paintParams.Graphics;

            using (NuGenGrfxMode mode = new NuGenGrfxMode(g))
            {
                g.TextRenderingHint = TextRenderingHint.ClearTypeGridFit;

                using (StringFormat sf = new StringFormat())
                {
                    sf.Trimming = StringTrimming.EllipsisCharacter;

                    base.DrawText(
                        paintParams.Graphics,
                        paintParams.Bounds,
                        paintParams.State,
                        paintParams.Text,
                        paintParams.Font,
                        paintParams.ForeColor,
                        sf
                        );
                }
            }
        }
예제 #2
0
        /// <summary>
        /// </summary>
        /// <exception cref="ArgumentNullException"><para><paramref name="paintParams"/> is <see langword="null"/>.</para></exception>
        public void DrawShadow(NuGenPaintParams paintParams)
        {
            if (paintParams == null)
            {
                throw new ArgumentNullException("paintParams");
            }

            Graphics  g      = paintParams.Graphics;
            Rectangle bounds = paintParams.Bounds;

            int     alpha          = 0;
            Color   baseColor      = Color.Black;
            int     alphaStep      = 5;
            Padding deflatePadding = new Padding(1);

            using (NuGenGrfxMode mode = new NuGenGrfxMode(g))
            {
                NuGenControlPaint.SetGraphicsVeryHighQuality(g);

                using (Pen pen = new Pen(Color.FromArgb(alpha, baseColor)))
                {
                    for (int i = 0; i <= _shadowStepCount; i++)
                    {
                        NuGenControlPaint.DrawRoundRectangle(g, pen, bounds, _shadowRadius);
                        pen.Color = Color.FromArgb(alpha += alphaStep, baseColor);
                        bounds    = NuGenControlPaint.DeflateRectangle(bounds, deflatePadding);

                        if (i == 1)
                        {
                            alphaStep = 10;
                        }
                    }
                }
            }
        }
        /*
         * DrawShadow
         */

        /// <summary>
        /// </summary>
        /// <param name="paintParams"></param>
        /// <exception cref="ArgumentNullException">
        /// <para>
        ///		<paramref name="paintParams"/> is <see langword="null"/>.
        /// </para>
        /// </exception>
        public void DrawShadow(NuGenPaintParams paintParams)
        {
            if (paintParams == null)
            {
                throw new ArgumentNullException("paintParams");
            }

            Graphics  g      = paintParams.Graphics;
            Rectangle bounds = paintParams.Bounds;

            using (NuGenGrfxMode mode = new NuGenGrfxMode(g))
            {
                g.SmoothingMode   = SmoothingMode.AntiAlias;
                g.PixelOffsetMode = PixelOffsetMode.HighQuality;

                for (int i = 0; i < _shadowColorsCount; i++)
                {
                    using (Pen pen = new Pen(_shadowColors[i]))
                    {
                        NuGenControlPaint.DrawRoundRectangle(g, pen, bounds, _shadowColorsCount - i);
                    }

                    bounds.Inflate(-1, -1);
                }
            }
        }
예제 #4
0
        public void SmoothingModeEmptyTest()
        {
            _grfx.SmoothingMode = SmoothingMode.AntiAlias;

            using (NuGenGrfxMode mode = new NuGenGrfxMode(_grfx))
            {
            }

            Assert.AreEqual(SmoothingMode.AntiAlias, _grfx.SmoothingMode);
        }
예제 #5
0
        public void PixelOffsetModeEmptyBlockTest()
        {
            _grfx.PixelOffsetMode = PixelOffsetMode.HighQuality;

            using (NuGenGrfxMode mode = new NuGenGrfxMode(_grfx))
            {
            }

            Assert.AreEqual(PixelOffsetMode.HighQuality, _grfx.PixelOffsetMode);
        }
예제 #6
0
        public void TextRenderingHintEmptyTest()
        {
            _grfx.TextRenderingHint = TextRenderingHint.ClearTypeGridFit;

            using (NuGenGrfxMode mode = new NuGenGrfxMode(_grfx))
            {
            }

            Assert.AreEqual(TextRenderingHint.ClearTypeGridFit, _grfx.TextRenderingHint);
        }
예제 #7
0
        public void PixelOffsetModeTest()
        {
            _grfx.SmoothingMode = SmoothingMode.AntiAlias;

            using (NuGenGrfxMode mode = new NuGenGrfxMode(_grfx))
            {
                _grfx.PixelOffsetMode = PixelOffsetMode.HighSpeed;
            }

            Assert.AreEqual(SmoothingMode.AntiAlias, _grfx.SmoothingMode);
        }
        /// <summary>
        /// </summary>
        /// <param name="paintParams"></param>
        /// <exception cref="ArgumentNullException">
        /// <para><paramref name="paintParams"/> is <see langword="null"/>.</para>
        /// </exception>
        public void DrawTrackButton(NuGenTrackButtonPaintParams paintParams)
        {
            if (paintParams == null)
            {
                throw new ArgumentNullException("paintParams");
            }

            Graphics          g         = paintParams.Graphics;
            Rectangle         bounds    = paintParams.Bounds;
            NuGenControlState state     = paintParams.State;
            TickStyle         tickStyle = paintParams.Style;

            Rectangle borderRectangle = NuGenControlPaint.BorderRectangle(bounds);

            using (NuGenGrfxMode mode = new NuGenGrfxMode(g))
            {
                g.SmoothingMode = SmoothingMode.AntiAlias;

                using (GraphicsPath gp = NuGenSmoothTrackBarRenderer.GetGraphicsPath(borderRectangle, tickStyle))
                {
                    /* Background */

                    using (
                        Brush brush = this.GetBackgroundBrush(
                            borderRectangle,
                            state == NuGenControlState.Normal || state == NuGenControlState.Focused
                                                                        ? NuGenControlState.Hot
                                                                        : state
                            )
                        )
                    {
                        g.FillPath(brush, gp);
                    }

                    /* Body */

                    Rectangle bodyRectangle = Rectangle.Inflate(borderRectangle, 0, -3);

                    using (GraphicsPath bgp = NuGenSmoothTrackBarRenderer.GetBodyGraphicsPath(borderRectangle, tickStyle))
                        using (Brush brush = this.GetBackgroundBrush(bodyRectangle, state))
                        {
                            g.FillPath(brush, bgp);
                        }

                    /* Border */

                    using (Pen pen = this.GetBorderPen(state))
                    {
                        g.DrawPath(pen, gp);
                    }
                }
            }
        }
예제 #9
0
        /// <summary>
        /// </summary>
        /// <param name="paintParams"></param>
        /// <exception cref="ArgumentNullException"><para><paramref name="paintParams"/> is <see langword="null"/>.</para></exception>
        public void DrawBorder(NuGenPaintParams paintParams)
        {
            if (paintParams == null)
            {
                throw new ArgumentNullException("paintParams");
            }

            Graphics g = paintParams.Graphics;

            using (NuGenGrfxMode mode = new NuGenGrfxMode(g))
            {
                g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
                this.DrawRoundBorder(g, NuGenControlPaint.BorderRectangle(paintParams.Bounds), paintParams.State);
            }
        }
예제 #10
0
        /*
         * DrawRadio
         */

        /// <summary>
        /// </summary>
        /// <param name="g"></param>
        /// <param name="bounds"></param>
        /// <param name="state"></param>
        /// <exception cref="ArgumentNullException">
        /// <para>
        ///		<paramref name="g"/> is <see langword="null"/>.
        /// </para>
        /// </exception>
        private void DrawRadio(Graphics g, Rectangle bounds, NuGenControlState state)
        {
            if (g == null)
            {
                throw new ArgumentNullException("g");
            }

            Debug.Assert(this.ColorManager != null, "this.ColorManager != null");
            bounds.Inflate(-3, -3);
            using (SolidBrush sb = new SolidBrush(this.ColorManager.GetBorderColor(state)))
            {
                using (NuGenGrfxMode mode = new NuGenGrfxMode(g))
                {
                    g.SmoothingMode = SmoothingMode.AntiAlias;
                    g.FillEllipse(sb, bounds);
                }
            }
        }
        /*
         * DrawBackground
         */

        /// <summary>
        /// </summary>
        /// <param name="paintParams"></param>
        /// <exception cref="ArgumentNullException">
        /// <para>
        ///		<paramref name="paintParams"/> is <see langword="null"/>.
        /// </para>
        /// </exception>
        public new void DrawBackground(NuGenPaintParams paintParams)
        {
            if (paintParams == null)
            {
                throw new ArgumentNullException("paintParams");
            }

            Graphics          g      = paintParams.Graphics;
            Rectangle         bounds = paintParams.Bounds;
            NuGenControlState state  = paintParams.State;

            using (NuGenGrfxMode mode = new NuGenGrfxMode(g))
            {
                g.SmoothingMode   = SmoothingMode.AntiAlias;
                g.PixelOffsetMode = PixelOffsetMode.HighQuality;
                this.DrawRoundBackground(g, bounds, state);
            }
        }
                public override void Paint(PaintEventArgs e)
                {
                    Graphics g = e.Graphics;

                    using (NuGenGrfxMode mode = new NuGenGrfxMode(g))
                        using (Pen pen = this.Painter._sketchCanvas.CreatePen())
                        {
                            this.Painter._sketchCanvas.InitializeGraphics(g);

                            foreach (Point[] figure in _firgures)
                            {
                                if (figure.Length > 1)
                                {
                                    g.DrawLines(pen, figure);
                                }
                            }
                        }
                }
                public override void MouseMove(MouseEventArgs e)
                {
                    if (_isDrawing)
                    {
                        _currentFigure.Add(e.Location);

                        using (Graphics g = Graphics.FromHwnd(this.Painter._sketchCanvas._hWnd))
                            using (Pen pen = this.Painter._sketchCanvas.CreatePen())
                            {
                                using (NuGenGrfxMode mode = new NuGenGrfxMode(g))
                                {
                                    this.Painter._sketchCanvas.InitializeGraphics(g);

                                    int figureCount = _currentFigure.Count;
                                    g.DrawLine(pen, _currentFigure[figureCount - 1], _currentFigure[figureCount - 2]);
                                }
                            }
                    }
                }
        /*
         * DrawForeground
         */

        /// <summary>
        /// </summary>
        /// <param name="paintParams"></param>
        /// <exception cref="ArgumentNullException">
        /// <para><paramref name="paintParams"/> is <see langword="null"/>.</para>
        /// </exception>
        public void DrawForeground(NuGenPaintParams paintParams)
        {
            if (paintParams == null)
            {
                throw new ArgumentNullException("paintParams");
            }

            Graphics  g      = paintParams.Graphics;
            Rectangle bounds = paintParams.Bounds;

            if (bounds.Height > 0 && bounds.Width > 0)
            {
                using (NuGenGrfxMode mode = new NuGenGrfxMode(g))
                {
                    g.SmoothingMode = SmoothingMode.AntiAlias;
                    this.DrawBackground(paintParams.Graphics, bounds, NuGenControlState.Pressed);
                }
            }
        }
예제 #15
0
        /*
         * DrawRadioButton
         */

        /// <summary>
        /// </summary>
        /// <param name="paintParams"></param>
        /// <exception cref="ArgumentNullException">
        /// <para><paramref name="paintParams"/> is <see langword="null"/>.</para>
        /// </exception>
        public void DrawRadioButton(NuGenRadioButtonPaintParams paintParams)
        {
            if (paintParams == null)
            {
                throw new ArgumentNullException("paintParams");
            }

            Graphics          g      = paintParams.Graphics;
            Rectangle         bounds = paintParams.Bounds;
            NuGenControlState state  = paintParams.State;

            this.DrawEllipseBackground(g, bounds, state);

            using (NuGenGrfxMode mode = new NuGenGrfxMode(g))
            {
                g.SmoothingMode = SmoothingMode.AntiAlias;
                this.DrawEllipseBorder(g, bounds, state);
            }

            if (paintParams.Checked)
            {
                this.DrawRadio(g, bounds, state);
            }
        }
예제 #16
0
        /*
         * DrawTabButton
         */

        /// <summary>
        /// </summary>
        /// <param name="paintParams"></param>
        /// <exception cref="ArgumentNullException">
        /// <para>
        ///		<paramref name="paintParams"/> is <see langword="null"/>.
        /// </para>
        /// </exception>
        public void DrawTabButton(NuGenTabButtonPaintParams paintParams)
        {
            if (paintParams == null)
            {
                throw new ArgumentNullException("paintParams");
            }

            Graphics          g            = paintParams.Graphics;
            Rectangle         bounds       = paintParams.Bounds;
            NuGenControlState currentState = NuGenControlState.Normal;

            /* Helps to draw background properly if the BackColor property is set to Color.Transparent. */
            g.FillRectangle(SystemBrushes.Control, new Rectangle(0, 0, bounds.Width, 2));

            switch (paintParams.State)
            {
            case TabItemState.Disabled:
            {
                currentState = NuGenControlState.Disabled;
                break;
            }

            case TabItemState.Hot:
            {
                currentState = NuGenControlState.Hot;
                break;
            }

            case TabItemState.Selected:
            {
                currentState = NuGenControlState.Pressed;
                break;
            }

            default:
            {
                currentState = NuGenControlState.Normal;
                break;
            }
            }

            Rectangle tweakedRectangle = NuGenControlPaint.BorderRectangle(bounds);

            using (NuGenGrfxMode mode = new NuGenGrfxMode(g))
            {
                g.SmoothingMode = SmoothingMode.AntiAlias;
                DrawRoundBackground(g, tweakedRectangle, currentState, NuGenRoundRectangleStyle.TopRound);
                DrawRoundBorder(g, tweakedRectangle, currentState, NuGenRoundRectangleStyle.TopRound);
            }

            this.DrawText(
                g,
                paintParams.TextBounds,
                currentState,
                paintParams.Text,
                paintParams.Font,
                paintParams.ForeColor,
                System.Drawing.ContentAlignment.MiddleLeft
                );

            if (paintParams.Image != null)
            {
                this.DrawImage(
                    g,
                    paintParams.ImageBounds,
                    currentState,
                    paintParams.Image
                    );
            }
        }