// Copyright (c) Microsoft Corporation. // Licensed under the MIT license. namespace Microsoft.Terminal.Remoting { runtimeclass CommandlineArgs { CommandlineArgs(); CommandlineArgs(String[] args, String cwd); String[] Commandline { get; set; }; String CurrentDirectory(); }; runtimeclass RenameRequestArgs { RenameRequestArgs(String newName); String NewName { get; }; Boolean Succeeded; }; runtimeclass WindowActivatedArgs { WindowActivatedArgs(UInt64 peasantID, Guid desktopID, Windows.Foundation.DateTime activatedTime); WindowActivatedArgs(UInt64 peasantID, UInt64 hwnd, Guid desktopID, Windows.Foundation.DateTime activatedTime); UInt64 PeasantID { get; }; UInt64 Hwnd { get; }; Guid DesktopID { get; }; Windows.Foundation.DateTime ActivatedTime { get; }; }; [default_interface] runtimeclass GetWindowLayoutArgs { GetWindowLayoutArgs(); String WindowLayoutJson; Windows.Foundation.IAsyncOperation WindowLayoutJsonAsync; } enum MonitorBehavior { InPlace, ToCurrent, ToMouse, }; [default_interface] runtimeclass SummonWindowBehavior { SummonWindowBehavior(); Boolean MoveToCurrentDesktop; Boolean ToggleVisibility; UInt32 DropdownDuration; MonitorBehavior ToMonitor; } interface IPeasant { CommandlineArgs InitialArgs { get; }; void AssignID(UInt64 id); UInt64 GetID(); UInt64 GetPID(); Boolean ExecuteCommandline(CommandlineArgs args); void ActivateWindow(WindowActivatedArgs args); WindowActivatedArgs GetLastActivatedArgs(); void DisplayWindowId(); // Tells us to display its own ID (which causes a DisplayWindowIdRequested to be raised) String WindowName { get; }; String ActiveTabTitle { get; }; void RequestIdentifyWindows(); // Tells us to raise a IdentifyWindowsRequested void RequestRename(RenameRequestArgs args); // Tells us to raise a RenameRequested void Summon(SummonWindowBehavior behavior); void RequestShowNotificationIcon(); void RequestHideNotificationIcon(); void RequestQuitAll(); void Quit(); String GetWindowLayout(); event Windows.Foundation.TypedEventHandler WindowActivated; event Windows.Foundation.TypedEventHandler ExecuteCommandlineRequested; event Windows.Foundation.TypedEventHandler IdentifyWindowsRequested; event Windows.Foundation.TypedEventHandler DisplayWindowIdRequested; event Windows.Foundation.TypedEventHandler RenameRequested; event Windows.Foundation.TypedEventHandler SummonRequested; event Windows.Foundation.TypedEventHandler ShowNotificationIconRequested; event Windows.Foundation.TypedEventHandler HideNotificationIconRequested; event Windows.Foundation.TypedEventHandler GetWindowLayoutRequested; event Windows.Foundation.TypedEventHandler QuitAllRequested; event Windows.Foundation.TypedEventHandler QuitRequested; }; [default_interface] runtimeclass Peasant : IPeasant { Peasant(); }; }