Mesen2/Core/Shared/Interfaces/IMouseManager.h

33 lines
673 B
C++

#pragma once
#include "pch.h"
enum class CursorImage
{
Hidden,
Arrow,
Cross
};
struct SystemMouseState
{
int32_t XPosition;
int32_t YPosition;
bool LeftButton;
bool RightButton;
bool MiddleButton;
bool Button4;
bool Button5;
};
class IMouseManager
{
public:
virtual ~IMouseManager() {}
virtual SystemMouseState GetSystemMouseState(void* rendererHandle) = 0;
virtual bool CaptureMouse(int32_t x, int32_t y, int32_t width, int32_t height, void* rendererHandle) = 0;
virtual void ReleaseMouse() = 0;
virtual void SetSystemMousePosition(int32_t x, int32_t y) = 0;
virtual void SetCursorImage(CursorImage cursor) = 0;
virtual double GetPixelScale() = 0;
};