terminal/src/host/scrolling.hpp
Dustin Howett d4d59fa339 Initial release of the Windows Terminal source code
This commit introduces all of the Windows Terminal and Console Host source,
under the MIT license.
2019-05-02 15:29:04 -07:00

47 lines
1.3 KiB
C++

/*++
Copyright (c) Microsoft Corporation
Licensed under the MIT license.
Module Name:
- scrolling.hpp
Abstract:
- This module is used for managing the scrolling state and process
Author(s):
- Michael Niksa (MiNiksa) 4-Jun-2014
- Paul Campbell (PaulCam) 4-Jun-2014
Revision History:
- From components of clipbrd.h/.c and input.h/.c
--*/
#pragma once
#include "input.h"
// TODO: Static methods generally mean they're getting their state globally and not from this object _yet_
class Scrolling
{
public:
static void s_UpdateSystemMetrics();
// legacy methods (not refactored yet)
static bool s_IsInScrollMode();
static void s_DoScroll();
static void s_ClearScroll();
static void s_ScrollIfNecessary(const SCREEN_INFORMATION& ScreenInfo);
static void s_HandleMouseWheel(_In_ bool isMouseWheel,
_In_ bool isMouseHWheel,
_In_ short wheelDelta,
_In_ bool hasShift,
SCREEN_INFORMATION& ScreenInfo);
static bool s_HandleKeyScrollingEvent(const INPUT_KEY_INFO* const pKeyInfo);
private:
static BOOL s_IsPointInRectangle(const RECT* const prc, const POINT pt);
static ULONG s_ucWheelScrollLines;
static ULONG s_ucWheelScrollChars;
};