57 lines
2.0 KiB
C++
57 lines
2.0 KiB
C++
/*++
|
|
Copyright (c) Microsoft Corporation
|
|
Licensed under the MIT license.
|
|
|
|
Module Name:
|
|
- WinTelnetEngine.hpp
|
|
|
|
Abstract:
|
|
- This is the definition of the VT specific implementation of the renderer.
|
|
This is the win-telnet implementation, which does NOT support advanced
|
|
sequences such as inserting and deleting lines, and only supports 16 colors.
|
|
|
|
Author(s):
|
|
- Mike Griese (migrie) 01-Sept-2017
|
|
--*/
|
|
|
|
#pragma once
|
|
|
|
#include "vtrenderer.hpp"
|
|
|
|
namespace Microsoft::Console::Render
|
|
{
|
|
class WinTelnetEngine : public VtEngine
|
|
{
|
|
public:
|
|
WinTelnetEngine(_In_ wil::unique_hfile hPipe,
|
|
wil::shared_event shutdownEvent,
|
|
const Microsoft::Console::IDefaultColorProvider& colorProvider,
|
|
const Microsoft::Console::Types::Viewport initialViewport,
|
|
_In_reads_(cColorTable) const COLORREF* const ColorTable,
|
|
const WORD cColorTable);
|
|
virtual ~WinTelnetEngine() override = default;
|
|
|
|
[[nodiscard]] HRESULT UpdateDrawingBrushes(const COLORREF colorForeground,
|
|
const COLORREF colorBackground,
|
|
const WORD legacyColorAttribute,
|
|
const ExtendedAttributes extendedAttrs,
|
|
const bool isSettingDefaultBrushes) noexcept override;
|
|
[[nodiscard]] HRESULT ScrollFrame() noexcept override;
|
|
|
|
[[nodiscard]] HRESULT InvalidateScroll(const COORD* const pcoordDelta) noexcept override;
|
|
|
|
[[nodiscard]] HRESULT WriteTerminalW(const std::wstring& wstr) noexcept override;
|
|
|
|
protected:
|
|
[[nodiscard]] HRESULT _MoveCursor(const COORD coord) noexcept;
|
|
|
|
private:
|
|
const COLORREF* const _ColorTable;
|
|
const WORD _cColorTable;
|
|
|
|
#ifdef UNIT_TESTING
|
|
friend class VtRendererTest;
|
|
#endif
|
|
};
|
|
}
|