## Summary of the Pull Request This is a follow up to #9300. Now that we have names on our windows, it would be nice to see who is named what. So this adds two actions: * `identifyWindow`: This action will pop up a little toast (#8592) displaying the name and ID of the window, and is bound by default. ![identify-window-toast-000](https://user-images.githubusercontent.com/18356694/111529085-bf710580-872f-11eb-8880-b0b617596cfc.gif) * `identifyWindows`: This action will request that ALL windows pop up that toast. This is meant to feel like the "Identify" button on the Windows display settings. However, sometimes, it's wonky. ![teaching-tip-dismiss-001](https://user-images.githubusercontent.com/18356694/111529292-fe06c000-872f-11eb-8d4a-5688e4ce1175.gif) That's being tracked upstream on https://github.com/microsoft/microsoft-ui-xaml/issues/4382 Because it's so wonky, we won't bind that by default. Maybe if we get that fixed, then we'll change the default binding from `identifyWindow` to `identifyWindows` ## References ## PR Checklist * [x] Closes https://github.com/microsoft/terminal/projects/5#card-51431492 * [x] I work here * [x] Tests added/passed * [ ] Requires documentation to be updated ## Detailed Description of the Pull Request / Additional comments You may note that there are some macros to make interacting with lots and lots of actions easier. There's a lot of boilerplate whenever you need to make a new action, so I thought: "Can we make that easier?" Turns out you can make it a _LOT_ easier, but that work is still behind another PR after this one. Get excited
82 lines
2.1 KiB
Plaintext
82 lines
2.1 KiB
Plaintext
// Copyright (c) Microsoft Corporation.
|
|
// Licensed under the MIT license.
|
|
|
|
import "ActionArgs.idl";
|
|
|
|
namespace Microsoft.Terminal.Settings.Model
|
|
{
|
|
enum ShortcutAction
|
|
{
|
|
Invalid = 0,
|
|
CopyText,
|
|
PasteText,
|
|
OpenNewTabDropdown,
|
|
DuplicateTab,
|
|
NewTab,
|
|
CloseWindow,
|
|
CloseTab,
|
|
ClosePane,
|
|
NextTab,
|
|
PrevTab,
|
|
SplitVertical,
|
|
SplitHorizontal,
|
|
SendInput,
|
|
SplitPane,
|
|
TogglePaneZoom,
|
|
SwitchToTab,
|
|
AdjustFontSize,
|
|
ResetFontSize,
|
|
ScrollUp,
|
|
ScrollDown,
|
|
ScrollUpPage,
|
|
ScrollDownPage,
|
|
ScrollToTop,
|
|
ScrollToBottom,
|
|
ResizePane,
|
|
MoveFocus,
|
|
Find,
|
|
ToggleShaderEffects,
|
|
ToggleFocusMode,
|
|
ToggleFullscreen,
|
|
ToggleAlwaysOnTop,
|
|
OpenSettings,
|
|
SetColorScheme,
|
|
SetTabColor,
|
|
OpenTabColorPicker,
|
|
RenameTab,
|
|
OpenTabRenamer,
|
|
ExecuteCommandline,
|
|
ToggleCommandPalette,
|
|
CloseOtherTabs,
|
|
CloseTabsAfter,
|
|
TabSearch,
|
|
MoveTab,
|
|
BreakIntoDebugger,
|
|
TogglePaneReadOnly,
|
|
FindMatch,
|
|
NewWindow,
|
|
IdentifyWindow,
|
|
IdentifyWindows
|
|
};
|
|
|
|
[default_interface] runtimeclass ActionAndArgs {
|
|
ActionAndArgs();
|
|
ActionAndArgs(ShortcutAction action, IActionArgs args);
|
|
|
|
IActionArgs Args;
|
|
ShortcutAction Action;
|
|
};
|
|
|
|
[default_interface] runtimeclass KeyMapping
|
|
{
|
|
ActionAndArgs TryLookup(Microsoft.Terminal.Control.KeyChord chord);
|
|
UInt64 Size();
|
|
|
|
void SetKeyBinding(ActionAndArgs actionAndArgs, Microsoft.Terminal.Control.KeyChord chord);
|
|
void ClearKeyBinding(Microsoft.Terminal.Control.KeyChord chord);
|
|
|
|
Microsoft.Terminal.Control.KeyChord GetKeyBindingForAction(ShortcutAction action);
|
|
Microsoft.Terminal.Control.KeyChord GetKeyBindingForActionWithArgs(ActionAndArgs actionAndArgs);
|
|
}
|
|
}
|