72cbe59078
Implement the `XTPUSHSGR` and `XTPOPSGR` control sequences (see #1796). This change adds a new pair of methods to `ITermDispatch`: `PushGraphicsRendition` and `PopGraphicsRendition`, and then plumbs the change through `AdaptDispatch`, `TerminalDispatch`, `ITerminalApi` and `TerminalApi`. The stack logic is encapsulated in the `SgrStack` class, to allow it to be reused between the two APIs (`AdaptDispatch` and `TerminalDispatch`). Like xterm, only ten levels of nesting are supported. The stack is implemented as a "ring stack": if you push when the stack is full, the bottom of the stack will be dropped to make room. Partial pushes (see the description of `XTPUSHSGR` in Issue #1796) are implemented per xterm spec. ## Validation Steps Performed Tests added, plus manual verification of the feature. Closes #1796
72 lines
3.3 KiB
XML
72 lines
3.3 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
<PropertyGroup>
|
|
<ProjectGuid>{18D09A24-8240-42D6-8CB6-236EEE820263}</ProjectGuid>
|
|
<Keyword>Win32Proj</Keyword>
|
|
<RootNamespace>types</RootNamespace>
|
|
<ProjectName>Types</ProjectName>
|
|
<TargetName>ConTypes</TargetName>
|
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
</PropertyGroup>
|
|
<Import Project="$(SolutionDir)src\common.build.pre.props" />
|
|
<ItemGroup>
|
|
<ClCompile Include="..\CodepointWidthDetector.cpp" />
|
|
<ClCompile Include="..\convert.cpp" />
|
|
<ClCompile Include="..\colorTable.cpp" />
|
|
<ClCompile Include="..\Environment.cpp" />
|
|
<ClCompile Include="..\GlyphWidth.cpp" />
|
|
<ClCompile Include="..\MouseEvent.cpp" />
|
|
<ClCompile Include="..\FocusEvent.cpp" />
|
|
<ClCompile Include="..\IInputEvent.cpp" />
|
|
<ClCompile Include="..\KeyEvent.cpp" />
|
|
<ClCompile Include="..\MenuEvent.cpp" />
|
|
<ClCompile Include="..\ModifierKeyState.cpp" />
|
|
<ClCompile Include="..\ScreenInfoUiaProviderBase.cpp" />
|
|
<ClCompile Include="..\sgrStack.cpp" />
|
|
<ClCompile Include="..\ThemeUtils.cpp" />
|
|
<ClCompile Include="..\UiaTextRangeBase.cpp" />
|
|
<ClCompile Include="..\UiaTracing.cpp" />
|
|
<ClCompile Include="..\TermControlUiaTextRange.cpp" />
|
|
<ClCompile Include="..\TermControlUiaProvider.cpp" />
|
|
<ClCompile Include="..\Utf16Parser.cpp" />
|
|
<ClCompile Include="..\Viewport.cpp" />
|
|
<ClCompile Include="..\WindowBufferSizeEvent.cpp" />
|
|
<ClCompile Include="..\precomp.cpp">
|
|
<PrecompiledHeader>Create</PrecompiledHeader>
|
|
</ClCompile>
|
|
<ClCompile Include="..\utils.cpp" />
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<ClInclude Include="..\IBaseData.h" />
|
|
<ClInclude Include="..\IControlAccessibilityInfo.h" />
|
|
<ClInclude Include="..\inc\CodepointWidthDetector.hpp" />
|
|
<ClInclude Include="..\inc\convert.hpp" />
|
|
<ClInclude Include="..\inc\colorTable.hpp" />
|
|
<ClInclude Include="..\inc\Environment.hpp" />
|
|
<ClInclude Include="..\inc\GlyphWidth.hpp" />
|
|
<ClInclude Include="..\inc\IInputEvent.hpp" />
|
|
<ClInclude Include="..\inc\sgrStack.hpp" />
|
|
<ClInclude Include="..\inc\ThemeUtils.h" />
|
|
<ClInclude Include="..\inc\utils.hpp" />
|
|
<ClInclude Include="..\inc\Viewport.hpp" />
|
|
<ClInclude Include="..\inc\Utf16Parser.hpp" />
|
|
<ClInclude Include="..\IUiaData.h" />
|
|
<ClInclude Include="..\IUiaEventDispatcher.h" />
|
|
<ClInclude Include="..\IUiaTraceable.h" />
|
|
<ClInclude Include="..\TermControlUiaTextRange.hpp" />
|
|
<ClInclude Include="..\TermControlUiaProvider.hpp" />
|
|
<ClInclude Include="..\precomp.h" />
|
|
<ClInclude Include="..\ScreenInfoUiaProviderBase.h" />
|
|
<ClInclude Include="..\UiaTextRangeBase.hpp" />
|
|
<ClInclude Include="..\UiaTracing.h" />
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<!-- subsume fmt, one of our dependencies, into contypes. -->
|
|
<ProjectReference Include="..\..\dep\fmt\fmt.vcxproj">
|
|
<Project>{6bae5851-50d5-4934-8d5e-30361a8a40f3}</Project>
|
|
</ProjectReference>
|
|
</ItemGroup>
|
|
<!-- Careful reordering these. Some default props (contained in these files) are order sensitive. -->
|
|
<Import Project="$(SolutionDir)src\common.build.post.props" />
|
|
</Project>
|