2019-05-03 00:29:04 +02:00
|
|
|
// Copyright (c) Microsoft Corporation.
|
|
|
|
// Licensed under the MIT license.
|
|
|
|
|
|
|
|
#pragma once
|
2019-07-16 20:09:29 +02:00
|
|
|
|
|
|
|
#include "ControlKeyStates.hpp"
|
|
|
|
|
2019-05-03 00:29:04 +02:00
|
|
|
namespace Microsoft::Terminal::Core
|
|
|
|
{
|
|
|
|
class ITerminalInput
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
virtual ~ITerminalInput() {}
|
2019-10-11 23:02:09 +02:00
|
|
|
ITerminalInput(const ITerminalInput&) = default;
|
|
|
|
ITerminalInput(ITerminalInput&&) = default;
|
|
|
|
ITerminalInput& operator=(const ITerminalInput&) = default;
|
|
|
|
ITerminalInput& operator=(ITerminalInput&&) = default;
|
2019-05-03 00:29:04 +02:00
|
|
|
|
2020-06-09 00:31:28 +02:00
|
|
|
virtual bool SendKeyEvent(const WORD vkey, const WORD scanCode, const ControlKeyStates states, const bool keyDown) = 0;
|
2020-08-08 01:21:09 +02:00
|
|
|
virtual bool SendMouseEvent(const COORD viewportPos, const unsigned int uiButton, const ControlKeyStates states, const short wheelDelta, const Microsoft::Console::VirtualTerminal::TerminalInput::MouseButtonState state) = 0;
|
2020-04-07 21:09:28 +02:00
|
|
|
virtual bool SendCharEvent(const wchar_t ch, const WORD scanCode, const ControlKeyStates states) = 0;
|
2019-05-03 00:29:04 +02:00
|
|
|
|
2019-06-11 22:27:09 +02:00
|
|
|
[[nodiscard]] virtual HRESULT UserResize(const COORD size) noexcept = 0;
|
2019-05-03 00:29:04 +02:00
|
|
|
virtual void UserScrollViewport(const int viewTop) = 0;
|
|
|
|
virtual int GetScrollOffset() = 0;
|
2019-10-11 23:02:09 +02:00
|
|
|
|
2019-11-13 03:12:43 +01:00
|
|
|
virtual void TrySnapOnInput() = 0;
|
|
|
|
|
2019-10-11 23:02:09 +02:00
|
|
|
protected:
|
|
|
|
ITerminalInput() = default;
|
2019-05-03 00:29:04 +02:00
|
|
|
};
|
|
|
|
}
|