private void UpdateElement(AnimationElement element) { // First check if in this tick we can update counters element.CurrentStep--; if (element.CurrentStep > 0) { return; } // And fill again step count element.CurrentStep = element.Steps; // Then waits for delay time if (element.Delay > 0) { element.Delay--; return; } // Checks for duration animation if (element.Duration == -1 || element.Duration > 0) { element.Duration = (element.Duration != -1) ? element.Duration - 1 : -1; element.Update(); } }
public void Add(Control parent, AnimationElement element) { lock (syncRoot) { if (!elements.ContainsKey(parent)) { elements.Add(parent, new List <AnimationElement>()); parent.Paint += HandleControlPaint; } elements[parent].Add(element); } }
public void Remove(Control parent, AnimationElement element) { lock (syncRoot) { if (!elements.ContainsKey(parent)) { throw new ArgumentException(); } elements[parent].Remove(element); if (elements[parent].Count == 0) { parent.Paint -= HandleControlPaint; elements.Remove(parent); } } }
public bool Contains(Control parent, AnimationElement element) { lock (syncRoot) return(elements.ContainsKey(parent) && elements[parent].Contains(element)); }
private bool IsEnabled(AnimationElement element) { return((element.Delay == 0) && (element.Duration == -1 || element.Duration > 0)); }