mirror of
https://github.com/microsoft/terminal.git
synced 2026-07-08 17:56:28 +00:00
73 lines
2.5 KiB
Plaintext
73 lines
2.5 KiB
Plaintext
// Copyright (c) Microsoft Corporation.
|
|
// Licensed under the MIT license.
|
|
|
|
import "Extensions.idl";
|
|
import "ActionsViewModel.idl";
|
|
|
|
namespace Microsoft.Terminal.Settings.Editor
|
|
{
|
|
// Due to a XAML Compiler bug, it is hard for us to propagate an HWND into a XAML-using runtimeclass.
|
|
// To work around that, we'll only propagate the HWND (when we need to) into the settings' toplevel page
|
|
// and use IHostedInWindow to hide the implementation detail where we use IInitializeWithWindow (shobjidl_core)
|
|
// https://github.com/microsoft/microsoft-ui-xaml/issues/3331
|
|
interface IHostedInWindow
|
|
{
|
|
Boolean TryPropagateHostingWindow(IInspectable i);
|
|
UInt64 GetHostingWindow();
|
|
}
|
|
|
|
interface IInheritableViewModel
|
|
{
|
|
Boolean HasSetting(String name);
|
|
void ClearSetting(String name);
|
|
Object SettingOverrideSource(String name);
|
|
}
|
|
|
|
// This is used to pass data between pages during navigation.
|
|
runtimeclass NavigateToPageArgs
|
|
{
|
|
IHostedInWindow WindowRoot { get; };
|
|
IInspectable ViewModel { get; };
|
|
String ElementToFocus { get; };
|
|
}
|
|
|
|
enum BreadcrumbSubPage
|
|
{
|
|
None = 0,
|
|
Profile_Appearance,
|
|
Profile_UnfocusedAppearance,
|
|
Profile_Terminal,
|
|
Profile_Advanced,
|
|
ColorSchemes_Edit,
|
|
Actions_Edit,
|
|
NewTabMenu_Folder,
|
|
Extensions_Extension
|
|
};
|
|
|
|
runtimeclass Breadcrumb : Windows.Foundation.IStringable
|
|
{
|
|
IInspectable Tag;
|
|
String Label;
|
|
BreadcrumbSubPage SubPage;
|
|
}
|
|
|
|
[default_interface] runtimeclass MainPage : Windows.UI.Xaml.Controls.Page, IHostedInWindow
|
|
{
|
|
MainPage(Microsoft.Terminal.Settings.Model.CascadiaSettings settings);
|
|
|
|
void UpdateSettings(Microsoft.Terminal.Settings.Model.CascadiaSettings settings);
|
|
event Windows.Foundation.TypedEventHandler<Object, Microsoft.Terminal.Settings.Model.SettingsTarget> OpenJson;
|
|
event Windows.Foundation.TypedEventHandler<Object, Windows.Foundation.Collections.IVectorView<Microsoft.Terminal.Settings.Model.SettingsLoadWarnings> > ShowLoadWarningsDialog;
|
|
|
|
// Due to the aforementioned bug, we can't use IInitializeWithWindow _here_ either.
|
|
// Let's just smuggle the HWND in as a UInt64 :|
|
|
void SetHostingWindow(UInt64 window);
|
|
|
|
Windows.Foundation.Collections.IObservableVector<IInspectable> Breadcrumbs { get; };
|
|
ExtensionsViewModel ExtensionsVM { get; };
|
|
ActionsViewModel ActionsVM { get; };
|
|
|
|
Windows.UI.Xaml.Media.Brush BackgroundBrush { get; };
|
|
}
|
|
}
|