// Copyright (c) Microsoft Corporation. // Licensed under the MIT license. import "ICoreState.idl"; import "IControlSettings.idl"; import "EventArgs.idl"; namespace Microsoft.Terminal.Control { // This is a mirror of // ::Microsoft::Console::VirtualTerminal::TerminalInput::MouseButtonState, // but projectable. // !! LOAD BEARING !! If you make this a struct with Booleans (like they // make the most sense as), then the app will crash trying to toss one of // these across the process boundary. I haven't the damndest idea why. [flags] enum MouseButtonState { IsLeftButtonDown = 0x1, IsMiddleButtonDown = 0x2, IsRightButtonDown = 0x4 }; enum ClearBufferType { Screen, Scrollback, All }; [default_interface] runtimeclass ControlCore : ICoreState { ControlCore(IControlSettings settings, Microsoft.Terminal.TerminalConnection.ITerminalConnection connection); Boolean Initialize(Double actualWidth, Double actualHeight, Double compositionScale); void UpdateSettings(IControlSettings settings); void UpdateAppearance(IControlAppearance appearance); UInt64 SwapChainHandle { get; }; Windows.Foundation.Size FontSize { get; }; String FontFaceName { get; }; UInt16 FontWeight { get; }; Boolean TrySendKeyEvent(Int16 vkey, Int16 scanCode, Microsoft.Terminal.Core.ControlKeyStates modifiers, Boolean keyDown); Boolean SendCharEvent(Char ch, Int16 scanCode, Microsoft.Terminal.Core.ControlKeyStates modifiers); void SendInput(String text); void PasteText(String text); void ClearBuffer(ClearBufferType clearType); void SetHoveredCell(Microsoft.Terminal.Core.Point terminalPosition); void ClearHoveredCell(); void ResetFontSize(); void AdjustFontSize(Int32 fontSizeDelta); void SizeChanged(Double width, Double height); void ScaleChanged(Double scale); void ToggleShaderEffects(); void ToggleReadOnlyMode(); Microsoft.Terminal.Core.Point CursorPosition { get; }; void ResumeRendering(); void BlinkAttributeTick(); void UpdatePatternLocations(); void Search(String text, Boolean goForward, Boolean caseSensitive); void SetBackgroundOpacity(Double opacity); Microsoft.Terminal.Core.Color BackgroundColor { get; }; Boolean HasSelection { get; }; IVector SelectedText(Boolean trimTrailingWhitespace); String HoveredUriText { get; }; Windows.Foundation.IReference HoveredCell { get; }; void Close(); void BlinkCursor(); Boolean IsInReadOnlyMode { get; }; Boolean CursorOn; void EnablePainting(); String ReadEntireBuffer(); event FontSizeChangedEventArgs FontSizeChanged; event Windows.Foundation.TypedEventHandler CopyToClipboard; event Windows.Foundation.TypedEventHandler TitleChanged; event Windows.Foundation.TypedEventHandler WarningBell; event Windows.Foundation.TypedEventHandler TabColorChanged; event Windows.Foundation.TypedEventHandler BackgroundColorChanged; event Windows.Foundation.TypedEventHandler ScrollPositionChanged; event Windows.Foundation.TypedEventHandler CursorPositionChanged; event Windows.Foundation.TypedEventHandler TaskbarProgressChanged; event Windows.Foundation.TypedEventHandler ConnectionStateChanged; event Windows.Foundation.TypedEventHandler HoveredHyperlinkChanged; event Windows.Foundation.TypedEventHandler RendererEnteredErrorState; event Windows.Foundation.TypedEventHandler SwapChainChanged; event Windows.Foundation.TypedEventHandler RendererWarning; event Windows.Foundation.TypedEventHandler RaiseNotice; event Windows.Foundation.TypedEventHandler TransparencyChanged; event Windows.Foundation.TypedEventHandler ReceivedOutput; }; }