internal TimelinePosition DetermineItemPosition(TimelineItem item) { if (Mode == TimelineMode.Left) { return(TimelinePosition.Left); } if (Mode == TimelineMode.Right) { return(TimelinePosition.Right); } if (currentItemPosition == null) { currentItemPosition = TimelinePosition.Left; return(TimelinePosition.Left); } if (currentItemPosition == TimelinePosition.Left) { currentItemPosition = TimelinePosition.Right; return(TimelinePosition.Right); } if (currentItemPosition == TimelinePosition.Right) { currentItemPosition = TimelinePosition.Left; return(TimelinePosition.Left); } return(item.Position); }
private void ResetPositions() { currentItemPosition = null; foreach (var item in items) { item.UpdatePosition(); } previousMode = Mode; }
internal void UpdatePosition() { if (Position == null) { position = Parent.DetermineItemPosition(this); } else { position = Position; } }