Add decompiled projects for UIX and UIXControls

This commit is contained in:
Joshua Askharoun
2021-03-31 16:42:58 -05:00
parent a92bb6afc5
commit 6b4b30744b
985 changed files with 117589 additions and 8 deletions
+1 -1
View File
@@ -8,6 +8,6 @@ using System.Security.Permissions;
[assembly: AssemblyProduct("Microsoft (R) Windows (R) Operating System")] [assembly: AssemblyProduct("Microsoft (R) Windows (R) Operating System")]
[assembly: AssemblyCopyright("Copyright (c) Microsoft Corporation. All rights reserved.")] [assembly: AssemblyCopyright("Copyright (c) Microsoft Corporation. All rights reserved.")]
[assembly: AssemblyFileVersion("4.8.2345.0")] [assembly: AssemblyFileVersion("4.8.2345.0")]
[assembly: AssemblyDelaySign(true)] //[assembly: AssemblyDelaySign(true)]
[assembly: AssemblyVersion("4.7.0.0")] [assembly: AssemblyVersion("4.7.0.0")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
BIN
View File
Binary file not shown.
+63
View File
@@ -0,0 +1,63 @@
###############################################################################
# Set default behavior to automatically normalize line endings.
###############################################################################
* text=auto
###############################################################################
# Set default behavior for command prompt diff.
#
# This is need for earlier builds of msysgit that does not have it on by
# default for csharp files.
# Note: This is only used by command line
###############################################################################
#*.cs diff=csharp
###############################################################################
# Set the merge driver for project and solution files
#
# Merging from the command prompt will add diff markers to the files if there
# are conflicts (Merging from VS is not affected by the settings below, in VS
# the diff markers are never inserted). Diff markers may cause the following
# file extensions to fail to load in VS. An alternative would be to treat
# these files as binary and thus will always conflict and require user
# intervention with every merge. To do so, just uncomment the entries below
###############################################################################
#*.sln merge=binary
#*.csproj merge=binary
#*.vbproj merge=binary
#*.vcxproj merge=binary
#*.vcproj merge=binary
#*.dbproj merge=binary
#*.fsproj merge=binary
#*.lsproj merge=binary
#*.wixproj merge=binary
#*.modelproj merge=binary
#*.sqlproj merge=binary
#*.wwaproj merge=binary
###############################################################################
# behavior for image files
#
# image files are treated as binary by default.
###############################################################################
#*.jpg binary
#*.png binary
#*.gif binary
###############################################################################
# diff behavior for common document formats
#
# Convert binary document formats to text before diffing them. This feature
# is only available from the command line. Turn it on by uncommenting the
# entries below.
###############################################################################
#*.doc diff=astextplain
#*.DOC diff=astextplain
#*.docx diff=astextplain
#*.DOCX diff=astextplain
#*.dot diff=astextplain
#*.DOT diff=astextplain
#*.pdf diff=astextplain
#*.PDF diff=astextplain
#*.rtf diff=astextplain
#*.RTF diff=astextplain
+340
View File
@@ -0,0 +1,340 @@
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
##
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
# User-specific files
*.rsuser
*.suo
*.user
*.userosscache
*.sln.docstates
# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs
# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
[Aa][Rr][Mm]/
[Aa][Rr][Mm]64/
bld/
[Bb]in/
[Oo]bj/
[Ll]og/
# Visual Studio 2015/2017 cache/options directory
.vs/
# Uncomment if you have tasks that create the project's static files in wwwroot
#wwwroot/
# Visual Studio 2017 auto generated files
Generated\ Files/
# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
# NUNIT
*.VisualState.xml
TestResult.xml
# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c
# Benchmark Results
BenchmarkDotNet.Artifacts/
# .NET Core
project.lock.json
project.fragment.lock.json
artifacts/
# StyleCop
StyleCopReport.xml
# Files built by Visual Studio
*_i.c
*_p.c
*_h.h
*.ilk
*.meta
*.obj
*.iobj
*.pch
*.pdb
*.ipdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*_wpftmp.csproj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc
# Chutzpah Test files
_Chutzpah*
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opendb
*.opensdf
*.sdf
*.cachefile
*.VC.db
*.VC.VC.opendb
# Visual Studio profiler
*.psess
*.vsp
*.vspx
*.sap
# Visual Studio Trace Files
*.e2e
# TFS 2012 Local Workspace
$tf/
# Guidance Automation Toolkit
*.gpState
# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user
# JustCode is a .NET coding add-in
.JustCode
# TeamCity is a build add-in
_TeamCity*
# DotCover is a Code Coverage Tool
*.dotCover
# AxoCover is a Code Coverage Tool
.axoCover/*
!.axoCover/settings.json
# Visual Studio code coverage results
*.coverage
*.coveragexml
# NCrunch
_NCrunch_*
.*crunch*.local.xml
nCrunchTemp_*
# MightyMoose
*.mm.*
AutoTest.Net/
# Web workbench (sass)
.sass-cache/
# Installshield output folder
[Ee]xpress/
# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html
# Click-Once directory
publish/
# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
# Note: Comment the next line if you want to checkin your web deploy settings,
# but database connection strings (with potential passwords) will be unencrypted
*.pubxml
*.publishproj
# Microsoft Azure Web App publish settings. Comment the next line if you want to
# checkin your Azure Web App publish settings, but sensitive information contained
# in these scripts will be unencrypted
PublishScripts/
# NuGet Packages
*.nupkg
# The packages folder can be ignored because of Package Restore
**/[Pp]ackages/*
# except build/, which is used as an MSBuild target.
!**/[Pp]ackages/build/
# Uncomment if necessary however generally it will be regenerated when needed
#!**/[Pp]ackages/repositories.config
# NuGet v3's project.json files produces more ignorable files
*.nuget.props
*.nuget.targets
# Microsoft Azure Build Output
csx/
*.build.csdef
# Microsoft Azure Emulator
ecf/
rcf/
# Windows Store app package directories and files
AppPackages/
BundleArtifacts/
Package.StoreAssociation.xml
_pkginfo.txt
*.appx
# Visual Studio cache files
# files ending in .cache can be ignored
*.[Cc]ache
# but keep track of directories ending in .cache
!?*.[Cc]ache/
# Others
ClientBin/
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.jfm
*.pfx
*.publishsettings
orleans.codegen.cs
# Including strong name files can present a security risk
# (https://github.com/github/gitignore/pull/2483#issue-259490424)
#*.snk
# Since there are multiple workflows, uncomment next line to ignore bower_components
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
#bower_components/
# RIA/Silverlight projects
Generated_Code/
# Backup & report files from converting an old project file
# to a newer Visual Studio version. Backup files are not needed,
# because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
ServiceFabricBackup/
*.rptproj.bak
# SQL Server files
*.mdf
*.ldf
*.ndf
# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings
*.rptproj.rsuser
*- Backup*.rdl
# Microsoft Fakes
FakesAssemblies/
# GhostDoc plugin setting file
*.GhostDoc.xml
# Node.js Tools for Visual Studio
.ntvs_analysis.dat
node_modules/
# Visual Studio 6 build log
*.plg
# Visual Studio 6 workspace options file
*.opt
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
*.vbw
# Visual Studio LightSwitch build output
**/*.HTMLClient/GeneratedArtifacts
**/*.DesktopClient/GeneratedArtifacts
**/*.DesktopClient/ModelManifest.xml
**/*.Server/GeneratedArtifacts
**/*.Server/ModelManifest.xml
_Pvt_Extensions
# Paket dependency manager
.paket/paket.exe
paket-files/
# FAKE - F# Make
.fake/
# JetBrains Rider
.idea/
*.sln.iml
# CodeRush personal settings
.cr/personal
# Python Tools for Visual Studio (PTVS)
__pycache__/
*.pyc
# Cake - Uncomment if you are using it
# tools/**
# !tools/packages.config
# Tabs Studio
*.tss
# Telerik's JustMock configuration file
*.jmconfig
# BizTalk build output
*.btp.cs
*.btm.cs
*.odx.cs
*.xsd.cs
# OpenCover UI analysis results
OpenCover/
# Azure Stream Analytics local run output
ASALocalRun/
# MSBuild Binary and Structured Log
*.binlog
# NVidia Nsight GPU debugger configuration file
*.nvuser
# MFractors (Xamarin productivity tool) working folder
.mfractor/
# Local History for Visual Studio
.localhistory/
# BeatPulse healthcheck temp database
healthchecksdb
+21
View File
@@ -0,0 +1,21 @@
using System;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Security.Permissions;
[assembly: StringFreezing]
[assembly: AssemblyTitle("UIX")]
[assembly: CLSCompliant(true)]
[assembly: AssemblyDescription("Microsoft.Iris")]
[assembly: AssemblyCompany("Microsoft Corporation")]
[assembly: AssemblyDelaySign(true)]
//assembly: AssemblyKeyFile("e:\\temp\\466296\\public.amd64fre\\internal\\strongnamekeys\\fake\\36MSApp1024.snk")]
[assembly: AssemblyFileVersion("4.8.0015.0")]
[assembly: AssemblyProduct("Microsoft (R) Windows (R) Operating System")]
[assembly: AssemblyCopyright("Copyright (c) Microsoft Corporation. All rights reserved.")]
[assembly: ComVisible(false)]
[assembly: InternalsVisibleTo("UIXLanguagePackage, PublicKey=002400000480000094000000060200000024000052534131000400000100010079ac5df018758f13b930394f7b6e7672b5221e5a299339cc185b20dcae03a23e4766f75d7ba8d3fc46163826f2df26cd474e6326c58ea8e4f8fcc3a66818134788ae709fd3f68995b6db8efe31ed952c98b2e3b43141b41a08ff4fd205548f19e32d22b6ada74a1d4bd04c6e08ff54a16272b669624cd6a4d68c98050db929f0")]
[assembly: InternalsVisibleTo("IrisEditor,PublicKey=00240000048000009400000006020000002400005253413100040000010001001dc70401884cdfad2010ce192e1f08a30fb034cf504759943eec3359d4ed09af3ce1616dbb124e479617ec73e4162903766e7a5e7bf1984bb318040118fe0f69dfb8b6e5c7c47a0e1bc9a8984b22f7221cc235986c09c74cab38ea3562c18adb8e3a95b73faf1ed71d7c309058b86d951af2165eb215b47de335e360a6a25da7")]
[assembly: AssemblyVersion("4.8.0.0")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
@@ -0,0 +1,13 @@
// Decompiled with JetBrains decompiler
// Type: Microsoft.Iris.Accessibility.AccChildID
// 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
namespace Microsoft.Iris.Accessibility
{
internal enum AccChildID
{
Self,
}
}
@@ -0,0 +1,55 @@
// Decompiled with JetBrains decompiler
// Type: Microsoft.Iris.Accessibility.AccEvents
// 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
namespace Microsoft.Iris.Accessibility
{
internal enum AccEvents
{
None = 0,
SystemSound = 1,
SystemAlert = 2,
SystemForeground = 3,
SystemMenuStart = 4,
SystemMenuEnd = 5,
SystemMenuPopupStart = 6,
SystemMenuPopupEnd = 7,
SystemCaptureStart = 8,
SystemCaptureEnd = 9,
SystemMoveSizeStart = 10, // 0x0000000A
SystemMoveSizeEnd = 11, // 0x0000000B
SystemContextHelpStart = 12, // 0x0000000C
SystemContextHelpEnd = 13, // 0x0000000D
SystemDragDropStart = 14, // 0x0000000E
SystemDragDropEnd = 15, // 0x0000000F
SystemDialogStart = 16, // 0x00000010
SystemDialogEnd = 17, // 0x00000011
SystemScrollingStart = 18, // 0x00000012
SystemScrollingEnd = 19, // 0x00000013
SystemSwitchStart = 20, // 0x00000014
SystemSwitchEnd = 21, // 0x00000015
SystemMinimizeStart = 22, // 0x00000016
SystemMinimizeEnd = 23, // 0x00000017
ObjectCreate = 32768, // 0x00008000
ObjectDestroy = 32769, // 0x00008001
ObjectShow = 32770, // 0x00008002
ObjectHide = 32771, // 0x00008003
ObjectReorder = 32772, // 0x00008004
ObjectFocus = 32773, // 0x00008005
ObjectSelection = 32774, // 0x00008006
ObjectSelectionAdd = 32775, // 0x00008007
ObjectSelectionRemove = 32776, // 0x00008008
ObjectSelectionWithin = 32777, // 0x00008009
ObjectStateChange = 32778, // 0x0000800A
ObjectLocationChange = 32779, // 0x0000800B
ObjectNameChange = 32780, // 0x0000800C
ObjectDescriptionChange = 32781, // 0x0000800D
ObjectValueChange = 32782, // 0x0000800E
ObjectParentChange = 32783, // 0x0000800F
ObjectHelpChange = 32784, // 0x00008010
ObjectDefaultActionChange = 32785, // 0x00008011
ObjectAcceleratorChange = 32786, // 0x00008012
}
}
@@ -0,0 +1,22 @@
// Decompiled with JetBrains decompiler
// Type: Microsoft.Iris.Accessibility.AccNavDirs
// 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
namespace Microsoft.Iris.Accessibility
{
internal enum AccNavDirs
{
Min,
Up,
Down,
Left,
Right,
Next,
Previous,
FirstChild,
LastChild,
Max,
}
}
@@ -0,0 +1,24 @@
// Decompiled with JetBrains decompiler
// Type: Microsoft.Iris.Accessibility.AccObjectID
// 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
namespace Microsoft.Iris.Accessibility
{
internal enum AccObjectID
{
Sound = -11, // 0xFFFFFFF5
Alert = -10, // 0xFFFFFFF6
Cursor = -9, // 0xFFFFFFF7
Caret = -8, // 0xFFFFFFF8
SizeGrip = -7, // 0xFFFFFFF9
HScroll = -6, // 0xFFFFFFFA
VScroll = -5, // 0xFFFFFFFB
Client = -4, // 0xFFFFFFFC
Menu = -3, // 0xFFFFFFFD
TitleBar = -2, // 0xFFFFFFFE
SysMenu = -1, // 0xFFFFFFFF
Window = 0,
}
}
@@ -0,0 +1,77 @@
// Decompiled with JetBrains decompiler
// Type: Microsoft.Iris.Accessibility.AccRole
// 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
namespace Microsoft.Iris.Accessibility
{
internal enum AccRole
{
None,
TitleBar,
MenuBar,
ScrollBar,
Grip,
Sound,
Cursor,
Caret,
Alert,
Window,
Client,
MenuPopup,
MenuItem,
ToolTip,
Application,
Document,
Pane,
Chart,
Dialog,
Border,
Grouping,
Separator,
ToolBar,
StatusBar,
Table,
ColumnHeader,
RowHeader,
Column,
Row,
Cell,
Link,
HelpBalloon,
Character,
List,
ListItem,
Outline,
OutlineItem,
PageTab,
PropertyPage,
Indicator,
Graphic,
StaticText,
Text,
PushButton,
CheckButton,
RadioButton,
ComboBox,
DropList,
ProgressBar,
Dial,
HotkeyField,
Slider,
SpinButton,
Diagram,
Animation,
Equation,
ButtonDropDown,
ButtonMenu,
ButtonDropDownGrid,
Whitespace,
PageTabList,
Clock,
SplitButton,
IPAddress,
OutlineButton,
}
}
@@ -0,0 +1,22 @@
// Decompiled with JetBrains decompiler
// Type: Microsoft.Iris.Accessibility.AccSelFlags
// 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 System;
namespace Microsoft.Iris.Accessibility
{
[Flags]
internal enum AccSelFlags
{
None = 0,
TakeFocus = 1,
TakeSelection = 2,
ExtendSelection = 4,
AddSelection = 8,
RemoveSelection = 16, // 0x00000010
Valid = RemoveSelection | AddSelection | ExtendSelection | TakeSelection | TakeFocus, // 0x0000001F
}
}
@@ -0,0 +1,49 @@
// Decompiled with JetBrains decompiler
// Type: Microsoft.Iris.Accessibility.AccStates
// 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 System;
namespace Microsoft.Iris.Accessibility
{
[Flags]
internal enum AccStates
{
None = 0,
Unavailable = 1,
Selected = 2,
Focused = 4,
Pressed = 8,
Checked = 16, // 0x00000010
Mixed = 32, // 0x00000020
Indeterminate = Mixed, // 0x00000020
ReadOnly = 64, // 0x00000040
HotTracked = 128, // 0x00000080
Default = 256, // 0x00000100
Expanded = 512, // 0x00000200
Collapsed = 1024, // 0x00000400
Busy = 2048, // 0x00000800
Floating = 4096, // 0x00001000
Marquee = 8192, // 0x00002000
Animated = 16384, // 0x00004000
Invisible = 32768, // 0x00008000
OffScreen = 65536, // 0x00010000
Sizeable = 131072, // 0x00020000
Moveable = 262144, // 0x00040000
SelfVoicing = 524288, // 0x00080000
Focusable = 1048576, // 0x00100000
Selectable = 2097152, // 0x00200000
Linked = 4194304, // 0x00400000
Traversed = 8388608, // 0x00800000
MultiSelectable = 16777216, // 0x01000000
ExtSelectable = 33554432, // 0x02000000
Alert_Low = 67108864, // 0x04000000
Alert_Medium = 134217728, // 0x08000000
Alert_High = 268435456, // 0x10000000
Protected = 536870912, // 0x20000000
HasPopup = 1073741824, // 0x40000000
Valid = HasPopup | Protected | Alert_High | Alert_Medium | Alert_Low | ExtSelectable | MultiSelectable | Traversed | Linked | Selectable | Focusable | SelfVoicing | Moveable | Sizeable | OffScreen | Invisible | Animated | Marquee | Floating | Busy | Collapsed | Expanded | Default | HotTracked | ReadOnly | Indeterminate | Checked | Pressed | Focused | Selected | Unavailable, // 0x7FFFFFFF
}
}
@@ -0,0 +1,478 @@
// Decompiled with JetBrains decompiler
// Type: Microsoft.Iris.Accessibility.Accessible
// 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.Library;
using Microsoft.Iris.Markup;
using Microsoft.Iris.ModelItems;
using Microsoft.Iris.Session;
namespace Microsoft.Iris.Accessibility
{
internal class Accessible : NotifyObjectBase
{
private DynamicData _dataMap;
private AccessibleProxy _proxy;
private static readonly DataCookie s_descriptionSlot = DataCookie.ReserveSlot();
private static readonly DataCookie s_defaultActionSlot = DataCookie.ReserveSlot();
private static readonly DataCookie s_defaultActionCommandSlot = DataCookie.ReserveSlot();
private static readonly DataCookie s_helpSlot = DataCookie.ReserveSlot();
private static readonly DataCookie s_helpTopicSlot = DataCookie.ReserveSlot();
private static readonly DataCookie s_keyboardShortcutSlot = DataCookie.ReserveSlot();
private static readonly DataCookie s_nameSlot = DataCookie.ReserveSlot();
private static readonly DataCookie s_roleSlot = DataCookie.ReserveSlot();
private static readonly DataCookie s_valueSlot = DataCookie.ReserveSlot();
private static readonly DataCookie s_animatedStateSlot = DataCookie.ReserveSlot();
private static readonly DataCookie s_unavailableStateSlot = DataCookie.ReserveSlot();
private static readonly DataCookie s_selectedStateSlot = DataCookie.ReserveSlot();
private static readonly DataCookie s_busyStateSlot = DataCookie.ReserveSlot();
private static readonly DataCookie s_pressedStateSlot = DataCookie.ReserveSlot();
private static readonly DataCookie s_checkedStateSlot = DataCookie.ReserveSlot();
private static readonly DataCookie s_collapsedStateSlot = DataCookie.ReserveSlot();
private static readonly DataCookie s_defaultStateSlot = DataCookie.ReserveSlot();
private static readonly DataCookie s_marqueeStateSlot = DataCookie.ReserveSlot();
private static readonly DataCookie s_mixedStateSlot = DataCookie.ReserveSlot();
private static readonly DataCookie s_expandedStateSlot = DataCookie.ReserveSlot();
private static readonly DataCookie s_traversedStateSlot = DataCookie.ReserveSlot();
private static readonly DataCookie s_selectableStateSlot = DataCookie.ReserveSlot();
private static readonly DataCookie s_protectedStateSlot = DataCookie.ReserveSlot();
private static readonly DataCookie s_popupStateSlot = DataCookie.ReserveSlot();
private static readonly DataCookie s_multiSelectableStateSlot = DataCookie.ReserveSlot();
public Accessible() => this.SetData(Accessible.s_roleSlot, (object)AccRole.Client);
public void Attach(AccessibleProxy proxy)
{
this._proxy = proxy;
this.FireNotification(NotificationID.Enabled);
}
public void Detach()
{
this.SetData(Accessible.s_defaultActionCommandSlot, (object)null);
this._proxy = (AccessibleProxy)null;
}
public bool Enabled => this._proxy != null;
public string Description
{
get => (string)this.GetData(Accessible.s_descriptionSlot);
set
{
string description = this.Description;
if (!(value != description))
return;
this.SetData(Accessible.s_descriptionSlot, (object)value);
this.FireAccessiblePropertyChanged(NotificationID.Description, AccessibleProperty.Description);
}
}
public string DefaultAction
{
get => (string)this.GetData(Accessible.s_defaultActionSlot);
set
{
string defaultAction = this.DefaultAction;
if (!(value != defaultAction))
return;
this.SetData(Accessible.s_defaultActionSlot, (object)value);
this.FireAccessiblePropertyChanged(NotificationID.DefaultAction, AccessibleProperty.DefaultAction);
}
}
public IUICommand DefaultActionCommand
{
get => (IUICommand)this.GetData(Accessible.s_defaultActionCommandSlot);
set
{
IUICommand defaultActionCommand = this.DefaultActionCommand;
if (value == defaultActionCommand)
return;
this.SetData(Accessible.s_defaultActionCommandSlot, (object)value);
this.FireAccessiblePropertyChanged(NotificationID.DefaultActionCommand, AccessibleProperty.DefaultActionCommand);
}
}
public string Help
{
get => (string)this.GetData(Accessible.s_helpSlot);
set
{
string help = this.Help;
if (!(value != help))
return;
this.SetData(Accessible.s_helpSlot, (object)value);
this.FireAccessiblePropertyChanged(NotificationID.Help, AccessibleProperty.Help);
}
}
public int HelpTopic
{
get
{
object data = this.GetData(Accessible.s_helpTopicSlot);
return data != null ? (int)data : -1;
}
set
{
int helpTopic = this.HelpTopic;
if (value == helpTopic)
return;
this.SetData(Accessible.s_helpTopicSlot, (object)value);
this.FireAccessiblePropertyChanged(NotificationID.HelpTopic, AccessibleProperty.HelpTopic);
}
}
public string KeyboardShortcut
{
get => (string)this.GetData(Accessible.s_keyboardShortcutSlot);
set
{
string keyboardShortcut = this.KeyboardShortcut;
if (!(value != keyboardShortcut))
return;
this.SetData(Accessible.s_keyboardShortcutSlot, (object)value);
this.FireAccessiblePropertyChanged(NotificationID.KeyboardShortcut, AccessibleProperty.KeyboardShortcut);
}
}
public string Name
{
get => (string)this.GetData(Accessible.s_nameSlot);
set
{
string name = this.Name;
if (!(value != name))
return;
this.SetData(Accessible.s_nameSlot, (object)value);
this.FireAccessiblePropertyChanged(NotificationID.Name, AccessibleProperty.Name);
}
}
public AccRole Role
{
get
{
object data = this.GetData(Accessible.s_roleSlot);
return data != null ? (AccRole)data : AccRole.None;
}
set
{
AccRole role = this.Role;
if (value == role)
return;
this.SetData(Accessible.s_roleSlot, (object)value);
this.FireAccessiblePropertyChanged(NotificationID.Role, AccessibleProperty.Role);
}
}
public string Value
{
get => (string)this.GetData(Accessible.s_valueSlot);
set
{
string str = this.Value;
if (!(value != str))
return;
this.SetData(Accessible.s_valueSlot, (object)value);
this.FireAccessiblePropertyChanged(NotificationID.Value, AccessibleProperty.Value);
}
}
public bool IsAnimated
{
get
{
object data = this.GetData(Accessible.s_animatedStateSlot);
return data != null && (bool)data;
}
set
{
bool isAnimated = this.IsAnimated;
if (value == isAnimated)
return;
this.SetData(Accessible.s_animatedStateSlot, (object)value);
this.FireAccessiblePropertyChanged(NotificationID.IsAnimated, AccessibleProperty.IsAnimated);
}
}
public bool IsUnavailable
{
get
{
object data = this.GetData(Accessible.s_unavailableStateSlot);
return data != null && (bool)data;
}
set
{
bool isUnavailable = this.IsUnavailable;
if (value == isUnavailable)
return;
this.SetData(Accessible.s_unavailableStateSlot, (object)value);
this.FireAccessiblePropertyChanged(NotificationID.IsUnavailable, AccessibleProperty.IsUnavailable);
}
}
public bool IsSelected
{
get
{
object data = this.GetData(Accessible.s_selectedStateSlot);
return data != null && (bool)data;
}
set
{
bool isSelected = this.IsSelected;
if (value == isSelected)
return;
this.SetData(Accessible.s_selectedStateSlot, (object)value);
this.FireAccessiblePropertyChanged(NotificationID.IsSelected, AccessibleProperty.IsSelected);
}
}
public bool IsBusy
{
get
{
object data = this.GetData(Accessible.s_busyStateSlot);
return data != null && (bool)data;
}
set
{
bool isBusy = this.IsBusy;
if (value == isBusy)
return;
this.SetData(Accessible.s_busyStateSlot, (object)value);
this.FireAccessiblePropertyChanged(NotificationID.IsBusy, AccessibleProperty.IsBusy);
}
}
public bool IsPressed
{
get
{
object data = this.GetData(Accessible.s_pressedStateSlot);
return data != null && (bool)data;
}
set
{
bool isPressed = this.IsPressed;
if (value == isPressed)
return;
this.SetData(Accessible.s_pressedStateSlot, (object)value);
this.FireAccessiblePropertyChanged(NotificationID.IsPressed, AccessibleProperty.IsPressed);
}
}
public bool IsChecked
{
get
{
object data = this.GetData(Accessible.s_checkedStateSlot);
return data != null && (bool)data;
}
set
{
bool isChecked = this.IsChecked;
if (value == isChecked)
return;
this.SetData(Accessible.s_checkedStateSlot, (object)value);
this.FireAccessiblePropertyChanged(NotificationID.IsChecked, AccessibleProperty.IsChecked);
}
}
public bool IsCollapsed
{
get
{
object data = this.GetData(Accessible.s_collapsedStateSlot);
return data != null && (bool)data;
}
set
{
bool isCollapsed = this.IsCollapsed;
if (value == isCollapsed)
return;
this.SetData(Accessible.s_collapsedStateSlot, (object)value);
this.FireAccessiblePropertyChanged(NotificationID.IsCollapsed, AccessibleProperty.IsCollapsed);
}
}
public bool IsDefault
{
get
{
object data = this.GetData(Accessible.s_defaultStateSlot);
return data != null && (bool)data;
}
set
{
bool isDefault = this.IsDefault;
if (value == isDefault)
return;
this.SetData(Accessible.s_defaultStateSlot, (object)value);
this.FireAccessiblePropertyChanged(NotificationID.IsDefault, AccessibleProperty.IsDefault);
}
}
public bool IsMarquee
{
get
{
object data = this.GetData(Accessible.s_marqueeStateSlot);
return data != null && (bool)data;
}
set
{
bool isMarquee = this.IsMarquee;
if (value == isMarquee)
return;
this.SetData(Accessible.s_marqueeStateSlot, (object)value);
this.FireAccessiblePropertyChanged(NotificationID.IsMarquee, AccessibleProperty.IsMarquee);
}
}
public bool IsMixed
{
get
{
object data = this.GetData(Accessible.s_mixedStateSlot);
return data != null && (bool)data;
}
set
{
bool isMixed = this.IsMixed;
if (value == isMixed)
return;
this.SetData(Accessible.s_mixedStateSlot, (object)value);
this.FireAccessiblePropertyChanged(NotificationID.IsMixed, AccessibleProperty.IsMixed);
}
}
public bool IsExpanded
{
get
{
object data = this.GetData(Accessible.s_expandedStateSlot);
return data != null && (bool)data;
}
set
{
bool isExpanded = this.IsExpanded;
if (value == isExpanded)
return;
this.SetData(Accessible.s_expandedStateSlot, (object)value);
this.FireAccessiblePropertyChanged(NotificationID.IsExpanded, AccessibleProperty.IsExpanded);
}
}
public bool IsTraversed
{
get
{
object data = this.GetData(Accessible.s_traversedStateSlot);
return data != null && (bool)data;
}
set
{
bool isTraversed = this.IsTraversed;
if (value == isTraversed)
return;
this.SetData(Accessible.s_traversedStateSlot, (object)value);
this.FireAccessiblePropertyChanged(NotificationID.IsTraversed, AccessibleProperty.IsTraversed);
}
}
public bool IsSelectable
{
get
{
object data = this.GetData(Accessible.s_selectableStateSlot);
return data != null && (bool)data;
}
set
{
bool isSelectable = this.IsSelectable;
if (value == isSelectable)
return;
this.SetData(Accessible.s_selectableStateSlot, (object)value);
this.FireAccessiblePropertyChanged(NotificationID.IsSelectable, AccessibleProperty.IsSelectable);
}
}
public bool IsMultiSelectable
{
get
{
object data = this.GetData(Accessible.s_multiSelectableStateSlot);
return data != null && (bool)data;
}
set
{
bool isMultiSelectable = this.IsMultiSelectable;
if (value == isMultiSelectable)
return;
this.SetData(Accessible.s_multiSelectableStateSlot, (object)value);
this.FireAccessiblePropertyChanged(NotificationID.IsMultiSelectable, AccessibleProperty.IsMultiSelectable);
}
}
public bool IsProtected
{
get
{
object data = this.GetData(Accessible.s_protectedStateSlot);
return data != null && (bool)data;
}
set
{
bool isProtected = this.IsProtected;
if (value == isProtected)
return;
this.SetData(Accessible.s_protectedStateSlot, (object)value);
this.FireAccessiblePropertyChanged(NotificationID.IsProtected, AccessibleProperty.IsProtected);
}
}
public bool HasPopup
{
get
{
object data = this.GetData(Accessible.s_popupStateSlot);
return data != null && (bool)data;
}
set
{
bool hasPopup = this.HasPopup;
if (value == hasPopup)
return;
this.SetData(Accessible.s_popupStateSlot, (object)value);
this.FireAccessiblePropertyChanged(NotificationID.HasPopup, AccessibleProperty.HasPopup);
}
}
protected void FireAccessiblePropertyChanged(
string propertyName,
AccessibleProperty accessibleProperty)
{
this.FireNotification(propertyName);
if (this._proxy != null)
{
this._proxy.NotifyAccessiblePropertyChanged(accessibleProperty);
}
else
{
if (accessibleProperty == AccessibleProperty.Name)
return;
ErrorManager.ReportWarning("Accessibility: Script modifications to the 'Accessible' object ('{0}' property) detected even though an Accessibility client is not is use. Use 'if (Accessible.Enabled) {{ ... }}' to bypass Accessible property access in this case", (object)propertyName);
}
}
protected object GetData(DataCookie cookie) => this._dataMap.GetData(cookie);
protected void SetData(DataCookie cookie, object value) => this._dataMap.SetData(cookie, value);
}
}
@@ -0,0 +1,98 @@
// Decompiled with JetBrains decompiler
// Type: Microsoft.Iris.Accessibility.AccessibleChildren
// 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.Session;
using Microsoft.Iris.UI;
using System;
using System.Runtime.InteropServices;
using System.Runtime.InteropServices.ComTypes;
namespace Microsoft.Iris.Accessibility
{
[ComVisible(true)]
public class AccessibleChildren : IEnumVARIANT
{
private AccessibleProxy _proxy;
private int _current;
internal AccessibleChildren(AccessibleProxy proxy)
: this(proxy, -1)
{
}
internal AccessibleChildren(AccessibleProxy proxy, int position)
{
this._proxy = proxy;
this._current = position;
}
internal IEnumVARIANT Clone() => (IEnumVARIANT)new AccessibleChildren(this._proxy, this._current);
internal int Next(int count, object[] children)
{
int index = 0;
do
{
++this._current;
if (this._current >= this._proxy.UI.Children.Count)
{
this._current = this._proxy.UI.Children.Count;
break;
}
UIClass child = (UIClass)this._proxy.UI.Children[this._current];
children[index] = (object)child.AccessibleProxy;
++index;
}
while (index < count);
return index;
}
internal void Reset() => this._current = -1;
internal bool Skip(int count)
{
this._current += count;
if (this._current < this._proxy.UI.Children.Count)
return true;
this._current = this._proxy.UI.Children.Count;
return false;
}
IEnumVARIANT IEnumVARIANT.Clone()
{
this.VerifyEnumeratorAccess();
return this.Clone();
}
unsafe int IEnumVARIANT.Next(int celt, object[] rgVar, IntPtr pceltFetched)
{
this.VerifyEnumeratorAccess();
int num = this.Next(celt, rgVar);
*(int*)(void*)pceltFetched = num;
return num != celt ? 1 : 0;
}
int IEnumVARIANT.Reset()
{
this.VerifyEnumeratorAccess();
this.Reset();
return 0;
}
int IEnumVARIANT.Skip(int celt)
{
this.VerifyEnumeratorAccess();
return !this.Skip(celt) ? 1 : 0;
}
private void VerifyEnumeratorAccess()
{
if (this._proxy.UI != null && UIDispatcher.IsUIThread)
return;
Marshal.ThrowExceptionForHR(-2147467259);
}
}
}
@@ -0,0 +1,37 @@
// Decompiled with JetBrains decompiler
// Type: Microsoft.Iris.Accessibility.AccessibleProperty
// 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
namespace Microsoft.Iris.Accessibility
{
internal enum AccessibleProperty
{
DefaultAction,
DefaultActionCommand,
Description,
HasPopup,
Help,
HelpTopic,
IsAnimated,
IsBusy,
IsChecked,
IsCollapsed,
IsDefault,
IsExpanded,
IsMarquee,
IsMixed,
IsMultiSelectable,
IsPressed,
IsProtected,
IsSelectable,
IsSelected,
IsTraversed,
IsUnavailable,
KeyboardShortcut,
Name,
Role,
Value,
}
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,53 @@
// Decompiled with JetBrains decompiler
// Type: Microsoft.Iris.Accessibility.RootAccessibleProxy
// 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 Accessibility;
using Microsoft.Iris.Session;
using Microsoft.Iris.UI;
using System.Runtime.InteropServices;
namespace Microsoft.Iris.Accessibility
{
[ComVisible(true)]
public class RootAccessibleProxy : AccessibleProxy
{
private IAccessible _clientBridge;
internal RootAccessibleProxy(UIClass ui, Accessible data)
: base(ui, data)
{
}
internal override IAccessible Parent => (IAccessible)this._clientBridge.accParent;
internal override IAccessible Navigate(AccNavDirs navDir)
{
IAccessible accessible = (IAccessible)null;
switch (navDir)
{
case AccNavDirs.Up:
case AccNavDirs.Down:
case AccNavDirs.Left:
case AccNavDirs.Right:
case AccNavDirs.Next:
case AccNavDirs.Previous:
accessible = (IAccessible)this._clientBridge.accNavigate((int)navDir, (object)0);
break;
case AccNavDirs.FirstChild:
case AccNavDirs.LastChild:
accessible = base.Navigate(navDir);
break;
}
return accessible;
}
internal override string Name => UIApplication.ApplicationName;
internal IAccessible ClientBridge => this._clientBridge;
internal void AttachClientBridge(IAccessible clientBridge) => this._clientBridge = clientBridge;
}
}
+197
View File
@@ -0,0 +1,197 @@
// Decompiled with JetBrains decompiler
// Type: Microsoft.Iris.AggregateList
// 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.Data;
using System;
using System.Collections;
using System.Diagnostics;
namespace Microsoft.Iris
{
public class AggregateList : VirtualList
{
private IList[] _lists;
public AggregateList()
: this((IList[])null)
{
}
public AggregateList(IList list1)
: this(new IList[1] { list1 })
{
}
public AggregateList(IList list1, IList list2)
: this(new IList[2] { list1, list2 })
{
}
public AggregateList(IList list1, IList list2, IList list3)
: this(new IList[3] { list1, list2, list3 })
{
}
public AggregateList(IList list1, IList list2, IList list3, IList list4)
: this(new IList[4] { list1, list2, list3, list4 })
{
}
public AggregateList(IList[] lists)
: base(true)
{
if (lists == null)
lists = new IList[0];
this._lists = lists;
UIListContentsChangedHandler contentsChangedHandler = new UIListContentsChangedHandler(this.ChildListModified);
SlowDataAcquireCompleteHandler acquireCompleteHandler = new SlowDataAcquireCompleteHandler(this.ChildListSlowDataAcquired);
for (int index = 0; index < this._lists.Length; ++index)
{
if (this._lists[index] == null)
this._lists[index] = (IList)new ArrayList();
IList list = this._lists[index];
if (list is INotifyList notifyList)
notifyList.ContentsChanged += contentsChangedHandler;
if (list is IVirtualList virtualList && virtualList.SlowDataRequestsEnabled)
virtualList.SlowDataAcquireCompleteHandler = acquireCompleteHandler;
}
this.Count = this.ItemCount;
}
protected override void OnDispose(bool disposing)
{
if (disposing)
{
UIListContentsChangedHandler contentsChangedHandler = new UIListContentsChangedHandler(this.ChildListModified);
foreach (IList list in this._lists)
{
if (list is INotifyList notifyList)
notifyList.ContentsChanged -= contentsChangedHandler;
if (list is IVirtualList virtualList && virtualList.SlowDataRequestsEnabled)
virtualList.SlowDataAcquireCompleteHandler = (SlowDataAcquireCompleteHandler)null;
}
}
base.OnDispose(disposing);
}
protected override object OnRequestItem(int index)
{
foreach (IList list in this._lists)
{
if (index < list.Count)
return list[index];
index -= list.Count;
}
throw new IndexOutOfRangeException(nameof(index));
}
protected override void OnRequestSlowData(int index)
{
foreach (IList list in this._lists)
{
if (index < list.Count)
{
if (list is IVirtualList virtualList && virtualList.SlowDataRequestsEnabled)
{
virtualList.NotifyRequestSlowData(index);
break;
}
break;
}
index -= list.Count;
}
this.NotifySlowDataAcquireComplete(index);
}
private bool ChildListSlowDataAcquired(IVirtualList childList, int index)
{
this.NotifySlowDataAcquireComplete(this.ListIndexToMasterIndex((IList)childList, index));
return true;
}
private void ChildListModified(IList listSender, UIListContentsChangedArgs args)
{
int masterIndex1 = this.ListIndexToMasterIndex(listSender, args.OldIndex);
int masterIndex2 = this.ListIndexToMasterIndex(listSender, args.NewIndex);
switch (args.Type)
{
case UIListContentsChangeType.Add:
case UIListContentsChangeType.Insert:
this.Insert(masterIndex2);
break;
case UIListContentsChangeType.AddRange:
case UIListContentsChangeType.InsertRange:
this.InsertRange(masterIndex2, args.Count);
break;
case UIListContentsChangeType.Remove:
this.RemoveAt(masterIndex1);
break;
case UIListContentsChangeType.Move:
if (masterIndex1 == masterIndex2)
break;
this.Move(masterIndex1, masterIndex2);
break;
case UIListContentsChangeType.Modified:
this.Modified(masterIndex2);
break;
default:
this.Clear();
this.Count = this.ItemCount;
break;
}
}
[Conditional("DEBUG")]
private void DEBUG_ValidateConsistency()
{
int index1 = 0;
for (int index2 = 0; index2 < this._lists.Length; ++index2)
{
for (int index3 = 0; index3 < this._lists[index2].Count; ++index3)
{
object obj1 = this._lists[index2][index3];
object obj2 = this[index1];
++index1;
}
}
}
private int ListIndexToMasterIndex(IList list, int index)
{
int num = 0;
for (int index1 = 0; index1 < this._lists.Length && this._lists[index1] != list; ++index1)
num += this._lists[index1].Count;
return num + index;
}
private void MasterIndexToListIndex(int masterIndex, out IList list, out int index)
{
int num = 0;
int index1 = 0;
list = (IList)null;
for (; index1 < this._lists.Length; ++index1)
{
list = this._lists[index1];
if (num + list.Count <= masterIndex)
num += list.Count;
else
break;
}
index = masterIndex - num;
}
private int ItemCount
{
get
{
int num = 0;
foreach (IList list in this._lists)
num += list.Count;
return num;
}
}
}
}
@@ -0,0 +1,309 @@
// Decompiled with JetBrains decompiler
// Type: Microsoft.Iris.Animations.ActiveSequence
// 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.Library;
using Microsoft.Iris.Render;
using Microsoft.Iris.Session;
using System;
using System.Text;
namespace Microsoft.Iris.Animations
{
internal class ActiveSequence : DisposableObject
{
private UISession _session;
private IAnimatable _animatableTarget;
private Vector<AnimationProxy> _ready;
private Vector<AnimationProxy> _playing;
private float _lastProgress;
private AnimationTemplate _template;
private int _playingCount;
internal ActiveSequence(
AnimationTemplate template_,
IAnimatable animatableTarget,
UISession session)
{
this._animatableTarget = animatableTarget;
this._session = session;
this._template = template_;
this._ready = new Vector<AnimationProxy>();
}
protected override void OnDispose()
{
base.OnDispose();
Vector<AnimationProxy> animationCollection = this.GetAnimationCollection();
if (animationCollection != null)
{
foreach (DisposableObject disposableObject in animationCollection)
disposableObject.Dispose((object)this);
this.FireComplete(false);
}
this._session = (UISession)null;
this._animatableTarget = (IAnimatable)null;
this._template = (AnimationTemplate)null;
this._ready = (Vector<AnimationProxy>)null;
}
public UISession Session => this._session;
internal IAnimatable Target => this._animatableTarget;
public AnimationTemplate Template => this._template;
public bool Playing => this._playing != null;
internal Vector<AnimationProxy> PendingProxies => this._ready;
public void Play()
{
Vector<AnimationProxy> ready = this._ready;
this._ready = (Vector<AnimationProxy>)null;
if (ready.Count > 0)
{
foreach (AnimationProxy animationProxy in ready)
animationProxy.Play();
this._playing = ready;
this.FireStart();
}
else
{
this.FireStart();
this.FireComplete(true);
}
}
public void Stop() => this.Stop((StopCommandSet)null);
public void Stop(StopCommandSet stopSetCommand)
{
if (UIDispatcher.IsUIThread)
{
this.StopWorker(stopSetCommand);
}
else
{
try
{
if (!this.Session.IsValid)
return;
DeferredCall.Post(DispatchPriority.High, new DeferredHandler(this.DeferredStop), (object)stopSetCommand);
}
catch (InvalidOperationException ex)
{
}
}
}
private void StopWorker(StopCommandSet stopSetCommand)
{
if (this._playing == null)
return;
foreach (AnimationProxy animationProxy in this._playing)
{
if (stopSetCommand != null)
animationProxy.Stop(stopSetCommand[animationProxy.Type]);
else
animationProxy.Stop();
}
}
private void DeferredStop(object args) => this.StopWorker((StopCommandSet)args);
public bool ValidatePlayable()
{
foreach (AnimationProxy animationProxy in this._ready)
{
if (!animationProxy.ValidatePlayable())
return false;
}
return true;
}
internal void OnAttachChildAnimation(AnimationProxy child)
{
child.DeclareOwner((object)this);
this._ready.Add(child);
}
private Vector<AnimationProxy> GetAnimationCollection() => this._ready ?? this._playing;
internal void OnDetachChildAnimation(AnimationProxy child, float progress)
{
Vector<AnimationProxy> animationCollection = this.GetAnimationCollection();
if (animationCollection == null)
return;
animationCollection.Remove(child);
child.Dispose((object)this);
if ((double)this._lastProgress < (double)progress)
this._lastProgress = progress;
if (animationCollection != this._playing || animationCollection.Count != 0)
return;
this.FireComplete(true);
}
private void FireStart() => this.OnStart();
private void FireComplete(bool notify)
{
if (this._playing != null)
this._playing = (Vector<AnimationProxy>)null;
this.OnStop(this._lastProgress, notify);
}
public StopCommandSet GetStopCommandSet()
{
StopCommandSet stopCommandSet = (StopCommandSet)null;
foreach (AnimationProxy animation in this.GetAnimationCollection())
{
if (animation.HasDynamicKeyframes)
{
if (stopCommandSet == null)
stopCommandSet = new StopCommandSet(StopCommand.MoveToEnd);
stopCommandSet[animation.Type] = StopCommand.LeaveCurrent;
}
}
return stopCommandSet;
}
public ActiveTransitions GetActiveTransitions()
{
Vector<AnimationProxy> animationCollection = this.GetAnimationCollection();
ActiveTransitions activeTransitions = ActiveTransitions.None;
foreach (AnimationProxy animationProxy in animationCollection)
{
ActiveTransitions activeTransition = ActiveSequence.ConvertToActiveTransition(animationProxy.Type);
activeTransitions |= activeTransition;
}
return activeTransitions;
}
public static ActiveTransitions ConvertToActiveTransition(AnimationType type)
{
switch (type)
{
case AnimationType.Position:
return ActiveTransitions.Move;
case AnimationType.Size:
return ActiveTransitions.Size;
case AnimationType.Alpha:
return ActiveTransitions.Alpha;
case AnimationType.Scale:
return ActiveTransitions.Scale;
case AnimationType.Rotate:
return ActiveTransitions.Rotate;
case AnimationType.Orientation:
return ActiveTransitions.Orientation;
case AnimationType.PositionX:
return ActiveTransitions.PositionX;
case AnimationType.PositionY:
return ActiveTransitions.PositionY;
case AnimationType.SizeX:
return ActiveTransitions.SizeX;
case AnimationType.SizeY:
return ActiveTransitions.SizeY;
case AnimationType.ScaleX:
return ActiveTransitions.ScaleX;
case AnimationType.ScaleY:
return ActiveTransitions.ScaleY;
case AnimationType.Float:
case AnimationType.Vector2:
case AnimationType.Vector3:
return ActiveTransitions.Effect;
case AnimationType.CameraEye:
return ActiveTransitions.CameraEye;
case AnimationType.CameraAt:
return ActiveTransitions.CameraAt;
case AnimationType.CameraUp:
return ActiveTransitions.CameraUp;
case AnimationType.CameraZn:
return ActiveTransitions.CameraZn;
default:
return ActiveTransitions.None;
}
}
public static ActiveTransitions ConvertToActiveTransition(
AnimationEventType type)
{
switch (type)
{
case AnimationEventType.Move:
return ActiveTransitions.Move;
case AnimationEventType.Size:
return ActiveTransitions.Size;
case AnimationEventType.Scale:
return ActiveTransitions.Scale;
case AnimationEventType.Rotate:
return ActiveTransitions.Rotate | ActiveTransitions.Orientation;
case AnimationEventType.Alpha:
return ActiveTransitions.Alpha;
default:
return ActiveTransitions.None;
}
}
public override string ToString()
{
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.Append("{ActiveSequence Template=\"");
if (this._template.DebugID != null)
{
stringBuilder.Append(this._template.DebugID);
}
else
{
Animation template = this._template as Animation;
if ((object)template != null)
stringBuilder.Append((object)template.Type);
else
stringBuilder.Append("<Unknown>");
}
stringBuilder.Append("\", Target=");
stringBuilder.Append(this._animatableTarget.GetType().Name);
if (this._animatableTarget is IVisual)
{
stringBuilder.Append(", IVisual=");
stringBuilder.Append(((IVisual)this._animatableTarget).DebugID);
}
stringBuilder.Append("}");
return stringBuilder.ToString();
}
public event EventHandler AnimationStarted;
public event EventHandler AnimationCompleted;
public event EventHandler AfterAnimationCompleted;
internal void OnStart()
{
++this._playingCount;
if (this._playingCount != 1 || this.AnimationStarted == null)
return;
this.AnimationStarted((object)this, EventArgs.Empty);
}
internal void OnStop(float progress, bool notify)
{
--this._playingCount;
if (notify && this._playingCount == 0)
{
EventArgs e = (EventArgs)new AnimationCompleteArgs(progress);
if (this.AnimationCompleted != null)
this.AnimationCompleted((object)this, e);
if (this.AfterAnimationCompleted == null)
return;
this.AfterAnimationCompleted((object)this, e);
}
else
{
int playingCount = this._playingCount;
}
}
}
}
@@ -0,0 +1,33 @@
// Decompiled with JetBrains decompiler
// Type: Microsoft.Iris.Animations.ActiveTransitions
// 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 System;
namespace Microsoft.Iris.Animations
{
[Flags]
internal enum ActiveTransitions
{
None = 0,
Move = 1,
Scale = 2,
Alpha = 4,
Rotate = 8,
Size = 16, // 0x00000010
Effect = 32, // 0x00000020
PositionX = 64, // 0x00000040
PositionY = 128, // 0x00000080
SizeX = 256, // 0x00000100
SizeY = 512, // 0x00000200
ScaleX = 1024, // 0x00000400
ScaleY = 2048, // 0x00000800
Orientation = 4096, // 0x00001000
CameraEye = 8192, // 0x00002000
CameraAt = 16384, // 0x00004000
CameraUp = 32768, // 0x00008000
CameraZn = 65536, // 0x00010000
}
}

Some files were not shown because too many files have changed in this diff Show More