Add UIXControls
@@ -0,0 +1,15 @@
|
|||||||
|
using System;
|
||||||
|
using System.Reflection;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
[assembly: AssemblyProduct("Microsoft (R) Windows (R) Operating System")]
|
||||||
|
[assembly: AssemblyCopyright("Copyright (c) Microsoft Corporation. All rights reserved.")]
|
||||||
|
//[assembly: AssemblyFileVersion("4.8.2345.0")]
|
||||||
|
//[assembly: AssemblyKeyFile("e:\\temp\\471135\\public.amd64fre\\internal\\strongnamekeys\\fake\\36MSApp1024.snk")]
|
||||||
|
[assembly: ComVisible(false)]
|
||||||
|
//[assembly: AssemblyDelaySign(true)]
|
||||||
|
[assembly: AssemblyTitle("UIXControls")]
|
||||||
|
[assembly: CLSCompliant(false)]
|
||||||
|
[assembly: AssemblyCompany("Microsoft Corporation")]
|
||||||
|
[assembly: AssemblyDescription("Zune Controls Library")]
|
||||||
|
//[assembly: AssemblyVersion("4.8.0.0")]
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
// Decompiled with JetBrains decompiler
|
||||||
|
// Type: UIXControls.CodeDialogManager
|
||||||
|
// Assembly: UIXControls, Version=4.8.0.0, Culture=neutral, PublicKeyToken=ddd0da4d3e678217
|
||||||
|
// MVID: 78800EA5-2757-404C-BA30-C33FCFC2852A
|
||||||
|
// Assembly location: C:\Program Files\Zune\UIXcontrols.dll
|
||||||
|
|
||||||
|
using Microsoft.Iris;
|
||||||
|
using System;
|
||||||
|
using System.Diagnostics.CodeAnalysis;
|
||||||
|
|
||||||
|
#nullable disable
|
||||||
|
namespace UIXControls
|
||||||
|
{
|
||||||
|
public class CodeDialogManager : ModelItem
|
||||||
|
{
|
||||||
|
private ArrayListDataSet _pendingCodeDialogs;
|
||||||
|
private static CodeDialogManager s_instance = new CodeDialogManager();
|
||||||
|
|
||||||
|
private CodeDialogManager() => _pendingCodeDialogs = new ArrayListDataSet();
|
||||||
|
|
||||||
|
public static CodeDialogManager Instance => s_instance;
|
||||||
|
|
||||||
|
public ArrayListDataSet PendingCodeDialogs => _pendingCodeDialogs;
|
||||||
|
|
||||||
|
internal void ShowCodeDialog(DialogHelper dialog)
|
||||||
|
{
|
||||||
|
if (_pendingCodeDialogs.Contains(dialog))
|
||||||
|
return;
|
||||||
|
_pendingCodeDialogs.Add(dialog);
|
||||||
|
}
|
||||||
|
|
||||||
|
public event EventHandler WindowCloseRequested;
|
||||||
|
|
||||||
|
public event EventHandler WindowCloseNotBlocked;
|
||||||
|
|
||||||
|
[SuppressMessage("Microsoft.Security", "CA2109", Justification = "FxCop misfire: This method IS referred to in other assemblies.")]
|
||||||
|
public void OnWindowCloseRequested(object sender, WindowCloseRequestedEventArgs args)
|
||||||
|
{
|
||||||
|
args.BlockCloseRequest();
|
||||||
|
if (WindowCloseRequested != null)
|
||||||
|
WindowCloseRequested(this, EventArgs.Empty);
|
||||||
|
FirePropertyChanged("WindowCloseRequested");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void WindowCloseWasNotBlocked()
|
||||||
|
{
|
||||||
|
if (WindowCloseNotBlocked != null)
|
||||||
|
WindowCloseNotBlocked(this, EventArgs.Empty);
|
||||||
|
FirePropertyChanged("WindowCloseNotBlocked");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,77 @@
|
|||||||
|
// Decompiled with JetBrains decompiler
|
||||||
|
// Type: UIXControls.DialogHelper
|
||||||
|
// Assembly: UIXControls, Version=4.8.0.0, Culture=neutral, PublicKeyToken=ddd0da4d3e678217
|
||||||
|
// MVID: 78800EA5-2757-404C-BA30-C33FCFC2852A
|
||||||
|
// Assembly location: C:\Program Files\Zune\UIXcontrols.dll
|
||||||
|
|
||||||
|
using Microsoft.Iris;
|
||||||
|
|
||||||
|
#nullable disable
|
||||||
|
namespace UIXControls
|
||||||
|
{
|
||||||
|
public class DialogHelper : ModelItem
|
||||||
|
{
|
||||||
|
private static string s_dialogCancel;
|
||||||
|
private static string s_dialogYes;
|
||||||
|
private static string s_dialogNo;
|
||||||
|
private static string s_dialogOk;
|
||||||
|
private string _contentUI;
|
||||||
|
private Command _cancel;
|
||||||
|
private bool _wouldLikeToBeHidden;
|
||||||
|
|
||||||
|
public static string DialogCancel
|
||||||
|
{
|
||||||
|
get => s_dialogCancel;
|
||||||
|
set => s_dialogCancel = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string DialogYes
|
||||||
|
{
|
||||||
|
get => s_dialogYes;
|
||||||
|
set => s_dialogYes = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string DialogNo
|
||||||
|
{
|
||||||
|
get => s_dialogNo;
|
||||||
|
set => s_dialogNo = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string DialogOk
|
||||||
|
{
|
||||||
|
get => s_dialogOk;
|
||||||
|
set => s_dialogOk = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DialogHelper() : this(null)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public DialogHelper(string contentUI)
|
||||||
|
{
|
||||||
|
_contentUI = contentUI;
|
||||||
|
_cancel = new Command();
|
||||||
|
_cancel.Description = DialogCancel;
|
||||||
|
}
|
||||||
|
|
||||||
|
public string ContentUI => _contentUI;
|
||||||
|
|
||||||
|
public Command Cancel => _cancel;
|
||||||
|
|
||||||
|
public bool WouldLikeToBeHidden
|
||||||
|
{
|
||||||
|
get => _wouldLikeToBeHidden;
|
||||||
|
private set
|
||||||
|
{
|
||||||
|
if (_wouldLikeToBeHidden == value)
|
||||||
|
return;
|
||||||
|
_wouldLikeToBeHidden = value;
|
||||||
|
FirePropertyChanged(nameof(WouldLikeToBeHidden));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Hide() => WouldLikeToBeHidden = true;
|
||||||
|
|
||||||
|
public void Show() => CodeDialogManager.Instance.ShowCodeDialog(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
// Decompiled with JetBrains decompiler
|
||||||
|
// Type: UIXControls.Helpers
|
||||||
|
// Assembly: UIXControls, Version=4.8.0.0, Culture=neutral, PublicKeyToken=ddd0da4d3e678217
|
||||||
|
// MVID: 78800EA5-2757-404C-BA30-C33FCFC2852A
|
||||||
|
// Assembly location: C:\Program Files\Zune\UIXcontrols.dll
|
||||||
|
|
||||||
|
using Microsoft.Iris;
|
||||||
|
|
||||||
|
#nullable disable
|
||||||
|
namespace UIXControls
|
||||||
|
{
|
||||||
|
public static class Helpers
|
||||||
|
{
|
||||||
|
public static bool IsModelItemDisposed(ModelItem item) => item.IsDisposed;
|
||||||
|
|
||||||
|
public static void AddUIXControlsClrRedirect()
|
||||||
|
{
|
||||||
|
Application.AddImportRedirect("res://UIXControls!", "clr-res://UIXControls!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
// Decompiled with JetBrains decompiler
|
||||||
|
// Type: UIXControls.MenuItemCommand
|
||||||
|
// Assembly: UIXControls, Version=4.8.0.0, Culture=neutral, PublicKeyToken=ddd0da4d3e678217
|
||||||
|
// MVID: 78800EA5-2757-404C-BA30-C33FCFC2852A
|
||||||
|
// Assembly location: C:\Program Files\Zune\UIXcontrols.dll
|
||||||
|
|
||||||
|
using Microsoft.Iris;
|
||||||
|
using System;
|
||||||
|
|
||||||
|
#nullable disable
|
||||||
|
namespace UIXControls
|
||||||
|
{
|
||||||
|
public class MenuItemCommand : Command
|
||||||
|
{
|
||||||
|
private bool _hidden;
|
||||||
|
|
||||||
|
public MenuItemCommand()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public MenuItemCommand(string description)
|
||||||
|
: base(null, description, null)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool Hidden
|
||||||
|
{
|
||||||
|
get => _hidden;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (_hidden == value)
|
||||||
|
return;
|
||||||
|
_hidden = value;
|
||||||
|
FirePropertyChanged(nameof(Hidden));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public virtual bool ShouldHide() => Hidden;
|
||||||
|
|
||||||
|
public override string ToString()
|
||||||
|
{
|
||||||
|
return $"{GetType().Name}:\"{Description}\", Available = {Available}, Hidden = {Hidden}";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,263 @@
|
|||||||
|
// Decompiled with JetBrains decompiler
|
||||||
|
// Type: UIXControls.MessageBox
|
||||||
|
// Assembly: UIXControls, Version=4.8.0.0, Culture=neutral, PublicKeyToken=ddd0da4d3e678217
|
||||||
|
// MVID: 78800EA5-2757-404C-BA30-C33FCFC2852A
|
||||||
|
// Assembly location: C:\Program Files\Zune\UIXcontrols.dll
|
||||||
|
|
||||||
|
using Microsoft.Iris;
|
||||||
|
using System;
|
||||||
|
|
||||||
|
#nullable disable
|
||||||
|
namespace UIXControls
|
||||||
|
{
|
||||||
|
public class MessageBox : DialogHelper
|
||||||
|
{
|
||||||
|
private string _title;
|
||||||
|
private string _message;
|
||||||
|
private bool _isOKDefault;
|
||||||
|
private Command _okCommand;
|
||||||
|
private Command _yesCommand;
|
||||||
|
private Command _noCommand;
|
||||||
|
private BooleanChoice _doNotAskMeAgain;
|
||||||
|
|
||||||
|
public string Title
|
||||||
|
{
|
||||||
|
get => _title;
|
||||||
|
set => _title = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public string Message
|
||||||
|
{
|
||||||
|
get => _message;
|
||||||
|
set => _message = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Command Yes => _yesCommand;
|
||||||
|
|
||||||
|
public Command No => _noCommand;
|
||||||
|
|
||||||
|
public Command Ok => _okCommand;
|
||||||
|
|
||||||
|
public BooleanChoice DoNotAskMeAgain => _doNotAskMeAgain;
|
||||||
|
|
||||||
|
public bool IsOKDefault => _isOKDefault;
|
||||||
|
|
||||||
|
public static MessageBox Show(string title, string message, EventHandler okCommandHandler)
|
||||||
|
{
|
||||||
|
MessageBox dialog = new MessageBox(title, message, okCommandHandler, null, null, null, null);
|
||||||
|
ShowCodeDialog(dialog);
|
||||||
|
return dialog;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static MessageBox Show(
|
||||||
|
string title,
|
||||||
|
string message,
|
||||||
|
EventHandler yesCommandHandler,
|
||||||
|
EventHandler noCommandHandler)
|
||||||
|
{
|
||||||
|
MessageBox dialog = new MessageBox(title, message, null, yesCommandHandler, noCommandHandler, null, null);
|
||||||
|
ShowCodeDialog(dialog);
|
||||||
|
return dialog;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static MessageBox Show(
|
||||||
|
string title,
|
||||||
|
string message,
|
||||||
|
EventHandler okCommandHandler,
|
||||||
|
EventHandler yesCommandHandler,
|
||||||
|
EventHandler noCommandHandler,
|
||||||
|
EventHandler cancelCommandHandler)
|
||||||
|
{
|
||||||
|
MessageBox dialog = new MessageBox(title, message, okCommandHandler, yesCommandHandler, noCommandHandler, cancelCommandHandler, null);
|
||||||
|
ShowCodeDialog(dialog);
|
||||||
|
return dialog;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static MessageBox Show(
|
||||||
|
string title,
|
||||||
|
string message,
|
||||||
|
EventHandler okCommandHandler,
|
||||||
|
EventHandler yesCommandHandler,
|
||||||
|
EventHandler noCommandHandler,
|
||||||
|
EventHandler cancelCommandHandler,
|
||||||
|
BooleanChoice doNotAskMeAgain)
|
||||||
|
{
|
||||||
|
MessageBox dialog = new MessageBox(title, message, okCommandHandler, yesCommandHandler, noCommandHandler, cancelCommandHandler, doNotAskMeAgain);
|
||||||
|
ShowCodeDialog(dialog);
|
||||||
|
return dialog;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static MessageBox Show(
|
||||||
|
string title,
|
||||||
|
string message,
|
||||||
|
Command yesCommand,
|
||||||
|
Command noCommand,
|
||||||
|
BooleanChoice doNotAskMeAgain)
|
||||||
|
{
|
||||||
|
MessageBox dialog = new MessageBox(title, message, null, false, null, yesCommand, noCommand, null, doNotAskMeAgain);
|
||||||
|
ShowCodeDialog(dialog);
|
||||||
|
return dialog;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static MessageBox ShowYesNo(string title, string message, Command yesCommand)
|
||||||
|
{
|
||||||
|
MessageBox dialog = new MessageBox(title, message, DialogNo, false, null, yesCommand, null, null, null);
|
||||||
|
ShowCodeDialog(dialog);
|
||||||
|
return dialog;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static MessageBox Show(
|
||||||
|
string title,
|
||||||
|
string message,
|
||||||
|
Command okCommand,
|
||||||
|
BooleanChoice doNotAskMeAgain)
|
||||||
|
{
|
||||||
|
MessageBox dialog = new MessageBox(title, message, null, false, okCommand, null, null, null, doNotAskMeAgain);
|
||||||
|
ShowCodeDialog(dialog);
|
||||||
|
return dialog;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static MessageBox Show(
|
||||||
|
string title,
|
||||||
|
string message,
|
||||||
|
Command okCommand,
|
||||||
|
string cancelText,
|
||||||
|
bool isOKDefault)
|
||||||
|
{
|
||||||
|
MessageBox dialog = new MessageBox(title, message, cancelText, isOKDefault, okCommand, null, null, null, null);
|
||||||
|
ShowCodeDialog(dialog);
|
||||||
|
return dialog;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static MessageBox Show(
|
||||||
|
string title,
|
||||||
|
string message,
|
||||||
|
Command okCommand,
|
||||||
|
string cancelText,
|
||||||
|
EventHandler cancelCommand,
|
||||||
|
bool isOKDefault)
|
||||||
|
{
|
||||||
|
MessageBox dialog = new MessageBox(title, message, cancelText, isOKDefault, okCommand, null, null, cancelCommand, null);
|
||||||
|
ShowCodeDialog(dialog);
|
||||||
|
return dialog;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static MessageBox Show(
|
||||||
|
string title,
|
||||||
|
string message,
|
||||||
|
string cancelText,
|
||||||
|
bool isOKDefault,
|
||||||
|
Command okCommand,
|
||||||
|
Command yesCommand,
|
||||||
|
Command noCommand,
|
||||||
|
EventHandler cancelCommand,
|
||||||
|
BooleanChoice doNotAskMeAgain)
|
||||||
|
{
|
||||||
|
MessageBox dialog = new MessageBox(title, message, cancelText, isOKDefault, okCommand, yesCommand, noCommand, cancelCommand, doNotAskMeAgain);
|
||||||
|
ShowCodeDialog(dialog);
|
||||||
|
return dialog;
|
||||||
|
}
|
||||||
|
|
||||||
|
public MessageBox()
|
||||||
|
: this(null, null)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
protected MessageBox(string title, string message)
|
||||||
|
: base("res://UIXControls!Dialog.uix#MessageBoxContentUI")
|
||||||
|
{
|
||||||
|
_title = title;
|
||||||
|
_message = message;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected MessageBox(
|
||||||
|
string title,
|
||||||
|
string message,
|
||||||
|
EventHandler okCommandHandler,
|
||||||
|
EventHandler yesCommandHandler,
|
||||||
|
EventHandler noCommandHandler,
|
||||||
|
EventHandler cancelCommandHandler,
|
||||||
|
BooleanChoice doNotAskMeAgain)
|
||||||
|
: this(title, message)
|
||||||
|
{
|
||||||
|
_doNotAskMeAgain = doNotAskMeAgain;
|
||||||
|
EventHandler eventHandler = new EventHandler(OnInvoked);
|
||||||
|
if (okCommandHandler == null && noCommandHandler == null)
|
||||||
|
{
|
||||||
|
if (yesCommandHandler == null)
|
||||||
|
{
|
||||||
|
Cancel.Description = DialogOk;
|
||||||
|
Cancel.Invoked += eventHandler;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
Cancel.Description = DialogNo;
|
||||||
|
}
|
||||||
|
if (okCommandHandler != null)
|
||||||
|
{
|
||||||
|
_okCommand = new Command(this, DialogOk, okCommandHandler);
|
||||||
|
_okCommand.Invoked += eventHandler;
|
||||||
|
}
|
||||||
|
if (yesCommandHandler != null)
|
||||||
|
{
|
||||||
|
_yesCommand = new Command(this, DialogYes, yesCommandHandler);
|
||||||
|
_yesCommand.Invoked += eventHandler;
|
||||||
|
}
|
||||||
|
if (noCommandHandler != null)
|
||||||
|
{
|
||||||
|
_noCommand = new Command(this, DialogNo, noCommandHandler);
|
||||||
|
_noCommand.Invoked += eventHandler;
|
||||||
|
}
|
||||||
|
if (cancelCommandHandler == null)
|
||||||
|
return;
|
||||||
|
Cancel.Invoked += cancelCommandHandler;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected MessageBox(
|
||||||
|
string title,
|
||||||
|
string message,
|
||||||
|
string cancelText,
|
||||||
|
bool isOKDefault,
|
||||||
|
Command okCommand,
|
||||||
|
Command yesCommand,
|
||||||
|
Command noCommand,
|
||||||
|
EventHandler cancelHandler,
|
||||||
|
BooleanChoice doNotAskMeAgain)
|
||||||
|
: this(title, message)
|
||||||
|
{
|
||||||
|
_doNotAskMeAgain = doNotAskMeAgain;
|
||||||
|
EventHandler eventHandler = new EventHandler(OnInvoked);
|
||||||
|
if (okCommand == null && yesCommand == null && noCommand == null && cancelHandler == null)
|
||||||
|
{
|
||||||
|
Cancel.Description = DialogOk;
|
||||||
|
Cancel.Invoked += eventHandler;
|
||||||
|
}
|
||||||
|
if (okCommand != null)
|
||||||
|
{
|
||||||
|
_okCommand = okCommand;
|
||||||
|
_okCommand.Invoked += eventHandler;
|
||||||
|
}
|
||||||
|
if (yesCommand != null)
|
||||||
|
{
|
||||||
|
_yesCommand = yesCommand;
|
||||||
|
_yesCommand.Invoked += eventHandler;
|
||||||
|
}
|
||||||
|
if (noCommand != null)
|
||||||
|
{
|
||||||
|
_noCommand = noCommand;
|
||||||
|
_noCommand.Invoked += eventHandler;
|
||||||
|
}
|
||||||
|
if (cancelHandler != null)
|
||||||
|
Cancel.Invoked += cancelHandler;
|
||||||
|
if (!string.IsNullOrEmpty(cancelText))
|
||||||
|
Cancel.Description = cancelText;
|
||||||
|
_isOKDefault = isOKDefault;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnInvoked(object sender, EventArgs args) => Hide();
|
||||||
|
|
||||||
|
protected static void ShowCodeDialog(MessageBox dialog)
|
||||||
|
{
|
||||||
|
CodeDialogManager.Instance.ShowCodeDialog(dialog);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
// Decompiled with JetBrains decompiler
|
||||||
|
// Type: UIXControls.OSInfo
|
||||||
|
// Assembly: UIXControls, Version=4.8.0.0, Culture=neutral, PublicKeyToken=ddd0da4d3e678217
|
||||||
|
// MVID: 78800EA5-2757-404C-BA30-C33FCFC2852A
|
||||||
|
// Assembly location: C:\Program Files\Zune\UIXcontrols.dll
|
||||||
|
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
#nullable disable
|
||||||
|
namespace UIXControls
|
||||||
|
{
|
||||||
|
public static class OSInfo
|
||||||
|
{
|
||||||
|
private const uint SPI_GETKEYBOARDSPEED = 10;
|
||||||
|
private const uint SPI_GETKEYBOARDDELAY = 22;
|
||||||
|
private static int s_defaultKeyDelay = GetDefaultKeyDelay();
|
||||||
|
private static int s_defaultKeyRepeat = GetDefaultKeyRepeat();
|
||||||
|
|
||||||
|
public static bool IsCapsLockOn() => (GetKeyState(20U) & 1) != 0;
|
||||||
|
|
||||||
|
[DllImport("user32.dll")]
|
||||||
|
private static extern ushort GetKeyState(uint nVirtKey);
|
||||||
|
|
||||||
|
public static int DefaultKeyDelay => s_defaultKeyDelay;
|
||||||
|
|
||||||
|
public static int DefaultKeyRepeat => s_defaultKeyRepeat;
|
||||||
|
|
||||||
|
private static int GetDefaultKeyDelay()
|
||||||
|
{
|
||||||
|
int pParam;
|
||||||
|
if (!SystemParametersInfo(SPI_GETKEYBOARDDELAY, 0U, out pParam, 0))
|
||||||
|
pParam = 1;
|
||||||
|
return (pParam + 1) * 250;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static int GetDefaultKeyRepeat()
|
||||||
|
{
|
||||||
|
if (!SystemParametersInfo(SPI_GETKEYBOARDSPEED, 0U, out int pParam, 0))
|
||||||
|
pParam = 1;
|
||||||
|
return 31000 / (62 + 28 * pParam);
|
||||||
|
}
|
||||||
|
|
||||||
|
[DllImport("user32.dll", SetLastError = true)]
|
||||||
|
private static extern bool SystemParametersInfo(
|
||||||
|
uint uiAction,
|
||||||
|
uint uiParam,
|
||||||
|
out int pParam,
|
||||||
|
int nWinIni);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,182 @@
|
|||||||
|
// Decompiled with JetBrains decompiler
|
||||||
|
// Type: UIXControls.RegistryHelper
|
||||||
|
// Assembly: UIXControls, Version=4.8.0.0, Culture=neutral, PublicKeyToken=ddd0da4d3e678217
|
||||||
|
// MVID: 78800EA5-2757-404C-BA30-C33FCFC2852A
|
||||||
|
// Assembly location: C:\Program Files\Zune\UIXcontrols.dll
|
||||||
|
|
||||||
|
using Microsoft.Win32;
|
||||||
|
using System;
|
||||||
|
using System.Collections;
|
||||||
|
using System.Globalization;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
#nullable disable
|
||||||
|
namespace UIXControls
|
||||||
|
{
|
||||||
|
public class RegistryHelper
|
||||||
|
{
|
||||||
|
private static string s_settingsRegistryPath;
|
||||||
|
|
||||||
|
public static string SettingsRegistryPath
|
||||||
|
{
|
||||||
|
get => s_settingsRegistryPath;
|
||||||
|
set => s_settingsRegistryPath = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void SaveString(string keyName, string value)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(SettingsRegistryPath))
|
||||||
|
return;
|
||||||
|
Registry.SetValue(SettingsRegistryPath, keyName, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string GetString(string keyName, string defaultValue)
|
||||||
|
{
|
||||||
|
string str = null;
|
||||||
|
if (!string.IsNullOrEmpty(SettingsRegistryPath))
|
||||||
|
str = Registry.GetValue(SettingsRegistryPath, keyName, defaultValue) as string;
|
||||||
|
return str ?? defaultValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void SaveInt(string keyName, int value)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(SettingsRegistryPath))
|
||||||
|
return;
|
||||||
|
Registry.SetValue(SettingsRegistryPath, keyName, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int GetInt(string keyName, int min, int max, int defaultValue)
|
||||||
|
{
|
||||||
|
return string.IsNullOrEmpty(keyName) || string.IsNullOrEmpty(SettingsRegistryPath) || !(Registry.GetValue(SettingsRegistryPath, keyName, defaultValue) is int num) || num < min || num > max ? defaultValue : num;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void SaveList(string keyName, IList values, RegistryHelper.ToStringer toString)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(SettingsRegistryPath))
|
||||||
|
return;
|
||||||
|
StringBuilder stringBuilder = new StringBuilder();
|
||||||
|
foreach (object obj in (IEnumerable)values)
|
||||||
|
{
|
||||||
|
if (stringBuilder.Length > 0)
|
||||||
|
stringBuilder.Append(';');
|
||||||
|
stringBuilder.Append(toString(obj));
|
||||||
|
}
|
||||||
|
Registry.SetValue(SettingsRegistryPath, keyName, stringBuilder.ToString());
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void SaveIntList(string keyName, IList values)
|
||||||
|
{
|
||||||
|
SaveList(keyName, values, value => ((int)value).ToString(NumberFormatInfo.InvariantInfo));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void SaveFloatList(string keyName, IList values)
|
||||||
|
{
|
||||||
|
SaveList(keyName, values, value => ((float)value).ToString(NumberFormatInfo.InvariantInfo));
|
||||||
|
}
|
||||||
|
|
||||||
|
private static IList GetList(
|
||||||
|
string keyName,
|
||||||
|
int expectedCount,
|
||||||
|
RegistryHelper.TryParser tryParse)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(SettingsRegistryPath))
|
||||||
|
return null;
|
||||||
|
string str = Registry.GetValue(SettingsRegistryPath, keyName, null) as string;
|
||||||
|
if (string.IsNullOrEmpty(str))
|
||||||
|
return null;
|
||||||
|
string[] strArray = str.Split(';');
|
||||||
|
if (strArray.Length != expectedCount)
|
||||||
|
return null;
|
||||||
|
ArrayList list = new ArrayList(expectedCount);
|
||||||
|
for (int index = 0; index < expectedCount; ++index)
|
||||||
|
{
|
||||||
|
object obj;
|
||||||
|
if (!tryParse(strArray[index], out obj))
|
||||||
|
return null;
|
||||||
|
list.Add(obj);
|
||||||
|
}
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static IList GetIntList(string keyName, int expectedCount)
|
||||||
|
{
|
||||||
|
return GetList(keyName, expectedCount, (string s, out object value) =>
|
||||||
|
{
|
||||||
|
int result;
|
||||||
|
bool intList = int.TryParse(s, NumberStyles.Integer, NumberFormatInfo.InvariantInfo, out result);
|
||||||
|
value = result;
|
||||||
|
return intList;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public static IList GetPositiveIntList(string keyName, int expectedCount)
|
||||||
|
{
|
||||||
|
IList positiveIntList = GetIntList(keyName, expectedCount);
|
||||||
|
if (positiveIntList != null)
|
||||||
|
{
|
||||||
|
foreach (int num in (IEnumerable)positiveIntList)
|
||||||
|
{
|
||||||
|
if (num <= 0)
|
||||||
|
{
|
||||||
|
positiveIntList = null;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return positiveIntList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static IList GetReorderedIntList(string keyName, int expectedCount)
|
||||||
|
{
|
||||||
|
IList reorderedIntList = GetIntList(keyName, expectedCount);
|
||||||
|
if (reorderedIntList != null)
|
||||||
|
{
|
||||||
|
BitArray bitArray = new BitArray(expectedCount);
|
||||||
|
foreach (int index in (IEnumerable)reorderedIntList)
|
||||||
|
{
|
||||||
|
if (index < 0 || index >= expectedCount || bitArray[index])
|
||||||
|
{
|
||||||
|
reorderedIntList = null;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
bitArray[index] = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return reorderedIntList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static IList GetFloatList(string keyName, int expectedCount)
|
||||||
|
{
|
||||||
|
return GetList(keyName, expectedCount, (string s, out object value) =>
|
||||||
|
{
|
||||||
|
float result;
|
||||||
|
bool floatList = float.TryParse(s, NumberStyles.Float, NumberFormatInfo.InvariantInfo, out result);
|
||||||
|
value = result;
|
||||||
|
return floatList;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public static IList GetPositionList(string keyName, int expectedCount)
|
||||||
|
{
|
||||||
|
IList positionList = GetFloatList(keyName, expectedCount);
|
||||||
|
if (positionList != null)
|
||||||
|
{
|
||||||
|
float num1 = 0.0f;
|
||||||
|
foreach (float num2 in (IEnumerable)positionList)
|
||||||
|
{
|
||||||
|
if ((double)num2 < (double)num1 || (double)num2 > 1.0)
|
||||||
|
{
|
||||||
|
positionList = null;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
num1 = num2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return positionList;
|
||||||
|
}
|
||||||
|
|
||||||
|
private delegate string ToStringer(object value);
|
||||||
|
|
||||||
|
private delegate bool TryParser(string s, out object value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
After Width: | Height: | Size: 354 B |
|
After Width: | Height: | Size: 365 B |
|
After Width: | Height: | Size: 372 B |
|
After Width: | Height: | Size: 370 B |
|
After Width: | Height: | Size: 525 B |
|
After Width: | Height: | Size: 514 B |
|
After Width: | Height: | Size: 381 B |
|
After Width: | Height: | Size: 399 B |
|
After Width: | Height: | Size: 397 B |
|
After Width: | Height: | Size: 401 B |