111 lines
4.9 KiB
C++
111 lines
4.9 KiB
C++
/*++
|
|
Copyright (c) Microsoft Corporation
|
|
Licensed under the MIT license.
|
|
|
|
Module Name:
|
|
- conGetSet.hpp
|
|
|
|
Abstract:
|
|
- This serves as an abstraction layer for the adapters to connect to the console API functions.
|
|
- The abstraction allows for the substitution of the functions for internal/external to Conhost.exe use as well as easy testing.
|
|
|
|
Author(s):
|
|
- Michael Niksa (MiNiksa) 30-July-2015
|
|
--*/
|
|
|
|
#pragma once
|
|
|
|
#include "../input/terminalInput.hpp"
|
|
#include "../parser/stateMachine.hpp"
|
|
#include "../../types/inc/IInputEvent.hpp"
|
|
#include "../../buffer/out/LineRendition.hpp"
|
|
#include "../../buffer/out/TextAttribute.hpp"
|
|
#include "../../inc/conattrs.hpp"
|
|
|
|
#include <deque>
|
|
#include <memory>
|
|
|
|
namespace Microsoft::Console::VirtualTerminal
|
|
{
|
|
class ConGetSet
|
|
{
|
|
public:
|
|
virtual ~ConGetSet() = default;
|
|
virtual bool GetConsoleScreenBufferInfoEx(CONSOLE_SCREEN_BUFFER_INFOEX& screenBufferInfo) const = 0;
|
|
virtual bool SetConsoleScreenBufferInfoEx(const CONSOLE_SCREEN_BUFFER_INFOEX& screenBufferInfo) = 0;
|
|
virtual bool SetConsoleCursorPosition(const COORD position) = 0;
|
|
|
|
virtual bool PrivateIsVtInputEnabled() const = 0;
|
|
|
|
virtual bool PrivateGetTextAttributes(TextAttribute& attrs) const = 0;
|
|
virtual bool PrivateSetTextAttributes(const TextAttribute& attrs) = 0;
|
|
|
|
virtual bool PrivateSetCurrentLineRendition(const LineRendition lineRendition) = 0;
|
|
virtual bool PrivateResetLineRenditionRange(const size_t startRow, const size_t endRow) = 0;
|
|
virtual SHORT PrivateGetLineWidth(const size_t row) const = 0;
|
|
|
|
virtual bool PrivateWriteConsoleInputW(std::deque<std::unique_ptr<IInputEvent>>& events,
|
|
size_t& eventsWritten) = 0;
|
|
virtual bool SetConsoleWindowInfo(const bool absolute,
|
|
const SMALL_RECT& window) = 0;
|
|
|
|
virtual bool SetInputMode(const TerminalInput::Mode mode, const bool enabled) = 0;
|
|
virtual bool SetParserMode(const StateMachine::Mode mode, const bool enabled) = 0;
|
|
virtual bool GetParserMode(const StateMachine::Mode mode) const = 0;
|
|
|
|
virtual bool PrivateSetScreenMode(const bool reverseMode) = 0;
|
|
virtual bool PrivateSetAutoWrapMode(const bool wrapAtEOL) = 0;
|
|
|
|
virtual bool PrivateShowCursor(const bool show) = 0;
|
|
virtual bool PrivateAllowCursorBlinking(const bool enable) = 0;
|
|
|
|
virtual bool PrivateSetScrollingRegion(const SMALL_RECT& scrollMargins) = 0;
|
|
virtual bool PrivateWarningBell() = 0;
|
|
virtual bool PrivateGetLineFeedMode() const = 0;
|
|
virtual bool PrivateLineFeed(const bool withReturn) = 0;
|
|
virtual bool PrivateReverseLineFeed() = 0;
|
|
virtual bool SetConsoleTitleW(const std::wstring_view title) = 0;
|
|
virtual bool PrivateUseAlternateScreenBuffer() = 0;
|
|
virtual bool PrivateUseMainScreenBuffer() = 0;
|
|
|
|
virtual bool PrivateEraseAll() = 0;
|
|
virtual bool PrivateClearBuffer() = 0;
|
|
virtual bool GetUserDefaultCursorStyle(CursorType& style) = 0;
|
|
virtual bool SetCursorStyle(const CursorType style) = 0;
|
|
virtual bool SetCursorColor(const COLORREF color) = 0;
|
|
virtual bool PrivateWriteConsoleControlInput(const KeyEvent key) = 0;
|
|
virtual bool PrivateRefreshWindow() = 0;
|
|
|
|
virtual bool SetConsoleOutputCP(const unsigned int codepage) = 0;
|
|
virtual bool GetConsoleOutputCP(unsigned int& codepage) = 0;
|
|
|
|
virtual bool PrivateSuppressResizeRepaint() = 0;
|
|
virtual bool IsConsolePty() const = 0;
|
|
|
|
virtual bool DeleteLines(const size_t count) = 0;
|
|
virtual bool InsertLines(const size_t count) = 0;
|
|
|
|
virtual bool MoveToBottom() const = 0;
|
|
|
|
virtual COLORREF GetColorTableEntry(const size_t tableIndex) const = 0;
|
|
virtual bool SetColorTableEntry(const size_t tableIndex, const COLORREF color) = 0;
|
|
|
|
virtual bool PrivateFillRegion(const COORD startPosition,
|
|
const size_t fillLength,
|
|
const wchar_t fillChar,
|
|
const bool standardFillAttrs) = 0;
|
|
|
|
virtual bool PrivateScrollRegion(const SMALL_RECT scrollRect,
|
|
const std::optional<SMALL_RECT> clipRect,
|
|
const COORD destinationOrigin,
|
|
const bool standardFillAttrs) = 0;
|
|
|
|
virtual bool PrivateAddHyperlink(const std::wstring_view uri, const std::wstring_view params) const = 0;
|
|
virtual bool PrivateEndHyperlink() const = 0;
|
|
|
|
virtual bool PrivateUpdateSoftFont(const gsl::span<const uint16_t> bitPattern,
|
|
const SIZE cellSize,
|
|
const size_t centeringHint) = 0;
|
|
};
|
|
}
|