public override void DrawString(string text, MusicFontStyles fontStyle, Primitives.Point location, Primitives.Color color, Model.MusicalSymbol owner)
 {
     using (var paint = GetPaint(color, fontStyle))
     {
         Canvas.DrawText(text, (float)location.X, (float)location.Y, paint);
     }
 }
        protected Primitives.Point TranslateTextLocation(Primitives.Point location, MusicFontStyles fontStyle)
        {
            double locationX = location.X + TypedSettings.MusicalFontShiftX;
            double locationY = location.Y + TypedSettings.MusicalFontShiftY;

            return(new Primitives.Point(locationX, locationY));
        }
Exemple #3
0
        protected override void DrawPlaybackCursor(PlaybackCursorPosition position, Primitives.Point start, Primitives.Point end)
        {
            if (Settings.RenderingMode != ScoreRenderingModes.Panorama)
            {
                start = start.Translate(CurrentScore.DefaultPageSettings);
                end   = end.Translate(CurrentScore.DefaultPageSettings);
            }

            if (playbackCursor == null)
            {
                playbackCursor = new Line();
                playbackCursor.RenderTransform = playbackCursorTransform;

                playbackCursor.Stroke          = new SolidColorBrush(Colors.Magenta);
                playbackCursor.X1              = 0;
                playbackCursor.X2              = 0;
                playbackCursor.Y1              = 0;
                playbackCursor.Y2              = end.Y - start.Y;
                playbackCursor.Visibility      = BoolToVisibility(position.IsValid);
                playbackCursor.StrokeThickness = 1;
                Canvas.Children.Add(playbackCursor);
            }

            playbackCursorTransform.X = start.X;
            playbackCursorTransform.Y = start.Y;
        }
Exemple #4
0
        public override void DrawString(string text, MusicFontStyles fontStyle, Primitives.Point location, Primitives.Color color, MusicalSymbol owner)
        {
            if (!EnsureProperPage(owner))
            {
                return;
            }
            if (Settings.RenderingMode != ScoreRenderingModes.Panorama)
            {
                location = location.Translate(CurrentScore.DefaultPageSettings);
            }

            TextBlock textBlock = new TextBlock();
            Typeface  typeface  = TypedSettings.GetFont(fontStyle);

            textBlock.FontSize    = TypedSettings.GetFontSize(fontStyle);
            textBlock.FontFamily  = typeface.FontFamily;
            textBlock.FontStretch = typeface.Stretch;
            textBlock.FontStyle   = typeface.Style;
            textBlock.FontWeight  = typeface.Weight;
            textBlock.Text        = text;
            textBlock.Foreground  = new SolidColorBrush(ConvertColor(color));
            textBlock.Visibility  = BoolToVisibility(owner.IsVisible);

            var baseline = typeface.FontFamily.Baseline * textBlock.FontSize;

            Canvas.SetLeft(textBlock, location.X);
            Canvas.SetTop(textBlock, location.Y - baseline);
            Canvas.Children.Add(textBlock);

            OwnershipDictionary.Add(textBlock, owner);
        }
 public override void DrawLine(Primitives.Point startPoint, Primitives.Point endPoint, Primitives.Pen pen, Model.MusicalSymbol owner)
 {
     using (var paint = GetPaint(pen))
     {
         Canvas.DrawLine((float)startPoint.X, (float)startPoint.Y, (float)endPoint.X, (float)endPoint.Y, paint);
     }
 }
Exemple #6
0
 public override void DrawLine(Primitives.Point startPoint, Primitives.Point endPoint, Primitives.Pen pen, Model.MusicalSymbol owner)
 {
     Canvas.AppendLine("context.beginPath();");
     Canvas.AppendLine(string.Format("context.moveTo({0}, {1});", startPoint.X.ToStringInvariant(), startPoint.Y.ToStringInvariant()));
     Canvas.AppendLine(string.Format("context.lineTo({0}, {1});", endPoint.X.ToStringInvariant(), endPoint.Y.ToStringInvariant()));
     Canvas.AppendLine("context.stroke();");
 }
