Compare commits

..

3 Commits

Author SHA1 Message Date
Dustin L. Howett
3be7898393 Migrate spelling-0.0.21 changes from main 2020-05-18 15:11:15 -07:00
Dustin L. Howett
0209bd5474 Migrate spelling-0.0.19 changes from main 2020-05-18 15:11:15 -07:00
Carlos Zamora
21474792a2 Allow mouse resizing on panes 2020-05-18 15:11:15 -07:00
60 changed files with 415 additions and 1621 deletions

View File

@@ -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)? 😜

View File

@@ -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}

View File

@@ -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|![](https://microsoft.visualstudio.com/_apis/public/build/definitions/
---
## Windows Terminal v1.0 Roadmap
The plan for delivering Windows Terminal v1.0 [is described here](/doc/terminal-v1-roadmap.md), 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

View File

@@ -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. |

View File

@@ -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",

View File

@@ -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

View File

@@ -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;
}
}

View File

@@ -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}"

View File

@@ -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());
}
});
}
}

View File

@@ -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.

View File

@@ -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:

View File

@@ -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;

View File

@@ -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

View File

@@ -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:

View File

@@ -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>

View File

@@ -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

View File

@@ -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>

View File

@@ -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]

View File

@@ -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:

View File

@@ -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.

View File

@@ -34,7 +34,6 @@ namespace Microsoft.Terminal.Settings
String FontFace;
Int32 FontSize;
Windows.UI.Text.FontWeight FontWeight;
String Padding;
IKeyBindings KeyBindings;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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"));
}
}

View File

@@ -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>
{
};
}

View File

@@ -1,9 +0,0 @@
namespace Microsoft.Terminal.Settings.Control
{
[default_interface]
runtimeclass ColorSchemes : Windows.UI.Xaml.Controls.Page
{
ColorSchemes();
Int32 MyProperty;
}
}

View File

@@ -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>

View File

@@ -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&)
{
}
}

View File

@@ -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>
{
};
}

View File

@@ -1,9 +0,0 @@
namespace Microsoft.Terminal.Settings.Control
{
[default_interface]
runtimeclass Globals : Windows.UI.Xaml.Controls.Page
{
Globals();
Int32 MyProperty;
}
}

View File

@@ -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>

View File

@@ -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"));
}
}

View File

@@ -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>
{
};
}

View File

@@ -1,9 +0,0 @@
namespace Microsoft.Terminal.Settings.Control
{
[default_interface]
runtimeclass Keybindings : Windows.UI.Xaml.Controls.Page
{
Keybindings();
Int32 MyProperty;
}
}

View File

@@ -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>

View File

@@ -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)
//{
//
//}

View File

@@ -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>
{
};
}

View File

@@ -1,9 +0,0 @@
namespace Microsoft.Terminal.Settings.Control
{
[default_interface]
runtimeclass MainPage : Windows.UI.Xaml.Controls.Page
{
MainPage();
Int32 MyProperty;
}
}

View File

@@ -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="&#xE756;" />
</NavigationViewItem.Icon>
<TextBlock Tag="Profiles_Page">Profiles</TextBlock>
</NavigationViewItem>
<NavigationViewItem Tag="ColorSchemes_Nav">
<NavigationViewItem.Icon>
<FontIcon Glyph="&#xE790;"></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="&#xE713;" />
</NavigationViewItem.Icon>
<TextBlock>Open JSON file</TextBlock>
</NavigationViewItem>
</NavigationView.PaneFooter>
<Frame x:Name="contentFrame"
Margin="20"></Frame>
</NavigationView>
</Page>

View File

@@ -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&)
{
}
}

View File

@@ -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>
{
};
}

View File

@@ -1,9 +0,0 @@
namespace Microsoft.Terminal.Settings.Control
{
[default_interface]
runtimeclass Profiles : Windows.UI.Xaml.Controls.Page
{
Profiles();
Int32 MyProperty;
}
}

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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");

View File

@@ -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>

View File

@@ -1,4 +0,0 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
#include "pch.h"

View File

@@ -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"

View File

@@ -1,3 +0,0 @@
EXPORTS
DllCanUnloadNow = WINRT_CanUnloadNow PRIVATE
DllGetActivationFactory = WINRT_GetActivationFactory PRIVATE

View File

@@ -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:

View File

@@ -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)
{

View File

@@ -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;

View File

@@ -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;
}

View File

@@ -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;

View File

@@ -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();

View File

@@ -9,7 +9,6 @@
#undef WIN32_LEAN_AND_MEAN
#undef NOMINMAX
#define NOMINMAX
#include <stdexcept>
#include <string>
#include <string_view>
#include <array>

View File

@@ -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 },

View File

@@ -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);

View File

@@ -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!" == "" (