2019-05-03 00:29:04 +02:00
|
|
|
// Copyright (c) Microsoft Corporation.
|
|
|
|
// Licensed under the MIT license.
|
|
|
|
|
|
|
|
#include "../../terminal/adapter/termDispatch.hpp"
|
|
|
|
#include "ITerminalApi.hpp"
|
|
|
|
|
|
|
|
class TerminalDispatch : public Microsoft::Console::VirtualTerminal::TermDispatch
|
|
|
|
{
|
|
|
|
public:
|
2020-01-03 19:44:27 +01:00
|
|
|
TerminalDispatch(::Microsoft::Terminal::Core::ITerminalApi& terminalApi) noexcept;
|
|
|
|
|
|
|
|
void Execute(const wchar_t wchControl) noexcept override;
|
|
|
|
void Print(const wchar_t wchPrintable) noexcept override;
|
|
|
|
void PrintString(const std::wstring_view string) noexcept override;
|
2019-05-03 00:29:04 +02:00
|
|
|
|
2020-01-03 15:25:21 +01:00
|
|
|
bool SetGraphicsRendition(const std::basic_string_view<::Microsoft::Console::VirtualTerminal::DispatchTypes::GraphicsOptions> options) noexcept override;
|
2019-05-03 00:29:04 +02:00
|
|
|
|
2020-01-03 19:44:27 +01:00
|
|
|
bool CursorPosition(const size_t line,
|
|
|
|
const size_t column) noexcept override; // CUP
|
2019-05-03 00:29:04 +02:00
|
|
|
|
2020-01-03 15:25:21 +01:00
|
|
|
bool CursorForward(const size_t distance) noexcept override;
|
|
|
|
bool CursorBackward(const size_t distance) noexcept override;
|
|
|
|
bool CursorUp(const size_t distance) noexcept override;
|
2019-05-03 00:29:04 +02:00
|
|
|
|
2020-01-03 15:25:21 +01:00
|
|
|
bool EraseCharacters(const size_t numChars) noexcept override;
|
|
|
|
bool SetWindowTitle(std::wstring_view title) noexcept override;
|
2019-05-03 00:29:04 +02:00
|
|
|
|
2020-01-03 15:25:21 +01:00
|
|
|
bool SetColorTableEntry(const size_t tableIndex, const DWORD color) noexcept override;
|
|
|
|
bool SetCursorStyle(const ::Microsoft::Console::VirtualTerminal::DispatchTypes::CursorStyle cursorStyle) noexcept override;
|
2019-05-03 00:29:04 +02:00
|
|
|
|
2020-01-03 15:25:21 +01:00
|
|
|
bool SetDefaultForeground(const DWORD color) noexcept override;
|
|
|
|
bool SetDefaultBackground(const DWORD color) noexcept override;
|
|
|
|
bool EraseInLine(const ::Microsoft::Console::VirtualTerminal::DispatchTypes::EraseType eraseType) noexcept override; // ED
|
|
|
|
bool DeleteCharacter(const size_t count) noexcept override;
|
|
|
|
bool InsertCharacter(const size_t count) noexcept override;
|
|
|
|
bool EraseInDisplay(const ::Microsoft::Console::VirtualTerminal::DispatchTypes::EraseType eraseType) noexcept override;
|
2019-05-24 18:53:00 +02:00
|
|
|
|
2019-05-03 00:29:04 +02:00
|
|
|
private:
|
|
|
|
::Microsoft::Terminal::Core::ITerminalApi& _terminalApi;
|
|
|
|
|
2019-12-19 23:12:53 +01:00
|
|
|
bool _SetRgbColorsHelper(const std::basic_string_view<::Microsoft::Console::VirtualTerminal::DispatchTypes::GraphicsOptions> options,
|
2020-01-03 19:44:27 +01:00
|
|
|
size_t& optionsConsumed) noexcept;
|
|
|
|
bool _SetBoldColorHelper(const ::Microsoft::Console::VirtualTerminal::DispatchTypes::GraphicsOptions opt) noexcept;
|
|
|
|
bool _SetDefaultColorHelper(const ::Microsoft::Console::VirtualTerminal::DispatchTypes::GraphicsOptions opt) noexcept;
|
|
|
|
void _SetGraphicsOptionHelper(const ::Microsoft::Console::VirtualTerminal::DispatchTypes::GraphicsOptions opt) noexcept;
|
2019-05-03 00:29:04 +02:00
|
|
|
};
|