Exemple #7
0
        public override void DrawLine(Primitives.Point startPoint, Primitives.Point endPoint, Primitives.Pen pen, MusicalSymbol owner)
        {
            if (!EnsureProperPage(owner))
            {
                return;
            }
            if (Settings.RenderingMode != ScoreRenderingModes.Panorama)
            {
                startPoint = startPoint.Translate(CurrentScore.DefaultPageSettings);
                endPoint   = endPoint.Translate(CurrentScore.DefaultPageSettings);
            }

            var line = new Line();

            line.Stroke          = new SolidColorBrush(ConvertColor(pen.Color));
            line.X1              = startPoint.X;
            line.X2              = endPoint.X;
            line.Y1              = startPoint.Y;
            line.Y2              = endPoint.Y;
            line.StrokeThickness = pen.Thickness;
            line.Visibility      = BoolToVisibility(owner.IsVisible);
            Canvas.Children.Add(line);

            OwnershipDictionary.Add(line, owner);
        }
        protected Primitives.Point TranslateTextLocation(Primitives.Point location, MusicFontStyles fontStyle)
        {
            double locationX = location.X + TypedSettings.MusicalFontShiftX;
            double locationY;

            switch (fontStyle)
            {
            case MusicFontStyles.MusicFont:
                locationY = location.Y + 8d + TypedSettings.MusicalFontShiftY;
                break;

            case MusicFontStyles.StaffFont:
                locationY = location.Y + 10d + TypedSettings.MusicalFontShiftY;
                break;

            case MusicFontStyles.GraceNoteFont:
                locationY  = location.Y + 10.5d + TypedSettings.MusicalFontShiftY;
                locationX += 0.7d;
                break;

            default:
                locationY = location.Y + TypedSettings.MusicalFontShiftY;
                break;
            }
            return(new Primitives.Point(locationX, locationY));
        }
Exemple #9
0
        public override void BuildVertex(Primitives.Point position, double width, double height, object originalVertex, DotVertex <int> dotVertex)
        {
            var element = this.verticesElements[originalVertex];

            UpdatePosition(element, position.X, position.Y, width, height, canvas);
            Panel.SetZIndex(element, 1);
        }
        public override void DrawBezier(Primitives.Point p1, Primitives.Point p2, Primitives.Point p3, Primitives.Point p4, Primitives.Pen pen, MusicalSymbol owner)
        {
            if (!EnsureProperPage(owner))
            {
                return;
            }
            if (Settings.RenderingMode != ScoreRenderingModes.Panorama)
            {
                p1 = p1.Translate(CurrentScore.DefaultPageSettings);
                p2 = p2.Translate(CurrentScore.DefaultPageSettings);
                p3 = p3.Translate(CurrentScore.DefaultPageSettings);
                p4 = p4.Translate(CurrentScore.DefaultPageSettings);
            }

            var bezierCurve = new BezierCurve();

            bezierCurve.Thickness    = pen.Thickness;
            bezierCurve.Color        = pen.Color;
            bezierCurve.TranslationX = p1.X;
            bezierCurve.TranslationY = p1.Y;
            bezierCurve.X2           = p2.X;
            bezierCurve.Y2           = p2.Y;
            bezierCurve.X3           = p3.X;
            bezierCurve.Y3           = p3.Y;
            bezierCurve.X4           = p4.X;
            bezierCurve.Y4           = p4.Y;

            Canvas.Children.Add(bezierCurve);
            OwnershipDictionary.Add(bezierCurve, owner);
        }
        public override void DrawBezier(Primitives.Point p1, Primitives.Point p2, Primitives.Point p3, Primitives.Point p4, Primitives.Pen pen, MusicalSymbol owner)
        {
            p1 = p1.Translate(CurrentScore.DefaultPageSettings);
            p2 = p2.Translate(CurrentScore.DefaultPageSettings);
            p3 = p3.Translate(CurrentScore.DefaultPageSettings);
            p4 = p4.Translate(CurrentScore.DefaultPageSettings);

            PathGeometry pathGeom = new PathGeometry();
            PathFigure   pf       = new PathFigure();

            pf.StartPoint = new Point(p1.X, p1.Y);
            BezierSegment bezierSegment = new BezierSegment();

            bezierSegment.Point1 = ConvertPoint(p2);
            bezierSegment.Point2 = ConvertPoint(p3);
            bezierSegment.Point3 = ConvertPoint(p4);
            pf.Segments.Add(bezierSegment);
            pathGeom.Figures.Add(pf);

            Path path = new Path();

            path.Stroke          = new SolidColorBrush(ConvertColor(pen.Color));
            path.StrokeThickness = pen.Thickness;
            path.Data            = pathGeom;
            path.Visibility      = BoolToVisibility(owner.IsVisible);
            Windows.UI.Xaml.Controls.Canvas.SetZIndex(path, (int)pen.ZIndex);
            Canvas.Children.Add(path);

            OwnershipDictionary.Add(path, owner);
        }
