Ejemplo n.º 1
0
        protected override void OnPostPaint(NPaintVisitor visitor)
        {
            base.OnPostPaint(visitor);

            if (String.IsNullOrEmpty(m_Status))
            {
                return;
            }

            visitor.ClearStyles();
            visitor.SetFont(Font);

            // Determine status bounds
            NRectangle contentArea  = GetContentEdge();
            double     length       = NMath.Max(contentArea.Width, contentArea.Height) * 0.3;
            NRectangle statusBounds = new NRectangle(contentArea.Right - length - 5,
                                                     contentArea.Top + 5, length, length);

            // Fill the status bounds with a circle
            NExamplesHomePage homePage = (NExamplesHomePage)GetFirstAncestor(NExamplesHomePage.NExamplesHomePageSchema);
            NColor            color    = homePage.GetStatusColor(m_Status);

            visitor.SetFill(new NColor(color, 160));
            visitor.PaintEllipse(statusBounds);

            // Create text paint settings
            NPaintTextRectSettings settings = new NPaintTextRectSettings();

            settings.HorzAlign = ENTextHorzAlign.Center;
            settings.VertAlign = ENTextVertAlign.Center;

            // Paint the status text in the top right corner
            visitor.SetFill(NColor.White);
            visitor.PaintString(statusBounds, m_Status, ref settings);
        }
Ejemplo n.º 2
0
        void PaintJoint(NPaintVisitor pv, double radius)
        {
            double innerR = radius - 3;

            pv.PaintEllipse(-radius, -radius, 2 * radius, 2 * radius);
            pv.PaintEllipse(-innerR, -innerR, 2 * innerR, 2 * innerR);
        }
Ejemplo n.º 3
0
        void PaintGripper(NPaintVisitor pv)
        {
            if (m_ArmGripperPath == null)
            {
                m_ArmGripperPath = new NGraphicsPath();
                m_ArmGripperPath.StartFigure(0, -6);
                m_ArmGripperPath.LineTo(20, -6);
                m_ArmGripperPath.LineTo(20, -14);
                m_ArmGripperPath.LineTo(30, -14);
                m_ArmGripperPath.LineTo(30, 14);
                m_ArmGripperPath.LineTo(20, 14);
                m_ArmGripperPath.LineTo(20, 6);
                m_ArmGripperPath.LineTo(0, 6);
                m_ArmGripperPath.CloseFigure();

                m_ArmGripperPath.StartFigure(30, -14);
                m_ArmGripperPath.LineTo(40, -14);
                m_ArmGripperPath.LineTo(50, -10);
                m_ArmGripperPath.LineTo(50, -7);
                m_ArmGripperPath.LineTo(30, -7);
                m_ArmGripperPath.CloseFigure();

                m_ArmGripperPath.StartFigure(30, 14);
                m_ArmGripperPath.LineTo(40, 14);
                m_ArmGripperPath.LineTo(50, 10);
                m_ArmGripperPath.LineTo(50, 7);
                m_ArmGripperPath.LineTo(30, 7);
                m_ArmGripperPath.CloseFigure();
            }

            pv.PaintPath(m_ArmGripperPath);
        }
