232 lines
9.8 KiB
C#
232 lines
9.8 KiB
C#
using System.Windows;
|
|
using System.Windows.Controls;
|
|
|
|
namespace Sicentury.Core.UserControls
|
|
{
|
|
[TemplateVisualState(Name = "Large", GroupName = "SizeStates")]
|
|
[TemplateVisualState(Name = "Small", GroupName = "SizeStates")]
|
|
[TemplateVisualState(Name = "Inactive", GroupName = "ActiveStates")]
|
|
[TemplateVisualState(Name = "Active", GroupName = "ActiveStates")]
|
|
public class CirclePointRingLoading : Control
|
|
{
|
|
// Token: 0x17000001 RID: 1
|
|
// (get) Token: 0x06000001 RID: 1 RVA: 0x00002050 File Offset: 0x00000250
|
|
// (set) Token: 0x06000002 RID: 2 RVA: 0x00002072 File Offset: 0x00000272
|
|
public double BindableWidth
|
|
{
|
|
get => (double)base.GetValue(CirclePointRingLoading.BindableWidthProperty);
|
|
private set => base.SetValue(CirclePointRingLoading.BindableWidthProperty, value);
|
|
}
|
|
|
|
// Token: 0x06000003 RID: 3 RVA: 0x00002088 File Offset: 0x00000288
|
|
private static void BindableWidthCallback(DependencyObject dependencyObject,
|
|
DependencyPropertyChangedEventArgs e)
|
|
{
|
|
var circlePointRingLoading = dependencyObject as CirclePointRingLoading;
|
|
var flag = circlePointRingLoading == null;
|
|
if (!flag)
|
|
{
|
|
circlePointRingLoading.SetEllipseDiameter((double)e.NewValue);
|
|
circlePointRingLoading.SetEllipseOffset((double)e.NewValue);
|
|
circlePointRingLoading.SetMaxSideLength((double)e.NewValue);
|
|
}
|
|
}
|
|
|
|
// Token: 0x06000004 RID: 4 RVA: 0x000020E0 File Offset: 0x000002E0
|
|
private void SetEllipseDiameter(double width)
|
|
{
|
|
this.EllipseDiameter = width / 8.0;
|
|
}
|
|
|
|
// Token: 0x06000005 RID: 5 RVA: 0x000020F5 File Offset: 0x000002F5
|
|
private void SetEllipseOffset(double width)
|
|
{
|
|
this.EllipseOffset = new Thickness(0.0, width / 2.0, 0.0, 0.0);
|
|
}
|
|
|
|
// Token: 0x06000006 RID: 6 RVA: 0x0000212A File Offset: 0x0000032A
|
|
private void SetMaxSideLength(double width)
|
|
{
|
|
this.MaxSideLength = ((width <= 20.0) ? 20.0 : width);
|
|
}
|
|
|
|
// Token: 0x17000002 RID: 2
|
|
// (get) Token: 0x06000007 RID: 7 RVA: 0x0000214C File Offset: 0x0000034C
|
|
// (set) Token: 0x06000008 RID: 8 RVA: 0x0000216E File Offset: 0x0000036E
|
|
public bool IsActive
|
|
{
|
|
get => (bool)base.GetValue(CirclePointRingLoading.IsActiveProperty);
|
|
set => base.SetValue(CirclePointRingLoading.IsActiveProperty, value);
|
|
}
|
|
|
|
// Token: 0x06000009 RID: 9 RVA: 0x00002184 File Offset: 0x00000384
|
|
private static void IsActiveChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e)
|
|
{
|
|
var circlePointRingLoading = sender as CirclePointRingLoading;
|
|
var flag = circlePointRingLoading == null;
|
|
if (!flag)
|
|
{
|
|
circlePointRingLoading.UpdateActiveState();
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600000A RID: 10 RVA: 0x000021AC File Offset: 0x000003AC
|
|
private void UpdateActiveState()
|
|
{
|
|
var isActive = this.IsActive;
|
|
if (isActive)
|
|
{
|
|
VisualStateManager.GoToState(this, this.StateActive, true);
|
|
}
|
|
else
|
|
{
|
|
VisualStateManager.GoToState(this, this.StateInActive, true);
|
|
}
|
|
}
|
|
|
|
// Token: 0x17000003 RID: 3
|
|
// (get) Token: 0x0600000B RID: 11 RVA: 0x000021E4 File Offset: 0x000003E4
|
|
// (set) Token: 0x0600000C RID: 12 RVA: 0x00002206 File Offset: 0x00000406
|
|
public bool IsLarge
|
|
{
|
|
get => (bool)base.GetValue(CirclePointRingLoading.IsLargeProperty);
|
|
set => base.SetValue(CirclePointRingLoading.IsLargeProperty, value);
|
|
}
|
|
|
|
// Token: 0x0600000D RID: 13 RVA: 0x0000221C File Offset: 0x0000041C
|
|
private static void IsLargeChangedCallback(DependencyObject sender, DependencyPropertyChangedEventArgs e)
|
|
{
|
|
var circlePointRingLoading = sender as CirclePointRingLoading;
|
|
var flag = circlePointRingLoading == null;
|
|
if (!flag)
|
|
{
|
|
circlePointRingLoading.UpdateLargeState();
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600000E RID: 14 RVA: 0x00002244 File Offset: 0x00000444
|
|
private void UpdateLargeState()
|
|
{
|
|
var isLarge = this.IsLarge;
|
|
if (isLarge)
|
|
{
|
|
VisualStateManager.GoToState(this, this.StateLarge, true);
|
|
}
|
|
else
|
|
{
|
|
VisualStateManager.GoToState(this, this.StateSmall, true);
|
|
}
|
|
}
|
|
|
|
// Token: 0x17000004 RID: 4
|
|
// (get) Token: 0x0600000F RID: 15 RVA: 0x0000227C File Offset: 0x0000047C
|
|
// (set) Token: 0x06000010 RID: 16 RVA: 0x0000229E File Offset: 0x0000049E
|
|
public double MaxSideLength
|
|
{
|
|
get => (double)base.GetValue(CirclePointRingLoading.MaxSideLengthProperty);
|
|
set => base.SetValue(CirclePointRingLoading.MaxSideLengthProperty, value);
|
|
}
|
|
|
|
// Token: 0x17000005 RID: 5
|
|
// (get) Token: 0x06000011 RID: 17 RVA: 0x000022B4 File Offset: 0x000004B4
|
|
// (set) Token: 0x06000012 RID: 18 RVA: 0x000022D6 File Offset: 0x000004D6
|
|
public double EllipseDiameter
|
|
{
|
|
get => (double)base.GetValue(CirclePointRingLoading.EllipseDiameterProperty);
|
|
set => base.SetValue(CirclePointRingLoading.EllipseDiameterProperty, value);
|
|
}
|
|
|
|
// Token: 0x17000006 RID: 6
|
|
// (get) Token: 0x06000013 RID: 19 RVA: 0x000022EC File Offset: 0x000004EC
|
|
// (set) Token: 0x06000014 RID: 20 RVA: 0x0000230E File Offset: 0x0000050E
|
|
public Thickness EllipseOffset
|
|
{
|
|
get => (Thickness)base.GetValue(CirclePointRingLoading.EllipseOffsetProperty);
|
|
set => base.SetValue(CirclePointRingLoading.EllipseOffsetProperty, value);
|
|
}
|
|
|
|
// Token: 0x06000015 RID: 21 RVA: 0x00002324 File Offset: 0x00000524
|
|
public CirclePointRingLoading()
|
|
{
|
|
|
|
|
|
base.SizeChanged += new SizeChangedEventHandler((object argument0, SizeChangedEventArgs argument1) =>
|
|
this.BindableWidth = base.ActualWidth);
|
|
}
|
|
|
|
// Token: 0x06000016 RID: 22 RVA: 0x00002378 File Offset: 0x00000578
|
|
static CirclePointRingLoading()
|
|
{
|
|
FrameworkElement.DefaultStyleKeyProperty.OverrideMetadata(typeof(CirclePointRingLoading),
|
|
new FrameworkPropertyMetadata(typeof(CirclePointRingLoading)));
|
|
UIElement.VisibilityProperty.OverrideMetadata(typeof(CirclePointRingLoading), new FrameworkPropertyMetadata(
|
|
delegate (DependencyObject ringObject, DependencyPropertyChangedEventArgs e)
|
|
{
|
|
var flag = e.NewValue != e.OldValue;
|
|
if (flag)
|
|
{
|
|
var circlePointRingLoading = (CirclePointRingLoading)ringObject;
|
|
var flag2 = (Visibility)e.NewValue > Visibility.Visible;
|
|
if (flag2)
|
|
{
|
|
circlePointRingLoading.SetCurrentValue(CirclePointRingLoading.IsActiveProperty, false);
|
|
}
|
|
else
|
|
{
|
|
circlePointRingLoading.IsActive = true;
|
|
}
|
|
}
|
|
}));
|
|
}
|
|
|
|
// Token: 0x06000017 RID: 23 RVA: 0x00002531 File Offset: 0x00000731
|
|
public override void OnApplyTemplate()
|
|
{
|
|
base.OnApplyTemplate();
|
|
this.UpdateLargeState();
|
|
this.UpdateActiveState();
|
|
}
|
|
|
|
// Token: 0x04000001 RID: 1
|
|
private string StateActive = "Active";
|
|
|
|
// Token: 0x04000002 RID: 2
|
|
private string StateInActive = "InActive";
|
|
|
|
// Token: 0x04000003 RID: 3
|
|
private string StateLarge = "Large";
|
|
|
|
// Token: 0x04000004 RID: 4
|
|
private string StateSmall = "Small";
|
|
|
|
// Token: 0x04000005 RID: 5
|
|
public static readonly DependencyProperty BindableWidthProperty = DependencyProperty.Register("BindableWidth",
|
|
typeof(double), typeof(CirclePointRingLoading),
|
|
new PropertyMetadata(0.0, new PropertyChangedCallback(CirclePointRingLoading.BindableWidthCallback)));
|
|
|
|
// Token: 0x04000006 RID: 6
|
|
public static readonly DependencyProperty IsActiveProperty = DependencyProperty.Register("IsActive",
|
|
typeof(bool), typeof(CirclePointRingLoading),
|
|
new FrameworkPropertyMetadata(true, FrameworkPropertyMetadataOptions.BindsTwoWayByDefault,
|
|
new PropertyChangedCallback(CirclePointRingLoading.IsActiveChanged)));
|
|
|
|
// Token: 0x04000007 RID: 7
|
|
public static readonly DependencyProperty IsLargeProperty = DependencyProperty.Register("IsLarge", typeof(bool),
|
|
typeof(CirclePointRingLoading),
|
|
new PropertyMetadata(true, new PropertyChangedCallback(CirclePointRingLoading.IsLargeChangedCallback)));
|
|
|
|
// Token: 0x04000008 RID: 8
|
|
public static readonly DependencyProperty MaxSideLengthProperty = DependencyProperty.Register("MaxSideLength",
|
|
typeof(double), typeof(CirclePointRingLoading), new PropertyMetadata(0.0));
|
|
|
|
// Token: 0x04000009 RID: 9
|
|
public static readonly DependencyProperty EllipseDiameterProperty =
|
|
DependencyProperty.Register("EllipseDiameter", typeof(double), typeof(CirclePointRingLoading),
|
|
new PropertyMetadata(0.0));
|
|
|
|
// Token: 0x0400000A RID: 10
|
|
public static readonly DependencyProperty EllipseOffsetProperty = DependencyProperty.Register("EllipseOffset",
|
|
typeof(Thickness), typeof(CirclePointRingLoading), new PropertyMetadata(default(Thickness)));
|
|
}
|
|
}
|