Exemple #12
0
        private void DrawAxis(string axisName, double axisLength, double currentAngle)
        {
            var startPosition = new Primitives.Point(CanvasWidth / 2, CanvasHeight / 2);
            var endPosition   = new Primitives.Point(startPosition.TranslateByAngle(currentAngle, axisLength).X, startPosition.TranslateByAngle(currentAngle, axisLength).Y);

            DrawAxisLine(startPosition, endPosition);
            DrawAxisLabel(endPosition, currentAngle, axisName);
        }
Exemple #13
0
 public void AddCurve(Primitives.Point point, float radius_x, float radius_y)
 {
     _sink.AddArc(new ArcSegment()
     {
         Point = point,
         Size  = new SharpDX.Size2F(radius_x, radius_y)
     });
 }
Exemple #14
0
 private static bool IsOnBoder(Primitives.Point leftBottom, double width, double height, Point point)
 {
     return
         ((Utils.AreEqual(leftBottom.Y, point.Y) && leftBottom.X <= point.X && point.X <= leftBottom.X + width) ||
          (Utils.AreEqual(leftBottom.X, point.X) && leftBottom.Y <= point.Y && point.Y <= leftBottom.Y + height) ||
          (Utils.AreEqual(leftBottom.Y + height, point.Y) && leftBottom.X <= point.X && point.X <= leftBottom.X + width) ||
          (Utils.AreEqual(leftBottom.X + width, point.X) && leftBottom.Y <= point.Y && point.Y <= leftBottom.Y + height));
 }
Exemple #15
0
        private void CreateLabel(Primitives.Point pos, FrameworkElement label)
        {
            this.canvas.Children.Add(label);
            label.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));
            Point p = TransformCoordinates(pos, canvas);

            Canvas.SetLeft(label, p.X - label.DesiredSize.Width / 2);
            Canvas.SetTop(label, p.Y - label.DesiredSize.Height / 2);
        }
        public override void DrawBezier(Primitives.Point p1, Primitives.Point p2, Primitives.Point p3, Primitives.Point p4, Primitives.Pen pen, MusicalSymbol owner)
        {
            renderingQueue.Enqueue(() => base.DrawBezier(p1, p2, p3, p4, pen, owner));

            if (renderingQueue.Count > BufferSize)
            {
                FlushBuffer();
            }
        }
        public override void DrawString(string text, MusicFontStyles fontStyle, Primitives.Point location, Primitives.Color color, MusicalSymbol owner)
        {
            renderingQueue.Enqueue(() => base.DrawString(text, fontStyle, location, color, owner));

            if (renderingQueue.Count > BufferSize)
            {
                FlushBuffer();
            }
        }
        public override void DrawLine(Primitives.Point startPoint, Primitives.Point endPoint, Primitives.Pen pen, MusicalSymbol owner)
        {
            renderingQueue.Enqueue(() => base.DrawLine(startPoint, endPoint, pen, owner));

            if (renderingQueue.Count > BufferSize)
            {
                FlushBuffer();
            }
        }
Exemple #19
0
        protected override void DrawAxisLabel(Primitives.Point position, double currentAngle, string axisName)
        {
            var textBlock     = new TextBlock();
            var formattedText = new FormattedText(axisName, CultureInfo.InvariantCulture, FlowDirection.LeftToRight, new Typeface(textBlock.FontFamily, textBlock.FontStyle, textBlock.FontWeight, textBlock.FontStretch), textBlock.FontSize, textBlock.Foreground);

            textBlock.Text = axisName;
            Canvas.SetLeft(textBlock, position.X - formattedText.Width / 2 + Control.LabelToAxisDistance * Math.Sin(currentAngle));
            Canvas.SetTop(textBlock, position.Y - formattedText.Height / 2 + Control.LabelToAxisDistance * Math.Cos(currentAngle));
            Canvas.Children.Add(textBlock);
        }
Exemple #20
0
        public override void DrawString(string text, MusicFontStyles fontStyle, Primitives.Point location, Primitives.Color color, Model.MusicalSymbol owner)
        {
            if (!TypedSettings.Fonts.ContainsKey(fontStyle))
            {
                return;                                                            //Nie ma takiego fontu zdefiniowanego. Nie rysuj.
            }
            location = TranslateTextLocation(location, fontStyle);

            Canvas.AppendLine(string.Format("context.font = '{0}pt {1}';", TypedSettings.Fonts[fontStyle].Size.ToStringInvariant(), TypedSettings.Fonts[fontStyle].Name));
            Canvas.AppendLine(string.Format("context.fillText('{0}', {1}, {2});", text, location.X.ToStringInvariant(), location.Y.ToStringInvariant()));
        }
