mirror of
https://github.com/ZuneDev/MicrosoftIris.git
synced 2026-07-27 13:13:29 -07:00
Add project files.
This commit is contained in:
@@ -0,0 +1,174 @@
|
||||
// Decompiled with JetBrains decompiler
|
||||
// Type: Microsoft.Iris.Animations.TransformByAttributeAnimation
|
||||
// Assembly: UIX, Version=4.8.0.0, Culture=neutral, PublicKeyToken=ddd0da4d3e678217
|
||||
// MVID: A56C6C9D-B7F6-46A9-8BDE-B3D9B8D60B11
|
||||
// Assembly location: C:\Program Files\Zune\UIX.dll
|
||||
|
||||
using Microsoft.Iris.UI;
|
||||
using System;
|
||||
|
||||
namespace Microsoft.Iris.Animations
|
||||
{
|
||||
internal class TransformByAttributeAnimation : TransformAnimation
|
||||
{
|
||||
private TransformAttribute _attrib;
|
||||
private float _maxTimeScaleValue;
|
||||
private float _maxTimeOffsetValue;
|
||||
private float _maxMagnitudeValue;
|
||||
private float _overrideValue;
|
||||
private bool _haveOverrideFlag;
|
||||
private ValueTransformer _valueTransformer;
|
||||
|
||||
public TransformByAttributeAnimation()
|
||||
{
|
||||
Delay = 0.0f;
|
||||
Magnitude = 0.0f;
|
||||
TimeScale = 0.0f;
|
||||
Attribute = TransformAttribute.Index;
|
||||
}
|
||||
|
||||
public TransformAttribute Attribute
|
||||
{
|
||||
get => _attrib;
|
||||
set => _attrib = value;
|
||||
}
|
||||
|
||||
public float MaxTimeScale
|
||||
{
|
||||
get => _maxTimeScaleValue;
|
||||
set
|
||||
{
|
||||
if (_maxTimeScaleValue == (double)value)
|
||||
return;
|
||||
_maxTimeScaleValue = value;
|
||||
ClearCache();
|
||||
}
|
||||
}
|
||||
|
||||
public float MaxDelay
|
||||
{
|
||||
get => _maxTimeOffsetValue;
|
||||
set
|
||||
{
|
||||
if (_maxTimeOffsetValue == (double)value)
|
||||
return;
|
||||
_maxTimeOffsetValue = value;
|
||||
ClearCache();
|
||||
}
|
||||
}
|
||||
|
||||
public float MaxMagnitude
|
||||
{
|
||||
get => _maxMagnitudeValue;
|
||||
set
|
||||
{
|
||||
if (_maxMagnitudeValue == (double)value)
|
||||
return;
|
||||
_maxMagnitudeValue = value;
|
||||
ClearCache();
|
||||
}
|
||||
}
|
||||
|
||||
public float Override
|
||||
{
|
||||
get => _overrideValue;
|
||||
set
|
||||
{
|
||||
if (_haveOverrideFlag && _overrideValue == (double)value)
|
||||
return;
|
||||
_overrideValue = value;
|
||||
_haveOverrideFlag = true;
|
||||
ClearCache();
|
||||
}
|
||||
}
|
||||
|
||||
public ValueTransformer ValueTransformer
|
||||
{
|
||||
get => _valueTransformer;
|
||||
set
|
||||
{
|
||||
if (_valueTransformer == value)
|
||||
return;
|
||||
_valueTransformer = value;
|
||||
ClearCache();
|
||||
}
|
||||
}
|
||||
|
||||
protected override float GetTimeScale(ref AnimationArgs args)
|
||||
{
|
||||
float timeScale = base.GetTimeScale(ref args);
|
||||
if (timeScale == 0.0)
|
||||
return 1f;
|
||||
float val1 = 1f + GetValue(ref args) * timeScale;
|
||||
if (_maxTimeScaleValue != 0.0)
|
||||
val1 = Math.Min(val1, _maxTimeScaleValue);
|
||||
if (val1 < 0.0)
|
||||
val1 = 0.0f;
|
||||
return val1;
|
||||
}
|
||||
|
||||
protected override float GetDelayTime(ref AnimationArgs args)
|
||||
{
|
||||
float delayTime = base.GetDelayTime(ref args);
|
||||
if (delayTime == 0.0)
|
||||
return 0.0f;
|
||||
float val1 = GetValue(ref args) * delayTime;
|
||||
if (_maxTimeOffsetValue != 0.0)
|
||||
val1 = Math.Min(val1, _maxTimeOffsetValue);
|
||||
if (val1 < 0.0)
|
||||
val1 = 0.0f;
|
||||
return val1;
|
||||
}
|
||||
|
||||
protected override float GetMagnitude(ref AnimationArgs args)
|
||||
{
|
||||
float magnitude = base.GetMagnitude(ref args);
|
||||
if (magnitude == 0.0)
|
||||
return 1f;
|
||||
float val1 = 1f + GetValue(ref args) * magnitude;
|
||||
if (_maxMagnitudeValue != 0.0)
|
||||
val1 = Math.Min(val1, _maxMagnitudeValue);
|
||||
return val1;
|
||||
}
|
||||
|
||||
private float GetValue(ref AnimationArgs args)
|
||||
{
|
||||
float num = GetValueWorker(ref args);
|
||||
if (_valueTransformer != null)
|
||||
num = _valueTransformer.Transform(num);
|
||||
return num;
|
||||
}
|
||||
|
||||
protected virtual float GetValueWorker(ref AnimationArgs args)
|
||||
{
|
||||
if (_haveOverrideFlag)
|
||||
return _overrideValue;
|
||||
switch (_attrib)
|
||||
{
|
||||
case TransformAttribute.Index:
|
||||
return GetIndex(ref args);
|
||||
case TransformAttribute.Width:
|
||||
return args.NewSize.X;
|
||||
case TransformAttribute.Height:
|
||||
return args.NewSize.Y;
|
||||
case TransformAttribute.X:
|
||||
return args.NewPosition.X;
|
||||
case TransformAttribute.Y:
|
||||
return args.NewPosition.Y;
|
||||
default:
|
||||
return 0.0f;
|
||||
}
|
||||
}
|
||||
|
||||
private int GetIndex(ref AnimationArgs args)
|
||||
{
|
||||
int num = 0;
|
||||
ViewItem viewItem = args.ViewItem;
|
||||
if (viewItem != null && viewItem.Parent != null)
|
||||
num = viewItem.Parent.Children.IndexOf(viewItem);
|
||||
return num;
|
||||
}
|
||||
|
||||
public override bool CanCache => false;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user