public double ArrangeAttributes(IAttributeItemVisual attributeVisual, Dictionary <string, double> staffPositions, double currentPosition = 0.0) { double width = currentPosition; LayoutStyle.MeasureLayoutStyle attributesLayout = ViewModel.ViewModelLocator.Instance.Main.CurrentLayout.LayoutStyle.MeasureStyle; switch (attributeVisual.AttributeType) { case AttributeType.clef: ClefContainerItem clef = attributeVisual as ClefContainerItem; width += clef.ItemLeftMargin; SetLeft(clef.ItemCanvas, width); width += clef.ItemWidth + clef.ItemRightMargin; break; case AttributeType.key: KeyContainerItem key = attributeVisual as KeyContainerItem; width += key.ItemLeftMargin; SetLeft(key.ItemCanvas, width); width += key.ItemWidth + (key.ItemWidth != 0 ? key.ItemRightMargin: 0); break; case AttributeType.time: TimeSignatureContainerItem timeSig = attributeVisual as TimeSignatureContainerItem; width += timeSig.ItemLeftMargin; SetLeft(timeSig.ItemCanvas, width); width += timeSig.ItemWidth + timeSig.ItemRightMargin; break; default: throw new ArgumentException("invalid argument value ", attributeVisual.AttributeType.ToString()); } return(width); }
public void AppendAttributeWithStaffNumber(IAttributeItemVisual attributeItem, int cursorPosition, string staffNumber) { Tuple <int, IMeasureItemVisual> attributesVisual = new Tuple <int, IMeasureItemVisual>(cursorPosition, attributeItem); AddAttribute(attributeItem); itemsWithPosition.AddLast(attributesVisual); itemsPositionsPerStaff[staffNumber].Add(attributesVisual); }
public void AddAttribute(IAttributeItemVisual attributeVisual)//temp { measureItemsVisuals.AddLast(attributeVisual); Children.Add(attributeVisual.ItemCanvas as Canvas); }