CloverBootloader/rEFIt_UEFI/libeg/XPointer.h

45 lines
828 B
C
Raw Normal View History

#pragma once
#include "XImage.h"
//#include "../refit/IO.h"
#include "libeg.h"
class REFIT_MENU_SCREEN;
class XImage;
class XPointer
{
public:
XPointer();
~XPointer();
protected:
EFI_SIMPLE_POINTER_PROTOCOL *SimplePointerProtocol;
XImage* PointerImage;
2020-03-09 10:35:14 +01:00
// XImage newImage;
XImage oldImage;
EG_RECT newPlace;
EG_RECT oldPlace;
UINT64 LastClickTime; //not EFI_TIME
EFI_SIMPLE_POINTER_STATE State;
MOUSE_EVENT MouseEvent;
bool Alive;
public:
void Hide();
bool isAlive();
EFI_STATUS MouseBirth();
VOID KillMouse();
VOID UpdatePointer();
bool MouseInRect(EG_RECT *Place);
EFI_STATUS CheckMouseEvent(REFIT_MENU_SCREEN *Screen);
bool isEmpty() const { return PointerImage->isEmpty(); }
2020-03-03 14:52:23 +01:00
protected:
VOID Draw();
2020-03-03 14:52:23 +01:00
VOID DrawPointer();
};