private void buttonEvenlySpaceMarks_Click(object sender, EventArgs e)
{
if (listViewMarks.SelectedItems.Count < 3) {
MessageBox.Show("Select at least three marks to space evenly.", "Need more marks");
return;
}
List<TimeSpan> spacingTimes = new List<TimeSpan>();
List<TimeSpan> newTimes = new List<TimeSpan>();
foreach (ListViewItem item in listViewMarks.Items) {
if (item.Selected)
spacingTimes.Add((TimeSpan)item.Tag);
else
newTimes.Add((TimeSpan)item.Tag);
}
spacingTimes.Sort();
TimeSpan totalInterval = spacingTimes.Last() - spacingTimes.First();
TimeSpan integralInterval = TimeSpan.FromTicks(totalInterval.Ticks / (spacingTimes.Count - 1));
for (int i = 0; i < spacingTimes.Count; i++) {
TimeSpan newTime = TimeSpan.FromTicks(spacingTimes.First().Ticks + (i * integralInterval.Ticks));
if (!newTimes.Contains(newTime))
newTimes.Add(newTime);
}
newTimes.Sort();
_displayedCollection.Marks = newTimes;
PopulateMarkListFromMarkCollection(_displayedCollection);
}