/// <summary> /// Adds an animation to the context. /// </summary> /// <typeparam name="For">The type of the object.</typeparam> /// <typeparam name="T">The type of the parameter.</typeparam> /// <param name="obj">The object.</param> /// <param name="to">The to value.</param> /// <param name="propName">The name of the property to animate.</param> /// <param name="requiresMainThread">Does the property have to be set on the main thread?</param> public void AddAnimation <For, T>(For obj, T to, string propName, bool requiresMainThread) { DescriptorKey <For, T> key = new DescriptorKey <For, T>(obj, propName); Descriptor <For, T> desc = new Descriptor <For, T>(obj, to); desc.RequiresMainThread = requiresMainThread; this.AddDescriptor <For, T>(key, desc); }
/// <summary> /// Adds an animation descriptor. /// </summary> /// <typeparam name="For">The type of the object that we are animating.</typeparam> /// <typeparam name="T">The type of the property that we are animating.</typeparam> /// <param name="key">The descriptor key.</param> /// <param name="desc">The animation descriptor.</param> /// <exception cref="ArgumentNullException">Thrown if either |key| or |desc| are null.</exception> internal void AddDescriptor <For, T>(DescriptorKey <For, T> key, Descriptor <For, T> desc) { if (key == null) { throw new ArgumentNullException("key"); } else if (desc == null) { throw new ArgumentNullException("desc"); } desc.Name = key.PropertyName; lock (this.m_descriptors) { this.m_descriptors[key] = desc; } }