ab6ba9bdbb
<!-- Enter a brief description/summary of your PR here. What does it fix/what does it change/how was it tested (even manually, if necessary)? --> ## Summary of the Pull Request Adds ability for app to change system context menu <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist * [x] Closes #9666 * [x] CLA signed. If not, go over [here](https://cla.opensource.microsoft.com/microsoft/Terminal) and sign the CLA * [ ] Tests added/passed * [ ] Documentation updated. If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/terminal) and link it here: #xxx * [ ] Schema updated. * [ ] I've discussed this with core contributors already. If not checked, I'm ready to accept this work might be rejected in favor of a different grand plan. Issue number where discussion took place: #xxx <!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well --> ## Validation Steps Performed
130 lines
5.3 KiB
Plaintext
130 lines
5.3 KiB
Plaintext
// Copyright (c) Microsoft Corporation.
|
|
// Licensed under the MIT license.
|
|
|
|
import "TerminalPage.idl";
|
|
import "ShortcutActionDispatch.idl";
|
|
import "IDirectKeyListener.idl";
|
|
|
|
namespace TerminalApp
|
|
{
|
|
struct InitialPosition
|
|
{
|
|
Int64 X;
|
|
Int64 Y;
|
|
};
|
|
|
|
[default_interface] runtimeclass FindTargetWindowResult
|
|
{
|
|
Int32 WindowId { get; };
|
|
String WindowName { get; };
|
|
};
|
|
|
|
delegate void SystemMenuItemHandler();
|
|
|
|
enum SystemMenuChangeAction
|
|
{
|
|
Add = 0,
|
|
Remove = 1
|
|
};
|
|
|
|
[default_interface] runtimeclass SystemMenuChangeArgs {
|
|
String Name { get; };
|
|
SystemMenuChangeAction Action { get; };
|
|
SystemMenuItemHandler Handler { get; };
|
|
};
|
|
|
|
[default_interface] runtimeclass AppLogic : IDirectKeyListener, IDialogPresenter
|
|
{
|
|
AppLogic();
|
|
|
|
// For your own sanity, it's better to do setup outside the ctor.
|
|
// If you do any setup in the ctor that ends up throwing an exception,
|
|
// then it might look like TermApp just failed to activate, which will
|
|
// cause you to chase down the rabbit hole of "why is TermApp not
|
|
// registered?" when it definitely is.
|
|
void Create();
|
|
|
|
Boolean IsUwp();
|
|
void RunAsUwp();
|
|
Boolean IsElevated();
|
|
|
|
Boolean HasCommandlineArguments();
|
|
Boolean HasSettingsStartupActions();
|
|
Int32 SetStartupCommandline(String[] commands);
|
|
Int32 ExecuteCommandline(String[] commands, String cwd);
|
|
String ParseCommandlineMessage { get; };
|
|
Boolean ShouldExitEarly { get; };
|
|
|
|
void Quit();
|
|
|
|
void LoadSettings();
|
|
Windows.UI.Xaml.UIElement GetRoot();
|
|
|
|
void SetInboundListener();
|
|
|
|
String Title { get; };
|
|
|
|
Boolean FocusMode { get; };
|
|
Boolean Fullscreen { get; };
|
|
Boolean AlwaysOnTop { get; };
|
|
|
|
void IdentifyWindow();
|
|
String WindowName;
|
|
UInt64 WindowId;
|
|
void SetPersistedLayoutIdx(UInt32 idx);
|
|
void SetNumberOfOpenWindows(UInt64 num);
|
|
void RenameFailed();
|
|
Boolean IsQuakeWindow();
|
|
|
|
Windows.Foundation.Size GetLaunchDimensions(UInt32 dpi);
|
|
Boolean CenterOnLaunch { get; };
|
|
|
|
InitialPosition GetInitialPosition(Int64 defaultInitialX, Int64 defaultInitialY);
|
|
Windows.UI.Xaml.ElementTheme GetRequestedTheme();
|
|
Microsoft.Terminal.Settings.Model.LaunchMode GetLaunchMode();
|
|
Boolean GetShowTabsInTitlebar();
|
|
Boolean GetInitialAlwaysOnTop();
|
|
Single CalcSnappedDimension(Boolean widthOrHeight, Single dimension);
|
|
void TitlebarClicked();
|
|
void CloseWindow(Microsoft.Terminal.Settings.Model.LaunchPosition position);
|
|
|
|
TaskbarState TaskbarState{ get; };
|
|
|
|
Boolean ShouldUsePersistedLayout();
|
|
String GetWindowLayoutJson(Microsoft.Terminal.Settings.Model.LaunchPosition position);
|
|
void SaveWindowLayoutJsons(Windows.Foundation.Collections.IVector<String> layouts);
|
|
|
|
Boolean GetMinimizeToNotificationArea();
|
|
Boolean GetAlwaysShowNotificationIcon();
|
|
Boolean GetShowTitleInTitlebar();
|
|
|
|
FindTargetWindowResult FindTargetWindow(String[] args);
|
|
|
|
Windows.Foundation.Collections.IMapView<Microsoft.Terminal.Control.KeyChord, Microsoft.Terminal.Settings.Model.Command> GlobalHotkeys();
|
|
|
|
// See IDialogPresenter and TerminalPage's DialogPresenter for more
|
|
// information.
|
|
Windows.Foundation.IAsyncOperation<Windows.UI.Xaml.Controls.ContentDialogResult> ShowDialog(Windows.UI.Xaml.Controls.ContentDialog dialog);
|
|
void DismissDialog();
|
|
|
|
event Windows.Foundation.TypedEventHandler<Object, Windows.UI.Xaml.UIElement> SetTitleBarContent;
|
|
event Windows.Foundation.TypedEventHandler<Object, String> TitleChanged;
|
|
event Windows.Foundation.TypedEventHandler<Object, LastTabClosedEventArgs> LastTabClosed;
|
|
event Windows.Foundation.TypedEventHandler<Object, Windows.UI.Xaml.ElementTheme> RequestedThemeChanged;
|
|
event Windows.Foundation.TypedEventHandler<Object, Object> FocusModeChanged;
|
|
event Windows.Foundation.TypedEventHandler<Object, Object> FullscreenChanged;
|
|
event Windows.Foundation.TypedEventHandler<Object, Object> AlwaysOnTopChanged;
|
|
event Windows.Foundation.TypedEventHandler<Object, Object> RaiseVisualBell;
|
|
event Windows.Foundation.TypedEventHandler<Object, Object> SetTaskbarProgress;
|
|
event Windows.Foundation.TypedEventHandler<Object, Object> IdentifyWindowsRequested;
|
|
event Windows.Foundation.TypedEventHandler<Object, RenameWindowRequestedArgs> RenameWindowRequested;
|
|
event Windows.Foundation.TypedEventHandler<Object, Object> SettingsChanged;
|
|
event Windows.Foundation.TypedEventHandler<Object, Object> IsQuakeWindowChanged;
|
|
event Windows.Foundation.TypedEventHandler<Object, Object> SummonWindowRequested;
|
|
event Windows.Foundation.TypedEventHandler<Object, Object> CloseRequested;
|
|
event Windows.Foundation.TypedEventHandler<Object, Object> OpenSystemMenu;
|
|
event Windows.Foundation.TypedEventHandler<Object, Object> QuitRequested;
|
|
event Windows.Foundation.TypedEventHandler<Object, TerminalApp.SystemMenuChangeArgs> SystemMenuChangeRequested;
|
|
}
|
|
}
|