mirror of
https://github.com/ZuneDev/ZuneShell.dll.git
synced 2026-07-27 13:11:51 -07:00
96 lines
2.7 KiB
C#
96 lines
2.7 KiB
C#
// Decompiled with JetBrains decompiler
|
|
// Type: ZuneUI.Experience
|
|
// Assembly: ZuneShell, Version=4.7.0.0, Culture=neutral, PublicKeyToken=ddd0da4d3e678217
|
|
// MVID: FC8028F3-A47B-4FB4-B35B-11D1752D8264
|
|
// Assembly location: C:\Program Files\Zune\ZuneShell.dll
|
|
|
|
using Microsoft.Iris;
|
|
using Microsoft.Zune.Util;
|
|
using System;
|
|
using System.Collections;
|
|
|
|
namespace ZuneUI
|
|
{
|
|
public abstract class Experience : Command
|
|
{
|
|
private bool _isCurrent;
|
|
private Choice _nodes;
|
|
private SQMDataId _sqmClickId;
|
|
|
|
public Experience(Frame frameOwner)
|
|
: base(frameOwner, "", null)
|
|
=> this._sqmClickId = SQMDataId.Invalid;
|
|
|
|
public Experience(Frame frameOwner, StringId nameId, SQMDataId SQMClickId)
|
|
: base(frameOwner, Shell.LoadString(nameId), null)
|
|
=> this._sqmClickId = SQMClickId;
|
|
|
|
public Choice Nodes
|
|
{
|
|
get
|
|
{
|
|
if (this._nodes == null)
|
|
{
|
|
this._nodes = new Choice(this);
|
|
this._nodes.Options = this.NodesList;
|
|
}
|
|
return this._nodes;
|
|
}
|
|
set
|
|
{
|
|
if (this._nodes == value)
|
|
return;
|
|
this._nodes = value;
|
|
this.FirePropertyChanged(nameof(Nodes));
|
|
}
|
|
}
|
|
|
|
public abstract IList NodesList { get; }
|
|
|
|
public Frame Frame => (Frame)this.Owner;
|
|
|
|
public bool IsCurrent
|
|
{
|
|
get => this._isCurrent;
|
|
set
|
|
{
|
|
if (this._isCurrent == value)
|
|
return;
|
|
this._isCurrent = value;
|
|
this.OnIsCurrentChanged();
|
|
this.FirePropertyChanged(nameof(IsCurrent));
|
|
}
|
|
}
|
|
|
|
public virtual string DefaultUIPath => "";
|
|
|
|
protected int GetNodeIndex(Node node)
|
|
{
|
|
for (int index = 0; index < this.NodesList.Count; ++index)
|
|
{
|
|
if (this.NodesList[index] == node)
|
|
return index;
|
|
}
|
|
return -1;
|
|
}
|
|
|
|
protected virtual void OnIsCurrentChanged()
|
|
{
|
|
}
|
|
|
|
protected override void OnInvoked()
|
|
{
|
|
if (this.IsCurrent)
|
|
return;
|
|
((Frame)this.Owner).Experiences.ChosenValue = this;
|
|
Node node = (Node)this.Nodes.ChosenValue;
|
|
if (node == null && this.NodesList != null && this.NodesList.Count > 0)
|
|
node = (Node)this.NodesList[0];
|
|
node?.Invoke(InvokePolicy.Synchronous);
|
|
if (this._sqmClickId != SQMDataId.Invalid)
|
|
SQMLog.Log(this._sqmClickId, 1);
|
|
base.OnInvoked();
|
|
}
|
|
}
|
|
}
|