mirror of
https://github.com/ZuneDev/ZuneShell.dll.git
synced 2026-07-27 13:11:51 -07:00
Add decompiled projects for UIX and UIXControls
This commit is contained in:
+1
-1
@@ -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)]
|
||||||
|
|||||||
@@ -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
@@ -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
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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
Reference in New Issue
Block a user