コード例 #1
0
 /// <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);
 }
コード例 #2
0
 /// <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);
 }
コード例 #3
0
 /// <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);
 }
コード例 #4
0
 /// <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;
 }
コード例 #5
0
 /// <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;
 }
コード例 #6
0
 /// <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;
 }
コード例 #7
0
        /**
         * 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);
        }