d749df70ed
**BE NOT AFRAID**. I know that there's 107 files in this PR, but almost all of it is just find/replacing `TerminalControl` with `Control`. This is the start of the work to move TermControl into multiple pieces, for #5000. The PR starts this work by: * Splits `TerminalControl` into separate lib and dll projects. We'll want control tests in the future, and for that, we'll need a lib. * Moves `ICoreSettings` back into the `Microsoft.Terminal.Core` namespace. We'll have other types in there soon too. * I could not tell you why this works suddenly. New VS versions? New cppwinrt version? Maybe we're just better at dealing with mdmerge bugs these days. * RENAMES `Microsoft.Terminal.TerminalControl` to `Microsoft.Terminal.Control`. This touches pretty much every file in the sln. Sorry about that (not sorry). An upcoming PR will move much of the logic in TermControl into a new `ControlCore` class that we'll add in `Microsoft.Terminal.Core`. `ControlCore` will then be unittest-able in the `UnitTests_TerminalCore`, which will help prevent regressions like #9455 ## Detailed Description of the Pull Request / Additional comments You're really gonna want to clean the sln first, then merge this into your branch, then rebuild. It's very likely that old winmds will get left behind. If you see something like ``` Error MDM2007 Cannot create type Microsoft.Terminal.TerminalControl.KeyModifiers in read-only metadata file Microsoft.Terminal.TerminalControl. ``` then that's what happened to you.
132 lines
6.5 KiB
Plaintext
132 lines
6.5 KiB
Plaintext
// Copyright (c) Microsoft Corporation.
|
|
// Licensed under the MIT license.
|
|
|
|
import "EnumEntry.idl";
|
|
import "MainPage.idl";
|
|
|
|
#include "ViewModelHelpers.idl.h"
|
|
|
|
#define OBSERVABLE_PROJECTED_PROFILE_SETTING(Type, Name) \
|
|
OBSERVABLE_PROJECTED_SETTING(Type, Name); \
|
|
Microsoft.Terminal.Settings.Model.Profile Name##OverrideSource { get; }
|
|
|
|
namespace Microsoft.Terminal.Settings.Editor
|
|
{
|
|
runtimeclass Font : Windows.Foundation.IStringable
|
|
{
|
|
String Name { get; };
|
|
String LocalizedName { get; };
|
|
}
|
|
|
|
runtimeclass ProfileViewModel : Windows.UI.Xaml.Data.INotifyPropertyChanged
|
|
{
|
|
Windows.Foundation.Collections.IObservableVector<Font> CompleteFontList { get; };
|
|
Windows.Foundation.Collections.IObservableVector<Font> MonospaceFontList { get; };
|
|
|
|
Boolean CanDeleteProfile { get; };
|
|
Boolean UsingMonospaceFont { get; };
|
|
Boolean IsBaseLayer;
|
|
Boolean UseDesktopBGImage;
|
|
Boolean UseParentProcessDirectory;
|
|
Boolean ShowAllFonts;
|
|
Boolean UseCustomStartingDirectory { get; };
|
|
Boolean BackgroundImageSettingsVisible { get; };
|
|
|
|
OBSERVABLE_PROJECTED_PROFILE_SETTING(String, Name);
|
|
PERMANENT_OBSERVABLE_PROJECTED_SETTING(Guid, Guid);
|
|
OBSERVABLE_PROJECTED_PROFILE_SETTING(String, Source);
|
|
PERMANENT_OBSERVABLE_PROJECTED_SETTING(Guid, ConnectionType);
|
|
OBSERVABLE_PROJECTED_PROFILE_SETTING(Boolean, Hidden);
|
|
OBSERVABLE_PROJECTED_PROFILE_SETTING(String, Icon);
|
|
OBSERVABLE_PROJECTED_PROFILE_SETTING(Microsoft.Terminal.Settings.Model.CloseOnExitMode, CloseOnExit);
|
|
OBSERVABLE_PROJECTED_PROFILE_SETTING(String, TabTitle);
|
|
OBSERVABLE_PROJECTED_PROFILE_SETTING(Windows.Foundation.IReference<Windows.UI.Color>, TabColor);
|
|
OBSERVABLE_PROJECTED_PROFILE_SETTING(Boolean, SuppressApplicationTitle);
|
|
OBSERVABLE_PROJECTED_PROFILE_SETTING(Boolean, UseAcrylic);
|
|
OBSERVABLE_PROJECTED_PROFILE_SETTING(Double, AcrylicOpacity);
|
|
OBSERVABLE_PROJECTED_PROFILE_SETTING(Microsoft.Terminal.Control.ScrollbarState, ScrollState);
|
|
OBSERVABLE_PROJECTED_PROFILE_SETTING(String, FontFace);
|
|
OBSERVABLE_PROJECTED_PROFILE_SETTING(Int32, FontSize);
|
|
OBSERVABLE_PROJECTED_PROFILE_SETTING(Windows.UI.Text.FontWeight, FontWeight);
|
|
OBSERVABLE_PROJECTED_PROFILE_SETTING(String, Padding);
|
|
OBSERVABLE_PROJECTED_PROFILE_SETTING(String, Commandline);
|
|
OBSERVABLE_PROJECTED_PROFILE_SETTING(String, StartingDirectory);
|
|
OBSERVABLE_PROJECTED_PROFILE_SETTING(String, BackgroundImagePath);
|
|
OBSERVABLE_PROJECTED_PROFILE_SETTING(Double, BackgroundImageOpacity);
|
|
OBSERVABLE_PROJECTED_PROFILE_SETTING(Windows.UI.Xaml.Media.Stretch, BackgroundImageStretchMode);
|
|
OBSERVABLE_PROJECTED_PROFILE_SETTING(Microsoft.Terminal.Settings.Model.ConvergedAlignment, BackgroundImageAlignment);
|
|
OBSERVABLE_PROJECTED_PROFILE_SETTING(Microsoft.Terminal.Control.TextAntialiasingMode, AntialiasingMode);
|
|
OBSERVABLE_PROJECTED_PROFILE_SETTING(Boolean, RetroTerminalEffect);
|
|
OBSERVABLE_PROJECTED_PROFILE_SETTING(Boolean, ForceFullRepaintRendering);
|
|
OBSERVABLE_PROJECTED_PROFILE_SETTING(Boolean, SoftwareRendering);
|
|
OBSERVABLE_PROJECTED_PROFILE_SETTING(String, ColorSchemeName);
|
|
OBSERVABLE_PROJECTED_PROFILE_SETTING(Windows.Foundation.IReference<Windows.UI.Color>, Foreground);
|
|
OBSERVABLE_PROJECTED_PROFILE_SETTING(Windows.Foundation.IReference<Windows.UI.Color>, Background);
|
|
OBSERVABLE_PROJECTED_PROFILE_SETTING(Windows.Foundation.IReference<Windows.UI.Color>, SelectionBackground);
|
|
OBSERVABLE_PROJECTED_PROFILE_SETTING(Windows.Foundation.IReference<Windows.UI.Color>, CursorColor);
|
|
OBSERVABLE_PROJECTED_PROFILE_SETTING(Int32, HistorySize);
|
|
OBSERVABLE_PROJECTED_PROFILE_SETTING(Boolean, SnapOnInput);
|
|
OBSERVABLE_PROJECTED_PROFILE_SETTING(Boolean, AltGrAliasing);
|
|
OBSERVABLE_PROJECTED_PROFILE_SETTING(Microsoft.Terminal.Core.CursorStyle, CursorShape);
|
|
OBSERVABLE_PROJECTED_PROFILE_SETTING(UInt32, CursorHeight);
|
|
OBSERVABLE_PROJECTED_PROFILE_SETTING(Microsoft.Terminal.Settings.Model.BellStyle, BellStyle);
|
|
}
|
|
|
|
runtimeclass DeleteProfileEventArgs
|
|
{
|
|
Guid ProfileGuid { get; };
|
|
}
|
|
|
|
enum ProfilesPivots
|
|
{
|
|
General = 0,
|
|
Appearance = 1,
|
|
Advanced = 2
|
|
};
|
|
|
|
runtimeclass ProfilePageNavigationState
|
|
{
|
|
Windows.Foundation.Collections.IMapView<String, Microsoft.Terminal.Settings.Model.ColorScheme> Schemes;
|
|
IHostedInWindow WindowRoot; // necessary to send the right HWND into the file picker dialogs.
|
|
|
|
ProfileViewModel Profile;
|
|
ProfilesPivots LastActivePivot;
|
|
|
|
event Windows.Foundation.TypedEventHandler<ProfilePageNavigationState, DeleteProfileEventArgs> DeleteProfile;
|
|
};
|
|
|
|
[default_interface] runtimeclass Profiles : Windows.UI.Xaml.Controls.Page, Windows.UI.Xaml.Data.INotifyPropertyChanged
|
|
{
|
|
Profiles();
|
|
ProfilePageNavigationState State { get; };
|
|
|
|
IInspectable CurrentCursorShape;
|
|
Boolean IsVintageCursor { get; };
|
|
Windows.Foundation.Collections.IObservableVector<Microsoft.Terminal.Settings.Editor.EnumEntry> CursorShapeList { get; };
|
|
|
|
IInspectable CurrentBackgroundImageStretchMode;
|
|
Windows.Foundation.Collections.IObservableVector<Microsoft.Terminal.Settings.Editor.EnumEntry> BackgroundImageStretchModeList { get; };
|
|
|
|
IInspectable CurrentAntiAliasingMode;
|
|
Windows.Foundation.Collections.IObservableVector<Microsoft.Terminal.Settings.Editor.EnumEntry> AntiAliasingModeList { get; };
|
|
|
|
IInspectable CurrentCloseOnExitMode;
|
|
Windows.Foundation.Collections.IObservableVector<Microsoft.Terminal.Settings.Editor.EnumEntry> CloseOnExitModeList { get; };
|
|
|
|
IInspectable CurrentBellStyle;
|
|
Windows.Foundation.Collections.IObservableVector<Microsoft.Terminal.Settings.Editor.EnumEntry> BellStyleList { get; };
|
|
|
|
IInspectable CurrentScrollState;
|
|
Windows.Foundation.Collections.IObservableVector<Microsoft.Terminal.Settings.Editor.EnumEntry> ScrollStateList { get; };
|
|
|
|
IInspectable CurrentFontWeight;
|
|
Boolean IsCustomFontWeight { get; };
|
|
Windows.Foundation.Collections.IObservableVector<Microsoft.Terminal.Settings.Editor.EnumEntry> FontWeightList { get; };
|
|
|
|
Microsoft.Terminal.Settings.Model.ColorScheme CurrentColorScheme;
|
|
Windows.Foundation.Collections.IObservableVector<Microsoft.Terminal.Settings.Model.ColorScheme> ColorSchemeList { get; };
|
|
|
|
IInspectable CurrentFontFace { get; };
|
|
}
|
|
}
|