Ejemplo n.º 4
0
        protected void OnExportWithDirect2DMenuItemClick(NEventArgs args)
        {
#if SUPPORT_DIRECT2D && DEBUG
            string fileName = "d:\\D2D_output.png";
            NSize  imgSize  = new NSize(this.Width, this.Height);

            try
            {
                Nevron.Windows.DirectX.ND2DGraphicsHelper gh = new Nevron.Windows.DirectX.ND2DGraphicsHelper();
                INGraphics2D pdfG = gh.CreateGraphics((int)imgSize.Width, (int)imgSize.Height);

                NRegion clip = NRegion.FromRectangle(new NRectangle(0, 0, imgSize.Width, imgSize.Height));

                NMatrix canvasTransform = NMatrix.Identity;
                NMatrix invertedCT      = canvasTransform;
                invertedCT.Invert();

                NPaintVisitor visitor = new NPaintVisitor(pdfG, 96, invertedCT, clip);
                // assign media

                // forward traverse the display tree
                visitor.BeginPainting();
                VisitDisplaySubtree(visitor);
                visitor.EndPainting();

                gh.SaveToFileAndDispose(fileName);

                System.Diagnostics.Process.Start(fileName);
            }
            catch (Exception x)
            {
                NMessageBox.Show(null, x.Message, "Exception", ENMessageBoxButtons.OK);
            }
#endif
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Performs the element post-children custom paint. Overriden to paint the status
        /// of this example tile (if it has one) in its bottom-left corner.
        /// </summary>
        /// <param name="visitor"></param>
        protected override void OnPostPaint(NPaintVisitor visitor)
        {
            base.OnPostPaint(visitor);

            if (String.IsNullOrEmpty(m_Status))
            {
                return;
            }

            // Paint a new label in the bottom left corner
            NRectangle bounds = GetContentEdge();

            NFont font = new NFont(FontName, 5.0, ENFontStyle.Regular);

            font.RasterizationMode = ENFontRasterizationMode.Aliased;
            NSize      textSize = font.MeasureString(m_Status, this.OwnerDocument);
            NRectangle textRect = new NRectangle(bounds.X - 1, bounds.Bottom - textSize.Height,
                                                 textSize.Width + 3, textSize.Height);

            // Paint the text background
            NColor color = HomePage.GetStatusColor(m_Status);

            visitor.SetFill(color);
            visitor.PaintRectangle(textRect);

            // Paint the text
            visitor.SetFill(NColor.White);
            visitor.SetFont(font);

            NPoint location = textRect.Location;
            NPaintTextPointSettings settings = new NPaintTextPointSettings();

            visitor.PaintString(location, m_Status, ref settings);
        }
Ejemplo n.º 6
0
            public void Paint(NPaintVisitor visitor)
            {
                NColor color;

                switch (State)
                {
                case ENTouchDeviceState.Down:
                    color = NColor.Blue;
                    break;

                case ENTouchDeviceState.Unknown:
                    color = NColor.Green;
                    break;

                case ENTouchDeviceState.Up:
                    color = NColor.Red;
                    break;

                default:
                    throw new Exception("New ENTouchDeviceState?");
                }

                NSize size = Size;

                if (size.Width == 0 || size.Height == 0)
                {
                    size = new NSize(5, 5);
                }

                visitor.SetStroke(new NStroke(color));
                visitor.PaintEllipse(NRectangle.FromCenterAndSize(Location, size));
            }
Ejemplo n.º 7
0
        private void OnCanvasPrePaint(NCanvasPaintEventArgs args)
        {
            NCanvas canvas = args.TargetNode as NCanvas;

            if (canvas == null)
            {
                return;
            }

            NPaintVisitor pv = args.PaintVisitor;

            pv.ClearStyles();

            if (m_PaintImageInRectangle)
            {
                pv.PaintImage(NResources.Image_JpegSuite_q080_jpg.ImageSource, new NRectangle(m_PosX, m_PosY, m_Width, m_Height));
            }
            else
            {
                pv.PaintImage(NResources.Image_JpegSuite_q080_jpg.ImageSource, new NPoint(m_PosX, m_PosY));
            }

            // paint a border around the canvas
            pv.SetStroke(NColor.Black, 1);
            pv.PaintRectangle(0, 0, canvas.Width, canvas.Height);
        }
Ejemplo n.º 8
0
        private void OnCanvasPrePaint(NCanvasPaintEventArgs args)
        {
            NCanvas canvas = args.TargetNode as NCanvas;

            if (canvas == null)
            {
                return;
            }

            // Create a transform matrix for the graphics path
            NMatrix matrix = NMatrix.CreateRotationMatrix(m_PathAngle * NAngle.Degree2Rad, NPoint.Zero);

            matrix.Translate(m_PathPositionX, m_PathPositionY);

            // Create a graphics path containing a rectangle and transform it
            NGraphicsPath path = new NGraphicsPath();

            path.AddRectangle(0, 0, RectWidth, RectHeight);
            path.Transform(matrix);

            // Paint the graphics path
            NPaintVisitor pv = args.PaintVisitor;

            pv.SetStroke(m_Stroke);
            pv.SetFill(m_ImageFill);
            pv.PaintPath(path);

            // Paint a border around the canvas
            pv.ClearFill();
            pv.SetStroke(NColor.Black, 1);
            pv.PaintRectangle(0, 0, canvas.Width, canvas.Height);
        }
Ejemplo n.º 9
0
        void OnCanvasPrePaint(NCanvasPaintEventArgs args)
        {
            NCanvas canvas = args.TargetNode as NCanvas;

            if (canvas == null)
            {
                return;
            }

            NStroke stroke = (NStroke)canvas.Tag;

            NPaintVisitor visitor = args.PaintVisitor;

            visitor.SetStroke(stroke);
            visitor.SetFill(null);

            double strokeWidth   = stroke.Width;
            double rectWidth     = 300;
            double ellipseWidth  = 150;
            double polylineWidth = 180;
            double dist          = 20;

            double x1 = 10 + strokeWidth / 2;
            double x2 = x1 + rectWidth + dist + strokeWidth;
            double x3 = x2 + ellipseWidth;
            double x4 = x3 + dist + strokeWidth;
            double x5 = x4 + polylineWidth + dist + strokeWidth / 2;
            double y1 = 10 + strokeWidth / 2;
            double y2 = y1 + strokeWidth + 10;
            double y3 = y1 + 50;

            // draw a horizontal line
            visitor.PaintLine(x1, y1, x3, y1);

            // draw a rectangle
            visitor.PaintRectangle(x1, y2, rectWidth, 100);

            // draw an ellipse
            visitor.PaintEllipse(x2, y2, ellipseWidth, 100);

            // draw a polyline
            NPolyline polyLine = new NPolyline(4);

            polyLine.Add(new NPoint(x4, y2 + 90));
            polyLine.Add(new NPoint(x4 + 60, y2));
            polyLine.Add(new NPoint(x4 + 120, y2 + 90));
            polyLine.Add(new NPoint(x4 + 180, y2));
            visitor.PaintPolyline(polyLine);

            // draw text
            string dashStyleName = stroke.DashStyle.ToString();

            visitor.ClearStroke();
            visitor.SetFont(m_LabelFont);
            visitor.SetFill(m_LabelFill);

            NPaintTextRectSettings settings = new NPaintTextRectSettings();

            visitor.PaintString(new NRectangle(x5, y3, 200, 50), dashStyleName, ref settings);
        }
        void PaintTriangle(NPaintVisitor paintVisitor, double w, double h)
        {
            NPoint p1 = new NPoint(0.5 * w, 0.1 * h);
            NPoint p2 = new NPoint(0.9 * w, 0.9 * h);
            NPoint p3 = new NPoint(0.1 * w, 0.8 * h);

            paintVisitor.PaintTriangle(p1, p2, p3);
        }
        void PaintQuadrangle(NPaintVisitor paintVisitor, double w, double h)
        {
            NPoint p1 = new NPoint(0.2 * w, 0.1 * h);
            NPoint p2 = new NPoint(0.6 * w, 0.1 * h);
            NPoint p3 = new NPoint(0.9 * w, 0.9 * h);
            NPoint p4 = new NPoint(0.1 * w, 0.6 * h);

            paintVisitor.PaintQuadrangle(p1, p2, p3, p4);
        }
Ejemplo n.º 12
0
        void PaintTriangle(NPaintVisitor paintVisitor, double w, double h)
        {
            paintVisitor.SetStroke(NColor.Black, 2);
            paintVisitor.SetFill(NColor.Crimson);

            NPoint p1 = new NPoint(0.5 * w, 0.2 * h);
            NPoint p2 = new NPoint(0.8 * w, 0.8 * h);
            NPoint p3 = new NPoint(0.2 * w, 0.7 * h);

            paintVisitor.PaintTriangle(p1, p2, p3);
        }
        void PaintPolyline(NPaintVisitor paintVisitor, double w, double h)
        {
            NPolyline polyline = new NPolyline(5);

            polyline.Add(0.1 * w, 0.1 * h);
            polyline.Add(0.4 * w, 0.2 * h);
            polyline.Add(0.2 * w, 0.5 * h);
            polyline.Add(0.3 * w, 0.8 * h);
            polyline.Add(0.9 * w, 0.9 * h);
            paintVisitor.PaintPolyline(polyline);
        }
Ejemplo n.º 14
0
        private void OnCanvasPrePaint(NCanvasPaintEventArgs args)
        {
            NCanvas canvas = args.TargetNode as NCanvas;

            if (canvas == null)
            {
                return;
            }

            NPaintVisitor pv = args.PaintVisitor;

            int count = m_Values.Length;

            // calculate total value
            double total = 0;

            for (int i = 0; i < count; i++)
            {
                total += m_Values[i];
            }

            // paint the pie slices
            double beginAngle = 0;

            pv.ClearStyles();

            for (int i = 0; i < count; i++)
            {
                double sweepAngle = NMath.PI2 * (m_Values[i] / total);

                NGraphicsPath path = new NGraphicsPath();
                path.AddPie(0.1 * W, 0.1 * H, 0.8 * W, 0.8 * H, beginAngle, sweepAngle);

                if (i == 0)
                {
                    const double detachment = 20;
                    double       midAngle   = beginAngle + sweepAngle / 2;
                    double       dx         = Math.Cos(midAngle) * detachment;
                    double       dy         = Math.Sin(midAngle) * detachment;
                    path.Translate(dx, dy);
                }

                pv.SetFill(m_ColorFills[i]);
                pv.PaintPath(path);

                beginAngle += sweepAngle;
            }

            // paint a border around the canvas
            pv.ClearFill();
            pv.SetStroke(NColor.Black, 1);
            pv.PaintRectangle(0, 0, canvas.Width, canvas.Height);
        }
Ejemplo n.º 15
0
        void PaintQuadrangle(NPaintVisitor paintVisitor, double w, double h)
        {
            paintVisitor.SetStroke(NColor.Black, 2);
            paintVisitor.SetFill(new NColor(NColor.Crimson, 128));

            NPoint p1 = new NPoint(0.3 * w, 0.2 * h);
            NPoint p2 = new NPoint(0.6 * w, 0.2 * h);
            NPoint p3 = new NPoint(0.8 * w, 0.8 * h);
            NPoint p4 = new NPoint(0.2 * w, 0.6 * h);

            paintVisitor.PaintQuadrangle(p1, p2, p3, p4);
        }
Ejemplo n.º 16
0
        void PaintPolyline(NPaintVisitor paintVisitor, double w, double h)
        {
            paintVisitor.SetStroke(NColor.Black, 2);

            NPolyline polyline = new NPolyline(5);

            polyline.Add(0.2 * w, 0.2 * h);
            polyline.Add(0.4 * w, 0.3 * h);
            polyline.Add(0.3 * w, 0.5 * h);
            polyline.Add(0.4 * w, 0.7 * h);
            polyline.Add(0.8 * w, 0.8 * h);
            paintVisitor.PaintPolyline(polyline);
        }
Ejemplo n.º 17
0
        void PaintRectangle(NPaintVisitor paintVisitor, double w, double h)
        {
            NLinearGradientFill lgf = new NLinearGradientFill();

            lgf.GradientStops.Add(new NGradientStop(0, NColor.Indigo));
            lgf.GradientStops.Add(new NGradientStop(0.5f, NColor.SlateBlue));
            lgf.GradientStops.Add(new NGradientStop(1, new NColor(NColor.Crimson, 30)));

            paintVisitor.SetStroke(NColor.Black, 1);
            paintVisitor.SetFill(lgf);

            paintVisitor.PaintRectangle(0.2 * w, 0.3 * h, 0.6 * w, 0.4 * h);
        }
        void PaintPath(NPaintVisitor paintVisitor, double w, double h)
        {
            NGraphicsPath path = new NGraphicsPath();

            path.StartFigure(0.1 * w, 0.1 * h);
            path.LineTo(0.7 * w, 0.2 * h);
            path.CubicBezierTo(0.9 * w, 0.9 * h, 1 * w, 0.4 * h, 0.5 * w, 0.7 * h);
            path.LineTo(0.2 * w, 0.8 * h);
            path.CubicBezierTo(0.1 * w, 0.1 * h, 0.3 * w, 0.7 * h, 0.4 * w, 0.6 * h);
            path.CloseFigure();

            paintVisitor.PaintPath(path);
        }
        void PaintPolygon(NPaintVisitor paintVisitor, double w, double h)
        {
            NPolygon polygon = new NPolygon(6);

            polygon.Add(0.3 * w, 0.1 * h);
            polygon.Add(0.7 * w, 0.1 * h);
            polygon.Add(0.5 * w, 0.4 * h);
            polygon.Add(0.9 * w, 0.9 * h);
            polygon.Add(0.2 * w, 0.8 * h);
            polygon.Add(0.1 * w, 0.4 * h);

            paintVisitor.PaintPolygon(polygon, ENFillRule.EvenOdd);
        }
Ejemplo n.º 20
0
        void PaintEllipse(NPaintVisitor paintVisitor, double w, double h)
        {
            NRadialGradientFill rgf = new NRadialGradientFill();

            rgf.GradientStops.Add(new NGradientStop(0, NColor.Indigo));
            rgf.GradientStops.Add(new NGradientStop(0.6f, NColor.SlateBlue));
            rgf.GradientStops.Add(new NGradientStop(1, new NColor(NColor.Crimson, 30)));

            paintVisitor.SetStroke(NColor.Black, 1);
            paintVisitor.SetFill(rgf);

            paintVisitor.PaintEllipse(0.2 * w, 0.3 * h, 0.6 * w, 0.4 * h);
        }
Ejemplo n.º 21
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="args"></param>
        private void OnCanvasPrePaint(NCanvasPaintEventArgs args)
        {
            NCanvas canvas = args.TargetNode as NCanvas;

            if (canvas == null)
            {
                return;
            }

            NPaintVisitor paintVisitor = args.PaintVisitor;

            NRectangle contentEge = canvas.GetContentEdge();

            // create the text bounds
            double width  = contentEge.Width * m_WidthPercentUpDown.Value / 100.0;
            double height = contentEge.Height * m_HeightPercentUpDown.Value / 100.0;
            NPoint center = contentEge.Center;

            NRectangle textBounds = new NRectangle(center.X - width / 2.0, center.Y - height / 2.0, width, height);

            // create the settings
            NPaintTextRectSettings settings = new NPaintTextRectSettings();

            settings.SingleLine = m_SingleLineCheckBox.Checked;
            settings.WrapMode   = (ENTextWrapMode)m_WrapModeCombo.SelectedIndex;
            settings.HorzAlign  = (ENTextHorzAlign)m_HorizontalAlignmentCombo.SelectedIndex;
            settings.VertAlign  = (ENTextVertAlign)m_VerticalAlignmentCombo.SelectedIndex;

            // create the text
            StringBuilder builder = new StringBuilder();

            builder.AppendLine("Paint text at bounds [" + textBounds.X.ToString("0.") + ", " + textBounds.Y.ToString("0.") + "]");
            builder.AppendLine("Horizontal Alignment [" + settings.HorzAlign.ToString() + "]");
            builder.AppendLine("Vertical Alignment [" + settings.VertAlign.ToString() + "]");

            // paint the bounding box
            paintVisitor.ClearStyles();
            paintVisitor.SetFill(NColor.LightBlue);
            paintVisitor.PaintRectangle(textBounds);

            // init font and fill
            paintVisitor.SetFill(NColor.Black);
            NFont font = new NFont(NFontDescriptor.DefaultSansFamilyName, 10);


            NGraphicsPath path = font.GetTextPath(builder.ToString(), textBounds, this.OwnerDocument, ref settings);

            paintVisitor.PaintPath(path);
        }
Ejemplo n.º 22
0
        void PaintBase(NPaintVisitor pv)
        {
            if (m_ArmBasePath == null)
            {
                m_ArmBasePath = new NGraphicsPath();
                m_ArmBasePath.StartFigure(0, 0);
                m_ArmBasePath.LineTo(-40, 0);
                m_ArmBasePath.LineTo(-40, 50);
                m_ArmBasePath.LineTo(25, 50);
                m_ArmBasePath.LineTo(25, 20);
                m_ArmBasePath.CloseFigure();
            }

            pv.PaintPath(m_ArmBasePath);
        }
Ejemplo n.º 23
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="args"></param>
        private void OnCanvasPrePaint(NCanvasPaintEventArgs args)
        {
            NCanvas canvas = args.TargetNode as NCanvas;

            if (canvas == null)
            {
                return;
            }

            NPaintVisitor paintVisitor = args.PaintVisitor;

            NRectangle contentEge = canvas.GetContentEdge();

            // create the text bounds
            double width  = contentEge.Width * 0.5;
            double height = contentEge.Height * 0.5;
            NPoint center = contentEge.Center;

            NRectangle textBounds = new NRectangle(center.X - width / 2.0, center.Y - height / 2.0, width, height);

            // create the settings
            NPaintTextRectSettings settings = new NPaintTextRectSettings();

            settings.SingleLine = false;
            settings.WrapMode   = ENTextWrapMode.WordWrap;
            settings.HorzAlign  = ENTextHorzAlign.Center;
            settings.VertAlign  = ENTextVertAlign.Center;

            // create the text
            StringBuilder builder = new StringBuilder();

            builder.AppendLine("This text is displayed using Liberation Fonts!");
            builder.AppendLine("distributed under the SIL Open Font License (OFL)");

            // paint the bounding box
            paintVisitor.ClearStyles();
            paintVisitor.SetFill(NColor.LightBlue);
            paintVisitor.PaintRectangle(textBounds);

            // init font and fill
            paintVisitor.SetFill(NColor.Black);
            ENFontStyle fontStyle = NFontFaceDescriptor.FontVariantToFontStyle(m_FontDescriptor.FontVariant);

            paintVisitor.SetFont(new NFont(m_FontDescriptor.FamilyName, 10, fontStyle));

            // paint the text
            paintVisitor.PaintString(textBounds, builder.ToString(), ref settings);
        }
Ejemplo n.º 24
0
        void PaintPath(NPaintVisitor paintVisitor, double w, double h)
        {
            paintVisitor.SetStroke(new NColor(0, 0, 0, 160), 6);
            paintVisitor.SetFill(new NColor(NColor.GreenYellow, 128));

            NGraphicsPath path = new NGraphicsPath();

            path.StartFigure(0.2 * w, 0.2 * h);
            path.LineTo(0.7 * w, 0.3 * h);
            path.CubicBezierTo(0.8 * w, 0.8 * h, 1 * w, 0.4 * h, 0.5 * w, 0.7 * h);
            path.LineTo(0.3 * w, 0.7 * h);
            path.CubicBezierTo(0.2 * w, 0.2 * h, 0.3 * w, 0.7 * h, 0.4 * w, 0.6 * h);
            path.CloseFigure();

            paintVisitor.PaintPath(path);
        }
Ejemplo n.º 25
0
        void PaintPolygon(NPaintVisitor paintVisitor, double w, double h)
        {
            paintVisitor.SetStroke(new NColor(0, 0, 0, 160), 6);
            paintVisitor.SetFill(NColor.GreenYellow);

            NPolygon polygon = new NPolygon(6);

            polygon.Add(0.3 * w, 0.2 * h);
            polygon.Add(0.6 * w, 0.2 * h);
            polygon.Add(0.5 * w, 0.4 * h);
            polygon.Add(0.8 * w, 0.8 * h);
            polygon.Add(0.3 * w, 0.7 * h);
            polygon.Add(0.2 * w, 0.4 * h);

            paintVisitor.PaintPolygon(polygon, ENFillRule.EvenOdd);
        }
Ejemplo n.º 26
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="args"></param>
        private void OnCanvasPrePaint(NCanvasPaintEventArgs args)
        {
            NCanvas canvas = args.TargetNode as NCanvas;

            if (canvas == null)
            {
                return;
            }

            NPaintVisitor paintVisitor = args.PaintVisitor;
            NRectangle    contentEge   = canvas.GetContentEdge();

            // create the settings
            NPaintTextRectSettings settings = new NPaintTextRectSettings();

            settings.SingleLine = false;
            settings.WrapMode   = ENTextWrapMode.WordWrap;
            settings.HorzAlign  = ENTextHorzAlign.Left;
            settings.VertAlign  = ENTextVertAlign.Top;

            // create the text
            string text = m_TextBox.Text;

            // calculate the text bounds the text bounds
            double resolution = canvas.OwnerDocument.GetEffectiveResolution();
            NFont  font       = new NFont(NFontDescriptor.DefaultSansFamilyName, 10, ENFontStyle.Regular);
            NSize  textSize   = font.MeasureString(text.ToCharArray(), resolution, contentEge.Width, false, ref settings);

            NPoint     center     = contentEge.Center;
            NRectangle textBounds = new NRectangle(
                center.X - textSize.Width / 2.0,
                center.Y - textSize.Height / 2.0,
                textSize.Width,
                textSize.Height);

            // paint the bounding box
            paintVisitor.ClearStyles();
            paintVisitor.SetFill(NColor.LightBlue);
            paintVisitor.PaintRectangle(textBounds);

            // init font and fill
            paintVisitor.SetFill(NColor.Black);
            paintVisitor.SetFont(font);

            // paint the text
            paintVisitor.PaintString(textBounds, text.ToCharArray(), ref settings);
        }
Ejemplo n.º 27
0
            public override NMatrix Calibrate(NPaintVisitor visitor, double imgWidth, double imgHeight, NRectangle targetRect)
            {
                // Initialize the image transform
                NMatrix matrix = NMatrix.Identity;

                // Scale the image so that it fits 2 times in width and 3 times in height
                matrix.Scale(
                    NCustomTextureMappingExample.RectWidth / (2.0 * imgWidth),
                    NCustomTextureMappingExample.RectHeight / (3.0 * imgHeight));

                // Rotate the image to the specified angle
                matrix.Rotate(m_TextureMapping.TextureAngle * NAngle.Degree2Rad);

                // Translate the image to the specfied pin point
                matrix.Translate(m_TextureMapping.PinPoint.X, m_TextureMapping.PinPoint.Y);

                return(matrix);
            }
Ejemplo n.º 28
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="args"></param>
        private void OnCanvasPrePaint(NCanvasPaintEventArgs args)
        {
            NCanvas canvas = args.TargetNode as NCanvas;

            if (canvas == null)
            {
                return;
            }

            NPaintVisitor paintVisitor = args.PaintVisitor;

            NPaintTextPointSettings settings = new NPaintTextPointSettings();

            settings.SingleLine = m_SingleLineCheckBox.Checked;
            settings.VertAlign  = (ENTextVertAlign)m_VerticalAlignmentCombo.SelectedItem.Tag;
            settings.HorzAlign  = (ENTextHorzAlign)m_HorizontalAlignmentCombo.SelectedItem.Tag;

            NPoint location = canvas.GetContentEdge().Center;

            // set styles
            paintVisitor.ClearStyles();
            paintVisitor.SetFont(new NFont(NFontDescriptor.DefaultSansFamilyName, 10));
            paintVisitor.SetFill(NColor.Black);

            // create text to paint
            StringBuilder builder = new StringBuilder();

            builder.AppendLine("Paint text at location [" + location.X.ToString("0.") + ", " + location.Y.ToString("0.") + "]");
            builder.AppendLine("Horizontal Alignment [" + settings.HorzAlign.ToString() + "]");
            builder.AppendLine("Vertical Alignment [" + settings.VertAlign.ToString() + "]");

            // paint string
            paintVisitor.PaintString(location, builder.ToString(), ref settings);

            // paint location
            double inflate = 5.0;

            paintVisitor.SetFill(NColor.Red);
            paintVisitor.PaintRectangle(new NRectangle(location.X - inflate, location.Y - inflate, inflate * 2.0, inflate * 2.0));
        }
Ejemplo n.º 29
0
        private void OnPrintPage(NPrintDocument sender, NPrintPageEventArgs e)
        {
            NSize pageSizeDIP = new NSize(this.Width, this.Height);

            try
            {
                NMargins pageMargins = NMargins.Zero;

                NRegion clip      = NRegion.FromRectangle(new NRectangle(0, 0, e.PrintableArea.Width, e.PrintableArea.Height));
                NMatrix transform = new NMatrix(e.PrintableArea.X, e.PrintableArea.Y);

                NPaintVisitor visitor = new NPaintVisitor(e.Graphics, 300, transform, clip);

                // forward traverse the display tree
                this.OwnerWindow.VisitDisplaySubtree(visitor);

                e.HasMorePages = false;
            }
            catch (Exception x)
            {
                NMessageBox.Show(x.Message, "Exception", ENMessageBoxButtons.OK, ENMessageBoxIcon.Error);
            }
        }
Ejemplo n.º 30
0
        /// <summary>
        /// Performs the element post-children custom paint. Overriden to paint the status
        /// of this category header's group (if it has one) in the top-right corner of the header.
        /// </summary>
        /// <param name="visitor"></param>
        protected override void OnPostPaint(NPaintVisitor visitor)
        {
            base.OnPostPaint(visitor);

            if (String.IsNullOrEmpty(m_Status))
            {
                return;
            }

            // Determine the text bounds
            NRectangle bounds     = GetContentEdge();
            NSize      textSize   = Font.MeasureString(((NLabel)Box2).Text);
            NRectangle textBounds = NRectangle.FromCenterAndSize(bounds.Center, textSize.Width, textSize.Height);

            textBounds.X += Box1.Width / 2;

            // Calculate a rectangle for the status text located to the right of the text rectangle
            textSize = StatusFont.MeasureString(m_Status, OwnerDocument);
            NRectangle textRect = new NRectangle(textBounds.Right + StatusLeftPadding, textBounds.Top,
                                                 textSize.Width + StatusRightPadding, textSize.Height);

            // Paint the text background
            NExamplesHomePage homePage = (NExamplesHomePage)GetFirstAncestor(NExamplesHomePage.NExamplesHomePageSchema);
            NColor            color    = homePage.GetStatusColor(m_Status);

            visitor.SetFill(color);
            visitor.PaintRectangle(textRect);

            // Paint the text
            visitor.SetFill(NColor.White);
            visitor.SetFont(StatusFont);

            NPoint location = textRect.Location;
            NPaintTextPointSettings settings = new NPaintTextPointSettings();

            visitor.PaintString(location, m_Status, ref settings);
        }