// Copyright (c) Microsoft Corporation. // Licensed under the MIT license. namespace Microsoft.Terminal.Core { enum CursorStyle { Vintage, Bar, Underscore, DoubleUnderscore, FilledBox, EmptyBox }; // TerminalCore declares its own Color struct to avoid depending // on Windows.UI.Color and to avoid passing around unclothed uint32s. // It is supported by til::color for conversions in and out of WinRT land. struct Color { UInt8 R; UInt8 G; UInt8 B; UInt8 A; }; // TerminalCore declares its own Color struct to avoid depending on // Windows.UI. Windows.Foundation.Point also exists, but it's composed of // floating-point coordinates, when we almost always need integer coordinates. // It is supported by til::point for conversions in and out of WinRT land. struct Point { Int32 X; Int32 Y; }; // Same thing here, but with padding. Can't use Windows.UI.Thickness, so // we'll declare our own. struct Padding { Double Left; Double Top; Double Right; Double Bottom; }; // This is a projection of Microsoft::Terminal::Core::ControlKeyStates, // for conversions in and out of WinRT land. struct ControlKeyStates { UInt32 Value; }; declare { // Forward declare this parameterized specialization so that it lives // in TerminalCore instead of being flung to the winds of all IDL dependents. interface Windows.Foundation.IReference; interface Windows.Foundation.IReference; } interface ICoreAppearance { Microsoft.Terminal.Core.Color DefaultForeground; Microsoft.Terminal.Core.Color DefaultBackground; Microsoft.Terminal.Core.Color GetColorTableEntry(Int32 index); Microsoft.Terminal.Core.Color CursorColor; CursorStyle CursorShape; UInt32 CursorHeight; }; }