mirror of
https://github.com/microsoft/terminal.git
synced 2026-04-07 14:50:55 +00:00
Compare commits
3 Commits
dev/miniks
...
dev/cazamo
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3be7898393 | ||
|
|
0209bd5474 | ||
|
|
21474792a2 |
@@ -125,7 +125,7 @@ Team members will be happy to help review specs and guide them to completion.
|
||||
|
||||
### Help Wanted
|
||||
|
||||
Once the team have approved an issue/spec, development can proceed. If no developers are immediately available, the spec can be parked ready for a developer to get started. Parked specs' issues will be labeled "Help Wanted". To find a list of development opportunities waiting for developer involvement, visit the Issues and filter on [the Help-Wanted label](https://github.com/microsoft/terminal/labels/Help%20Wanted).
|
||||
Once the team have approved an issue/spec, development can proceed. If no developers are immediately available, the spec can be parked ready for a developer to get started. Parked specs' issues will be labeled "Help Wanted". To find a list of development opportunities waiting for developer involvement, visit the Issues and filter on [the Help-Wanted label](https://github.com/microsoft/terminal/labels/Help-Wanted).
|
||||
|
||||
---
|
||||
|
||||
@@ -155,4 +155,4 @@ Once your code has been reviewed and approved by the requisite number of team me
|
||||
|
||||
## Thank you
|
||||
|
||||
Thank you in advance for your contribution! Now, [what's next on the list](https://github.com/microsoft/terminal/labels/Help%20Wanted)? 😜
|
||||
Thank you in advance for your contribution! Now, [what's next on the list](https://github.com/microsoft/terminal/labels/Help-Wanted)? 😜
|
||||
|
||||
@@ -231,7 +231,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTests_TerminalApp", "sr
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TerminalAppLib", "src\cascadia\TerminalApp\lib\TerminalAppLib.vcxproj", "{CA5CAD1A-9A12-429C-B551-8562EC954746}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{CA5CAD1A-0A1E-4F38-8704-9BFF1C37AA92} = {CA5CAD1A-0A1E-4F38-8704-9BFF1C37AA92}
|
||||
{CA5CAD1A-44BD-4AC7-AC72-6CA5B3AB89ED} = {CA5CAD1A-44BD-4AC7-AC72-6CA5B3AB89ED}
|
||||
{CA5CAD1A-D7EC-4107-B7C6-79CB77AE2907} = {CA5CAD1A-D7EC-4107-B7C6-79CB77AE2907}
|
||||
EndProjectSection
|
||||
@@ -303,8 +302,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TerminalAzBridge", "src\cas
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fmt", "src\dep\fmt\fmt.vcxproj", "{6BAE5851-50D5-4934-8D5E-30361A8A40F3}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TerminalSettingsControl", "src\cascadia\TerminalSettingsControl\TerminalSettingsControl.vcxproj", "{CA5CAD1A-0A1E-4F38-8704-9BFF1C37AA92}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
AuditMode|Any CPU = AuditMode|Any CPU
|
||||
@@ -1511,27 +1508,6 @@ Global
|
||||
{6BAE5851-50D5-4934-8D5E-30361A8A40F3}.Release|x64.Build.0 = Release|x64
|
||||
{6BAE5851-50D5-4934-8D5E-30361A8A40F3}.Release|x86.ActiveCfg = Release|Win32
|
||||
{6BAE5851-50D5-4934-8D5E-30361A8A40F3}.Release|x86.Build.0 = Release|Win32
|
||||
{CA5CAD1A-0A1E-4F38-8704-9BFF1C37AA92}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32
|
||||
{CA5CAD1A-0A1E-4F38-8704-9BFF1C37AA92}.AuditMode|ARM64.ActiveCfg = AuditMode|ARM64
|
||||
{CA5CAD1A-0A1E-4F38-8704-9BFF1C37AA92}.AuditMode|ARM64.Build.0 = AuditMode|ARM64
|
||||
{CA5CAD1A-0A1E-4F38-8704-9BFF1C37AA92}.AuditMode|x64.ActiveCfg = AuditMode|x64
|
||||
{CA5CAD1A-0A1E-4F38-8704-9BFF1C37AA92}.AuditMode|x64.Build.0 = AuditMode|x64
|
||||
{CA5CAD1A-0A1E-4F38-8704-9BFF1C37AA92}.AuditMode|x86.ActiveCfg = AuditMode|Win32
|
||||
{CA5CAD1A-0A1E-4F38-8704-9BFF1C37AA92}.AuditMode|x86.Build.0 = AuditMode|Win32
|
||||
{CA5CAD1A-0A1E-4F38-8704-9BFF1C37AA92}.Debug|Any CPU.ActiveCfg = Debug|Win32
|
||||
{CA5CAD1A-0A1E-4F38-8704-9BFF1C37AA92}.Debug|ARM64.ActiveCfg = Debug|ARM64
|
||||
{CA5CAD1A-0A1E-4F38-8704-9BFF1C37AA92}.Debug|ARM64.Build.0 = Debug|ARM64
|
||||
{CA5CAD1A-0A1E-4F38-8704-9BFF1C37AA92}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{CA5CAD1A-0A1E-4F38-8704-9BFF1C37AA92}.Debug|x64.Build.0 = Debug|x64
|
||||
{CA5CAD1A-0A1E-4F38-8704-9BFF1C37AA92}.Debug|x86.ActiveCfg = Debug|Win32
|
||||
{CA5CAD1A-0A1E-4F38-8704-9BFF1C37AA92}.Debug|x86.Build.0 = Debug|Win32
|
||||
{CA5CAD1A-0A1E-4F38-8704-9BFF1C37AA92}.Release|Any CPU.ActiveCfg = Release|Win32
|
||||
{CA5CAD1A-0A1E-4F38-8704-9BFF1C37AA92}.Release|ARM64.ActiveCfg = Release|ARM64
|
||||
{CA5CAD1A-0A1E-4F38-8704-9BFF1C37AA92}.Release|ARM64.Build.0 = Release|ARM64
|
||||
{CA5CAD1A-0A1E-4F38-8704-9BFF1C37AA92}.Release|x64.ActiveCfg = Release|x64
|
||||
{CA5CAD1A-0A1E-4F38-8704-9BFF1C37AA92}.Release|x64.Build.0 = Release|x64
|
||||
{CA5CAD1A-0A1E-4F38-8704-9BFF1C37AA92}.Release|x86.ActiveCfg = Release|Win32
|
||||
{CA5CAD1A-0A1E-4F38-8704-9BFF1C37AA92}.Release|x86.Build.0 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
@@ -1610,7 +1586,6 @@ Global
|
||||
{024052DE-83FB-4653-AEA4-90790D29D5BD} = {E8F24881-5E37-4362-B191-A3BA0ED7F4EB}
|
||||
{067F0A06-FCB7-472C-96E9-B03B54E8E18D} = {59840756-302F-44DF-AA47-441A9D673202}
|
||||
{6BAE5851-50D5-4934-8D5E-30361A8A40F3} = {81C352DB-1818-45B7-A284-18E259F1CC87}
|
||||
{CA5CAD1A-0A1E-4F38-8704-9BFF1C37AA92} = {59840756-302F-44DF-AA47-441A9D673202}
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {3140B1B7-C8EE-43D1-A772-D82A7061A271}
|
||||
|
||||
24
README.md
24
README.md
@@ -2,8 +2,7 @@
|
||||
|
||||
This repository contains the source code for:
|
||||
|
||||
* [Windows Terminal](https://aka.ms/terminal)
|
||||
* [Windows Terminal Preview](https://aka.ms/terminal-preview)
|
||||
* [Windows Terminal](https://www.microsoft.com/en-us/p/windows-terminal-preview/9n0dx20hk701)
|
||||
* The Windows console host (`conhost.exe`)
|
||||
* Components shared between the two projects
|
||||
* [ColorTool](https://github.com/Microsoft/Terminal/tree/master/src/tools/ColorTool)
|
||||
@@ -11,7 +10,6 @@ This repository contains the source code for:
|
||||
|
||||
Related repositories include:
|
||||
|
||||
* [Windows Terminal Documentation](https://docs.microsoft.com/windows/terminal) ([Repo: Contribute to the docs](https://github.com/MicrosoftDocs/terminal))
|
||||
* [Console API Documentation](https://github.com/MicrosoftDocs/Console-Docs)
|
||||
* [Cascadia Code Font](https://github.com/Microsoft/Cascadia-Code)
|
||||
|
||||
@@ -21,7 +19,7 @@ Related repositories include:
|
||||
|
||||
### Microsoft Store [Recommended]
|
||||
|
||||
Install the [Windows Terminal from the Microsoft Store][store-install-link]. This allows you to always be on the latest version when we release new builds with automatic upgrades.
|
||||
Install the [Windows Terminal from the Microsoft Store][store-install-link]. This allows you to always be on the latest version when we release new builds with automatic upgrades.
|
||||
|
||||
This is our preferred method.
|
||||
|
||||
@@ -36,14 +34,6 @@ For users who are unable to install Terminal from the Microsoft Store, Terminal
|
||||
> * Be sure to install the [Desktop Bridge VC++ v14 Redistributable Package](https://www.microsoft.com/en-us/download/details.aspx?id=53175) otherwise Terminal may not install and/or run and may crash at startup
|
||||
> * Terminal will not auto-update when new builds are released so you will need to regularly install the latest Terminal release to receive all the latest fixes and improvements!
|
||||
|
||||
#### Via Windows Package Manager CLI (aka winget)
|
||||
|
||||
[winget](https://github.com/microsoft/winget-cli) users can download and install the latest Terminal release by installing the `Microsoft.WindowsTerminal` package:
|
||||
|
||||
```powershell
|
||||
winget install --id=Microsoft.WindowsTerminal -e
|
||||
```
|
||||
|
||||
#### Via Chocolatey (unofficial)
|
||||
|
||||
[Chocolatey](https://chocolatey.org) users can download and install the latest Terminal release by installing the `microsoft-windows-terminal` package:
|
||||
@@ -71,6 +61,12 @@ ColorTool|, and will be updated as the project proceeds.
|
||||
|
||||
---
|
||||
|
||||
## Terminal & Console Overview
|
||||
|
||||
Please take a few minutes to review the overview below before diving into the code:
|
||||
@@ -135,7 +131,7 @@ Solution: Make sure you're building & deploying the `CascadiaPackage` project in
|
||||
|
||||
## Documentation
|
||||
|
||||
All project documentation is located at aka.ms/terminal-docs. If you would like to contribute to the documentation, please submit a pull request on the [Windows Terminal Documentation repo](https://github.com/MicrosoftDocs/terminal).
|
||||
All project documentation is located in the `./doc` folder. If you would like to contribute to the documentation, please submit a pull request.
|
||||
|
||||
---
|
||||
|
||||
@@ -230,4 +226,4 @@ For more information see the [Code of Conduct FAQ][conduct-FAQ] or contact [open
|
||||
[conduct-code]: https://opensource.microsoft.com/codeofconduct/
|
||||
[conduct-FAQ]: https://opensource.microsoft.com/codeofconduct/faq/
|
||||
[conduct-email]: mailto:opencode@microsoft.com
|
||||
[store-install-link]: https://aka.ms/terminal
|
||||
[store-install-link]: https://aka.ms/windowsterminal
|
||||
|
||||
@@ -47,7 +47,6 @@ Properties listed below are specific to each unique profile.
|
||||
| `cursorShape` | Optional | String | `bar` | Sets the cursor shape for the profile. Possible values: `"vintage"` ( ▃ ), `"bar"` ( ┃ ), `"underscore"` ( ▁ ), `"filledBox"` ( █ ), `"emptyBox"` ( ▯ ) |
|
||||
| `fontFace` | Optional | String | `Cascadia Mono` | Name of the font face used in the profile. We will try to fallback to Consolas if this can't be found or is invalid. |
|
||||
| `fontSize` | Optional | Integer | `12` | Sets the font size. |
|
||||
| `fontWeight` | Optional | String | `normal` | Sets the weight (lightness or heaviness of the strokes) for the given font. Possible values: `"thin"`, `"extra-light"`, `"light"`, `"semi-light"`, `"normal"`, `"medium"`, `"semi-bold"`, `"bold"`, `"extra-bold"`, `"black"`, `"extra-black"`, or the corresponding numeric representation of OpenType font weight. |
|
||||
| `foreground` | Optional | String | | Sets the foreground color of the profile. Overrides `foreground` set in color scheme if `colorscheme` is set. Uses hex color format: `#rgb` or `"#rrggbb"`. |
|
||||
| `hidden` | Optional | Boolean | `false` | If set to true, the profile will not appear in the list of profiles. This can be used to hide default profiles and dynamically generated profiles, while leaving them in your settings file. |
|
||||
| `historySize` | Optional | Integer | `9001` | The number of lines above the ones displayed in the window you can scroll back to. |
|
||||
|
||||
@@ -531,32 +531,6 @@
|
||||
"minimum": 1,
|
||||
"type": "integer"
|
||||
},
|
||||
"fontWeight": {
|
||||
"default": "normal",
|
||||
"description": "Sets the weight (lightness or heaviness of the strokes) for the given font. Possible values:\n -\"thin\"\n -\"extra-light\"\n -\"light\"\n -\"semi-light\"\n -\"normal\" (default)\n -\"medium\"\n -\"semi-bold\"\n -\"bold\"\n -\"extra-bold\"\n -\"black\"\n -\"extra-black\" or the corresponding numeric representation of OpenType font weight.",
|
||||
"oneOf": [
|
||||
{
|
||||
"enum": [
|
||||
"thin",
|
||||
"extra-light",
|
||||
"light",
|
||||
"semi-light",
|
||||
"normal",
|
||||
"medium",
|
||||
"semi-bold",
|
||||
"bold",
|
||||
"extra-bold",
|
||||
"black",
|
||||
"extra-black"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"maximum": 990,
|
||||
"minimum": 100,
|
||||
"type": "integer"
|
||||
}
|
||||
}
|
||||
"foreground": {
|
||||
"$ref": "#/definitions/Color",
|
||||
"default": "#cccccc",
|
||||
|
||||
@@ -45,7 +45,7 @@ To customize the shell list, see the _Configuring Windows Terminal_ section belo
|
||||
|
||||
## Starting a new PowerShell tab with admin privilege
|
||||
|
||||
There is no current plan to support this feature for security reasons. See issue [#632](https://github.com/microsoft/terminal/issues/632)
|
||||
There is no current plan to support this feature for security reasons. See issue [#623](https://github.com/microsoft/terminal/issues/632)
|
||||
|
||||
## Selecting and Copying Text in Windows Terminal
|
||||
|
||||
|
||||
@@ -40,53 +40,15 @@ namespace winrt::TerminalApp::implementation
|
||||
|
||||
void MinMaxCloseControl::SetWindowVisualState(WindowVisualState visualState)
|
||||
{
|
||||
// Look up the heights we should use for the caption buttons from our
|
||||
// XAML resources. "CaptionButtonHeightWindowed" and
|
||||
// "CaptionButtonHeightMaximized" define the size we should use for the
|
||||
// caption buttons height for the windowed and maximized states,
|
||||
// respectively.
|
||||
//
|
||||
// use C++11 magic statics to make sure we only do this once.
|
||||
static auto heights = [this]() {
|
||||
const auto res = Resources();
|
||||
const auto windowedHeightKey = winrt::box_value(L"CaptionButtonHeightWindowed");
|
||||
const auto maximizedHeightKey = winrt::box_value(L"CaptionButtonHeightMaximized");
|
||||
|
||||
auto windowedHeight = 0.0;
|
||||
auto maximizedHeight = 0.0;
|
||||
if (res.HasKey(windowedHeightKey))
|
||||
{
|
||||
const auto valFromResources = res.Lookup(windowedHeightKey);
|
||||
windowedHeight = winrt::unbox_value_or<double>(valFromResources, 0.0);
|
||||
}
|
||||
if (res.HasKey(maximizedHeightKey))
|
||||
{
|
||||
const auto valFromResources = res.Lookup(maximizedHeightKey);
|
||||
maximizedHeight = winrt::unbox_value_or<double>(valFromResources, 0.0);
|
||||
}
|
||||
return std::tuple<double, double>{ windowedHeight, maximizedHeight };
|
||||
}();
|
||||
static const auto windowedHeight = std::get<0>(heights);
|
||||
static const auto maximizedHeight = std::get<1>(heights);
|
||||
|
||||
switch (visualState)
|
||||
{
|
||||
case WindowVisualState::WindowVisualStateMaximized:
|
||||
VisualStateManager::GoToState(MaximizeButton(), L"WindowStateMaximized", false);
|
||||
|
||||
MinimizeButton().Height(maximizedHeight);
|
||||
MaximizeButton().Height(maximizedHeight);
|
||||
CloseButton().Height(maximizedHeight);
|
||||
winrt::Windows::UI::Xaml::VisualStateManager::GoToState(MaximizeButton(), L"WindowStateMaximized", false);
|
||||
break;
|
||||
|
||||
case WindowVisualState::WindowVisualStateNormal:
|
||||
case WindowVisualState::WindowVisualStateIconified:
|
||||
default:
|
||||
VisualStateManager::GoToState(MaximizeButton(), L"WindowStateNormal", false);
|
||||
|
||||
MinimizeButton().Height(windowedHeight);
|
||||
MaximizeButton().Height(windowedHeight);
|
||||
CloseButton().Height(windowedHeight);
|
||||
winrt::Windows::UI::Xaml::VisualStateManager::GoToState(MaximizeButton(), L"WindowStateNormal", false);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -62,18 +62,6 @@ the MIT License. See LICENSE in the project root for license information. -->
|
||||
<x:String x:Key="CaptionButtonPath"></x:String>
|
||||
<x:String x:Key="CaptionButtonPathWindowMaximized"></x:String>
|
||||
|
||||
<!-- "CaptionButtonHeightWindowed" and
|
||||
"CaptionButtonHeightMaximized" define the size we should use
|
||||
for the caption buttons height for the windowed and maximized
|
||||
states, respectively.
|
||||
|
||||
32 was chosen for the Maximized height to match the height of
|
||||
the TabRowControl. This way, when the window is maximized, the
|
||||
tabs will be flush with the top of the window. See GH#2541 for
|
||||
details.-->
|
||||
<x:Double x:Key="CaptionButtonHeightWindowed">36.0</x:Double>
|
||||
<x:Double x:Key="CaptionButtonHeightMaximized">32.0</x:Double>
|
||||
|
||||
<Style x:Key="CaptionButton" TargetType="Button">
|
||||
<Setter Property="BorderThickness" Value="0"/>
|
||||
<Setter Property="Background" Value="{ThemeResource CaptionButtonBackground}" />
|
||||
@@ -81,7 +69,6 @@ the MIT License. See LICENSE in the project root for license information. -->
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="Button">
|
||||
|
||||
<Border x:Name="ButtonBaseElement"
|
||||
Background="{TemplateBinding Background}"
|
||||
BackgroundSizing="{TemplateBinding BackgroundSizing}"
|
||||
@@ -136,7 +123,6 @@ the MIT License. See LICENSE in the project root for license information. -->
|
||||
StrokeEndLineCap="Square"
|
||||
StrokeStartLineCap="Square" />
|
||||
</Border>
|
||||
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
@@ -145,7 +131,7 @@ the MIT License. See LICENSE in the project root for license information. -->
|
||||
</ResourceDictionary>
|
||||
</StackPanel.Resources>
|
||||
|
||||
<Button Height="{StaticResource CaptionButtonHeightWindowed}" MinWidth="46.0" Width="46.0"
|
||||
<Button Height="36.0" MinWidth="46.0" Width="46.0"
|
||||
x:Name="MinimizeButton"
|
||||
x:Uid="WindowMinimizeButton"
|
||||
Style="{StaticResource CaptionButton}"
|
||||
@@ -157,7 +143,7 @@ the MIT License. See LICENSE in the project root for license information. -->
|
||||
</ResourceDictionary>
|
||||
</Button.Resources>
|
||||
</Button>
|
||||
<Button Height="{StaticResource CaptionButtonHeightWindowed}" MinWidth="46.0" Width="46.0"
|
||||
<Button Height="36.0" MinWidth="46.0" Width="46.0"
|
||||
x:Name="MaximizeButton"
|
||||
x:Uid="WindowMaximizeButton"
|
||||
Style="{StaticResource CaptionButton}"
|
||||
@@ -170,7 +156,7 @@ the MIT License. See LICENSE in the project root for license information. -->
|
||||
</ResourceDictionary>
|
||||
</Button.Resources>
|
||||
</Button>
|
||||
<Button Height="{StaticResource CaptionButtonHeightWindowed}" MinWidth="46.0" Width="46.0"
|
||||
<Button Height="36.0" MinWidth="46.0" Width="46.0"
|
||||
x:Name="CloseButton"
|
||||
x:Uid="WindowCloseButton"
|
||||
Style="{StaticResource CaptionButton}"
|
||||
|
||||
@@ -114,14 +114,13 @@ void Pane::Relayout()
|
||||
// decreasing the size of our first child.
|
||||
// Return Value:
|
||||
// - false if we couldn't resize this pane in the given direction, else true.
|
||||
bool Pane::_Resize(const Direction& direction)
|
||||
bool Pane::_Resize(const Direction& direction, float amount)
|
||||
{
|
||||
if (!DirectionMatchesSplit(direction, _splitState))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
float amount = .05f;
|
||||
if (direction == Direction::Right || direction == Direction::Down)
|
||||
{
|
||||
amount = -amount;
|
||||
@@ -153,9 +152,10 @@ bool Pane::_Resize(const Direction& direction)
|
||||
// couldn't handle the resize.
|
||||
// Arguments:
|
||||
// - direction: The direction to move the separator in.
|
||||
// - amount: The percentage to resize by (between 0 and 1)
|
||||
// Return Value:
|
||||
// - true if we or a child handled this resize request.
|
||||
bool Pane::ResizePane(const Direction& direction)
|
||||
bool Pane::ResizePane(const Direction& direction, const float amount)
|
||||
{
|
||||
// If we're a leaf, do nothing. We can't possibly have a descendant with a
|
||||
// separator the correct direction.
|
||||
@@ -172,7 +172,7 @@ bool Pane::ResizePane(const Direction& direction)
|
||||
const bool secondIsFocused = _secondChild->_IsLeaf() && _secondChild->_lastActive;
|
||||
if (firstIsFocused || secondIsFocused)
|
||||
{
|
||||
return _Resize(direction);
|
||||
return _Resize(direction, amount);
|
||||
}
|
||||
|
||||
// If neither of our children were the focused leaf, then recurse into
|
||||
@@ -186,12 +186,12 @@ bool Pane::ResizePane(const Direction& direction)
|
||||
// either.
|
||||
if ((!_firstChild->_IsLeaf()) && _firstChild->_HasFocusedChild())
|
||||
{
|
||||
return _firstChild->ResizePane(direction) || _Resize(direction);
|
||||
return _firstChild->ResizePane(direction, amount) || _Resize(direction, amount);
|
||||
}
|
||||
|
||||
if ((!_secondChild->_IsLeaf()) && _secondChild->_HasFocusedChild())
|
||||
{
|
||||
return _secondChild->ResizePane(direction) || _Resize(direction);
|
||||
return _secondChild->ResizePane(direction, amount) || _Resize(direction, amount);
|
||||
}
|
||||
|
||||
return false;
|
||||
@@ -867,31 +867,94 @@ void Pane::_UpdateBorders()
|
||||
// - <none>
|
||||
void Pane::_ApplySplitDefinitions()
|
||||
{
|
||||
if (_splitState == SplitState::Vertical)
|
||||
if (_splitState == SplitState::Vertical || _splitState == SplitState::Horizontal)
|
||||
{
|
||||
Controls::Grid::SetColumn(_firstChild->GetRootElement(), 0);
|
||||
Controls::Grid::SetColumn(_secondChild->GetRootElement(), 1);
|
||||
if (_splitState == SplitState::Vertical)
|
||||
{
|
||||
Controls::Grid::SetColumn(_firstChild->GetRootElement(), 0);
|
||||
Controls::Grid::SetColumn(_secondChild->GetRootElement(), 1);
|
||||
|
||||
_firstChild->_borders = _borders | Borders::Right;
|
||||
_secondChild->_borders = _borders | Borders::Left;
|
||||
_borders = Borders::None;
|
||||
_firstChild->_borders = _borders | Borders::Right;
|
||||
_secondChild->_borders = _borders | Borders::Left;
|
||||
_borders = Borders::None;
|
||||
|
||||
_UpdateBorders();
|
||||
_firstChild->_UpdateBorders();
|
||||
_secondChild->_UpdateBorders();
|
||||
}
|
||||
else if (_splitState == SplitState::Horizontal)
|
||||
{
|
||||
Controls::Grid::SetRow(_firstChild->GetRootElement(), 0);
|
||||
Controls::Grid::SetRow(_secondChild->GetRootElement(), 1);
|
||||
_UpdateBorders();
|
||||
_firstChild->_UpdateBorders();
|
||||
_secondChild->_UpdateBorders();
|
||||
|
||||
_firstChild->_borders = _borders | Borders::Bottom;
|
||||
_secondChild->_borders = _borders | Borders::Top;
|
||||
_borders = Borders::None;
|
||||
// Only allow x-axis resizing
|
||||
_root.ManipulationMode(Xaml::Input::ManipulationModes::TranslateX | Xaml::Input::ManipulationModes::TranslateRailsX);
|
||||
}
|
||||
else if (_splitState == SplitState::Horizontal)
|
||||
{
|
||||
Controls::Grid::SetRow(_firstChild->GetRootElement(), 0);
|
||||
Controls::Grid::SetRow(_secondChild->GetRootElement(), 1);
|
||||
|
||||
_UpdateBorders();
|
||||
_firstChild->_UpdateBorders();
|
||||
_secondChild->_UpdateBorders();
|
||||
_firstChild->_borders = _borders | Borders::Bottom;
|
||||
_secondChild->_borders = _borders | Borders::Top;
|
||||
_borders = Borders::None;
|
||||
|
||||
_UpdateBorders();
|
||||
_firstChild->_UpdateBorders();
|
||||
_secondChild->_UpdateBorders();
|
||||
|
||||
// Only allow y-axis resizing
|
||||
_root.ManipulationMode(Xaml::Input::ManipulationModes::TranslateY | Xaml::Input::ManipulationModes::TranslateRailsY);
|
||||
}
|
||||
|
||||
// define mouse resize for this split
|
||||
_root.ManipulationDelta([this](auto&&, auto& args) {
|
||||
auto delta = args.Delta().Translation;
|
||||
|
||||
// Decide on direction based on delta
|
||||
Direction dir = Direction::None;
|
||||
if (_splitState == SplitState::Vertical)
|
||||
{
|
||||
if (delta.X < 0)
|
||||
{
|
||||
dir = Direction::Left;
|
||||
}
|
||||
else if (delta.X > 0)
|
||||
{
|
||||
dir = Direction::Right;
|
||||
}
|
||||
}
|
||||
else if (_splitState == SplitState::Horizontal)
|
||||
{
|
||||
if (delta.Y < 0)
|
||||
{
|
||||
dir = Direction::Up;
|
||||
}
|
||||
else if (delta.Y > 0)
|
||||
{
|
||||
dir = Direction::Down;
|
||||
}
|
||||
}
|
||||
|
||||
// Resize in the given direction
|
||||
if (dir != Direction::None)
|
||||
{
|
||||
// turn delta into a percentage
|
||||
base::ClampedNumeric<float> amount;
|
||||
base::ClampedNumeric<float> actualDimension;
|
||||
if (dir == Direction::Left || dir == Direction::Right)
|
||||
{
|
||||
amount = delta.X;
|
||||
// TODO CARLOS: something is wrong here
|
||||
actualDimension = base::ClampedNumeric<float>(_root.ActualWidth());
|
||||
}
|
||||
else if (dir == Direction::Up || dir == Direction::Down)
|
||||
{
|
||||
amount = delta.Y;
|
||||
// TODO CARLOS: something is wrong here
|
||||
actualDimension = base::ClampedNumeric<float>(_root.ActualHeight());
|
||||
}
|
||||
|
||||
amount /= actualDimension;
|
||||
|
||||
ResizePane(dir, amount.Abs());
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -55,7 +55,7 @@ public:
|
||||
const GUID& profile);
|
||||
void ResizeContent(const winrt::Windows::Foundation::Size& newSize);
|
||||
void Relayout();
|
||||
bool ResizePane(const winrt::TerminalApp::Direction& direction);
|
||||
bool ResizePane(const winrt::TerminalApp::Direction& direction, const float amount = 0.05f);
|
||||
bool NavigateFocus(const winrt::TerminalApp::Direction& direction);
|
||||
|
||||
bool CanSplit(winrt::TerminalApp::SplitState splitType);
|
||||
@@ -114,7 +114,7 @@ private:
|
||||
void _ApplySplitDefinitions();
|
||||
void _UpdateBorders();
|
||||
|
||||
bool _Resize(const winrt::TerminalApp::Direction& direction);
|
||||
bool _Resize(const winrt::TerminalApp::Direction& direction, float amount = 0.05f);
|
||||
bool _NavigateFocus(const winrt::TerminalApp::Direction& direction);
|
||||
|
||||
void _CloseChild(const bool closeFirst);
|
||||
@@ -136,8 +136,6 @@ private:
|
||||
|
||||
winrt::TerminalApp::SplitState _convertAutomaticSplitState(const winrt::TerminalApp::SplitState& splitType) const;
|
||||
|
||||
std::optional<winrt::TerminalApp::SplitState> _preCalculateAutoSplit(const std::shared_ptr<Pane> target, const winrt::Windows::Foundation::Size parentSize) const;
|
||||
|
||||
// Function Description:
|
||||
// - Returns true if the given direction can be used with the given split
|
||||
// type.
|
||||
|
||||
@@ -36,7 +36,6 @@ static constexpr std::string_view ConnectionTypeKey{ "connectionType" };
|
||||
static constexpr std::string_view CommandlineKey{ "commandline" };
|
||||
static constexpr std::string_view FontFaceKey{ "fontFace" };
|
||||
static constexpr std::string_view FontSizeKey{ "fontSize" };
|
||||
static constexpr std::string_view FontWeightKey{ "fontWeight" };
|
||||
static constexpr std::string_view AcrylicTransparencyKey{ "acrylicOpacity" };
|
||||
static constexpr std::string_view UseAcrylicKey{ "useAcrylic" };
|
||||
static constexpr std::string_view ScrollbarStateKey{ "scrollbarState" };
|
||||
@@ -67,19 +66,6 @@ static constexpr std::wstring_view CursorShapeUnderscore{ L"underscore" };
|
||||
static constexpr std::wstring_view CursorShapeFilledbox{ L"filledBox" };
|
||||
static constexpr std::wstring_view CursorShapeEmptybox{ L"emptyBox" };
|
||||
|
||||
// Possible values for Font Weight
|
||||
static constexpr std::string_view FontWeightThin{ "thin" };
|
||||
static constexpr std::string_view FontWeightExtraLight{ "extra-light" };
|
||||
static constexpr std::string_view FontWeightLight{ "light" };
|
||||
static constexpr std::string_view FontWeightSemiLight{ "semi-light" };
|
||||
static constexpr std::string_view FontWeightNormal{ "normal" };
|
||||
static constexpr std::string_view FontWeightMedium{ "medium" };
|
||||
static constexpr std::string_view FontWeightSemiBold{ "semi-bold" };
|
||||
static constexpr std::string_view FontWeightBold{ "bold" };
|
||||
static constexpr std::string_view FontWeightExtraBold{ "extra-bold" };
|
||||
static constexpr std::string_view FontWeightBlack{ "black" };
|
||||
static constexpr std::string_view FontWeightExtraBlack{ "extra-black" };
|
||||
|
||||
// Possible values for Image Stretch Mode
|
||||
static constexpr std::string_view ImageStretchModeNone{ "none" };
|
||||
static constexpr std::string_view ImageStretchModeFill{ "fill" };
|
||||
@@ -129,7 +115,6 @@ Profile::Profile(const std::optional<GUID>& guid) :
|
||||
_startingDirectory{},
|
||||
_fontFace{ DEFAULT_FONT_FACE },
|
||||
_fontSize{ DEFAULT_FONT_SIZE },
|
||||
/* _fontWeight is initialized below because the structure won't accept a uint16_t directly */
|
||||
_acrylicTransparency{ 0.5 },
|
||||
_useAcrylic{ false },
|
||||
_scrollbarState{},
|
||||
@@ -143,9 +128,6 @@ Profile::Profile(const std::optional<GUID>& guid) :
|
||||
_retroTerminalEffect{},
|
||||
_antialiasingMode{ TextAntialiasingMode::Grayscale }
|
||||
{
|
||||
winrt::Windows::UI::Text::FontWeight weight;
|
||||
weight.Weight = DEFAULT_FONT_WEIGHT;
|
||||
_fontWeight = weight;
|
||||
}
|
||||
|
||||
Profile::~Profile()
|
||||
@@ -198,7 +180,6 @@ TerminalSettings Profile::CreateTerminalSettings(const std::unordered_map<std::w
|
||||
|
||||
terminalSettings.FontFace(_fontFace);
|
||||
terminalSettings.FontSize(_fontSize);
|
||||
terminalSettings.FontWeight(_fontWeight);
|
||||
terminalSettings.Padding(_padding);
|
||||
|
||||
terminalSettings.Commandline(_commandline);
|
||||
@@ -493,12 +474,6 @@ void Profile::LayerJson(const Json::Value& json)
|
||||
|
||||
JsonUtils::GetInt(json, FontSizeKey, _fontSize);
|
||||
|
||||
if (json.isMember(JsonKey(FontWeightKey)))
|
||||
{
|
||||
auto fontWeight{ json[JsonKey(FontWeightKey)] };
|
||||
_fontWeight = _ParseFontWeight(fontWeight);
|
||||
}
|
||||
|
||||
JsonUtils::GetDouble(json, AcrylicTransparencyKey, _acrylicTransparency);
|
||||
|
||||
JsonUtils::GetBool(json, UseAcrylicKey, _useAcrylic);
|
||||
@@ -765,78 +740,6 @@ std::wstring Profile::EvaluateStartingDirectory(const std::wstring& directory)
|
||||
}
|
||||
}
|
||||
|
||||
// Method Description:
|
||||
// - Helper function for converting a user-specified font weight value to its corresponding enum
|
||||
// Arguments:
|
||||
// - The value from the settings.json file
|
||||
// Return Value:
|
||||
// - The corresponding value which maps to the string provided by the user
|
||||
winrt::Windows::UI::Text::FontWeight Profile::_ParseFontWeight(const Json::Value& json)
|
||||
{
|
||||
if (json.isUInt())
|
||||
{
|
||||
winrt::Windows::UI::Text::FontWeight weight;
|
||||
weight.Weight = static_cast<uint16_t>(json.asUInt());
|
||||
|
||||
// We're only accepting variable values between 100 and 990 so we don't go too crazy.
|
||||
if (weight.Weight >= 100 && weight.Weight <= 990)
|
||||
{
|
||||
return weight;
|
||||
}
|
||||
}
|
||||
|
||||
if (json.isString())
|
||||
{
|
||||
auto fontWeight = json.asString();
|
||||
if (fontWeight == FontWeightThin)
|
||||
{
|
||||
return winrt::Windows::UI::Text::FontWeights::Thin();
|
||||
}
|
||||
else if (fontWeight == FontWeightExtraLight)
|
||||
{
|
||||
return winrt::Windows::UI::Text::FontWeights::ExtraLight();
|
||||
}
|
||||
else if (fontWeight == FontWeightLight)
|
||||
{
|
||||
return winrt::Windows::UI::Text::FontWeights::Light();
|
||||
}
|
||||
else if (fontWeight == FontWeightSemiLight)
|
||||
{
|
||||
return winrt::Windows::UI::Text::FontWeights::SemiLight();
|
||||
}
|
||||
else if (fontWeight == FontWeightNormal)
|
||||
{
|
||||
return winrt::Windows::UI::Text::FontWeights::Normal();
|
||||
}
|
||||
else if (fontWeight == FontWeightMedium)
|
||||
{
|
||||
return winrt::Windows::UI::Text::FontWeights::Medium();
|
||||
}
|
||||
else if (fontWeight == FontWeightSemiBold)
|
||||
{
|
||||
return winrt::Windows::UI::Text::FontWeights::SemiBold();
|
||||
}
|
||||
else if (fontWeight == FontWeightBold)
|
||||
{
|
||||
return winrt::Windows::UI::Text::FontWeights::Bold();
|
||||
}
|
||||
else if (fontWeight == FontWeightExtraBold)
|
||||
{
|
||||
return winrt::Windows::UI::Text::FontWeights::ExtraBold();
|
||||
}
|
||||
else if (fontWeight == FontWeightBlack)
|
||||
{
|
||||
return winrt::Windows::UI::Text::FontWeights::Black();
|
||||
}
|
||||
else if (fontWeight == FontWeightExtraBlack)
|
||||
{
|
||||
return winrt::Windows::UI::Text::FontWeights::ExtraBlack();
|
||||
}
|
||||
}
|
||||
|
||||
return winrt::Windows::UI::Text::FontWeights::Normal();
|
||||
}
|
||||
|
||||
// Method Description:
|
||||
// - Helper function for converting a user-specified closeOnExit value to its corresponding enum
|
||||
// Arguments:
|
||||
|
||||
@@ -114,8 +114,6 @@ private:
|
||||
static std::tuple<winrt::Windows::UI::Xaml::HorizontalAlignment, winrt::Windows::UI::Xaml::VerticalAlignment> ParseImageAlignment(const std::string_view imageAlignment);
|
||||
static std::tuple<winrt::Windows::UI::Xaml::HorizontalAlignment, winrt::Windows::UI::Xaml::VerticalAlignment> _ConvertJsonToAlignment(const Json::Value& json);
|
||||
|
||||
static winrt::Windows::UI::Text::FontWeight _ParseFontWeight(const Json::Value& json);
|
||||
|
||||
static CloseOnExitMode ParseCloseOnExitMode(const Json::Value& json);
|
||||
static std::string_view _SerializeCloseOnExitMode(const CloseOnExitMode closeOnExitMode);
|
||||
|
||||
@@ -154,7 +152,6 @@ private:
|
||||
std::wstring _fontFace;
|
||||
std::optional<std::wstring> _startingDirectory;
|
||||
int32_t _fontSize;
|
||||
winrt::Windows::UI::Text::FontWeight _fontWeight;
|
||||
double _acrylicTransparency;
|
||||
bool _useAcrylic;
|
||||
|
||||
|
||||
@@ -68,7 +68,6 @@
|
||||
somehow. So make sure to only include top-level dependencies here (don't
|
||||
include Settings and Connection, since Control will include them for us) -->
|
||||
<ProjectReference Include="$(OpenConsoleDir)src\cascadia\TerminalSettings\TerminalSettings.vcxproj" />
|
||||
<ProjectReference Include="$(OpenConsoleDir)src\cascadia\TerminalSettingsControl\TerminalSettingsControl.vcxproj" />
|
||||
<ProjectReference Include="$(OpenConsoleDir)src\cascadia\TerminalConnection\TerminalConnection.vcxproj" />
|
||||
<ProjectReference Include="$(OpenConsoleDir)src\cascadia\TerminalControl\TerminalControl.vcxproj" />
|
||||
<!-- Reference TerminalAppLib here, so we can use it's TerminalApp.winmd as
|
||||
|
||||
@@ -11,7 +11,6 @@
|
||||
#include <LibraryResources.h>
|
||||
|
||||
#include "TerminalPage.g.cpp"
|
||||
#include <winrt/Windows.Storage.h>
|
||||
#include <winrt/Microsoft.UI.Xaml.XamlTypeInfo.h>
|
||||
|
||||
#include "AzureCloudShellGenerator.h" // For AzureConnectionType
|
||||
@@ -20,8 +19,6 @@
|
||||
#include "ColorHelper.h"
|
||||
#include "DebugTapConnection.h"
|
||||
|
||||
#include <winrt/Microsoft.Terminal.Settings.Control.h>
|
||||
|
||||
using namespace winrt;
|
||||
using namespace winrt::Windows::Foundation::Collections;
|
||||
using namespace winrt::Windows::UI::Xaml;
|
||||
@@ -1471,16 +1468,6 @@ namespace winrt::TerminalApp::implementation
|
||||
{
|
||||
text = co_await data.GetTextAsync();
|
||||
}
|
||||
// Windows Explorer's "Copy address" menu item stores a StorageItem in the clipboard, and no text.
|
||||
else if (data.Contains(StandardDataFormats::StorageItems()))
|
||||
{
|
||||
Windows::Foundation::Collections::IVectorView<Windows::Storage::IStorageItem> items = co_await data.GetStorageItemsAsync();
|
||||
if (items.Size() > 0)
|
||||
{
|
||||
Windows::Storage::IStorageItem item = items.GetAt(0);
|
||||
text = item.Path();
|
||||
}
|
||||
}
|
||||
eventArgs.HandleClipboardData(text);
|
||||
}
|
||||
CATCH_LOG();
|
||||
@@ -1512,29 +1499,20 @@ namespace winrt::TerminalApp::implementation
|
||||
// a background thread, as to not hang/crash the UI thread.
|
||||
fire_and_forget TerminalPage::_LaunchSettings(const bool openDefaults)
|
||||
{
|
||||
openDefaults;
|
||||
// This will switch the execution of the function to a background (not
|
||||
// UI) thread. This is IMPORTANT, because the Windows.Storage API's
|
||||
// (used for retrieving the path to the file) will crash on the UI
|
||||
// thread, because the main thread is a STA.
|
||||
co_await winrt::resume_background();
|
||||
|
||||
auto settingsPage = winrt::make_self<::winrt::Microsoft::Terminal::Settings::Control::MainPage>();
|
||||
auto tabViewItem = ::winrt::MUX::Controls::TabViewItem{};
|
||||
_tabView.TabItems().Append(tabViewItem);
|
||||
_tabView.SelectedItem(settingsPage);
|
||||
const auto settingsPath = openDefaults ? CascadiaSettings::GetDefaultSettingsPath() :
|
||||
CascadiaSettings::GetSettingsPath();
|
||||
|
||||
|
||||
|
||||
//// This will switch the execution of the function to a background (not
|
||||
//// UI) thread. This is IMPORTANT, because the Windows.Storage API's
|
||||
//// (used for retrieving the path to the file) will crash on the UI
|
||||
//// thread, because the main thread is a STA.
|
||||
//co_await winrt::resume_background();
|
||||
|
||||
//const auto settingsPath = openDefaults ? CascadiaSettings::GetDefaultSettingsPath() :
|
||||
// CascadiaSettings::GetSettingsPath();
|
||||
|
||||
//HINSTANCE res = ShellExecute(nullptr, nullptr, settingsPath.c_str(), nullptr, nullptr, SW_SHOW);
|
||||
//if (static_cast<int>(reinterpret_cast<uintptr_t>(res)) <= 32)
|
||||
//{
|
||||
// ShellExecute(nullptr, nullptr, L"notepad", settingsPath.c_str(), nullptr, SW_SHOW);
|
||||
//}
|
||||
HINSTANCE res = ShellExecute(nullptr, nullptr, settingsPath.c_str(), nullptr, nullptr, SW_SHOW);
|
||||
if (static_cast<int>(reinterpret_cast<uintptr_t>(res)) <= 32)
|
||||
{
|
||||
ShellExecute(nullptr, nullptr, L"notepad", settingsPath.c_str(), nullptr, SW_SHOW);
|
||||
}
|
||||
}
|
||||
|
||||
// Method Description:
|
||||
|
||||
@@ -274,12 +274,6 @@
|
||||
<Private>false</Private>
|
||||
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Terminal.Settings.Control">
|
||||
<HintPath>$(_BinRoot)TerminalSettingsControl\Microsoft.Terminal.Settings.Control.winmd</HintPath>
|
||||
<IsWinMDFile>true</IsWinMDFile>
|
||||
<Private>false</Private>
|
||||
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Terminal.TerminalConnection">
|
||||
<HintPath>$(_BinRoot)TerminalConnection\Microsoft.Terminal.TerminalConnection.winmd</HintPath>
|
||||
<IsWinMDFile>true</IsWinMDFile>
|
||||
|
||||
@@ -201,7 +201,6 @@ namespace winrt::Microsoft::Terminal::TerminalControl::implementation
|
||||
// things in DIPs, and the fontSize is in pixels.
|
||||
TextBlock().FontSize(unscaledFontSizePx);
|
||||
TextBlock().FontFamily(Media::FontFamily(fontArgs->FontFace()));
|
||||
TextBlock().FontWeight(fontArgs->FontWeight());
|
||||
|
||||
// TextBlock's actual dimensions right after initialization is 0w x 0h. So,
|
||||
// if an IME is displayed before TextBlock has text (like showing the emoji picker
|
||||
|
||||
@@ -27,8 +27,6 @@ namespace winrt::Microsoft::Terminal::TerminalControl::implementation
|
||||
GETSET_PROPERTY(Windows::Foundation::Size, FontSize);
|
||||
|
||||
GETSET_PROPERTY(winrt::hstring, FontFace);
|
||||
|
||||
GETSET_PROPERTY(Windows::UI::Text::FontWeight, FontWeight);
|
||||
};
|
||||
|
||||
struct TSFInputControl : TSFInputControlT<TSFInputControl>
|
||||
|
||||
@@ -14,7 +14,6 @@ namespace Microsoft.Terminal.TerminalControl
|
||||
{
|
||||
String FontFace { get; set; };
|
||||
Windows.Foundation.Size FontSize { get; set; };
|
||||
Windows.UI.Text.FontWeight FontWeight { get; set; };
|
||||
}
|
||||
|
||||
[default_interface]
|
||||
|
||||
@@ -63,8 +63,8 @@ namespace winrt::Microsoft::Terminal::TerminalControl::implementation
|
||||
_autoScrollingPointerPoint{ std::nullopt },
|
||||
_autoScrollTimer{},
|
||||
_lastAutoScrollUpdateTime{ std::nullopt },
|
||||
_desiredFont{ DEFAULT_FONT_FACE, 0, DEFAULT_FONT_WEIGHT, { 0, DEFAULT_FONT_SIZE }, CP_UTF8 },
|
||||
_actualFont{ DEFAULT_FONT_FACE, 0, DEFAULT_FONT_WEIGHT, { 0, DEFAULT_FONT_SIZE }, CP_UTF8, false },
|
||||
_desiredFont{ DEFAULT_FONT_FACE, 0, 10, { 0, DEFAULT_FONT_SIZE }, CP_UTF8 },
|
||||
_actualFont{ DEFAULT_FONT_FACE, 0, 10, { 0, DEFAULT_FONT_SIZE }, CP_UTF8, false },
|
||||
_touchAnchor{ std::nullopt },
|
||||
_cursorTimer{},
|
||||
_lastMouseClickTimestamp{},
|
||||
@@ -263,14 +263,13 @@ namespace winrt::Microsoft::Terminal::TerminalControl::implementation
|
||||
// Initialize our font information.
|
||||
const auto fontFace = _settings.FontFace();
|
||||
const short fontHeight = gsl::narrow_cast<short>(_settings.FontSize());
|
||||
const auto fontWeight = _settings.FontWeight();
|
||||
// The font width doesn't terribly matter, we'll only be using the
|
||||
// height to look it up
|
||||
// The other params here also largely don't matter.
|
||||
// The family is only used to determine if the font is truetype or
|
||||
// not, but DX doesn't use that info at all.
|
||||
// The Codepage is additionally not actually used by the DX engine at all.
|
||||
_actualFont = { fontFace, 0, fontWeight.Weight, { 0, fontHeight }, CP_UTF8, false };
|
||||
_actualFont = { fontFace, 0, 10, { 0, fontHeight }, CP_UTF8, false };
|
||||
_desiredFont = { _actualFont };
|
||||
|
||||
// set TSF Foreground
|
||||
@@ -1679,8 +1678,7 @@ namespace winrt::Microsoft::Terminal::TerminalControl::implementation
|
||||
// Make sure we have a non-zero font size
|
||||
const auto newSize = std::max<short>(gsl::narrow_cast<short>(fontSize), 1);
|
||||
const auto fontFace = _settings.FontFace();
|
||||
const auto fontWeight = _settings.FontWeight();
|
||||
_actualFont = { fontFace, 0, fontWeight.Weight, { 0, newSize }, CP_UTF8, false };
|
||||
_actualFont = { fontFace, 0, 10, { 0, newSize }, CP_UTF8, false };
|
||||
_desiredFont = { _actualFont };
|
||||
|
||||
auto lock = _terminal->LockForWriting();
|
||||
@@ -2199,14 +2197,13 @@ namespace winrt::Microsoft::Terminal::TerminalControl::implementation
|
||||
// Initialize our font information.
|
||||
const auto fontFace = settings.FontFace();
|
||||
const short fontHeight = gsl::narrow_cast<short>(settings.FontSize());
|
||||
const auto fontWeight = settings.FontWeight();
|
||||
// The font width doesn't terribly matter, we'll only be using the
|
||||
// height to look it up
|
||||
// The other params here also largely don't matter.
|
||||
// The family is only used to determine if the font is truetype or
|
||||
// not, but DX doesn't use that info at all.
|
||||
// The Codepage is additionally not actually used by the DX engine at all.
|
||||
FontInfo actualFont = { fontFace, 0, fontWeight.Weight, { 0, fontHeight }, CP_UTF8, false };
|
||||
FontInfo actualFont = { fontFace, 0, 10, { 0, fontHeight }, CP_UTF8, false };
|
||||
FontInfoDesired desiredFont = { actualFont };
|
||||
|
||||
// If the settings have negative or zero row or column counts, ignore those counts.
|
||||
@@ -2500,9 +2497,6 @@ namespace winrt::Microsoft::Terminal::TerminalControl::implementation
|
||||
{
|
||||
eventArgs.FontSize(CharacterDimensions());
|
||||
eventArgs.FontFace(_actualFont.GetFaceName());
|
||||
::winrt::Windows::UI::Text::FontWeight weight;
|
||||
weight.Weight = static_cast<uint16_t>(_actualFont.GetWeight());
|
||||
eventArgs.FontWeight(weight);
|
||||
}
|
||||
|
||||
// Method Description:
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
Microsoft namespace. This is, obviously, not great. None of our other
|
||||
projects compile properly when they depend on this "Microsoft.winmd."
|
||||
-->
|
||||
<CppWinRTNamespaceMergeDepth>4</CppWinRTNamespaceMergeDepth>
|
||||
<CppWinRTNamespaceMergeDepth>3</CppWinRTNamespaceMergeDepth>
|
||||
|
||||
<!--
|
||||
DON'T REDIRECT OUR OUTPUT.
|
||||
|
||||
@@ -34,7 +34,6 @@ namespace Microsoft.Terminal.Settings
|
||||
|
||||
String FontFace;
|
||||
Int32 FontSize;
|
||||
Windows.UI.Text.FontWeight FontWeight;
|
||||
String Padding;
|
||||
|
||||
IKeyBindings KeyBindings;
|
||||
|
||||
@@ -34,7 +34,6 @@ namespace winrt::Microsoft::Terminal::Settings::implementation
|
||||
_padding{ DEFAULT_PADDING },
|
||||
_fontFace{ DEFAULT_FONT_FACE },
|
||||
_fontSize{ DEFAULT_FONT_SIZE },
|
||||
_fontWeight{ DEFAULT_FONT_WEIGHT },
|
||||
_backgroundImage{},
|
||||
_backgroundImageOpacity{ 1.0 },
|
||||
_backgroundImageStretchMode{ winrt::Windows::UI::Xaml::Media::Stretch::UniformToFill },
|
||||
@@ -259,16 +258,6 @@ namespace winrt::Microsoft::Terminal::Settings::implementation
|
||||
_fontSize = value;
|
||||
}
|
||||
|
||||
winrt::Windows::UI::Text::FontWeight TerminalSettings::FontWeight() noexcept
|
||||
{
|
||||
return _fontWeight;
|
||||
}
|
||||
|
||||
void TerminalSettings::FontWeight(winrt::Windows::UI::Text::FontWeight value) noexcept
|
||||
{
|
||||
_fontWeight = value;
|
||||
}
|
||||
|
||||
void TerminalSettings::BackgroundImage(hstring const& value)
|
||||
{
|
||||
_backgroundImage = value;
|
||||
|
||||
@@ -68,8 +68,6 @@ namespace winrt::Microsoft::Terminal::Settings::implementation
|
||||
void FontFace(hstring const& value);
|
||||
int32_t FontSize() noexcept;
|
||||
void FontSize(int32_t value) noexcept;
|
||||
winrt::Windows::UI::Text::FontWeight FontWeight() noexcept;
|
||||
void FontWeight(winrt::Windows::UI::Text::FontWeight value) noexcept;
|
||||
|
||||
hstring BackgroundImage();
|
||||
void BackgroundImage(hstring const& value);
|
||||
@@ -135,7 +133,6 @@ namespace winrt::Microsoft::Terminal::Settings::implementation
|
||||
double _tintOpacity;
|
||||
hstring _fontFace;
|
||||
int32_t _fontSize;
|
||||
winrt::Windows::UI::Text::FontWeight _fontWeight;
|
||||
hstring _padding;
|
||||
hstring _backgroundImage;
|
||||
double _backgroundImageOpacity;
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
#include "pch.h"
|
||||
#include "ColorSchemes.h"
|
||||
#if __has_include("ColorSchemes.g.cpp")
|
||||
#include "ColorSchemes.g.cpp"
|
||||
#endif
|
||||
|
||||
using namespace winrt::Windows::UI::Xaml;
|
||||
|
||||
namespace winrt::Microsoft::Terminal::Settings::Control::implementation
|
||||
{
|
||||
ColorSchemes::ColorSchemes()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
int32_t ColorSchemes::MyProperty()
|
||||
{
|
||||
throw hresult_not_implemented();
|
||||
}
|
||||
|
||||
void ColorSchemes::MyProperty(int32_t /* value */)
|
||||
{
|
||||
throw hresult_not_implemented();
|
||||
}
|
||||
|
||||
void ColorSchemes::ClickHandler(IInspectable const&, RoutedEventArgs const&)
|
||||
{
|
||||
//Button().Content(box_value(L"Clicked"));
|
||||
}
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include "ColorSchemes.g.h"
|
||||
|
||||
namespace winrt::Microsoft::Terminal::Settings::Control::implementation
|
||||
{
|
||||
struct ColorSchemes : ColorSchemesT<ColorSchemes>
|
||||
{
|
||||
ColorSchemes();
|
||||
|
||||
int32_t MyProperty();
|
||||
void MyProperty(int32_t value);
|
||||
|
||||
void ClickHandler(Windows::Foundation::IInspectable const& sender, Windows::UI::Xaml::RoutedEventArgs const& args);
|
||||
};
|
||||
}
|
||||
|
||||
namespace winrt::Microsoft::Terminal::Settings::Control::factory_implementation
|
||||
{
|
||||
struct ColorSchemes : ColorSchemesT<ColorSchemes, implementation::ColorSchemes>
|
||||
{
|
||||
};
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
namespace Microsoft.Terminal.Settings.Control
|
||||
{
|
||||
[default_interface]
|
||||
runtimeclass ColorSchemes : Windows.UI.Xaml.Controls.Page
|
||||
{
|
||||
ColorSchemes();
|
||||
Int32 MyProperty;
|
||||
}
|
||||
}
|
||||
@@ -1,48 +0,0 @@
|
||||
<Page
|
||||
x:Class="Microsoft.Terminal.Settings.Control.ColorSchemes"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:local="using:Microsoft.Terminal.Settings"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
mc:Ignorable="d">
|
||||
|
||||
<RelativePanel Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
|
||||
<TextBlock x:Name="TitleTextBox"
|
||||
Text="Color Schemes"
|
||||
Style="{StaticResource HeaderTextBlockStyle}"
|
||||
Margin="0,0,0,8" />
|
||||
|
||||
<GridView x:Name="ProfilesGridView"
|
||||
Margin="0,0,0,8"
|
||||
RelativePanel.AlignLeftWithPanel="True"
|
||||
RelativePanel.AlignRightWithPanel="True"
|
||||
RelativePanel.Below="TitleTextBox">
|
||||
<GridView.ItemsPanel>
|
||||
<ItemsPanelTemplate>
|
||||
<ItemsWrapGrid x:Name="MaxItemsWrapGrid"
|
||||
MaximumRowsOrColumns="2"
|
||||
Orientation="Horizontal"/>
|
||||
</ItemsPanelTemplate>
|
||||
</GridView.ItemsPanel>
|
||||
<Image Source="Assets/AllTerminalColorSchemes (2).png"
|
||||
Stretch="Uniform"
|
||||
Width="300"/>
|
||||
<Image Source="Assets/AllTerminalColorSchemes (3).png"
|
||||
Stretch="Uniform"
|
||||
Width="300"/>
|
||||
<Image Source="Assets/AllTerminalColorSchemes (4).png"
|
||||
Stretch="Uniform"
|
||||
Width="300"/>
|
||||
<Image Source="Assets/AllTerminalColorSchemes (5).png"
|
||||
Stretch="Uniform"
|
||||
Width="300"/>
|
||||
<Image Source="Assets/AllTerminalColorSchemes (6).png"
|
||||
Stretch="Uniform"
|
||||
Width="300"/>
|
||||
<Image Source="Assets/AllTerminalColorSchemes (7).png"
|
||||
Stretch="Uniform"
|
||||
Width="300"/>
|
||||
</GridView>
|
||||
</RelativePanel>
|
||||
</Page>
|
||||
@@ -1,29 +0,0 @@
|
||||
#include "pch.h"
|
||||
#include "Globals.h"
|
||||
#include "Globals.g.cpp"
|
||||
|
||||
using namespace winrt;
|
||||
using namespace winrt::Windows::UI::Xaml;
|
||||
|
||||
namespace winrt::Microsoft::Terminal::Settings::Control::implementation
|
||||
{
|
||||
Globals::Globals()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
int32_t Globals::MyProperty()
|
||||
{
|
||||
throw hresult_not_implemented();
|
||||
}
|
||||
|
||||
void Globals::MyProperty(int32_t /* value */)
|
||||
{
|
||||
throw hresult_not_implemented();
|
||||
}
|
||||
|
||||
void Globals::ClickHandler(IInspectable const&, RoutedEventArgs const&)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include "Globals.g.h"
|
||||
|
||||
namespace winrt::Microsoft::Terminal::Settings::Control::implementation
|
||||
{
|
||||
struct Globals : GlobalsT<Globals>
|
||||
{
|
||||
Globals();
|
||||
|
||||
int32_t MyProperty();
|
||||
void MyProperty(int32_t value);
|
||||
|
||||
void ClickHandler(Windows::Foundation::IInspectable const& sender, Windows::UI::Xaml::RoutedEventArgs const& args);
|
||||
};
|
||||
}
|
||||
|
||||
namespace winrt::Microsoft::Terminal::Settings::Control::factory_implementation
|
||||
{
|
||||
struct Globals : GlobalsT<Globals, implementation::Globals>
|
||||
{
|
||||
};
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
namespace Microsoft.Terminal.Settings.Control
|
||||
{
|
||||
[default_interface]
|
||||
runtimeclass Globals : Windows.UI.Xaml.Controls.Page
|
||||
{
|
||||
Globals();
|
||||
Int32 MyProperty;
|
||||
}
|
||||
}
|
||||
@@ -1,80 +0,0 @@
|
||||
<Page
|
||||
x:Class="Microsoft.Terminal.Settings.Control.Globals"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:local="using:Microsoft.Terminal.Settings.Control"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:Controls="using:Microsoft.UI.Xaml.Controls"
|
||||
mc:Ignorable="d">
|
||||
|
||||
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
|
||||
Margin="0,12,0,0">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="*" />
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="1*" />
|
||||
<ColumnDefinition Width="1*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Text="Globals"
|
||||
Style="{StaticResource HeaderTextBlockStyle}"
|
||||
Margin="0,0,0,10" />
|
||||
<StackPanel Grid.Row="1" Grid.Column="0" Margin="0,0,100,0">
|
||||
<TextBlock Text="Appearance"
|
||||
Style="{StaticResource TitleTextBlockStyle}" Margin="0,0,0,10" />
|
||||
<Controls:RadioButtons Header="Requested Theme" Margin="0,0,0,10">
|
||||
<RadioButton x:Name="SystemTheme" Content="System"/>
|
||||
<RadioButton x:Name="DarkTheme" Content="Dark"/>
|
||||
<RadioButton x:Name="LightTheme" Content="Light"/>
|
||||
</Controls:RadioButtons>
|
||||
<Controls:RadioButtons Header="Launch mode" Margin="0,0,0,10">
|
||||
<RadioButton x:Name="DefaultLaunchMode" Content="Default"/>
|
||||
<RadioButton x:Name="MaximizedLaunchMode" Content="Maximized"/>
|
||||
</Controls:RadioButtons>
|
||||
<RelativePanel Margin="0,0,0,10">
|
||||
<Controls:NumberBox x:Name="InitialCols"
|
||||
Header="Initial Columns"
|
||||
Value="120"
|
||||
SpinButtonPlacementMode="Compact"
|
||||
SmallChange="10"
|
||||
LargeChange="100"
|
||||
Margin="0,0,20,0"/>
|
||||
<Controls:NumberBox x:Name="InitialRows"
|
||||
Header="Initial Rows"
|
||||
Value="30"
|
||||
SpinButtonPlacementMode="Compact"
|
||||
SmallChange="10"
|
||||
LargeChange="100"
|
||||
Margin="0,0,20,0"
|
||||
RelativePanel.RightOf="InitialCols"/>
|
||||
<TextBox Header="Initial position"
|
||||
RelativePanel.RightOf="InitialRows"/>
|
||||
</RelativePanel>
|
||||
<CheckBox Content="Always show tabs" />
|
||||
<CheckBox Content="Show Terminal title in titlebar" />
|
||||
<CheckBox Content="Show tabs in titlebar" Margin="0,0,0,10" />
|
||||
<Controls:RadioButtons Header="Tab width mode">
|
||||
<RadioButton x:Name="EqualTabWidthMode" Content="Equal"/>
|
||||
<RadioButton x:Name="TitleLengthTabWidthMode" Content="Title length"/>
|
||||
</Controls:RadioButtons>
|
||||
</StackPanel>
|
||||
<StackPanel Grid.Row="1" Grid.Column="1" Margin="0,0,100,0">
|
||||
<TextBlock Text="Interaction"
|
||||
Style="{StaticResource TitleTextBlockStyle}" Margin="0,0,0,10" />
|
||||
<TextBox Header="Default profile" Margin="0,0,0,10" />
|
||||
<TextBox Header="Word delimeters" Margin="0,0,0,10" />
|
||||
<CheckBox Content="Confirm close all tabs" />
|
||||
<CheckBox Content="Copy on select" />
|
||||
<CheckBox Content="Snap to grid on resize" Margin="0,0,0,10" />
|
||||
<Controls:NumberBox x:Name="RowsToScroll"
|
||||
Header="Rows to scroll"
|
||||
Value="30"
|
||||
SpinButtonPlacementMode="Compact"
|
||||
SmallChange="10"
|
||||
LargeChange="100"
|
||||
Width="100" HorizontalAlignment="Left"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Page>
|
||||
@@ -1,30 +0,0 @@
|
||||
#include "pch.h"
|
||||
#include "Keybindings.h"
|
||||
#if __has_include("Keybindings.g.cpp")
|
||||
#include "Keybindings.g.cpp"
|
||||
#endif
|
||||
|
||||
using namespace winrt::Windows::UI::Xaml;
|
||||
|
||||
namespace winrt::Microsoft::Terminal::Settings::Control::implementation
|
||||
{
|
||||
Keybindings::Keybindings()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
int32_t Keybindings::MyProperty()
|
||||
{
|
||||
throw hresult_not_implemented();
|
||||
}
|
||||
|
||||
void Keybindings::MyProperty(int32_t /* value */)
|
||||
{
|
||||
throw hresult_not_implemented();
|
||||
}
|
||||
|
||||
void Keybindings::ClickHandler(IInspectable const&, RoutedEventArgs const&)
|
||||
{
|
||||
//Button().Content(box_value(L"Clicked"));
|
||||
}
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include "Keybindings.g.h"
|
||||
|
||||
namespace winrt::Microsoft::Terminal::Settings::Control::implementation
|
||||
{
|
||||
struct Keybindings : KeybindingsT<Keybindings>
|
||||
{
|
||||
Keybindings();
|
||||
|
||||
int32_t MyProperty();
|
||||
void MyProperty(int32_t value);
|
||||
|
||||
void ClickHandler(Windows::Foundation::IInspectable const& sender, Windows::UI::Xaml::RoutedEventArgs const& args);
|
||||
};
|
||||
}
|
||||
|
||||
namespace winrt::Microsoft::Terminal::Settings::Control::factory_implementation
|
||||
{
|
||||
struct Keybindings : KeybindingsT<Keybindings, implementation::Keybindings>
|
||||
{
|
||||
};
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
namespace Microsoft.Terminal.Settings.Control
|
||||
{
|
||||
[default_interface]
|
||||
runtimeclass Keybindings : Windows.UI.Xaml.Controls.Page
|
||||
{
|
||||
Keybindings();
|
||||
Int32 MyProperty;
|
||||
}
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
<Page
|
||||
x:Class="Microsoft.Terminal.Settings.Control.Keybindings"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:local="using:Microsoft.Terminal.Settings.Control"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
mc:Ignorable="d">
|
||||
|
||||
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
|
||||
Margin="0,12,0,0">
|
||||
<StackPanel>
|
||||
<TextBlock x:Name="TitleTextBox"
|
||||
Text="Keybindings"
|
||||
Style="{StaticResource HeaderTextBlockStyle}"
|
||||
Margin="0,0,0,8" />
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Page>
|
||||
@@ -1,93 +0,0 @@
|
||||
#include "pch.h"
|
||||
#include "MainPage.h"
|
||||
#include "MainPage.g.cpp"
|
||||
#include "Globals.h"
|
||||
#include "Profiles.h"
|
||||
#include "ColorSchemes.h"
|
||||
#include "Keybindings.h"
|
||||
|
||||
using namespace winrt::Windows::UI::Xaml;
|
||||
|
||||
namespace winrt::Microsoft::Terminal::Settings::Control::implementation
|
||||
{
|
||||
MainPage::MainPage()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
int32_t MainPage::MyProperty()
|
||||
{
|
||||
throw hresult_not_implemented();
|
||||
}
|
||||
|
||||
void MainPage::MyProperty(int32_t /* value */)
|
||||
{
|
||||
throw hresult_not_implemented();
|
||||
}
|
||||
|
||||
void MainPage::ClickHandler(IInspectable const&, RoutedEventArgs const&)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void MainPage::SettingsNav_Loaded(IInspectable const&, RoutedEventArgs const&)
|
||||
{
|
||||
//// set the initial selectedItem
|
||||
for (uint32_t i = 0; i < SettingsNav().MenuItems().Size(); i++)
|
||||
{
|
||||
const auto item = SettingsNav().MenuItems().GetAt(i).as<Controls::NavigationViewItemBase>();
|
||||
const hstring globalsNav = L"Globals_Nav";
|
||||
const hstring itemTag = unbox_value<hstring>(item.Tag());
|
||||
|
||||
if (itemTag == globalsNav)
|
||||
{
|
||||
item.IsSelected(true);
|
||||
SettingsNav().Header() = item.Tag();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
contentFrame().Navigate(xaml_typename<Control::Globals>());
|
||||
}
|
||||
|
||||
void MainPage::SettingsNav_SelectionChanged(Controls::NavigationView sender, Controls::NavigationViewSelectionChangedEventArgs args)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void MainPage::SettingsNav_ItemInvoked(Controls::NavigationView sender, Controls::NavigationViewItemInvokedEventArgs args)
|
||||
{
|
||||
Controls::TextBlock item = args.InvokedItem().as<Controls::TextBlock>();
|
||||
|
||||
if (item != NULL)
|
||||
{
|
||||
const hstring globalsPage = L"Globals_Page";
|
||||
const hstring profilesPage = L"Profiles_Page";
|
||||
const hstring colorSchemesPage = L"ColorSchemes_Page";
|
||||
const hstring keybindingsPage = L"Keybindings_Page";
|
||||
|
||||
if (unbox_value<hstring>(item.Tag()) == globalsPage)
|
||||
{
|
||||
contentFrame().Navigate(xaml_typename<Control::Globals>());
|
||||
}
|
||||
else if (unbox_value<hstring>(item.Tag()) == profilesPage)
|
||||
{
|
||||
contentFrame().Navigate(xaml_typename<Control::Profiles>());
|
||||
}
|
||||
else if (unbox_value<hstring>(item.Tag()) == colorSchemesPage)
|
||||
{
|
||||
contentFrame().Navigate(xaml_typename<Control::ColorSchemes>());
|
||||
}
|
||||
else if (unbox_value<hstring>(item.Tag()) == keybindingsPage)
|
||||
{
|
||||
contentFrame().Navigate(xaml_typename<Control::Keybindings>());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//void winrt::Microsoft::Terminal::Settings::Control::implementation::MainPage::SettingsNav_SelectionChanged(winrt::Windows::UI::Xaml::Controls::NavigationView const& sender, winrt::Windows::UI::Xaml::Controls::NavigationViewSelectionChangedEventArgs const& args)
|
||||
//{
|
||||
//
|
||||
//}
|
||||
@@ -1,27 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include "MainPage.g.h"
|
||||
#include "winrt/Microsoft.UI.Xaml.Controls.h"
|
||||
|
||||
namespace winrt::Microsoft::Terminal::Settings::Control::implementation
|
||||
{
|
||||
struct MainPage : MainPageT<MainPage>
|
||||
{
|
||||
MainPage();
|
||||
|
||||
int32_t MyProperty();
|
||||
void MyProperty(int32_t value);
|
||||
|
||||
void ClickHandler(Windows::Foundation::IInspectable const& sender, Windows::UI::Xaml::RoutedEventArgs const& args);
|
||||
void SettingsNav_Loaded(Windows::Foundation::IInspectable const& sender, Windows::UI::Xaml::RoutedEventArgs const& args);
|
||||
void SettingsNav_SelectionChanged(Windows::UI::Xaml::Controls::NavigationView sender, Windows::UI::Xaml::Controls::NavigationViewSelectionChangedEventArgs args);
|
||||
void SettingsNav_ItemInvoked(Windows::UI::Xaml::Controls::NavigationView sender, Windows::UI::Xaml::Controls::NavigationViewItemInvokedEventArgs args);
|
||||
};
|
||||
}
|
||||
|
||||
namespace winrt::Microsoft::Terminal::Settings::Control::factory_implementation
|
||||
{
|
||||
struct MainPage : MainPageT<MainPage, implementation::MainPage>
|
||||
{
|
||||
};
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
namespace Microsoft.Terminal.Settings.Control
|
||||
{
|
||||
[default_interface]
|
||||
runtimeclass MainPage : Windows.UI.Xaml.Controls.Page
|
||||
{
|
||||
MainPage();
|
||||
Int32 MyProperty;
|
||||
}
|
||||
}
|
||||
@@ -1,52 +0,0 @@
|
||||
<Page
|
||||
x:Class="Microsoft.Terminal.Settings.Control.MainPage"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:local="using:Microsoft.Terminal.Settings.Control"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:muxc="using:Microsoft.UI.Xaml.Controls"
|
||||
mc:Ignorable="d">
|
||||
|
||||
<NavigationView x:Name="SettingsNav"
|
||||
IsSettingsVisible="False"
|
||||
Loaded="SettingsNav_Loaded"
|
||||
SelectionChanged="SettingsNav_SelectionChanged"
|
||||
ItemInvoked="SettingsNav_ItemInvoked">
|
||||
<NavigationView.AutoSuggestBox>
|
||||
<AutoSuggestBox PlaceholderText="Search" QueryIcon="Find"/>
|
||||
</NavigationView.AutoSuggestBox>
|
||||
<NavigationView.MenuItems>
|
||||
<NavigationViewItem Icon="Globe"
|
||||
Tag="Globals_Nav" >
|
||||
<TextBlock Tag="Globals_Page">Globals</TextBlock>
|
||||
</NavigationViewItem>
|
||||
<NavigationViewItem Tag="Profiles_Nav">
|
||||
<NavigationViewItem.Icon>
|
||||
<FontIcon Glyph="" />
|
||||
</NavigationViewItem.Icon>
|
||||
<TextBlock Tag="Profiles_Page">Profiles</TextBlock>
|
||||
</NavigationViewItem>
|
||||
<NavigationViewItem Tag="ColorSchemes_Nav">
|
||||
<NavigationViewItem.Icon>
|
||||
<FontIcon Glyph=""></FontIcon>
|
||||
</NavigationViewItem.Icon>
|
||||
<TextBlock Tag="ColorSchemes_Page">Color Schemes</TextBlock>
|
||||
</NavigationViewItem>
|
||||
<NavigationViewItem Icon="Keyboard"
|
||||
Tag="Keybindings_Nav">
|
||||
<TextBlock Tag="Keybindings_Page">Keybindings</TextBlock>
|
||||
</NavigationViewItem>
|
||||
</NavigationView.MenuItems>
|
||||
<NavigationView.PaneFooter>
|
||||
<NavigationViewItem>
|
||||
<NavigationViewItem.Icon>
|
||||
<FontIcon Glyph="" />
|
||||
</NavigationViewItem.Icon>
|
||||
<TextBlock>Open JSON file</TextBlock>
|
||||
</NavigationViewItem>
|
||||
</NavigationView.PaneFooter>
|
||||
<Frame x:Name="contentFrame"
|
||||
Margin="20"></Frame>
|
||||
</NavigationView>
|
||||
</Page>
|
||||
@@ -1,46 +0,0 @@
|
||||
#include "pch.h"
|
||||
#include "Profiles.h"
|
||||
#include "Profiles.g.cpp"
|
||||
|
||||
using namespace winrt::Windows::UI::Xaml;
|
||||
|
||||
namespace winrt::Microsoft::Terminal::Settings::Control::implementation
|
||||
{
|
||||
Profiles::Profiles()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
Profiles::Profiles(winrt::hstring const& name) : m_name{ name }
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
winrt::hstring Profiles::Name()
|
||||
{
|
||||
return m_name;
|
||||
}
|
||||
|
||||
void Profiles::Name(winrt::hstring const& value)
|
||||
{
|
||||
if (m_name != value)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
int32_t Profiles::MyProperty()
|
||||
{
|
||||
throw hresult_not_implemented();
|
||||
}
|
||||
|
||||
void Profiles::MyProperty(int32_t /* value */)
|
||||
{
|
||||
throw hresult_not_implemented();
|
||||
}
|
||||
|
||||
void Profiles::ClickHandler(IInspectable const&, RoutedEventArgs const&)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,29 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include "Profiles.g.h"
|
||||
|
||||
namespace winrt::Microsoft::Terminal::Settings::Control::implementation
|
||||
{
|
||||
struct Profiles : ProfilesT<Profiles>
|
||||
{
|
||||
Profiles();
|
||||
Profiles(winrt::hstring const& name);
|
||||
|
||||
int32_t MyProperty();
|
||||
void MyProperty(int32_t value);
|
||||
winrt::hstring Name();
|
||||
void Name(winrt::hstring const& value);
|
||||
|
||||
void ClickHandler(Windows::Foundation::IInspectable const& sender, Windows::UI::Xaml::RoutedEventArgs const& args);
|
||||
|
||||
private:
|
||||
winrt::hstring m_name;
|
||||
};
|
||||
}
|
||||
|
||||
namespace winrt::Microsoft::Terminal::Settings::Control::factory_implementation
|
||||
{
|
||||
struct Profiles : ProfilesT<Profiles, implementation::Profiles>
|
||||
{
|
||||
};
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
namespace Microsoft.Terminal.Settings.Control
|
||||
{
|
||||
[default_interface]
|
||||
runtimeclass Profiles : Windows.UI.Xaml.Controls.Page
|
||||
{
|
||||
Profiles();
|
||||
Int32 MyProperty;
|
||||
}
|
||||
}
|
||||
@@ -1,114 +0,0 @@
|
||||
<Page
|
||||
x:Class="Microsoft.Terminal.Settings.Control.Profiles"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:local="using:Microsoft.Terminal.Settings.Control"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:Windows10version1809="http://schemas.microsoft.com/winfx/2006/xaml/presentation?IsApiContractPresent(Windows.Foundation.UniversalApiContract, 7)"
|
||||
mc:Ignorable="d">
|
||||
|
||||
<RelativePanel Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
|
||||
<TextBlock x:Name="TitleTextBox"
|
||||
Text="Profiles"
|
||||
Style="{StaticResource HeaderTextBlockStyle}"
|
||||
Margin="0,0,0,8" />
|
||||
|
||||
<GridView x:Name="ProfilesGridView"
|
||||
Margin="0,0,0,8"
|
||||
RelativePanel.AlignLeftWithPanel="True"
|
||||
RelativePanel.AlignRightWithPanel="True"
|
||||
RelativePanel.Below="TitleTextBox">
|
||||
<GridView.ItemsPanel>
|
||||
<ItemsPanelTemplate>
|
||||
<ItemsWrapGrid x:Name="MaxItemsWrapGrid"
|
||||
MaximumRowsOrColumns="2"
|
||||
Orientation="Horizontal"/>
|
||||
</ItemsPanelTemplate>
|
||||
</GridView.ItemsPanel>
|
||||
<Image Source="Assets/AllTerminalProfiles (2).png"
|
||||
Stretch="Uniform"
|
||||
Width="300"/>
|
||||
<Image Source="Assets/AllTerminalProfiles (3).png"
|
||||
Stretch="Uniform"
|
||||
Width="300"/>
|
||||
<Image Source="Assets/AllTerminalProfiles (4).png"
|
||||
Stretch="Uniform"
|
||||
Width="300"/>
|
||||
<Image Source="Assets/AllTerminalProfiles (5).png"
|
||||
Stretch="Uniform"
|
||||
Width="300"/>
|
||||
<Image Source="Assets/AllTerminalProfiles (6).png"
|
||||
Stretch="Uniform"
|
||||
Width="300"/>
|
||||
<Image Source="Assets/AllTerminalProfiles (7).png"
|
||||
Stretch="Uniform"
|
||||
Width="300"/>
|
||||
</GridView>
|
||||
</RelativePanel>
|
||||
|
||||
<!--
|
||||
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
|
||||
Margin="0,12,0,0">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="*" />
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="1*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Text="Profiles"
|
||||
Style="{StaticResource HeaderTextBlockStyle}"
|
||||
Margin="0,0,0,10" />
|
||||
|
||||
<GridView x:Name="StyledGrid"
|
||||
Grid.Row="1"
|
||||
Margin="0,0,100,0" >
|
||||
<GridView.ItemTemplate>
|
||||
<DataTemplate x:DataType="x:String">
|
||||
|
||||
</DataTemplate>
|
||||
</GridView.ItemTemplate>
|
||||
<GridView.ItemContainerStyle>
|
||||
<Style TargetType="GridViewItem">
|
||||
<Setter Property="Margin" Value="5, 5, 5, 5"/>
|
||||
</Style>
|
||||
</GridView.ItemContainerStyle>
|
||||
|
||||
An extra property also needs to be added to the GridView's ItemsWrapGrid.
|
||||
The following sets the maximum # of items to show before wrapping.
|
||||
<GridView.ItemsPanel>
|
||||
<ItemsPanelTemplate>
|
||||
<ItemsWrapGrid x:Name="MaxItemsWrapGrid"
|
||||
MaximumRowsOrColumns="2"
|
||||
Orientation="Horizontal"/>
|
||||
</ItemsPanelTemplate>
|
||||
</GridView.ItemsPanel>
|
||||
|
||||
<x:String>Defaults</x:String>
|
||||
<x:String>Command Prompt</x:String>
|
||||
<x:String>Windows PowerShell</x:String>
|
||||
<x:String>Ubuntu</x:String>
|
||||
<x:String>PowerShell Core</x:String>
|
||||
<x:String>Add New</x:String>
|
||||
</GridView>
|
||||
</Grid> -->
|
||||
<!--<DataTemplate x:Name="ImageOverlayTemplate">
|
||||
<Grid Width="100">
|
||||
<Image Stretch="UniformToFill"/>
|
||||
<StackPanel Orientation="Vertical" Height="40" VerticalAlignment="Bottom" Padding="5,1,5,1"
|
||||
Background="LightGray" Opacity=".75">
|
||||
<TextBlock Text="Defaults"/>
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<TextBlock Text="More defaults" Style="{ThemeResource CaptionTextBlockStyle}"
|
||||
Foreground="{ThemeResource SystemControlPageTextBaseMediumBrush}"/>
|
||||
<TextBlock Text=" Likes" Style="{ThemeResource CaptionTextBlockStyle}"
|
||||
Foreground="{ThemeResource SystemControlPageTextBaseMediumBrush}"/>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</DataTemplate>-->
|
||||
|
||||
|
||||
|
||||
</Page>
|
||||
@@ -1,161 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{CA5CAD1A-0A1E-4F38-8704-9BFF1C37AA92}</ProjectGuid>
|
||||
<ProjectName>TerminalSettingsControl</ProjectName>
|
||||
<RootNamespace>Microsoft.Terminal.Settings.Control</RootNamespace>
|
||||
<!-- cppwinrt.build.pre.props depends on these settings: -->
|
||||
<!-- build a dll, not exe (Application) -->
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<!-- sets a bunch of Windows Universal properties -->
|
||||
<OpenConsoleUniversalApp>true</OpenConsoleUniversalApp>
|
||||
<!-- C++/WinRT sets the depth to 1 if there is a XAML file in the project
|
||||
Unfortunately for us, we need it to be 3. When the namespace merging
|
||||
depth is 1, Microsoft.Terminal.Settings.Control becomes "Microsoft",
|
||||
and our WinMD file becomes "Microsoft". Because WinRT is very
|
||||
namespace-driven, this winmd is considered to contain the entire
|
||||
Microsoft namespace. This is, obviously, not great. None of our other
|
||||
projects compile properly when they depend on this "Microsoft.winmd."
|
||||
-->
|
||||
<CppWinRTNamespaceMergeDepth>4</CppWinRTNamespaceMergeDepth>
|
||||
<!--
|
||||
DON'T REDIRECT OUR OUTPUT.
|
||||
Setting this will tell cppwinrt.build.post.props to copy our output from
|
||||
the default OutDir up one level, so the wapproj will be able to find it.
|
||||
-->
|
||||
<NoOutputRedirection>true</NoOutputRedirection>
|
||||
<XamlComponentResourceLocation>nested</XamlComponentResourceLocation>
|
||||
<WindowsTargetPlatformVersion>10.0.18362.0</WindowsTargetPlatformVersion>
|
||||
<WindowsTargetPlatformMinVersion>10.0.18362.0</WindowsTargetPlatformMinVersion>
|
||||
</PropertyGroup>
|
||||
<Import Project="..\..\..\common.openconsole.props" Condition="'$(OpenConsoleDir)'==''" />
|
||||
<Import Project="$(OpenConsoleDir)src\cppwinrt.build.pre.props" />
|
||||
<!-- Without this, the TerminalSettingsControl will forward the Microsoft.UI.XAML dependency upward and cause MDMerge to see the same type twicehttps
|
||||
https://github.com/microsoft/microsoft-ui-xaml/issues/1573 -->
|
||||
<ItemDefinitionGroup>
|
||||
<Reference>
|
||||
<Private Condition="'$(ConfigurationType)' != 'Application'">false</Private>
|
||||
</Reference>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="pch.h" />
|
||||
<ClInclude Include="ColorSchemes.h">
|
||||
<DependentUpon>ColorSchemes.xaml</DependentUpon>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Globals.h">
|
||||
<DependentUpon>Globals.xaml</DependentUpon>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Keybindings.h">
|
||||
<DependentUpon>Keybindings.xaml</DependentUpon>
|
||||
</ClInclude>
|
||||
<ClInclude Include="MainPage.h">
|
||||
<DependentUpon>MainPage.xaml</DependentUpon>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Profiles.h">
|
||||
<DependentUpon>Profiles.xaml</DependentUpon>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="pch.cpp">
|
||||
<PrecompiledHeader>Create</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
<ClCompile Include="init.cpp" />
|
||||
<ClCompile Include="ColorSchemes.cpp">
|
||||
<DependentUpon>ColorSchemes.xaml</DependentUpon>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Globals.cpp">
|
||||
<DependentUpon>Globals.xaml</DependentUpon>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Keybindings.cpp">
|
||||
<DependentUpon>Keybindings.xaml</DependentUpon>
|
||||
</ClCompile>
|
||||
<ClCompile Include="MainPage.cpp">
|
||||
<DependentUpon>MainPage.xaml</DependentUpon>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Profiles.cpp">
|
||||
<DependentUpon>Profiles.xaml</DependentUpon>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(GeneratedFilesDir)module.g.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Midl Include="ColorSchemes.idl">
|
||||
<DependentUpon>ColorSchemes.xaml</DependentUpon>
|
||||
</Midl>
|
||||
<Midl Include="Globals.idl">
|
||||
<DependentUpon>Globals.xaml</DependentUpon>
|
||||
</Midl>
|
||||
<Midl Include="Keybindings.idl">
|
||||
<DependentUpon>Keybindings.xaml</DependentUpon>
|
||||
</Midl>
|
||||
<Midl Include="MainPage.idl">
|
||||
<DependentUpon>MainPage.xaml</DependentUpon>
|
||||
</Midl>
|
||||
<Midl Include="Profiles.idl">
|
||||
<DependentUpon>Profiles.xaml</DependentUpon>
|
||||
</Midl>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="packages.config" />
|
||||
<None Include="TerminalSettingsControl.def" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<PRIResource Include="Resources\*\Resources.resw" />
|
||||
</ItemGroup>
|
||||
<!-- ========================= Project References ======================== -->
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\types\lib\types.vcxproj" />
|
||||
<ProjectReference Include="..\..\buffer\out\lib\bufferout.vcxproj" />
|
||||
<ProjectReference Include="$(OpenConsoleDir)src\renderer\base\lib\base.vcxproj" />
|
||||
<ProjectReference Include="..\..\renderer\dx\lib\dx.vcxproj" />
|
||||
<ProjectReference Include="..\..\renderer\uia\lib\uia.vcxproj" />
|
||||
<ProjectReference Include="..\..\terminal\parser\lib\parser.vcxproj" />
|
||||
<ProjectReference Include="$(OpenConsoleDir)src\terminal\input\lib\terminalinput.vcxproj" />
|
||||
<ProjectReference Include="$(OpenConsoleDir)src\cascadia\TerminalSettings\TerminalSettings.vcxproj">
|
||||
<Private>false</Private>
|
||||
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="$(OpenConsoleDir)src\cascadia\TerminalCore\lib\TerminalCore-lib.vcxproj" />
|
||||
<ProjectReference Include="$(OpenConsoleDir)src\cascadia\TerminalConnection\TerminalConnection.vcxproj">
|
||||
<Private>false</Private>
|
||||
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="$(OpenConsoleDir)src\cascadia\WinRTUtils\WinRTUtils.vcxproj">
|
||||
<Project>{CA5CAD1A-039A-4929-BA2A-8BEB2E4106FE}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Page Include="ColorSchemes.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="Globals.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="Keybindings.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="MainPage.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="Profiles.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
</ItemGroup>
|
||||
<Import Project="$(OpenConsoleDir)src\cppwinrt.build.post.props" />
|
||||
<ItemDefinitionGroup>
|
||||
<Link>
|
||||
<AdditionalDependencies>dwrite.lib;dxgi.lib;d2d1.lib;d3d11.lib;shcore.lib;winmm.lib;pathcch.lib;propsys.lib;uiautomationcore.lib;Shlwapi.lib;ntdll.lib;user32.lib;kernel32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>$(OpenConsoleDir)src\cascadia\inc;$(OpenConsoleDir)src\types\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<Import Project="..\..\..\packages\Microsoft.UI.Xaml.2.3.191217003-prerelease\build\native\Microsoft.UI.Xaml.targets" Condition="Exists('..\..\..\packages\Microsoft.UI.Xaml.2.3.191217003-prerelease\build\native\Microsoft.UI.Xaml.targets')" />
|
||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||
<PropertyGroup>
|
||||
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
||||
</PropertyGroup>
|
||||
<Error Condition="!Exists('..\..\..\packages\Microsoft.UI.Xaml.2.3.191217003-prerelease\build\native\Microsoft.UI.Xaml.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\Microsoft.UI.Xaml.2.3.191217003-prerelease\build\native\Microsoft.UI.Xaml.targets'))" />
|
||||
</Target>
|
||||
</Project>
|
||||
@@ -1,56 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Resources">
|
||||
<UniqueIdentifier>accd3aa8-1ba0-4223-9bbe-0c431709210b</UniqueIdentifier>
|
||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tga;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Generated Files">
|
||||
<UniqueIdentifier>{926ab91d-31b4-48c3-b9a4-e681349f27f0}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="pch.cpp" />
|
||||
<ClCompile Include="$(GeneratedFilesDir)module.g.cpp" />
|
||||
<ClCompile Include="ColorSchemes.cpp" />
|
||||
<ClCompile Include="Globals.cpp" />
|
||||
<ClCompile Include="Keybindings.cpp" />
|
||||
<ClCompile Include="MainPage.cpp" />
|
||||
<ClCompile Include="Profiles.cpp" />
|
||||
<ClCompile Include="init.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="pch.h" />
|
||||
<ClInclude Include="ColorSchemes.h" />
|
||||
<ClInclude Include="Globals.h" />
|
||||
<ClInclude Include="Keybindings.h" />
|
||||
<ClInclude Include="MainPage.h" />
|
||||
<ClInclude Include="Profiles.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Midl Include="ColorSchemes.idl" />
|
||||
<Midl Include="Globals.idl" />
|
||||
<Midl Include="Keybindings.idl" />
|
||||
<Midl Include="MainPage.idl" />
|
||||
<Midl Include="Profiles.idl" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="TerminalSettingsControl.def" />
|
||||
<None Include="packages.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Page Include="ColorSchemes.xaml" />
|
||||
<Page Include="Globals.xaml" />
|
||||
<Page Include="Keybindings.xaml" />
|
||||
<Page Include="MainPage.xaml" />
|
||||
<Page Include="Profiles.xaml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Natvis Include="$(SolutionDir)tools\ConsoleTypes.natvis" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<PRIResource Include="Resources\*\Resources.resw">
|
||||
<Filter>Resources</Filter>
|
||||
</PRIResource>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -1,34 +0,0 @@
|
||||
// Copyright (c) Microsoft Corporation
|
||||
// Licensed under the MIT license.
|
||||
|
||||
#include "pch.h"
|
||||
#include <LibraryResources.h>
|
||||
|
||||
// Note: Generate GUID using TlgGuid.exe tool
|
||||
TRACELOGGING_DEFINE_PROVIDER(
|
||||
g_hTerminalSettingsControlProvider,
|
||||
"Microsoft.Windows.Terminal.Settings.Control",
|
||||
// {58272983-4ad8-5de8-adbc-2db4810c3b21}
|
||||
(0x58272983,0x4ad8,0x5de8,0xad,0xbc,0x2d,0xb4,0x81,0x0c,0x3b,0x21),
|
||||
TraceLoggingOptionMicrosoftTelemetry());
|
||||
|
||||
BOOL WINAPI DllMain(HINSTANCE hInstDll, DWORD reason, LPVOID /*reserved*/)
|
||||
{
|
||||
switch (reason)
|
||||
{
|
||||
case DLL_PROCESS_ATTACH:
|
||||
DisableThreadLibraryCalls(hInstDll);
|
||||
TraceLoggingRegister(g_hTerminalSettingsControlProvider);
|
||||
break;
|
||||
case DLL_PROCESS_DETACH:
|
||||
if (g_hTerminalSettingsControlProvider)
|
||||
{
|
||||
TraceLoggingUnregister(g_hTerminalSettingsControlProvider);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
UTILS_DEFINE_LIBRARY_RESOURCE_SCOPE(L"Microsoft.Terminal.Settings.Control/Resources");
|
||||
@@ -1,5 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="Microsoft.UI.Xaml" version="2.3.191217003-prerelease" targetFramework="native" />
|
||||
<package id="Microsoft.Windows.CppWinRT" version="2.0.200316.3" targetFramework="native" />
|
||||
</packages>
|
||||
@@ -1,4 +0,0 @@
|
||||
// Copyright (c) Microsoft Corporation.
|
||||
// Licensed under the MIT license.
|
||||
|
||||
#include "pch.h"
|
||||
@@ -1,57 +0,0 @@
|
||||
// Copyright (c) Microsoft Corporation.
|
||||
// Licensed under the MIT license.
|
||||
//
|
||||
// pch.h
|
||||
// Header for platform projection include files
|
||||
//
|
||||
|
||||
#pragma once
|
||||
|
||||
#define WIN32_LEAN_AND_MEAN
|
||||
|
||||
// Manually include til after we include Windows.Foundation to give it winrt superpowers
|
||||
#define BLOCK_TIL
|
||||
#include <LibraryIncludes.h>
|
||||
// This is inexplicable, but for whatever reason, cppwinrt conflicts with the
|
||||
// SDK definition of this function, so the only fix is to undef it.
|
||||
// from WinBase.h
|
||||
// Windows::UI::Xaml::Media::Animation::IStoryboard::GetCurrentTime
|
||||
#ifdef GetCurrentTime
|
||||
#undef GetCurrentTime
|
||||
#endif
|
||||
|
||||
#include <wil/cppwinrt.h>
|
||||
|
||||
#include <unknwn.h>
|
||||
#include <winrt/Windows.Foundation.h>
|
||||
#include <winrt/Windows.Foundation.Collections.h>
|
||||
#include <winrt/Windows.system.h>
|
||||
#include <winrt/Windows.Graphics.Display.h>
|
||||
#include <winrt/windows.ui.core.h>
|
||||
#include <winrt/Windows.ui.input.h>
|
||||
#include <winrt/Windows.UI.ViewManagement.h>
|
||||
#include <winrt/Windows.UI.Xaml.h>
|
||||
#include <winrt/Windows.UI.Xaml.Automation.Peers.h>
|
||||
#include <winrt/Windows.UI.Text.Core.h>
|
||||
#include <winrt/Windows.UI.Xaml.Controls.h>
|
||||
#include <winrt/Windows.UI.Xaml.Controls.Primitives.h>
|
||||
#include <winrt/Windows.UI.Xaml.Data.h>
|
||||
#include <winrt/Windows.UI.Xaml.Media.h>
|
||||
#include <winrt/Windows.UI.Xaml.Media.Imaging.h>
|
||||
#include <winrt/Windows.UI.Xaml.Input.h>
|
||||
#include <winrt/Windows.UI.Xaml.Interop.h>
|
||||
#include <winrt/Windows.ui.xaml.markup.h>
|
||||
#include <winrt/Windows.ApplicationModel.DataTransfer.h>
|
||||
#include <winrt/Windows.Storage.h>
|
||||
|
||||
#include <winrt/Microsoft.UI.Xaml.Controls.h>
|
||||
#include <winrt/Microsoft.UI.Xaml.Controls.Primitives.h>
|
||||
#include <winrt/Microsoft.UI.Xaml.XamlTypeInfo.h>
|
||||
|
||||
#include <windows.ui.xaml.media.dxinterop.h>
|
||||
|
||||
#include <TraceLoggingProvider.h>
|
||||
TRACELOGGING_DECLARE_PROVIDER(g_hTerminalControlProvider);
|
||||
#include <telemetry/ProjectTelemetry.h>
|
||||
|
||||
#include "til.h"
|
||||
@@ -1,3 +0,0 @@
|
||||
EXPORTS
|
||||
DllCanUnloadNow = WINRT_CanUnloadNow PRIVATE
|
||||
DllGetActivationFactory = WINRT_GetActivationFactory PRIVATE
|
||||
@@ -205,11 +205,6 @@ void NonClientIslandWindow::Initialize()
|
||||
_rootGrid.Children().Append(_titlebar);
|
||||
|
||||
Controls::Grid::SetRow(_titlebar, 0);
|
||||
|
||||
// GH#3440 - When the titlebar is loaded (officially added to our UI tree),
|
||||
// then make sure to update it's visual state to reflect if we're in the
|
||||
// maximized state on launch.
|
||||
_titlebar.Loaded([this](auto&&, auto&&) { _OnMaximizeChange(); });
|
||||
}
|
||||
|
||||
// Method Description:
|
||||
|
||||
@@ -60,6 +60,9 @@ void ConsoleImeInfo::WriteCompMessage(const std::wstring_view text,
|
||||
const std::basic_string_view<BYTE> attributes,
|
||||
const std::basic_string_view<WORD> colorArray)
|
||||
{
|
||||
// Backup the cursor visibility state and turn it off for drawing.
|
||||
_SaveCursorVisibility();
|
||||
|
||||
ClearAllAreas();
|
||||
|
||||
// Save copies of the composition message in case we need to redraw it as things scroll/resize
|
||||
@@ -77,6 +80,8 @@ void ConsoleImeInfo::WriteCompMessage(const std::wstring_view text,
|
||||
// - text - The actual text of what the user would like to insert (UTF-16)
|
||||
void ConsoleImeInfo::WriteResultMessage(const std::wstring_view text)
|
||||
{
|
||||
_RestoreCursorVisibility();
|
||||
|
||||
ClearAllAreas();
|
||||
|
||||
_InsertConvertedString(text);
|
||||
@@ -466,7 +471,7 @@ void ConsoleImeInfo::_InsertConvertedString(const std::wstring_view text)
|
||||
// Routine Description:
|
||||
// - Backs up the global cursor visibility state if it is shown and disables
|
||||
// it while we work on the conversion areas.
|
||||
void ConsoleImeInfo::SaveCursorVisibility()
|
||||
void ConsoleImeInfo::_SaveCursorVisibility()
|
||||
{
|
||||
CONSOLE_INFORMATION& gci = ServiceLocator::LocateGlobals().getConsoleInformation();
|
||||
Cursor& cursor = gci.GetActiveOutputBuffer().GetTextBuffer().GetCursor();
|
||||
@@ -482,7 +487,7 @@ void ConsoleImeInfo::SaveCursorVisibility()
|
||||
|
||||
// Routine Description:
|
||||
// - Restores the global cursor visibility state if it was on when it was backed up.
|
||||
void ConsoleImeInfo::RestoreCursorVisibility()
|
||||
void ConsoleImeInfo::_RestoreCursorVisibility()
|
||||
{
|
||||
if (_isSavedCursorVisible)
|
||||
{
|
||||
|
||||
@@ -55,9 +55,6 @@ public:
|
||||
|
||||
void RedrawCompMessage();
|
||||
|
||||
void SaveCursorVisibility();
|
||||
void RestoreCursorVisibility();
|
||||
|
||||
private:
|
||||
[[nodiscard]] HRESULT _AddConversionArea();
|
||||
|
||||
@@ -83,6 +80,8 @@ private:
|
||||
const Microsoft::Console::Types::Viewport view,
|
||||
SCREEN_INFORMATION& screenInfo);
|
||||
|
||||
void _SaveCursorVisibility();
|
||||
void _RestoreCursorVisibility();
|
||||
bool _isSavedCursorVisible;
|
||||
|
||||
std::wstring _text;
|
||||
|
||||
@@ -104,9 +104,6 @@ void WriteConvRegionToScreen(const SCREEN_INFORMATION& ScreenInfo,
|
||||
gci.LockConsole();
|
||||
auto unlock = wil::scope_exit([&] { gci.UnlockConsole(); });
|
||||
|
||||
ConsoleImeInfo* const pIme = &gci.ConsoleIme;
|
||||
pIme->SaveCursorVisibility();
|
||||
|
||||
gci.pInputBuffer->fInComposition = true;
|
||||
return S_OK;
|
||||
}
|
||||
@@ -117,9 +114,6 @@ void WriteConvRegionToScreen(const SCREEN_INFORMATION& ScreenInfo,
|
||||
gci.LockConsole();
|
||||
auto unlock = wil::scope_exit([&] { gci.UnlockConsole(); });
|
||||
|
||||
ConsoleImeInfo* const pIme = &gci.ConsoleIme;
|
||||
pIme->RestoreCursorVisibility();
|
||||
|
||||
gci.pInputBuffer->fInComposition = false;
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
@@ -30,7 +30,6 @@ constexpr short DEFAULT_HISTORY_SIZE = 9001;
|
||||
// TODO GH 2674, don't disable this warning, move to std::wstring_view or something like that.
|
||||
const std::wstring DEFAULT_FONT_FACE{ L"Cascadia Mono" };
|
||||
constexpr int DEFAULT_FONT_SIZE = 12;
|
||||
constexpr uint16_t DEFAULT_FONT_WEIGHT = 400; // normal
|
||||
|
||||
constexpr int DEFAULT_ROWS = 30;
|
||||
constexpr int DEFAULT_COLS = 120;
|
||||
|
||||
@@ -2003,7 +2003,7 @@ CATCH_RETURN();
|
||||
try
|
||||
{
|
||||
std::wstring fontName(desired.GetFaceName());
|
||||
DWRITE_FONT_WEIGHT weight = static_cast<DWRITE_FONT_WEIGHT>(desired.GetWeight());
|
||||
DWRITE_FONT_WEIGHT weight = DWRITE_FONT_WEIGHT_NORMAL;
|
||||
DWRITE_FONT_STYLE style = DWRITE_FONT_STYLE_NORMAL;
|
||||
DWRITE_FONT_STRETCH stretch = DWRITE_FONT_STRETCH_NORMAL;
|
||||
std::wstring localeName = _GetLocaleName();
|
||||
|
||||
@@ -9,7 +9,6 @@
|
||||
#undef WIN32_LEAN_AND_MEAN
|
||||
#undef NOMINMAX
|
||||
#define NOMINMAX
|
||||
#include <stdexcept>
|
||||
#include <string>
|
||||
#include <string_view>
|
||||
#include <array>
|
||||
|
||||
@@ -19,7 +19,7 @@ namespace
|
||||
return range.upperBound < searchTerm;
|
||||
}
|
||||
|
||||
static constexpr std::array<UnicodeRange, 294> s_wideAndAmbiguousTable{
|
||||
static constexpr std::array<UnicodeRange, 342> s_wideAndAmbiguousTable{
|
||||
// generated from http://www.unicode.org/Public/UCD/latest/ucd/EastAsianWidth.txt
|
||||
// anything not present here is presumed to be Narrow.
|
||||
//
|
||||
@@ -28,21 +28,6 @@ namespace
|
||||
// force a font lookup, but since we default all Ambiguous width to Narrow, those emojis always
|
||||
// came out looking squished/tiny. They've been moved into this table and marked as Wide.
|
||||
//
|
||||
// === UCD Definitions ===
|
||||
// EA - EastAsianWidth
|
||||
// Emoji - Emoji
|
||||
// EPres - Emoji Presentation
|
||||
// =======================
|
||||
//
|
||||
// This table has been partially regenerated from the Unicode Character Database as of 13.0, with
|
||||
// the following rules:
|
||||
// Codepoints whose EA is "W", "F" are Wide
|
||||
// Codepoints whose EA is "A" are Ambiguous
|
||||
// Codepoints where Emoji=Y and EPres=Y are Emoji, therefore Wide
|
||||
// -
|
||||
// Codepoints where Emoji=Y but EPres=*N* are only Emoji when followed
|
||||
// by U+FE0F variation selector 15.
|
||||
//
|
||||
// There are a couple of codepoints that Microsoft specifically gave an emoji representation
|
||||
// even if it's not specified as an emoji in the standard. I'll list the ones I'm aware of in this comment in case
|
||||
// we decide to add them in the future:
|
||||
@@ -52,6 +37,12 @@ namespace
|
||||
// 0x2664,
|
||||
// 0x2666 0x2710,
|
||||
// 0x270E 0x2765 0x1f000 - 0x1f02b except 0x1f004 0x1f594
|
||||
//
|
||||
// GH #5822 - Removed glyphs that appear inside of CP437 (https://en.wikipedia.org/wiki/Code_page_437)
|
||||
// and WGL4 (https://en.wikipedia.org/wiki/Windows_Glyph_List_4) since they've been narrow since the
|
||||
// beginning of time and changing it to wide would only cause destruction.
|
||||
//
|
||||
// *** Codepoint ranges marked with "OVR" have their given width from EastAsianWidth.txt overridden.
|
||||
UnicodeRange{ 0xa1, 0xa1, CodepointWidth::Ambiguous },
|
||||
UnicodeRange{ 0xa4, 0xa4, CodepointWidth::Ambiguous },
|
||||
UnicodeRange{ 0xa7, 0xa8, CodepointWidth::Ambiguous },
|
||||
@@ -137,6 +128,7 @@ namespace
|
||||
UnicodeRange{ 0x2121, 0x2122, CodepointWidth::Ambiguous },
|
||||
UnicodeRange{ 0x2126, 0x2126, CodepointWidth::Ambiguous },
|
||||
UnicodeRange{ 0x212b, 0x212b, CodepointWidth::Ambiguous },
|
||||
UnicodeRange{ 0x2139, 0x2139, CodepointWidth::Wide }, // OVR
|
||||
UnicodeRange{ 0x2153, 0x2154, CodepointWidth::Ambiguous },
|
||||
UnicodeRange{ 0x215b, 0x215e, CodepointWidth::Ambiguous },
|
||||
UnicodeRange{ 0x2160, 0x216b, CodepointWidth::Ambiguous },
|
||||
@@ -176,12 +168,15 @@ namespace
|
||||
UnicodeRange{ 0x22a5, 0x22a5, CodepointWidth::Ambiguous },
|
||||
UnicodeRange{ 0x22bf, 0x22bf, CodepointWidth::Ambiguous },
|
||||
UnicodeRange{ 0x2312, 0x2312, CodepointWidth::Ambiguous },
|
||||
UnicodeRange{ 0x231a, 0x231b, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x2329, 0x232a, CodepointWidth::Wide },
|
||||
UnicodeRange{ 0x23e9, 0x23ec, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x23f0, 0x23f0, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x23f3, 0x23f3, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x2460, 0x24e9, CodepointWidth::Ambiguous },
|
||||
UnicodeRange{ 0x231a, 0x231b, CodepointWidth::Wide },
|
||||
UnicodeRange{ 0x2328, 0x232a, CodepointWidth::Wide }, // OVR 328
|
||||
UnicodeRange{ 0x23cf, 0x23cf, CodepointWidth::Wide }, // OVR
|
||||
UnicodeRange{ 0x23e9, 0x23ef, CodepointWidth::Wide }, // OVR 3ed-3ef
|
||||
UnicodeRange{ 0x23f0, 0x23f3, CodepointWidth::Wide }, // OVR 3f1-3f2
|
||||
UnicodeRange{ 0x23f8, 0x23fa, CodepointWidth::Wide }, // OVR
|
||||
UnicodeRange{ 0x2460, 0x24c1, CodepointWidth::Ambiguous },
|
||||
UnicodeRange{ 0x24c2, 0x24c2, CodepointWidth::Wide }, // OVR
|
||||
UnicodeRange{ 0x24c3, 0x24e9, CodepointWidth::Ambiguous },
|
||||
UnicodeRange{ 0x24eb, 0x254b, CodepointWidth::Ambiguous },
|
||||
UnicodeRange{ 0x2550, 0x2573, CodepointWidth::Ambiguous },
|
||||
UnicodeRange{ 0x2580, 0x258f, CodepointWidth::Ambiguous },
|
||||
@@ -197,61 +192,87 @@ namespace
|
||||
UnicodeRange{ 0x25ce, 0x25d1, CodepointWidth::Ambiguous },
|
||||
UnicodeRange{ 0x25e2, 0x25e5, CodepointWidth::Ambiguous },
|
||||
UnicodeRange{ 0x25ef, 0x25ef, CodepointWidth::Ambiguous },
|
||||
UnicodeRange{ 0x25fd, 0x25fe, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x25fd, 0x25fe, CodepointWidth::Wide },
|
||||
UnicodeRange{ 0x2600, 0x2604, CodepointWidth::Wide }, // OVR
|
||||
UnicodeRange{ 0x2605, 0x2606, CodepointWidth::Ambiguous },
|
||||
UnicodeRange{ 0x2609, 0x2609, CodepointWidth::Ambiguous },
|
||||
UnicodeRange{ 0x260e, 0x260e, CodepointWidth::Wide }, // OVR
|
||||
UnicodeRange{ 0x260e, 0x260f, CodepointWidth::Ambiguous },
|
||||
UnicodeRange{ 0x2614, 0x2615, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x261c, 0x261c, CodepointWidth::Ambiguous },
|
||||
UnicodeRange{ 0x261e, 0x261e, CodepointWidth::Ambiguous },
|
||||
UnicodeRange{ 0x2640, 0x2640, CodepointWidth::Ambiguous },
|
||||
UnicodeRange{ 0x2642, 0x2642, CodepointWidth::Ambiguous },
|
||||
UnicodeRange{ 0x2648, 0x2653, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x2660, 0x2661, CodepointWidth::Ambiguous },
|
||||
UnicodeRange{ 0x2663, 0x2665, CodepointWidth::Ambiguous },
|
||||
UnicodeRange{ 0x2667, 0x266a, CodepointWidth::Ambiguous },
|
||||
UnicodeRange{ 0x2611, 0x2611, CodepointWidth::Wide }, // OVR
|
||||
UnicodeRange{ 0x2614, 0x2615, CodepointWidth::Wide },
|
||||
UnicodeRange{ 0x2618, 0x2618, CodepointWidth::Wide }, // OVR
|
||||
UnicodeRange{ 0x261d, 0x261d, CodepointWidth::Wide }, // OVR
|
||||
UnicodeRange{ 0x2620, 0x2620, CodepointWidth::Wide }, // OVR
|
||||
UnicodeRange{ 0x2622, 0x2623, CodepointWidth::Wide }, // OVR
|
||||
UnicodeRange{ 0x2626, 0x2626, CodepointWidth::Wide }, // OVR
|
||||
UnicodeRange{ 0x262a, 0x262a, CodepointWidth::Wide }, // OVR
|
||||
UnicodeRange{ 0x262e, 0x262f, CodepointWidth::Wide }, // OVR
|
||||
UnicodeRange{ 0x2638, 0x2639, CodepointWidth::Wide }, // OVR
|
||||
UnicodeRange{ 0x2648, 0x2653, CodepointWidth::Wide },
|
||||
UnicodeRange{ 0x265f, 0x265f, CodepointWidth::Wide }, // OVR
|
||||
UnicodeRange{ 0x2668, 0x2668, CodepointWidth::Wide }, // OVR
|
||||
UnicodeRange{ 0x2669, 0x266a, CodepointWidth::Ambiguous },
|
||||
UnicodeRange{ 0x266c, 0x266d, CodepointWidth::Ambiguous },
|
||||
UnicodeRange{ 0x266f, 0x266f, CodepointWidth::Ambiguous },
|
||||
UnicodeRange{ 0x267f, 0x267f, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x2693, 0x2693, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x267b, 0x267b, CodepointWidth::Wide }, // OVR
|
||||
UnicodeRange{ 0x267e, 0x267f, CodepointWidth::Wide }, // OVR 67e
|
||||
UnicodeRange{ 0x2692, 0x2697, CodepointWidth::Wide }, // OVR 692, 694-697
|
||||
UnicodeRange{ 0x2699, 0x2699, CodepointWidth::Wide }, // OVR
|
||||
UnicodeRange{ 0x269b, 0x269c, CodepointWidth::Wide }, // OVR
|
||||
UnicodeRange{ 0x269e, 0x269f, CodepointWidth::Ambiguous },
|
||||
UnicodeRange{ 0x26a1, 0x26a1, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x26aa, 0x26ab, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x26bd, 0x26be, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x26a0, 0x26a1, CodepointWidth::Wide }, // OVR 6a0
|
||||
UnicodeRange{ 0x26a7, 0x26a7, CodepointWidth::Wide }, // OVR
|
||||
UnicodeRange{ 0x26aa, 0x26ab, CodepointWidth::Wide },
|
||||
UnicodeRange{ 0x26b0, 0x26b1, CodepointWidth::Wide }, // OVR
|
||||
UnicodeRange{ 0x26bd, 0x26be, CodepointWidth::Wide },
|
||||
UnicodeRange{ 0x26bf, 0x26bf, CodepointWidth::Ambiguous },
|
||||
UnicodeRange{ 0x26c4, 0x26c5, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x26c6, 0x26cd, CodepointWidth::Ambiguous },
|
||||
UnicodeRange{ 0x26ce, 0x26ce, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x26cf, 0x26d3, CodepointWidth::Ambiguous },
|
||||
UnicodeRange{ 0x26d4, 0x26d4, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x26c4, 0x26c5, CodepointWidth::Wide },
|
||||
UnicodeRange{ 0x26c6, 0x26c7, CodepointWidth::Ambiguous },
|
||||
UnicodeRange{ 0x26c8, 0x26c8, CodepointWidth::Wide }, // OVR
|
||||
UnicodeRange{ 0x26c9, 0x26cd, CodepointWidth::Ambiguous },
|
||||
UnicodeRange{ 0x26ce, 0x26cf, CodepointWidth::Wide }, // OVR 6CF
|
||||
UnicodeRange{ 0x26d0, 0x26d0, CodepointWidth::Ambiguous },
|
||||
UnicodeRange{ 0x26d1, 0x26d1, CodepointWidth::Wide }, // OVR
|
||||
UnicodeRange{ 0x26d2, 0x26d2, CodepointWidth::Ambiguous },
|
||||
UnicodeRange{ 0x26d3, 0x26d4, CodepointWidth::Wide }, // OVR 6d3
|
||||
UnicodeRange{ 0x26d5, 0x26e1, CodepointWidth::Ambiguous },
|
||||
UnicodeRange{ 0x26e3, 0x26e3, CodepointWidth::Ambiguous },
|
||||
UnicodeRange{ 0x26e8, 0x26e9, CodepointWidth::Ambiguous },
|
||||
UnicodeRange{ 0x26ea, 0x26ea, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x26eb, 0x26f1, CodepointWidth::Ambiguous },
|
||||
UnicodeRange{ 0x26f2, 0x26f3, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x26f4, 0x26f4, CodepointWidth::Ambiguous },
|
||||
UnicodeRange{ 0x26f5, 0x26f5, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x26f6, 0x26f9, CodepointWidth::Ambiguous },
|
||||
UnicodeRange{ 0x26fa, 0x26fa, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x26e8, 0x26e8, CodepointWidth::Ambiguous },
|
||||
UnicodeRange{ 0x26e9, 0x26ea, CodepointWidth::Wide }, // OVR 6e9
|
||||
UnicodeRange{ 0x26eb, 0x26ef, CodepointWidth::Ambiguous },
|
||||
UnicodeRange{ 0x26f0, 0x26f5, CodepointWidth::Wide }, // OVR 6f0-6f1, 6f4
|
||||
UnicodeRange{ 0x26f6, 0x26f6, CodepointWidth::Ambiguous },
|
||||
UnicodeRange{ 0x26f7, 0x26fa, CodepointWidth::Wide }, // OVR 6f8-6f9
|
||||
UnicodeRange{ 0x26fb, 0x26fc, CodepointWidth::Ambiguous },
|
||||
UnicodeRange{ 0x26fd, 0x26fd, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x26fd, 0x26fd, CodepointWidth::Wide },
|
||||
UnicodeRange{ 0x26fe, 0x26ff, CodepointWidth::Ambiguous },
|
||||
UnicodeRange{ 0x2705, 0x2705, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x270a, 0x270b, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x2728, 0x2728, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x2702, 0x2702, CodepointWidth::Wide }, // OVR
|
||||
UnicodeRange{ 0x2705, 0x2705, CodepointWidth::Wide },
|
||||
UnicodeRange{ 0x2708, 0x270d, CodepointWidth::Wide }, // OVR 708-709, 70c-70d
|
||||
UnicodeRange{ 0x270f, 0x270f, CodepointWidth::Wide }, // OVR
|
||||
UnicodeRange{ 0x2712, 0x2712, CodepointWidth::Wide }, // OVR
|
||||
UnicodeRange{ 0x2714, 0x2714, CodepointWidth::Wide }, // OVR
|
||||
UnicodeRange{ 0x2716, 0x2716, CodepointWidth::Wide }, // OVR
|
||||
UnicodeRange{ 0x271d, 0x271d, CodepointWidth::Wide }, // OVR
|
||||
UnicodeRange{ 0x2721, 0x2721, CodepointWidth::Wide }, // OVR
|
||||
UnicodeRange{ 0x2728, 0x2728, CodepointWidth::Wide },
|
||||
UnicodeRange{ 0x2733, 0x2734, CodepointWidth::Wide }, // OVR
|
||||
UnicodeRange{ 0x273d, 0x273d, CodepointWidth::Ambiguous },
|
||||
UnicodeRange{ 0x274c, 0x274c, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x274e, 0x274e, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x2753, 0x2755, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x2757, 0x2757, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x2744, 0x2744, CodepointWidth::Wide }, // OVR
|
||||
UnicodeRange{ 0x2747, 0x2747, CodepointWidth::Wide }, // OVR
|
||||
UnicodeRange{ 0x274c, 0x274c, CodepointWidth::Wide },
|
||||
UnicodeRange{ 0x274e, 0x274e, CodepointWidth::Wide },
|
||||
UnicodeRange{ 0x2753, 0x2755, CodepointWidth::Wide },
|
||||
UnicodeRange{ 0x2757, 0x2757, CodepointWidth::Wide },
|
||||
UnicodeRange{ 0x2763, 0x2764, CodepointWidth::Wide }, // OVR
|
||||
UnicodeRange{ 0x2776, 0x277f, CodepointWidth::Ambiguous },
|
||||
UnicodeRange{ 0x2795, 0x2797, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x27b0, 0x27b0, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x27bf, 0x27bf, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x2b1b, 0x2b1c, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x2b50, 0x2b50, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x2b55, 0x2b55, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x2795, 0x2797, CodepointWidth::Wide },
|
||||
UnicodeRange{ 0x27a1, 0x27a1, CodepointWidth::Wide }, // OVR
|
||||
UnicodeRange{ 0x27b0, 0x27b0, CodepointWidth::Wide },
|
||||
UnicodeRange{ 0x27bf, 0x27bf, CodepointWidth::Wide },
|
||||
UnicodeRange{ 0x2b1b, 0x2b1c, CodepointWidth::Wide },
|
||||
UnicodeRange{ 0x2b50, 0x2b50, CodepointWidth::Wide },
|
||||
UnicodeRange{ 0x2b55, 0x2b55, CodepointWidth::Wide },
|
||||
UnicodeRange{ 0x2b56, 0x2b59, CodepointWidth::Ambiguous },
|
||||
UnicodeRange{ 0x2e80, 0x2e99, CodepointWidth::Wide },
|
||||
UnicodeRange{ 0x2e9b, 0x2ef3, CodepointWidth::Wide },
|
||||
@@ -288,59 +309,72 @@ namespace
|
||||
UnicodeRange{ 0x18800, 0x18af2, CodepointWidth::Wide },
|
||||
UnicodeRange{ 0x1b000, 0x1b11e, CodepointWidth::Wide },
|
||||
UnicodeRange{ 0x1b170, 0x1b2fb, CodepointWidth::Wide },
|
||||
UnicodeRange{ 0x1f004, 0x1f004, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x1f0cf, 0x1f0cf, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x1f004, 0x1f004, CodepointWidth::Wide },
|
||||
UnicodeRange{ 0x1f0cf, 0x1f0cf, CodepointWidth::Wide },
|
||||
UnicodeRange{ 0x1f100, 0x1f10a, CodepointWidth::Ambiguous },
|
||||
UnicodeRange{ 0x1f110, 0x1f12d, CodepointWidth::Ambiguous },
|
||||
UnicodeRange{ 0x1f130, 0x1f169, CodepointWidth::Ambiguous },
|
||||
UnicodeRange{ 0x1f170, 0x1f18d, CodepointWidth::Ambiguous },
|
||||
UnicodeRange{ 0x1f18e, 0x1f18e, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x1f170, 0x1f171, CodepointWidth::Wide }, // OVR
|
||||
UnicodeRange{ 0x1f172, 0x1f17d, CodepointWidth::Ambiguous },
|
||||
UnicodeRange{ 0x1f17e, 0x1f17f, CodepointWidth::Wide }, // OVR 17f
|
||||
UnicodeRange{ 0x1f180, 0x1f18d, CodepointWidth::Ambiguous },
|
||||
UnicodeRange{ 0x1f18e, 0x1f18e, CodepointWidth::Wide },
|
||||
UnicodeRange{ 0x1f18f, 0x1f190, CodepointWidth::Ambiguous },
|
||||
UnicodeRange{ 0x1f191, 0x1f19a, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x1f191, 0x1f19a, CodepointWidth::Wide },
|
||||
UnicodeRange{ 0x1f19b, 0x1f1ac, CodepointWidth::Ambiguous },
|
||||
UnicodeRange{ 0x1f1e6, 0x1f1ff, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x1f1e6, 0x1f1ff, CodepointWidth::Wide }, // OVR
|
||||
UnicodeRange{ 0x1f200, 0x1f202, CodepointWidth::Wide },
|
||||
UnicodeRange{ 0x1f210, 0x1f23b, CodepointWidth::Wide },
|
||||
UnicodeRange{ 0x1f240, 0x1f248, CodepointWidth::Wide },
|
||||
UnicodeRange{ 0x1f250, 0x1f251, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x1f250, 0x1f251, CodepointWidth::Wide },
|
||||
UnicodeRange{ 0x1f260, 0x1f265, CodepointWidth::Wide },
|
||||
UnicodeRange{ 0x1f300, 0x1f320, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x1f32d, 0x1f335, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x1f337, 0x1f37c, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x1f37e, 0x1f393, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x1f3a0, 0x1f3ca, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x1f3cf, 0x1f3d3, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x1f3e0, 0x1f3f0, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x1f3f4, 0x1f3f4, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x1f3f8, 0x1f43e, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x1f440, 0x1f440, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x1f442, 0x1f4fc, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x1f4ff, 0x1f53d, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x1f54b, 0x1f54e, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x1f550, 0x1f567, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x1f57a, 0x1f57a, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x1f595, 0x1f596, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x1f5a4, 0x1f5a4, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x1f5fb, 0x1f64f, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x1f680, 0x1f6c5, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x1f6cc, 0x1f6cc, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x1f6d0, 0x1f6d2, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x1f6d5, 0x1f6d7, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x1f6eb, 0x1f6ec, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x1f6f4, 0x1f6fc, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x1f7e0, 0x1f7eb, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x1f90c, 0x1f93a, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x1f93c, 0x1f945, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x1f947, 0x1f978, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x1f97a, 0x1f9cb, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x1f9cd, 0x1f9ff, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x1fa70, 0x1fa74, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x1fa78, 0x1fa7a, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x1fa80, 0x1fa86, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x1fa90, 0x1faa8, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x1fab0, 0x1fab6, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x1fac0, 0x1fac2, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x1fad0, 0x1fad6, CodepointWidth::Wide }, // Emoji=Y EPres=Y
|
||||
UnicodeRange{ 0x1f300, 0x1f321, CodepointWidth::Wide }, // OVR 321
|
||||
UnicodeRange{ 0x1f324, 0x1f393, CodepointWidth::Wide }, // OVR 324-32c, 336, 37d
|
||||
UnicodeRange{ 0x1f396, 0x1f397, CodepointWidth::Wide }, // OVR
|
||||
UnicodeRange{ 0x1f399, 0x1f39b, CodepointWidth::Wide }, // OVR
|
||||
UnicodeRange{ 0x1f39e, 0x1f39f, CodepointWidth::Wide }, // OVR
|
||||
UnicodeRange{ 0x1f3a0, 0x1f3f0, CodepointWidth::Wide }, // OVR 3cb-3ce, 3d4-3df
|
||||
UnicodeRange{ 0x1f3f3, 0x1f3f5, CodepointWidth::Wide }, // OVR 3f3, 3f5
|
||||
UnicodeRange{ 0x1f3f7, 0x1f4fd, CodepointWidth::Wide }, // OVR 3f7, 43f, 4fd
|
||||
UnicodeRange{ 0x1f4ff, 0x1f53d, CodepointWidth::Wide },
|
||||
UnicodeRange{ 0x1f549, 0x1f54e, CodepointWidth::Wide }, // OVR 549-54a
|
||||
UnicodeRange{ 0x1f550, 0x1f567, CodepointWidth::Wide },
|
||||
UnicodeRange{ 0x1f56f, 0x1f570, CodepointWidth::Wide }, // OVR
|
||||
UnicodeRange{ 0x1f573, 0x1f57a, CodepointWidth::Wide }, // OVR 573-579
|
||||
UnicodeRange{ 0x1f587, 0x1f587, CodepointWidth::Wide }, // OVR
|
||||
UnicodeRange{ 0x1f58a, 0x1f58d, CodepointWidth::Wide }, // OVR
|
||||
UnicodeRange{ 0x1f590, 0x1f590, CodepointWidth::Wide }, // OVR
|
||||
UnicodeRange{ 0x1f595, 0x1f596, CodepointWidth::Wide },
|
||||
UnicodeRange{ 0x1f5a4, 0x1f5a5, CodepointWidth::Wide }, // OVR 5a5
|
||||
UnicodeRange{ 0x1f5a8, 0x1f5a8, CodepointWidth::Wide }, // OVR
|
||||
UnicodeRange{ 0x1f5b1, 0x1f5b2, CodepointWidth::Wide }, // OVR
|
||||
UnicodeRange{ 0x1f5bc, 0x1f5bc, CodepointWidth::Wide }, // OVR
|
||||
UnicodeRange{ 0x1f5c2, 0x1f5c4, CodepointWidth::Wide }, // OVR
|
||||
UnicodeRange{ 0x1f5d1, 0x1f5d3, CodepointWidth::Wide }, // OVR
|
||||
UnicodeRange{ 0x1f5dc, 0x1f5de, CodepointWidth::Wide }, // OVR
|
||||
UnicodeRange{ 0x1f5e1, 0x1f5e1, CodepointWidth::Wide }, // OVR
|
||||
UnicodeRange{ 0x1f5e3, 0x1f5e3, CodepointWidth::Wide }, // OVR
|
||||
UnicodeRange{ 0x1f5e8, 0x1f5e8, CodepointWidth::Wide }, // OVR
|
||||
UnicodeRange{ 0x1f5ef, 0x1f5ef, CodepointWidth::Wide }, // OVR
|
||||
UnicodeRange{ 0x1f5f3, 0x1f5f3, CodepointWidth::Wide }, // OVR
|
||||
UnicodeRange{ 0x1f5fa, 0x1f64f, CodepointWidth::Wide }, // OVR 5fa
|
||||
UnicodeRange{ 0x1f680, 0x1f6c5, CodepointWidth::Wide },
|
||||
UnicodeRange{ 0x1f6cb, 0x1f6d2, CodepointWidth::Wide }, // OVR 6cb, 6cd-6cf
|
||||
UnicodeRange{ 0x1f6d5, 0x1f6d7, CodepointWidth::Wide },
|
||||
UnicodeRange{ 0x1f6e0, 0x1f6e5, CodepointWidth::Wide }, // OVR
|
||||
UnicodeRange{ 0x1f6e9, 0x1f6e9, CodepointWidth::Wide }, // OVR
|
||||
UnicodeRange{ 0x1f6eb, 0x1f6ec, CodepointWidth::Wide },
|
||||
UnicodeRange{ 0x1f6f0, 0x1f6f0, CodepointWidth::Wide }, // OVR
|
||||
UnicodeRange{ 0x1f6f3, 0x1f6fc, CodepointWidth::Wide }, // OVR 6f3
|
||||
UnicodeRange{ 0x1f7e0, 0x1f7eb, CodepointWidth::Wide },
|
||||
UnicodeRange{ 0x1f90c, 0x1f9ff, CodepointWidth::Wide }, // OVR 93b, 946
|
||||
UnicodeRange{ 0x1fa70, 0x1fa74, CodepointWidth::Wide },
|
||||
UnicodeRange{ 0x1fa78, 0x1fa7a, CodepointWidth::Wide },
|
||||
UnicodeRange{ 0x1fa80, 0x1fa86, CodepointWidth::Wide },
|
||||
UnicodeRange{ 0x1fa90, 0x1faa8, CodepointWidth::Wide },
|
||||
UnicodeRange{ 0x1fab0, 0x1fab6, CodepointWidth::Wide },
|
||||
UnicodeRange{ 0x1fac0, 0x1fac2, CodepointWidth::Wide },
|
||||
UnicodeRange{ 0x1fad0, 0x1fad6, CodepointWidth::Wide },
|
||||
UnicodeRange{ 0x20000, 0x2fffd, CodepointWidth::Wide },
|
||||
UnicodeRange{ 0x30000, 0x3fffd, CodepointWidth::Wide },
|
||||
UnicodeRange{ 0xe0100, 0xe01ef, CodepointWidth::Ambiguous },
|
||||
|
||||
@@ -122,22 +122,22 @@ void Utils::InitializeCampbellColorTable(const gsl::span<COLORREF> table)
|
||||
THROW_HR_IF(E_INVALIDARG, table.size() < 16);
|
||||
|
||||
// clang-format off
|
||||
table[0] = RGB(12, 12, 12);
|
||||
table[1] = RGB(197, 15, 31);
|
||||
table[2] = RGB(19, 161, 14);
|
||||
table[3] = RGB(193, 156, 0);
|
||||
table[4] = RGB(0, 55, 218);
|
||||
table[5] = RGB(136, 23, 152);
|
||||
table[6] = RGB(58, 150, 221);
|
||||
table[7] = RGB(204, 204, 204);
|
||||
table[8] = RGB(118, 118, 118);
|
||||
table[9] = RGB(231, 72, 86);
|
||||
table[10] = RGB(22, 198, 12);
|
||||
table[11] = RGB(249, 241, 165);
|
||||
table[12] = RGB(59, 120, 255);
|
||||
table[13] = RGB(180, 0, 158);
|
||||
table[14] = RGB(97, 214, 214);
|
||||
table[15] = RGB(242, 242, 242);
|
||||
table[0] = RGB( 12, 12, 12);
|
||||
table[1] = RGB( 197, 15, 31);
|
||||
table[2] = RGB( 19, 161, 14);
|
||||
table[3] = RGB( 193, 156, 0);
|
||||
table[4] = RGB( 0, 55, 218);
|
||||
table[5] = RGB( 136, 23, 152);
|
||||
table[6] = RGB( 58, 150, 221);
|
||||
table[7] = RGB( 204, 204, 204);
|
||||
table[8] = RGB( 118, 118, 118);
|
||||
table[9] = RGB( 231, 72, 86);
|
||||
table[10] = RGB( 22, 198, 12);
|
||||
table[11] = RGB( 249, 241, 165);
|
||||
table[12] = RGB( 59, 120, 255);
|
||||
table[13] = RGB( 180, 0, 158);
|
||||
table[14] = RGB( 97, 214, 214);
|
||||
table[15] = RGB( 242, 242, 242);
|
||||
// clang-format on
|
||||
}
|
||||
|
||||
@@ -182,106 +182,106 @@ void Utils::Initialize256ColorTable(const gsl::span<COLORREF> table)
|
||||
THROW_HR_IF(E_INVALIDARG, table.size() < 256);
|
||||
|
||||
// clang-format off
|
||||
table[0] = RGB(0x00, 0x00, 0x00);
|
||||
table[1] = RGB(0x80, 0x00, 0x00);
|
||||
table[2] = RGB(0x00, 0x80, 0x00);
|
||||
table[3] = RGB(0x80, 0x80, 0x00);
|
||||
table[4] = RGB(0x00, 0x00, 0x80);
|
||||
table[5] = RGB(0x80, 0x00, 0x80);
|
||||
table[6] = RGB(0x00, 0x80, 0x80);
|
||||
table[7] = RGB(0xc0, 0xc0, 0xc0);
|
||||
table[8] = RGB(0x80, 0x80, 0x80);
|
||||
table[9] = RGB(0xff, 0x00, 0x00);
|
||||
table[10] = RGB(0x00, 0xff, 0x00);
|
||||
table[11] = RGB(0xff, 0xff, 0x00);
|
||||
table[12] = RGB(0x00, 0x00, 0xff);
|
||||
table[13] = RGB(0xff, 0x00, 0xff);
|
||||
table[14] = RGB(0x00, 0xff, 0xff);
|
||||
table[15] = RGB(0xff, 0xff, 0xff);
|
||||
table[16] = RGB(0x00, 0x00, 0x00);
|
||||
table[17] = RGB(0x00, 0x00, 0x5f);
|
||||
table[18] = RGB(0x00, 0x00, 0x87);
|
||||
table[19] = RGB(0x00, 0x00, 0xaf);
|
||||
table[20] = RGB(0x00, 0x00, 0xd7);
|
||||
table[21] = RGB(0x00, 0x00, 0xff);
|
||||
table[22] = RGB(0x00, 0x5f, 0x00);
|
||||
table[23] = RGB(0x00, 0x5f, 0x5f);
|
||||
table[24] = RGB(0x00, 0x5f, 0x87);
|
||||
table[25] = RGB(0x00, 0x5f, 0xaf);
|
||||
table[26] = RGB(0x00, 0x5f, 0xd7);
|
||||
table[27] = RGB(0x00, 0x5f, 0xff);
|
||||
table[28] = RGB(0x00, 0x87, 0x00);
|
||||
table[29] = RGB(0x00, 0x87, 0x5f);
|
||||
table[30] = RGB(0x00, 0x87, 0x87);
|
||||
table[31] = RGB(0x00, 0x87, 0xaf);
|
||||
table[32] = RGB(0x00, 0x87, 0xd7);
|
||||
table[33] = RGB(0x00, 0x87, 0xff);
|
||||
table[34] = RGB(0x00, 0xaf, 0x00);
|
||||
table[35] = RGB(0x00, 0xaf, 0x5f);
|
||||
table[36] = RGB(0x00, 0xaf, 0x87);
|
||||
table[37] = RGB(0x00, 0xaf, 0xaf);
|
||||
table[38] = RGB(0x00, 0xaf, 0xd7);
|
||||
table[39] = RGB(0x00, 0xaf, 0xff);
|
||||
table[40] = RGB(0x00, 0xd7, 0x00);
|
||||
table[41] = RGB(0x00, 0xd7, 0x5f);
|
||||
table[42] = RGB(0x00, 0xd7, 0x87);
|
||||
table[43] = RGB(0x00, 0xd7, 0xaf);
|
||||
table[44] = RGB(0x00, 0xd7, 0xd7);
|
||||
table[45] = RGB(0x00, 0xd7, 0xff);
|
||||
table[46] = RGB(0x00, 0xff, 0x00);
|
||||
table[47] = RGB(0x00, 0xff, 0x5f);
|
||||
table[48] = RGB(0x00, 0xff, 0x87);
|
||||
table[49] = RGB(0x00, 0xff, 0xaf);
|
||||
table[50] = RGB(0x00, 0xff, 0xd7);
|
||||
table[51] = RGB(0x00, 0xff, 0xff);
|
||||
table[52] = RGB(0x5f, 0x00, 0x00);
|
||||
table[53] = RGB(0x5f, 0x00, 0x5f);
|
||||
table[54] = RGB(0x5f, 0x00, 0x87);
|
||||
table[55] = RGB(0x5f, 0x00, 0xaf);
|
||||
table[56] = RGB(0x5f, 0x00, 0xd7);
|
||||
table[57] = RGB(0x5f, 0x00, 0xff);
|
||||
table[58] = RGB(0x5f, 0x5f, 0x00);
|
||||
table[59] = RGB(0x5f, 0x5f, 0x5f);
|
||||
table[60] = RGB(0x5f, 0x5f, 0x87);
|
||||
table[61] = RGB(0x5f, 0x5f, 0xaf);
|
||||
table[62] = RGB(0x5f, 0x5f, 0xd7);
|
||||
table[63] = RGB(0x5f, 0x5f, 0xff);
|
||||
table[64] = RGB(0x5f, 0x87, 0x00);
|
||||
table[65] = RGB(0x5f, 0x87, 0x5f);
|
||||
table[66] = RGB(0x5f, 0x87, 0x87);
|
||||
table[67] = RGB(0x5f, 0x87, 0xaf);
|
||||
table[68] = RGB(0x5f, 0x87, 0xd7);
|
||||
table[69] = RGB(0x5f, 0x87, 0xff);
|
||||
table[70] = RGB(0x5f, 0xaf, 0x00);
|
||||
table[71] = RGB(0x5f, 0xaf, 0x5f);
|
||||
table[72] = RGB(0x5f, 0xaf, 0x87);
|
||||
table[73] = RGB(0x5f, 0xaf, 0xaf);
|
||||
table[74] = RGB(0x5f, 0xaf, 0xd7);
|
||||
table[75] = RGB(0x5f, 0xaf, 0xff);
|
||||
table[76] = RGB(0x5f, 0xd7, 0x00);
|
||||
table[77] = RGB(0x5f, 0xd7, 0x5f);
|
||||
table[78] = RGB(0x5f, 0xd7, 0x87);
|
||||
table[79] = RGB(0x5f, 0xd7, 0xaf);
|
||||
table[80] = RGB(0x5f, 0xd7, 0xd7);
|
||||
table[81] = RGB(0x5f, 0xd7, 0xff);
|
||||
table[82] = RGB(0x5f, 0xff, 0x00);
|
||||
table[83] = RGB(0x5f, 0xff, 0x5f);
|
||||
table[84] = RGB(0x5f, 0xff, 0x87);
|
||||
table[85] = RGB(0x5f, 0xff, 0xaf);
|
||||
table[86] = RGB(0x5f, 0xff, 0xd7);
|
||||
table[87] = RGB(0x5f, 0xff, 0xff);
|
||||
table[88] = RGB(0x87, 0x00, 0x00);
|
||||
table[89] = RGB(0x87, 0x00, 0x5f);
|
||||
table[90] = RGB(0x87, 0x00, 0x87);
|
||||
table[91] = RGB(0x87, 0x00, 0xaf);
|
||||
table[92] = RGB(0x87, 0x00, 0xd7);
|
||||
table[93] = RGB(0x87, 0x00, 0xff);
|
||||
table[94] = RGB(0x87, 0x5f, 0x00);
|
||||
table[95] = RGB(0x87, 0x5f, 0x5f);
|
||||
table[96] = RGB(0x87, 0x5f, 0x87);
|
||||
table[97] = RGB(0x87, 0x5f, 0xaf);
|
||||
table[98] = RGB(0x87, 0x5f, 0xd7);
|
||||
table[99] = RGB(0x87, 0x5f, 0xff);
|
||||
table[0] = RGB( 0x00, 0x00, 0x00);
|
||||
table[1] = RGB( 0x80, 0x00, 0x00);
|
||||
table[2] = RGB( 0x00, 0x80, 0x00);
|
||||
table[3] = RGB( 0x80, 0x80, 0x00);
|
||||
table[4] = RGB( 0x00, 0x00, 0x80);
|
||||
table[5] = RGB( 0x80, 0x00, 0x80);
|
||||
table[6] = RGB( 0x00, 0x80, 0x80);
|
||||
table[7] = RGB( 0xc0, 0xc0, 0xc0);
|
||||
table[8] = RGB( 0x80, 0x80, 0x80);
|
||||
table[9] = RGB( 0xff, 0x00, 0x00);
|
||||
table[10] = RGB( 0x00, 0xff, 0x00);
|
||||
table[11] = RGB( 0xff, 0xff, 0x00);
|
||||
table[12] = RGB( 0x00, 0x00, 0xff);
|
||||
table[13] = RGB( 0xff, 0x00, 0xff);
|
||||
table[14] = RGB( 0x00, 0xff, 0xff);
|
||||
table[15] = RGB( 0xff, 0xff, 0xff);
|
||||
table[16] = RGB( 0x00, 0x00, 0x00);
|
||||
table[17] = RGB( 0x00, 0x00, 0x5f);
|
||||
table[18] = RGB( 0x00, 0x00, 0x87);
|
||||
table[19] = RGB( 0x00, 0x00, 0xaf);
|
||||
table[20] = RGB( 0x00, 0x00, 0xd7);
|
||||
table[21] = RGB( 0x00, 0x00, 0xff);
|
||||
table[22] = RGB( 0x00, 0x5f, 0x00);
|
||||
table[23] = RGB( 0x00, 0x5f, 0x5f);
|
||||
table[24] = RGB( 0x00, 0x5f, 0x87);
|
||||
table[25] = RGB( 0x00, 0x5f, 0xaf);
|
||||
table[26] = RGB( 0x00, 0x5f, 0xd7);
|
||||
table[27] = RGB( 0x00, 0x5f, 0xff);
|
||||
table[28] = RGB( 0x00, 0x87, 0x00);
|
||||
table[29] = RGB( 0x00, 0x87, 0x5f);
|
||||
table[30] = RGB( 0x00, 0x87, 0x87);
|
||||
table[31] = RGB( 0x00, 0x87, 0xaf);
|
||||
table[32] = RGB( 0x00, 0x87, 0xd7);
|
||||
table[33] = RGB( 0x00, 0x87, 0xff);
|
||||
table[34] = RGB( 0x00, 0xaf, 0x00);
|
||||
table[35] = RGB( 0x00, 0xaf, 0x5f);
|
||||
table[36] = RGB( 0x00, 0xaf, 0x87);
|
||||
table[37] = RGB( 0x00, 0xaf, 0xaf);
|
||||
table[38] = RGB( 0x00, 0xaf, 0xd7);
|
||||
table[39] = RGB( 0x00, 0xaf, 0xff);
|
||||
table[40] = RGB( 0x00, 0xd7, 0x00);
|
||||
table[41] = RGB( 0x00, 0xd7, 0x5f);
|
||||
table[42] = RGB( 0x00, 0xd7, 0x87);
|
||||
table[43] = RGB( 0x00, 0xd7, 0xaf);
|
||||
table[44] = RGB( 0x00, 0xd7, 0xd7);
|
||||
table[45] = RGB( 0x00, 0xd7, 0xff);
|
||||
table[46] = RGB( 0x00, 0xff, 0x00);
|
||||
table[47] = RGB( 0x00, 0xff, 0x5f);
|
||||
table[48] = RGB( 0x00, 0xff, 0x87);
|
||||
table[49] = RGB( 0x00, 0xff, 0xaf);
|
||||
table[50] = RGB( 0x00, 0xff, 0xd7);
|
||||
table[51] = RGB( 0x00, 0xff, 0xff);
|
||||
table[52] = RGB( 0x5f, 0x00, 0x00);
|
||||
table[53] = RGB( 0x5f, 0x00, 0x5f);
|
||||
table[54] = RGB( 0x5f, 0x00, 0x87);
|
||||
table[55] = RGB( 0x5f, 0x00, 0xaf);
|
||||
table[56] = RGB( 0x5f, 0x00, 0xd7);
|
||||
table[57] = RGB( 0x5f, 0x00, 0xff);
|
||||
table[58] = RGB( 0x5f, 0x5f, 0x00);
|
||||
table[59] = RGB( 0x5f, 0x5f, 0x5f);
|
||||
table[60] = RGB( 0x5f, 0x5f, 0x87);
|
||||
table[61] = RGB( 0x5f, 0x5f, 0xaf);
|
||||
table[62] = RGB( 0x5f, 0x5f, 0xd7);
|
||||
table[63] = RGB( 0x5f, 0x5f, 0xff);
|
||||
table[64] = RGB( 0x5f, 0x87, 0x00);
|
||||
table[65] = RGB( 0x5f, 0x87, 0x5f);
|
||||
table[66] = RGB( 0x5f, 0x87, 0x87);
|
||||
table[67] = RGB( 0x5f, 0x87, 0xaf);
|
||||
table[68] = RGB( 0x5f, 0x87, 0xd7);
|
||||
table[69] = RGB( 0x5f, 0x87, 0xff);
|
||||
table[70] = RGB( 0x5f, 0xaf, 0x00);
|
||||
table[71] = RGB( 0x5f, 0xaf, 0x5f);
|
||||
table[72] = RGB( 0x5f, 0xaf, 0x87);
|
||||
table[73] = RGB( 0x5f, 0xaf, 0xaf);
|
||||
table[74] = RGB( 0x5f, 0xaf, 0xd7);
|
||||
table[75] = RGB( 0x5f, 0xaf, 0xff);
|
||||
table[76] = RGB( 0x5f, 0xd7, 0x00);
|
||||
table[77] = RGB( 0x5f, 0xd7, 0x5f);
|
||||
table[78] = RGB( 0x5f, 0xd7, 0x87);
|
||||
table[79] = RGB( 0x5f, 0xd7, 0xaf);
|
||||
table[80] = RGB( 0x5f, 0xd7, 0xd7);
|
||||
table[81] = RGB( 0x5f, 0xd7, 0xff);
|
||||
table[82] = RGB( 0x5f, 0xff, 0x00);
|
||||
table[83] = RGB( 0x5f, 0xff, 0x5f);
|
||||
table[84] = RGB( 0x5f, 0xff, 0x87);
|
||||
table[85] = RGB( 0x5f, 0xff, 0xaf);
|
||||
table[86] = RGB( 0x5f, 0xff, 0xd7);
|
||||
table[87] = RGB( 0x5f, 0xff, 0xff);
|
||||
table[88] = RGB( 0x87, 0x00, 0x00);
|
||||
table[89] = RGB( 0x87, 0x00, 0x5f);
|
||||
table[90] = RGB( 0x87, 0x00, 0x87);
|
||||
table[91] = RGB( 0x87, 0x00, 0xaf);
|
||||
table[92] = RGB( 0x87, 0x00, 0xd7);
|
||||
table[93] = RGB( 0x87, 0x00, 0xff);
|
||||
table[94] = RGB( 0x87, 0x5f, 0x00);
|
||||
table[95] = RGB( 0x87, 0x5f, 0x5f);
|
||||
table[96] = RGB( 0x87, 0x5f, 0x87);
|
||||
table[97] = RGB( 0x87, 0x5f, 0xaf);
|
||||
table[98] = RGB( 0x87, 0x5f, 0xd7);
|
||||
table[99] = RGB( 0x87, 0x5f, 0xff);
|
||||
table[100] = RGB(0x87, 0x87, 0x00);
|
||||
table[101] = RGB(0x87, 0x87, 0x5f);
|
||||
table[102] = RGB(0x87, 0x87, 0x87);
|
||||
@@ -360,24 +360,24 @@ void Utils::Initialize256ColorTable(const gsl::span<COLORREF> table)
|
||||
table[175] = RGB(0xd7, 0x87, 0xaf);
|
||||
table[176] = RGB(0xd7, 0x87, 0xd7);
|
||||
table[177] = RGB(0xd7, 0x87, 0xff);
|
||||
table[178] = RGB(0xd7, 0xaf, 0x00);
|
||||
table[179] = RGB(0xd7, 0xaf, 0x5f);
|
||||
table[180] = RGB(0xd7, 0xaf, 0x87);
|
||||
table[181] = RGB(0xd7, 0xaf, 0xaf);
|
||||
table[182] = RGB(0xd7, 0xaf, 0xd7);
|
||||
table[183] = RGB(0xd7, 0xaf, 0xff);
|
||||
table[184] = RGB(0xd7, 0xd7, 0x00);
|
||||
table[185] = RGB(0xd7, 0xd7, 0x5f);
|
||||
table[186] = RGB(0xd7, 0xd7, 0x87);
|
||||
table[187] = RGB(0xd7, 0xd7, 0xaf);
|
||||
table[188] = RGB(0xd7, 0xd7, 0xd7);
|
||||
table[189] = RGB(0xd7, 0xd7, 0xff);
|
||||
table[190] = RGB(0xd7, 0xff, 0x00);
|
||||
table[191] = RGB(0xd7, 0xff, 0x5f);
|
||||
table[192] = RGB(0xd7, 0xff, 0x87);
|
||||
table[193] = RGB(0xd7, 0xff, 0xaf);
|
||||
table[194] = RGB(0xd7, 0xff, 0xd7);
|
||||
table[195] = RGB(0xd7, 0xff, 0xff);
|
||||
table[178] = RGB(0xdf, 0xaf, 0x00);
|
||||
table[179] = RGB(0xdf, 0xaf, 0x5f);
|
||||
table[180] = RGB(0xdf, 0xaf, 0x87);
|
||||
table[181] = RGB(0xdf, 0xaf, 0xaf);
|
||||
table[182] = RGB(0xdf, 0xaf, 0xd7);
|
||||
table[183] = RGB(0xdf, 0xaf, 0xff);
|
||||
table[184] = RGB(0xdf, 0xd7, 0x00);
|
||||
table[185] = RGB(0xdf, 0xd7, 0x5f);
|
||||
table[186] = RGB(0xdf, 0xd7, 0x87);
|
||||
table[187] = RGB(0xdf, 0xd7, 0xaf);
|
||||
table[188] = RGB(0xdf, 0xd7, 0xd7);
|
||||
table[189] = RGB(0xdf, 0xd7, 0xff);
|
||||
table[190] = RGB(0xdf, 0xff, 0x00);
|
||||
table[191] = RGB(0xdf, 0xff, 0x5f);
|
||||
table[192] = RGB(0xdf, 0xff, 0x87);
|
||||
table[193] = RGB(0xdf, 0xff, 0xaf);
|
||||
table[194] = RGB(0xdf, 0xff, 0xd7);
|
||||
table[195] = RGB(0xdf, 0xff, 0xff);
|
||||
table[196] = RGB(0xff, 0x00, 0x00);
|
||||
table[197] = RGB(0xff, 0x00, 0x5f);
|
||||
table[198] = RGB(0xff, 0x00, 0x87);
|
||||
|
||||
@@ -97,8 +97,9 @@ set MSBuildEmitSolution=1
|
||||
set MSBuildEmitSolution=
|
||||
|
||||
rem Use bx.ps1 to figure out which target we're looking at
|
||||
set _BX_SCRIPT=powershell bx.ps1
|
||||
set _OUTPUT=
|
||||
FOR /F "tokens=* USEBACKQ" %%F IN (`powershell -NoProfile -ExecutionPolicy Bypass -NonInteractive bx.ps1 2^> NUL`) DO (
|
||||
FOR /F "tokens=* USEBACKQ" %%F IN (`powershell bx.ps1 2^> NUL`) DO (
|
||||
set _OUTPUT=%%F
|
||||
)
|
||||
if "!_OUTPUT!" == "" (
|
||||
|
||||
Reference in New Issue
Block a user