terminal/src/cascadia/TerminalControl
PankajBhojwani 4c16cb278e
Allow users to set font features and font axes (#10525)
Adds support for users to be able to set font features and axes (see the spec for more details!)

## Detailed Description

**CustomTextLayout**
- Asks the `DxFontRenderData` for the font features when getting glyphs
- _If any features have been set/updated, we always skip the "isTextSimple" shortcut_
- Asks the `_formatInUse` for any font axes when mapping characters in `_AnalyzeFontFallback`

**DxFontRenderData**
- Stores a map of font features (initialized to the [standard feature list])
- Stores a map of font axes
- Has methods to add font features/axes to the map or update existing ones
- Has methods to retrieve the font features/axes
- Sets the font axes in the `IDWriteTextFormat` when creating it

## Validation Steps Performed
It works!

[standard feature list]: ac5aef67d1/DrawableObject.ixx (L802)

Specified in #10457
Related to #1790 
Closes #759
Closes #5828
2021-07-22 23:15:44 +00:00
..
dll Implement PGO in pipelines for AMD64 architecture; supply training test scenarios (#10071) 2021-05-13 21:12:30 +00:00
Resources/en-US Introduce read-only panes (#8867) 2021-02-08 18:03:55 +00:00
ControlCore.cpp Allow users to set font features and font axes (#10525) 2021-07-22 23:15:44 +00:00
ControlCore.h Only access ControlInteractivity through the projection (#10051) 2021-07-19 11:59:30 -05:00
ControlCore.idl Only access ControlInteractivity through the projection (#10051) 2021-07-19 11:59:30 -05:00
ControlInteractivity.cpp Fix mouse coordinates when viewport is scrolled (#10642) 2021-07-20 21:39:55 +00:00
ControlInteractivity.h Only access ControlInteractivity through the projection (#10051) 2021-07-19 11:59:30 -05:00
ControlInteractivity.idl Only access ControlInteractivity through the projection (#10051) 2021-07-19 11:59:30 -05:00
EventArgs.cpp Split TermControl into a Core, Interactivity, and Control layer (#9820) 2021-04-27 15:50:45 +00:00
EventArgs.h Split TermControl into a Core, Interactivity, and Control layer (#9820) 2021-04-27 15:50:45 +00:00
EventArgs.idl Split TermControl into a Core, Interactivity, and Control layer (#9820) 2021-04-27 15:50:45 +00:00
IControlAppearance.idl Add support for a profile to specify an "unfocused" appearance (#8392) 2021-04-08 22:46:16 +00:00
IControlSettings.idl Allow users to set font features and font axes (#10525) 2021-07-22 23:15:44 +00:00
ICoreState.idl Only access ControlInteractivity through the projection (#10051) 2021-07-19 11:59:30 -05:00
IDirectKeyListener.idl Move events out of TermControl.h ; Use TYPED_EVENT in more places (#9526) 2021-03-18 22:02:39 +00:00
IKeyBindings.idl Rename Microsoft.Terminal.TerminalControl to .Control; Split into dll & lib (#9472) 2021-03-17 20:47:24 +00:00
IMouseWheelListener.idl Rename Microsoft.Terminal.TerminalControl to .Control; Split into dll & lib (#9472) 2021-03-17 20:47:24 +00:00
init.cpp Rename Microsoft.Terminal.TerminalControl to .Control; Split into dll & lib (#9472) 2021-03-17 20:47:24 +00:00
InteractivityAutomationPeer.cpp Only access ControlInteractivity through the projection (#10051) 2021-07-19 11:59:30 -05:00
InteractivityAutomationPeer.h Only access ControlInteractivity through the projection (#10051) 2021-07-19 11:59:30 -05:00
InteractivityAutomationPeer.idl Only access ControlInteractivity through the projection (#10051) 2021-07-19 11:59:30 -05:00
KeyChord.cpp Introduce vk() and sc() key chord specifiers (#10666) 2021-07-20 22:34:51 +00:00
KeyChord.h Introduce vk() and sc() key chord specifiers (#10666) 2021-07-20 22:34:51 +00:00
KeyChord.idl Introduce vk() and sc() key chord specifiers (#10666) 2021-07-20 22:34:51 +00:00
packages.config Update C++/WinRT to 2.0.210309.3 (#9437) 2021-03-10 16:04:59 -06:00
pch.cpp Initial release of the Windows Terminal source code 2019-05-02 15:29:04 -07:00
pch.h Only access ControlInteractivity through the projection (#10051) 2021-07-19 11:59:30 -05:00
SearchBoxControl.cpp Rename Microsoft.Terminal.TerminalControl to .Control; Split into dll & lib (#9472) 2021-03-17 20:47:24 +00:00
SearchBoxControl.h Rename Microsoft.Terminal.TerminalControl to .Control; Split into dll & lib (#9472) 2021-03-17 20:47:24 +00:00
SearchBoxControl.idl Rename Microsoft.Terminal.TerminalControl to .Control; Split into dll & lib (#9472) 2021-03-17 20:47:24 +00:00
SearchBoxControl.xaml Auto-format our XAML files and enforce in CI (#9589) 2021-03-29 17:09:38 -05:00
TermControl.cpp Introduce vk() and sc() key chord specifiers (#10666) 2021-07-20 22:34:51 +00:00
TermControl.h Only access ControlInteractivity through the projection (#10051) 2021-07-19 11:59:30 -05:00
TermControl.idl Add a setting to flash the pane when BEL is emitted (#9270) 2021-05-24 22:51:03 +00:00
TermControl.xaml Add a setting to flash the pane when BEL is emitted (#9270) 2021-05-24 22:51:03 +00:00
TermControlAutomationPeer.cpp Only access ControlInteractivity through the projection (#10051) 2021-07-19 11:59:30 -05:00
TermControlAutomationPeer.h Only access ControlInteractivity through the projection (#10051) 2021-07-19 11:59:30 -05:00
TermControlAutomationPeer.idl Only access ControlInteractivity through the projection (#10051) 2021-07-19 11:59:30 -05:00
TerminalControlLib.vcxproj Only access ControlInteractivity through the projection (#10051) 2021-07-19 11:59:30 -05:00
TSFInputControl.cpp (1.9 port) Fix a number of shutdown crashes in TermControl (#10117) 2021-05-18 17:36:40 -05:00
TSFInputControl.h Rename Microsoft.Terminal.TerminalControl to .Control; Split into dll & lib (#9472) 2021-03-17 20:47:24 +00:00
TSFInputControl.idl Rename Microsoft.Terminal.TerminalControl to .Control; Split into dll & lib (#9472) 2021-03-17 20:47:24 +00:00
TSFInputControl.xaml Auto-format our XAML files and enforce in CI (#9589) 2021-03-29 17:09:38 -05:00
XamlLights.cpp Add a setting to flash the pane when BEL is emitted (#9270) 2021-05-24 22:51:03 +00:00
XamlLights.h Add a setting to flash the pane when BEL is emitted (#9270) 2021-05-24 22:51:03 +00:00
XamlLights.idl Add a setting to flash the pane when BEL is emitted (#9270) 2021-05-24 22:51:03 +00:00
XamlUiaTextRange.cpp Expose Text Attributes to UI Automation (#10336) 2021-07-09 23:21:35 +00:00
XamlUiaTextRange.h Rename Microsoft.Terminal.TerminalControl to .Control; Split into dll & lib (#9472) 2021-03-17 20:47:24 +00:00