/// <summary> /// Link GetterSetter to string name /// </summary> /// <returns>Registration Success. False means the propName is already registered.</returns> public static bool RegisterGetterSetter(string propName, GetterSetter value) { if (GetterSetterHash.ContainsKey(propName)) { Debug.WriteLine(typeof(AnimationTypes) + " [WARN] Can't Register GetterSetter, key already exists for: " + propName); return(false); } GetterSetterHash[propName] = value; return(true); }
/// <summary> /// Links Type to GetterSetter. /// </summary> /// <returns>Registration Success. False means the propType is already registered.</returns> public static bool RegisterGetterSetterForType(Type propType, GetterSetter getterSetter) { if (GetterSettersByType.ContainsKey(propType)) { Debug.WriteLine(typeof(AnimationTypes) + " [WARN] Can't Register Property, key already exists for: " + propType); return(false); } GetterSettersByType[propType] = getterSetter; return(true); }
/// <summary> /// Links DependencyProperty to GetterSetter. /// </summary> /// <returns>Registration Success. False means the prop is already registered.</returns> public static bool RegisterDependencyPropertyForGetterSetter(DependencyProperty prop, GetterSetter getterSetter) { if (GetterSettersByDependencyProperty.ContainsKey(prop)) { Debug.WriteLine(typeof(AnimationTypes) + " [WARN] Can't Register Property, key already exists for: " + prop); return(false); } GetterSettersByDependencyProperty[prop] = getterSetter; return(true); }
/// <summary> /// Link GetterSetter to string name /// </summary> /// <returns>Registration Success. False means the propName is already registered.</returns> public static bool RegisterGetterSetter(string propName, GetterSetter value) { if (GetterSetterHash.ContainsKey(propName)) { Debug.WriteLine(typeof(AnimationTypes) + " [WARN] Can't Register GetterSetter, key already exists for: " + propName); return false; } GetterSetterHash[propName] = value; return true; }
/// <summary> /// Links Type to GetterSetter. /// </summary> /// <returns>Registration Success. False means the propType is already registered.</returns> public static bool RegisterGetterSetterForType(Type propType, GetterSetter getterSetter) { if (GetterSettersByType.ContainsKey(propType)) { Debug.WriteLine(typeof(AnimationTypes) + " [WARN] Can't Register Property, key already exists for: " + propType); return false; } GetterSettersByType[propType] = getterSetter; return true; }
/// <summary> /// Links DependencyProperty to GetterSetter. /// </summary> /// <returns>Registration Success. False means the prop is already registered.</returns> public static bool RegisterDependencyPropertyForGetterSetter(DependencyProperty prop, GetterSetter getterSetter) { if (GetterSettersByDependencyProperty.ContainsKey(prop)) { Debug.WriteLine(typeof(AnimationTypes) + " [WARN] Can't Register Property, key already exists for: " + prop); return false; } GetterSettersByDependencyProperty[prop] = getterSetter; return true; }
/** * public static EaseObject AddEase(object obj, object props, object endValues, GetterSetter gettersGetters, double time, PercentHandler ease, double delay) * { * throw new NotImplementedException(); * return new EaseObject(time, ease, delay); * } #region OVERLOADS #endregion */ #endregion #endregion #region VALIDATION - GETTER SETTER DATA public static GetterSetterData ValidatePropAndValue(object obj, object prop, object endValue) { GetterSetterData g = null; GetterSetter gs = null; if (prop as DependencyProperty != null) { if (AnimationTypes.GetterSettersByDependencyProperty.ContainsKey(prop as DependencyProperty)) { gs = AnimationTypes.GetterSettersByDependencyProperty[prop as DependencyProperty]; } else { try { var valueType = endValue.GetType(); if (AnimationTypes.GetterSettersByType.ContainsKey(valueType)) { gs = AnimationTypes.GetterSettersByType[valueType]; } } catch (Exception error) { Debug.WriteLine("[ERROR] - " + error); #if DEBUG throw; #endif } } g = new GetterSetterData { Name = GetName(prop), Getter = gs != null ? gs.Getter : AnimationTypes.GetDoubleDependencyPropValue, Setter = gs != null ? gs.Setter : AnimationTypes.SetDoubleDependencyPropValue, Prop = prop, ValueStart = endValue is int?(double)((int)endValue) : endValue, }; g.ValueEnd = g.ValueStart; } else if (prop as string != null) { var propStr = prop as string; if (AnimationTypes.Shortcuts.ContainsKey(propStr)) { // SHORTCUT if (AnimationTypes.Shortcuts[propStr] as DependencyProperty != null) { var dp = AnimationTypes.Shortcuts[propStr] as DependencyProperty; if (dp != null) { if (AnimationTypes.GetterSettersByDependencyProperty.ContainsKey(dp)) { gs = AnimationTypes.GetterSettersByDependencyProperty[dp]; } } } g = new GetterSetterData { Name = propStr, Getter = gs != null ? gs.Getter : AnimationTypes.GetDoubleDependencyPropValue, Setter = gs != null ? gs.Setter : AnimationTypes.SetDoubleDependencyPropValue, Prop = AnimationTypes.Shortcuts[propStr], ValueStart = endValue is int?(double)((int)endValue) : endValue }; g.ValueEnd = g.ValueStart; } else if (AnimationTypes.GetterSetterHash.ContainsKey(propStr)) { // GETTER / SETTER g = new GetterSetterData { Name = propStr, Getter = AnimationTypes.GetterSetterHash[propStr].Getter, Setter = AnimationTypes.GetterSetterHash[propStr].Setter, Prop = propStr, ValueStart = endValue is int?(double)((int)endValue) : endValue }; g.ValueEnd = g.ValueStart; } else { // SIMPLE DEPENDENCY PROPERTY - FROM STRING if (AnimationTypes.Shortcuts.ContainsKey(propStr) && AnimationTypes.Shortcuts[propStr] as DependencyProperty != null) { var dp = AnimationTypes.Shortcuts[propStr] as DependencyProperty; if (dp != null) { if (AnimationTypes.GetterSettersByDependencyProperty.ContainsKey(dp)) { gs = AnimationTypes.GetterSettersByDependencyProperty[dp]; g = new GetterSetterData { Name = GetName(prop), Getter = gs != null ? gs.Getter : AnimationTypes.GetDoubleDependencyPropValue, Setter = gs != null ? gs.Setter : AnimationTypes.SetDoubleDependencyPropValue, Prop = dp, ValueStart = endValue is int?(double)((int)endValue) : endValue }; g.ValueEnd = g.ValueStart; return(g); } } } if (gs == null) { throw new Exception("String \"" + prop + "\" is not registered with ArtefactAnimator and therefore cannot be animated. EndValue=" + endValue); } } } return(g); }