public override void DrawArc(Rectangle rect, double startAngle, double sweepAngle, Pen pen, MusicalSymbol owner) { var entry = new ScoreRenderingTestEntry(); entry.Location = GetTopLeftPoint(new Point(rect.X, rect.Y), new Point(rect.X + rect.Width, rect.Y + rect.Height)); entry.Size = GetSize(new Point(rect.X, rect.Y), new Point(rect.X + rect.Width, rect.Y + rect.Height)); SetIndexes(entry, owner); Canvas.Put(entry); }
public override void DrawString(string text, MusicFontStyles fontStyle, Point location, Color color, MusicalSymbol owner) { var entry = new ScoreRenderingTestEntry(); entry.Location = location; entry.Text = text; entry.Type = owner.GetType().Name; SetIndexes(entry, owner); Canvas.Put(entry); }
public override void DrawLine(Point startPoint, Point endPoint, Pen pen, MusicalSymbol owner) { var entry = new ScoreRenderingTestEntry(); entry.Location = GetTopLeftPoint(startPoint, endPoint); entry.Size = GetSize(startPoint, endPoint); entry.Type = owner.GetType().Name; SetIndexes(entry, owner); Canvas.Put(entry); }
public override void DrawBezier(Point p1, Point p2, Point p3, Point p4, Pen pen, MusicalSymbol owner) { var entry = new ScoreRenderingTestEntry(); entry.Location = GetTopLeftPoint(p1, p2, p3, p4); entry.Size = GetSize(p1, p2, p3, p4); entry.Type = owner.GetType().Name; SetIndexes(entry, owner); Canvas.Put(entry); }
private void SetIndexes(ScoreRenderingTestEntry entry, MusicalSymbol symbol) { entry.Type = symbol.GetType().Name; var matchingStaff = CurrentScore.Staves.FirstOrDefault(s => s.Elements.Contains(symbol)); if (matchingStaff == null) { return; } entry.StaffNo = CurrentScore.Staves.IndexOf(matchingStaff) + 1; entry.StaffIndex = CurrentScore.Staves[entry.StaffNo - 1].Elements.IndexOf(symbol); }
public void Load(string fileName) { var document = XDocument.Load(Path.Combine(dataPath, fileName)); elements.Clear(); foreach (var resultNode in document.Descendants().Where(d => d.Name == "Result")) { var entry = new ScoreRenderingTestEntry(); var x = resultNode.Elements().FirstOrDefault(d => d.Name == "LocationX"); var y = resultNode.Elements().FirstOrDefault(d => d.Name == "LocationY"); if (x != null && y != null) { entry.Location = new Point(double.Parse(x.Value, CultureInfo.InvariantCulture), double.Parse(y.Value, CultureInfo.InvariantCulture)); } x = resultNode.Elements().FirstOrDefault(d => d.Name == "SizeX"); y = resultNode.Elements().FirstOrDefault(d => d.Name == "SizeY"); if (x != null && y != null) { entry.Size = new Point(double.Parse(x.Value, CultureInfo.InvariantCulture), double.Parse(y.Value, CultureInfo.InvariantCulture)); } x = resultNode.Elements().FirstOrDefault(d => d.Name == "Type"); if (x != null) { entry.Type = x.Value; } x = resultNode.Elements().FirstOrDefault(d => d.Name == "StaffNo"); if (x != null) { entry.StaffNo = int.Parse(x.Value); } x = resultNode.Elements().FirstOrDefault(d => d.Name == "StaffIndex"); if (x != null) { entry.StaffIndex = int.Parse(x.Value); } x = resultNode.Elements().FirstOrDefault(d => d.Name == "Text"); if (x != null) { entry.Text = x.Value; } elements.Add(entry); } }
public void Put(ScoreRenderingTestEntry entry) { elements.Add(entry); }