PowerToys/src/core/Microsoft.PowerToys.Settings.UI/Views/ShellPage.xaml.cs

86 lines
2.8 KiB
C#
Raw Normal View History

2020-04-08 15:19:00 +08:00
// Copyright (c) Microsoft Corporation
// The Microsoft Corporation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
using Microsoft.PowerToys.Settings.UI.ViewModels;
using Windows.UI.Xaml.Controls;
2020-03-12 01:43:32 +08:00
namespace Microsoft.PowerToys.Settings.UI.Views
{
/// <summary>
/// Root page.
/// </summary>
2020-03-12 01:43:32 +08:00
public sealed partial class ShellPage : UserControl
{
/// <summary>
/// Delcaration for the ipc callback function.
/// </summary>
/// <param name="msg">message.</param>
public delegate void IPCMessageCallback(string msg);
/// <summary>
/// Gets or sets a shell handler to be used to update contents of the shell dynamically from page within the frame.
/// </summary>
public static ShellPage ShellHandler { get; set; }
2020-03-12 01:43:32 +08:00
/// <summary>
/// Gets or sets iPC default callback function.
/// </summary>
public static IPCMessageCallback DefaultSndMSGCallback { get; set; }
/// <summary>
/// Gets or sets iPC callback function for restart as admin.
/// </summary>
public static IPCMessageCallback SndRestartAsAdminMsgCallback { get; set; }
/// <summary>
/// Gets view model.
/// </summary>
public ShellViewModel ViewModel { get; } = new ShellViewModel();
public static bool IsElevated { get; set; }
/// <summary>
/// Initializes a new instance of the <see cref="ShellPage"/> class.
/// Shell page constructor.
/// </summary>
2020-03-12 01:43:32 +08:00
public ShellPage()
{
InitializeComponent();
DataContext = ViewModel;
ShellHandler = this;
ViewModel.Initialize(shellFrame, navigationView, KeyboardAccelerators);
shellFrame.Navigate(typeof(GeneralPage));
}
/// <summary>
/// Set Default IPC Message callback function.
/// </summary>
/// <param name="implmentation">delegate function implementation.</param>
public void SetDefaultSndMessageCallback(IPCMessageCallback implmentation)
{
DefaultSndMSGCallback = implmentation;
}
/// <summary>
/// Set restart as admin IPC callback function.
/// </summary>
/// <param name="implmentation">delegate function implementation.</param>
public void SetRestartAdminSndMessageCallback(IPCMessageCallback implmentation)
{
SndRestartAsAdminMsgCallback = implmentation;
}
public void SetElevationStatus(bool isElevated)
{
IsElevated = isElevated;
}
public void Refresh()
{
shellFrame.Navigate(typeof(GeneralPage));
}
2020-03-12 01:43:32 +08:00
}
}