terminal/src/cascadia/TerminalControl
Dustin L. Howett (MSFT) 901a1e1a09
Implement ConnectionState and closeOnExit=graceful/always/never (#3623)
This pull request implements the new
`ITerminalConnection::ConnectionState` interface (enum, event) and
connects it through TerminalControl to Pane, Tab and App as specified in
#2039. It does so to implement `closeOnExit` = `graceful` in addition to
the other two normal CoE types.

It also:

* exposes the singleton `CascadiaSettings` through a function that
  looks it up by using the current Xaml application's `AppLogic`.
  * In so doing, we've broken up the weird runaround where App tells
    TerminalSettings to CloseOnExit and then later another part of App
    _asks TerminalControl_ to tell it what TerminalSettings said App
    told it earlier. `:crazy_eyes:`
* wires up a bunch of connection state points to `AzureConnection`.
  This required moving the Azure connection's state machine to use another
  enum name (oops).
* ships a helper class for managing connection state transitions.
* contains a bunch of template magic.
* introduces `WINRT_CALLBACK`, a oneshot callback like `TYPED_EVENT`.
* replaces a bunch of disparate `_connecting` and `_closing` members
  with just one uberstate.
* updates the JSON schema and defaults to prefer closeOnExit: graceful
* updates all relevant documentation

Specified in #2039
Fixes #2563

Co-authored-by: mcpiroman <38111589+mcpiroman@users.noreply.github.com>
2019-11-25 14:22:29 -08:00
..
init.cpp Add some ETL around profile, control and connection creation (#2125) 2019-07-29 17:24:20 -07:00
packages.config Combined changes to make the build work again (see inside) (#2945) 2019-09-30 10:39:55 -07:00
pch.cpp Initial release of the Windows Terminal source code 2019-05-02 15:29:04 -07:00
pch.h Add a Windows.UI.Text.Core IME overlay to TerminalControl (#1919) 2019-11-21 16:25:50 -08:00
TermControl.cpp Implement ConnectionState and closeOnExit=graceful/always/never (#3623) 2019-11-25 14:22:29 -08:00
TermControl.h Implement ConnectionState and closeOnExit=graceful/always/never (#3623) 2019-11-25 14:22:29 -08:00
TermControl.idl Implement ConnectionState and closeOnExit=graceful/always/never (#3623) 2019-11-25 14:22:29 -08:00
TermControlAutomationPeer.cpp Upgrade UiaProviders to WRL::ComPtr (#3051) 2019-11-21 16:08:37 -08:00
TermControlAutomationPeer.h Upgrade UiaProviders to WRL::ComPtr (#3051) 2019-11-21 16:08:37 -08:00
TermControlAutomationPeer.idl Accessibility: TermControl Automation Peer (#2083) 2019-07-30 16:43:10 -07:00
TermControlUiaProvider.cpp Upgrade UiaProviders to WRL::ComPtr (#3051) 2019-11-21 16:08:37 -08:00
TermControlUiaProvider.hpp Upgrade UiaProviders to WRL::ComPtr (#3051) 2019-11-21 16:08:37 -08:00
TerminalControl.def Initial release of the Windows Terminal source code 2019-05-02 15:29:04 -07:00
TerminalControl.vcxproj Add a Windows.UI.Text.Core IME overlay to TerminalControl (#1919) 2019-11-21 16:25:50 -08:00
TerminalControl.vcxproj.filters Combined changes to make the build work again (see inside) (#2945) 2019-09-30 10:39:55 -07:00
TSFInputControl.cpp Add a Windows.UI.Text.Core IME overlay to TerminalControl (#1919) 2019-11-21 16:25:50 -08:00
TSFInputControl.h Add a Windows.UI.Text.Core IME overlay to TerminalControl (#1919) 2019-11-21 16:25:50 -08:00
TSFInputControl.idl Add a Windows.UI.Text.Core IME overlay to TerminalControl (#1919) 2019-11-21 16:25:50 -08:00
UiaTextRange.cpp Upgrade UiaProviders to WRL::ComPtr (#3051) 2019-11-21 16:08:37 -08:00
UiaTextRange.hpp Upgrade UiaProviders to WRL::ComPtr (#3051) 2019-11-21 16:08:37 -08:00
XamlUiaTextRange.cpp Unify and clean up the common build properties (#3429) 2019-11-05 14:29:11 -08:00
XamlUiaTextRange.h Accessibility: Refactor Providers (#2414) 2019-08-20 16:32:44 -07:00