Exemple #21
0
        private void _skiaView_Touch(object sender, SKTouchEventArgs e)
        {
            var scaleDpi = new Primitives.Point(_skiaView.CanvasSize.Width / _skiaView.Width, _skiaView.CanvasSize.Height / _skiaView.Height);

            var location = new Primitives.Point(e.Location.X / scaleDpi.X, e.Location.Y / scaleDpi.Y);

            if (e.ActionType == SKTouchAction.Pressed)
            {
                _capturedMouseEvents = null;
                var context = new Framework.Input.MouseEventsContext((Framework.Input.MouseButtons)e.MouseButton, 1, e.WheelDelta);
                _root.HandleMouseMove(location.X, location.Y, context);
                _root.HandleMouseDown(location.X, location.Y, context);
                //_root.HandleMouseUp(location.X, location.Y, context);
                _capturedMouseEvents = context.CaptureTo;
                e.Handled            = true;
            }
            else if (e.ActionType == SKTouchAction.Moved)
            {
                var context = new Framework.Input.MouseEventsContext((Framework.Input.MouseButtons)e.MouseButton, 1, e.WheelDelta)
                {
                    CaptureTo = _capturedMouseEvents
                };

                if (_capturedMouseEvents != null)
                {
                    _capturedMouseEvents.HandleMouseMove(location.X, location.Y, context);
                }
                else
                {
                    _root.HandleMouseMove(location.X, location.Y, context);
                }

                _capturedMouseEvents = context.CaptureTo;
                e.Handled            = true;
            }
            else if (e.ActionType == SKTouchAction.Released)
            {
                var context = new Framework.Input.MouseEventsContext((Framework.Input.MouseButtons)e.MouseButton, 1, e.WheelDelta)
                {
                    CaptureTo = _capturedMouseEvents
                };

                if (_capturedMouseEvents != null)
                {
                    _capturedMouseEvents.HandleMouseUp(location.X, location.Y, context);
                    _capturedMouseEvents = null;
                }
                else
                {
                    _root.HandleMouseUp(location.X, location.Y, new Framework.Input.MouseEventsContext((Framework.Input.MouseButtons)e.MouseButton, 1, e.WheelDelta));
                }
                e.Handled = true;
            }
        }
Exemple #22
0
 public override void DrawBezier(Primitives.Point p1, Primitives.Point p2, Primitives.Point p3, Primitives.Point p4, Primitives.Pen pen, Model.MusicalSymbol owner)
 {
     Canvas.AppendLine("context.beginPath();");
     Canvas.AppendLine(string.Format("context.moveTo({0}, {1});", p1.X.ToStringInvariant(), p1.Y.ToStringInvariant()));
     Canvas.AppendLine(string.Format("context.bezierCurveTo({0},{1},{2},{3},{4},{5});",
                                     p2.X.ToStringInvariant(),
                                     p2.Y.ToStringInvariant(),
                                     p3.X.ToStringInvariant(),
                                     p3.Y.ToStringInvariant(),
                                     p4.X.ToStringInvariant(),
                                     p4.Y.ToStringInvariant()));
     Canvas.AppendLine("context.stroke();");
 }
        protected ModalDesktop(int width, int height)
        {
            _suspended = true;
            _mWidth = width;
            _mHeight = height;
            _mX = (DesktopManager.ScreenWidth - _mWidth) / 2;
            _mY = (DesktopManager.ScreenHeight - _mHeight) / 2;

            _padding = new Primitives.Point(_mX, _mY);

            _prevDesktop = null;
            _waitObject = new AutoResetEvent(false);
        }
        protected ModalDesktop(int width, int height)
        {
            _suspended = true;
            _mWidth    = width;
            _mHeight   = height;
            _mX        = (DesktopManager.ScreenWidth - _mWidth) / 2;
            _mY        = (DesktopManager.ScreenHeight - _mHeight) / 2;

            _padding = new Primitives.Point(_mX, _mY);

            _prevDesktop = null;
            _waitObject  = new AutoResetEvent(false);
        }
Exemple #25
0
        public override void DrawLine(Primitives.Point startPoint, Primitives.Point endPoint, Primitives.Pen pen, MusicalSymbol owner)
        {
            if (!EnsureProperPage(owner))
            {
                return;
            }
            if (Settings.RenderingMode != ScoreRenderingModes.Panorama)
            {
                startPoint = startPoint.Translate(CurrentScore.DefaultPageSettings);
                endPoint   = endPoint.Translate(CurrentScore.DefaultPageSettings);
            }

            Canvas.DrawLine(ConvertPen(pen), new PointF((float)startPoint.X, (float)startPoint.Y), new PointF((float)endPoint.X, (float)endPoint.Y));
        }
