2021-03-30 00:09:38 +02:00
|
|
|
<!--
|
|
|
|
Copyright (c) Microsoft Corporation. All rights reserved. Licensed under
|
|
|
|
the MIT License. See LICENSE in the project root for license information.
|
|
|
|
-->
|
|
|
|
<Page x:Class="TerminalApp.TerminalPage"
|
|
|
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
|
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
|
|
|
xmlns:local="using:TerminalApp"
|
|
|
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
|
|
|
xmlns:mux="using:Microsoft.UI.Xaml.Controls"
|
|
|
|
mc:Ignorable="d">
|
|
|
|
|
|
|
|
<Grid x:Name="Root"
|
|
|
|
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
|
|
|
|
<Grid.RowDefinitions>
|
|
|
|
<RowDefinition Height="Auto" />
|
|
|
|
<RowDefinition Height="*" />
|
|
|
|
</Grid.RowDefinitions>
|
|
|
|
|
|
|
|
<local:TabRowControl x:Name="TabRow"
|
|
|
|
Grid.Row="0" />
|
|
|
|
|
|
|
|
<Grid x:Name="TabContent"
|
|
|
|
Grid.Row="1"
|
|
|
|
HorizontalAlignment="Stretch"
|
|
|
|
VerticalAlignment="Stretch" />
|
|
|
|
|
|
|
|
<ContentDialog x:Name="AboutDialog"
|
|
|
|
x:Uid="AboutDialog"
|
|
|
|
x:Load="False"
|
|
|
|
DefaultButton="Close">
|
|
|
|
<StackPanel Orientation="Vertical">
|
|
|
|
<TextBlock IsTextSelectionEnabled="True">
|
|
|
|
<Run Text="{x:Bind ApplicationDisplayName}" /> <LineBreak />
|
|
|
|
<Run x:Uid="AboutDialog_VersionLabel" />
|
|
|
|
<Run Text="{x:Bind ApplicationVersion}" />
|
|
|
|
</TextBlock>
|
|
|
|
<HyperlinkButton x:Uid="AboutDialog_DocumentationLink"
|
|
|
|
NavigateUri="https://go.microsoft.com/fwlink/?linkid=2125416" />
|
|
|
|
<HyperlinkButton x:Uid="AboutDialog_ReleaseNotesLink"
|
|
|
|
NavigateUri="https://go.microsoft.com/fwlink/?linkid=2125417" />
|
|
|
|
<HyperlinkButton x:Uid="AboutDialog_PrivacyPolicyLink"
|
|
|
|
NavigateUri="https://go.microsoft.com/fwlink/?linkid=2125418" />
|
|
|
|
<HyperlinkButton x:Uid="AboutDialog_ThirdPartyNoticesLink"
|
|
|
|
Click="_ThirdPartyNoticesOnClick" />
|
|
|
|
</StackPanel>
|
|
|
|
</ContentDialog>
|
|
|
|
|
2021-09-09 16:03:03 +02:00
|
|
|
<ContentDialog x:Name="QuitDialog"
|
|
|
|
x:Uid="QuitDialog"
|
|
|
|
x:Load="False"
|
|
|
|
DefaultButton="Primary" />
|
|
|
|
|
2021-03-30 00:09:38 +02:00
|
|
|
<ContentDialog x:Name="CloseAllDialog"
|
|
|
|
x:Uid="CloseAllDialog"
|
|
|
|
x:Load="False"
|
|
|
|
DefaultButton="Primary" />
|
|
|
|
|
|
|
|
<ContentDialog x:Name="CloseReadOnlyDialog"
|
|
|
|
x:Uid="CloseReadOnlyDialog"
|
|
|
|
x:Load="False"
|
|
|
|
DefaultButton="Close" />
|
|
|
|
|
|
|
|
<ContentDialog x:Name="MultiLinePasteDialog"
|
|
|
|
x:Uid="MultiLinePasteDialog"
|
|
|
|
x:Load="False"
|
|
|
|
DefaultButton="Primary">
|
|
|
|
<StackPanel>
|
|
|
|
<TextBlock x:Uid="MultiLineWarningText"
|
|
|
|
TextWrapping="Wrap" />
|
|
|
|
<TextBlock x:Uid="ClipboardTextHeader"
|
|
|
|
Margin="0,16,0,0" />
|
|
|
|
<ScrollViewer x:Name="ClipboardContentScrollViewer"
|
|
|
|
MaxHeight="100"
|
|
|
|
Margin="0,8,0,0">
|
|
|
|
<TextBlock x:Name="ClipboardText"
|
|
|
|
FontFamily="Cascadia Mono"
|
|
|
|
TextWrapping="Wrap" />
|
|
|
|
</ScrollViewer>
|
|
|
|
</StackPanel>
|
|
|
|
</ContentDialog>
|
|
|
|
|
|
|
|
<ContentDialog x:Name="LargePasteDialog"
|
|
|
|
x:Uid="LargePasteDialog"
|
|
|
|
x:Load="False"
|
|
|
|
DefaultButton="Primary" />
|
|
|
|
|
|
|
|
<ContentDialog x:Name="ControlNoticeDialog"
|
|
|
|
x:Uid="ControlNoticeDialog"
|
|
|
|
x:Load="False"
|
|
|
|
DefaultButton="Primary">
|
|
|
|
<TextBlock IsTextSelectionEnabled="True"
|
|
|
|
TextWrapping="WrapWholeWords">
|
|
|
|
<Run x:Name="NoticeMessage" />
|
|
|
|
</TextBlock>
|
|
|
|
</ContentDialog>
|
|
|
|
|
|
|
|
<ContentDialog x:Name="CouldNotOpenUriDialog"
|
|
|
|
x:Uid="CouldNotOpenUriDialog"
|
|
|
|
x:Load="False"
|
|
|
|
DefaultButton="Primary">
|
|
|
|
<TextBlock IsTextSelectionEnabled="True"
|
|
|
|
TextWrapping="WrapWholeWords">
|
|
|
|
<Run x:Name="CouldNotOpenUriReason" /> <LineBreak />
|
|
|
|
<Run x:Name="UnopenedUri"
|
|
|
|
FontFamily="Cascadia Mono" />
|
|
|
|
</TextBlock>
|
|
|
|
</ContentDialog>
|
|
|
|
|
|
|
|
<local:CommandPalette x:Name="CommandPalette"
|
|
|
|
Grid.Row="1"
|
|
|
|
VerticalAlignment="Stretch"
|
|
|
|
PreviewKeyDown="_KeyDownHandler"
|
|
|
|
Visibility="Collapsed" />
|
|
|
|
|
2021-09-10 19:16:41 +02:00
|
|
|
<StackPanel>
|
|
|
|
<mux:InfoBar x:Name="KeyboardServiceWarningInfoBar"
|
|
|
|
x:Load="False"
|
|
|
|
IsClosable="True"
|
|
|
|
IsIconVisible="True"
|
|
|
|
IsOpen="False"
|
|
|
|
Message="{x:Bind KeyboardServiceDisabledText, Mode=OneWay}"
|
|
|
|
Severity="Warning">
|
|
|
|
<mux:InfoBar.ActionButton>
|
|
|
|
<Button x:Uid="InfoBarDismissButton"
|
|
|
|
Click="_KeyboardServiceWarningInfoDismissHandler" />
|
|
|
|
</mux:InfoBar.ActionButton>
|
|
|
|
</mux:InfoBar>
|
|
|
|
|
|
|
|
<mux:InfoBar x:Name="CloseOnExitInfoBar"
|
|
|
|
x:Uid="CloseOnExitInfoBar"
|
|
|
|
x:Load="False"
|
|
|
|
IsClosable="True"
|
|
|
|
IsIconVisible="True"
|
|
|
|
IsOpen="False"
|
|
|
|
Severity="Informational">
|
|
|
|
<mux:InfoBar.ActionButton>
|
|
|
|
<Button x:Uid="InfoBarDismissButton"
|
|
|
|
Click="_CloseOnExitInfoDismissHandler" />
|
|
|
|
</mux:InfoBar.ActionButton>
|
|
|
|
</mux:InfoBar>
|
|
|
|
</StackPanel>
|
2021-03-30 18:08:03 +02:00
|
|
|
|
|
|
|
<!--
|
|
|
|
A TeachingTip with IsLightDismissEnabled="True" will immediately
|
|
|
|
dismiss itself if the window is unfocused (In Xaml Islands). This is
|
|
|
|
tracked by MUX#4382
|
|
|
|
-->
|
|
|
|
<mux:TeachingTip x:Name="WindowIdToast"
|
|
|
|
Title="{x:Bind WindowIdForDisplay}"
|
|
|
|
x:Load="False"
|
|
|
|
IsLightDismissEnabled="True"
|
Add support for renaming windows (#9662)
## Summary of the Pull Request
This PR adds support for renaming windows.
![window-renaming-000](https://user-images.githubusercontent.com/18356694/113034344-9a30be00-9157-11eb-9443-975f3c294f56.gif)
![window-renaming-001](https://user-images.githubusercontent.com/18356694/113034452-b5033280-9157-11eb-9e35-e5ac80fef0bc.gif)
It does so through two new actions:
* `renameWindow` takes a `name` parameter, and attempts to set the window's name
to the provided name. This is useful if you always want to hit <kbd>F3</kbd>
and rename a window to "foo" (READ: probably not that useful)
* `openWindowRenamer` is more interesting: it opens a `TeachingTip` with a
`TextBox`. When the user hits Ok, it'll request a rename for the provided
value. This lets the user pick a new name for the window at runtime.
In both cases, if there's already a window with that name, then the monarch will
reject the rename, and pop a `Toast` in the window informing the user that the
rename failed. Nifty!
## References
* Builds on the toasts from #9523
* #5000 - process model megathread
## PR Checklist
* [x] Closes https://github.com/microsoft/terminal/projects/5#card-50771747
* [x] I work here
* [x] Tests addded (and pass with the help of #9660)
* [ ] Requires documentation to be updated
## Detailed Description of the Pull Request / Additional comments
I'm sending this PR while finishing up the tests. I figured I'll have time to sneak them in before I get the necessary reviews.
> PAIN: We can't immediately focus the textbox in the TeachingTip. It's
> not technically focusable until it is opened. However, it doesn't
> provide an even tto tell us when it is opened. That's tracked in
> microsoft/microsoft-ui-xaml#1607. So for now, the user _needs_ to
> click on the text box manually.
> We're also not using a ContentDialog for this, because in Xaml
> Islands a text box in a ContentDialog won't recieve _any_ keypresses.
> Fun!
## Validation Steps Performed
I've been playing with
```json
{ "keys": "f1", "command": "identifyWindow" },
{ "keys": "f2", "command": "identifyWindows" },
{ "keys": "f3", "command": "openWindowRenamer" },
{ "keys": "f4", "command": { "action": "renameWindow", "name": "foo" } },
{ "keys": "f5", "command": { "action": "renameWindow", "name": "bar" } },
```
and they seem to work as expected
2021-04-02 18:00:04 +02:00
|
|
|
Subtitle="{x:Bind WindowNameForDisplay, Mode=OneWay}" />
|
|
|
|
|
|
|
|
<mux:TeachingTip x:Name="RenameFailedToast"
|
|
|
|
x:Uid="RenameFailedToast"
|
|
|
|
x:Load="False"
|
|
|
|
IsLightDismissEnabled="True" />
|
|
|
|
|
|
|
|
<mux:TeachingTip x:Name="WindowRenamer"
|
|
|
|
x:Uid="WindowRenamer"
|
|
|
|
Title="{x:Bind WindowIdForDisplay}"
|
|
|
|
x:Load="False"
|
2021-04-06 21:25:18 +02:00
|
|
|
ActionButtonClick="_WindowRenamerActionClick"
|
2021-04-07 02:12:41 +02:00
|
|
|
ActionButtonStyle="{ThemeResource AccentButtonStyle}"
|
|
|
|
IsLightDismissEnabled="True">
|
Add support for renaming windows (#9662)
## Summary of the Pull Request
This PR adds support for renaming windows.
![window-renaming-000](https://user-images.githubusercontent.com/18356694/113034344-9a30be00-9157-11eb-9443-975f3c294f56.gif)
![window-renaming-001](https://user-images.githubusercontent.com/18356694/113034452-b5033280-9157-11eb-9e35-e5ac80fef0bc.gif)
It does so through two new actions:
* `renameWindow` takes a `name` parameter, and attempts to set the window's name
to the provided name. This is useful if you always want to hit <kbd>F3</kbd>
and rename a window to "foo" (READ: probably not that useful)
* `openWindowRenamer` is more interesting: it opens a `TeachingTip` with a
`TextBox`. When the user hits Ok, it'll request a rename for the provided
value. This lets the user pick a new name for the window at runtime.
In both cases, if there's already a window with that name, then the monarch will
reject the rename, and pop a `Toast` in the window informing the user that the
rename failed. Nifty!
## References
* Builds on the toasts from #9523
* #5000 - process model megathread
## PR Checklist
* [x] Closes https://github.com/microsoft/terminal/projects/5#card-50771747
* [x] I work here
* [x] Tests addded (and pass with the help of #9660)
* [ ] Requires documentation to be updated
## Detailed Description of the Pull Request / Additional comments
I'm sending this PR while finishing up the tests. I figured I'll have time to sneak them in before I get the necessary reviews.
> PAIN: We can't immediately focus the textbox in the TeachingTip. It's
> not technically focusable until it is opened. However, it doesn't
> provide an even tto tell us when it is opened. That's tracked in
> microsoft/microsoft-ui-xaml#1607. So for now, the user _needs_ to
> click on the text box manually.
> We're also not using a ContentDialog for this, because in Xaml
> Islands a text box in a ContentDialog won't recieve _any_ keypresses.
> Fun!
## Validation Steps Performed
I've been playing with
```json
{ "keys": "f1", "command": "identifyWindow" },
{ "keys": "f2", "command": "identifyWindows" },
{ "keys": "f3", "command": "openWindowRenamer" },
{ "keys": "f4", "command": { "action": "renameWindow", "name": "foo" } },
{ "keys": "f5", "command": { "action": "renameWindow", "name": "bar" } },
```
and they seem to work as expected
2021-04-02 18:00:04 +02:00
|
|
|
<mux:TeachingTip.Content>
|
|
|
|
<TextBox x:Name="WindowRenamerTextBox"
|
2021-04-06 21:12:08 +02:00
|
|
|
KeyUp="_WindowRenamerKeyUp"
|
Add support for renaming windows (#9662)
## Summary of the Pull Request
This PR adds support for renaming windows.
![window-renaming-000](https://user-images.githubusercontent.com/18356694/113034344-9a30be00-9157-11eb-9443-975f3c294f56.gif)
![window-renaming-001](https://user-images.githubusercontent.com/18356694/113034452-b5033280-9157-11eb-9e35-e5ac80fef0bc.gif)
It does so through two new actions:
* `renameWindow` takes a `name` parameter, and attempts to set the window's name
to the provided name. This is useful if you always want to hit <kbd>F3</kbd>
and rename a window to "foo" (READ: probably not that useful)
* `openWindowRenamer` is more interesting: it opens a `TeachingTip` with a
`TextBox`. When the user hits Ok, it'll request a rename for the provided
value. This lets the user pick a new name for the window at runtime.
In both cases, if there's already a window with that name, then the monarch will
reject the rename, and pop a `Toast` in the window informing the user that the
rename failed. Nifty!
## References
* Builds on the toasts from #9523
* #5000 - process model megathread
## PR Checklist
* [x] Closes https://github.com/microsoft/terminal/projects/5#card-50771747
* [x] I work here
* [x] Tests addded (and pass with the help of #9660)
* [ ] Requires documentation to be updated
## Detailed Description of the Pull Request / Additional comments
I'm sending this PR while finishing up the tests. I figured I'll have time to sneak them in before I get the necessary reviews.
> PAIN: We can't immediately focus the textbox in the TeachingTip. It's
> not technically focusable until it is opened. However, it doesn't
> provide an even tto tell us when it is opened. That's tracked in
> microsoft/microsoft-ui-xaml#1607. So for now, the user _needs_ to
> click on the text box manually.
> We're also not using a ContentDialog for this, because in Xaml
> Islands a text box in a ContentDialog won't recieve _any_ keypresses.
> Fun!
## Validation Steps Performed
I've been playing with
```json
{ "keys": "f1", "command": "identifyWindow" },
{ "keys": "f2", "command": "identifyWindows" },
{ "keys": "f3", "command": "openWindowRenamer" },
{ "keys": "f4", "command": { "action": "renameWindow", "name": "foo" } },
{ "keys": "f5", "command": { "action": "renameWindow", "name": "bar" } },
```
and they seem to work as expected
2021-04-02 18:00:04 +02:00
|
|
|
Text="{x:Bind WindowName, Mode=OneWay}" />
|
|
|
|
</mux:TeachingTip.Content>
|
|
|
|
</mux:TeachingTip>
|
2021-03-30 00:09:38 +02:00
|
|
|
</Grid>
|
|
|
|
</Page>
|