Exemple #26
0
        protected override void DrawWebLine(Primitives.Point p1, Primitives.Point p2)
        {
            var webLine = new Line
            {
                Stroke          = Control.WeblineStroke,
                StrokeThickness = Control.WeblineStrokeThickness,
                StrokeDashArray = new DoubleCollection(new double[] { 4, 4 }),
                X1 = p1.X,
                Y1 = p1.Y,
                X2 = p2.X,
                Y2 = p2.Y
            };

            Canvas.Children.Add(webLine);
        }
Exemple #27
0
        public override void DrawBezier(Primitives.Point p1, Primitives.Point p2, Primitives.Point p3, Primitives.Point p4, Primitives.Pen pen, MusicalSymbol owner)
        {
            if (!EnsureProperPage(owner))
            {
                return;
            }
            if (Settings.RenderingMode != ScoreRenderingModes.Panorama)
            {
                p1 = p1.Translate(CurrentScore.DefaultPageSettings);
                p2 = p2.Translate(CurrentScore.DefaultPageSettings);
                p3 = p3.Translate(CurrentScore.DefaultPageSettings);
                p4 = p4.Translate(CurrentScore.DefaultPageSettings);
            }

            Canvas.DrawBezier(ConvertPen(pen), new PointF((float)p1.X, (float)p1.Y), new PointF((float)p2.X, (float)p2.Y), new PointF((float)p3.X, (float)p3.Y), new PointF((float)p4.X, (float)p4.Y));
        }
Exemple #28
0
        public override void DrawString(string text, MusicFontStyles fontStyle, Primitives.Point location, Primitives.Color color, MusicalSymbol owner)
        {
            TextBlock textBlock = new TextBlock();

            textBlock.FontSize          = Fonts.GetSize(fontStyle);
            textBlock.FontFamily        = Fonts.Get(fontStyle);
            textBlock.Text              = text;
            textBlock.Foreground        = new SolidColorBrush(ConvertColor(color));
            textBlock.UseLayoutRounding = true;
            textBlock.Visibility        = BoolToVisibility(owner.IsVisible);

            System.Windows.Controls.Canvas.SetLeft(textBlock, location.X + 3d);
            System.Windows.Controls.Canvas.SetTop(textBlock, location.Y);
            Canvas.Children.Add(textBlock);

            OwnershipDictionary.Add(textBlock, owner);
        }
Exemple #29
0
        private List <Tuple <double, double> > CalculateTicks(string axis, double currentAngle, double lineLength, bool alsoDraw)
        {
            var ticks = new List <Tuple <double, double> >();

            for (int i = 0; i < NumberOfTicks; i++)
            {
                var tickOffset   = (lineLength / NumberOfTicks) * (i + 1);
                var tickLocation = new Primitives.Point(CanvasWidth / 2, CanvasHeight / 2).TranslateByAngle(currentAngle, tickOffset);
                ticks.Add(new Tuple <double, double>(tickLocation.X + 0.5, tickLocation.Y + 0.5));

                if (alsoDraw)
                {
                    DrawTick(tickLocation.X, tickLocation.Y, tickLocation.TranslateByAngle(currentAngle, 1).X, tickLocation.TranslateByAngle(currentAngle, 1).Y);
                }
            }
            return(ticks);
        }
Exemple #30
0
        public override void DrawString(string text, MusicFontStyles fontStyle, Primitives.Point location, Primitives.Color color, MusicalSymbol owner)
        {
            if (!EnsureProperPage(owner))
            {
                return;
            }
            if (Settings.RenderingMode != ScoreRenderingModes.Panorama)
            {
                location = location.Translate(CurrentScore.DefaultPageSettings);
            }

            var font = TypedSettings.GetFont(fontStyle);
            var baselineDesignUnits = font.FontFamily.GetCellAscent(font.Style);
            var baselinePixels      = (baselineDesignUnits * font.Size) / font.FontFamily.GetEmHeight(font.Style);

            Canvas.DrawString(text, font, new SolidBrush(ConvertColor(color)), new PointF((float)location.X - 4, (float)location.Y - baselinePixels));
        }
Exemple #31
0
        protected override void DrawAxisLine(Primitives.Point start, Primitives.Point end)
        {
            var line = new Line();

            line.SetBinding(Shape.StrokeProperty, new Binding(nameof(RadialChart.AxisStroke))
            {
                Source = Control
            });
            line.SetBinding(Shape.StrokeThicknessProperty, new Binding(nameof(RadialChart.AxisStrokeThickness))
            {
                Source = Control
            });
            line.X1 = start.X;
            line.Y1 = start.Y;
            line.X2 = end.X;
            line.Y2 = end.Y;
            Canvas.Children.Add(line);
        }