载入中...
搜索中...
未找到
Mouse.h
浏览该文件的文档.
1#pragma once
2
3#include "common/Export.h"
4#include "common/Module.h"
5#include "mouse/Cursor.h"
6
7#include <vector>
8
9
10namespace eve::image {
11class ImageData;
12}
13
14namespace eve::mouse
15{
16
21public:
23
25 virtual ~Mouse();
26
28 virtual Cursor *newCursor(eve::image::ImageData *data, int hotx, int hoty) = 0;
30 virtual Cursor *getSystemCursor(std::string cursortype) = 0;
31
33 virtual void setCursor(Cursor *cursor) = 0;
35 virtual void setCursor() = 0;
36
38 virtual Cursor *getCursor() const = 0;
39
41 virtual bool isCursorSupported() const = 0;
42
44 virtual double getX() const = 0;
46 virtual double getY() const = 0;
48 virtual void getPosition(double &x, double &y) const = 0;
50 virtual void setX(double x) = 0;
52 virtual void setY(double y) = 0;
54 virtual void setPosition(double x, double y) = 0;
56 virtual void setVisible(bool visible) = 0;
58 virtual bool isDown(const std::vector<int> &buttons) const = 0;
60 virtual bool isVisible() const = 0;
62 virtual void setGrabbed(bool grab) = 0;
64 virtual bool isGrabbed() const = 0;
66 virtual bool setRelativeMode(bool relative) = 0;
68 virtual bool getRelativeMode() const = 0;
70 virtual double getMovementX() = 0;
72 virtual double getMovementY() const = 0;
73
75 float getWheelX() const;
77 float getWheelY() const;
78
79}; // Mouse
80
81} // eve::mouse
float y
Definition AnimClip.cpp:738
float x
Definition AnimClip.cpp:738
Vec3 relative
Definition AnimSmr.cpp:164
#define EVENGINE_API_BACKENDS
Definition Export.h:108
std::size_t cursor
bool visible
EVENGINE_API_FOUNDATION public API.
Definition Module.h:46
Represents raw pixel data.
Definition ImageData.h:38
Opaque mouse cursor (system-defined or custom image).
Definition Cursor.h:12
Queries and manipulates the mouse cursor; creates custom cursors.
Definition Mouse.h:20
virtual double getY() const =0
Cursor Y in window logical coordinates.
virtual void setCursor(Cursor *cursor)=0
Installs a cursor as the active OS cursor.
virtual Cursor * newCursor(eve::image::ImageData *data, int hotx, int hoty)=0
Builds a custom cursor from image pixels with hotspot (hotx, hoty).
virtual bool getRelativeMode() const =0
True when relative mouse mode is active.
virtual bool isDown(const std::vector< int > &buttons) const =0
True if any listed mouse button index is currently down.
virtual Cursor * getCursor() const =0
Currently installed cursor, or null for the default.
virtual double getX() const =0
Cursor X in window logical coordinates.
virtual void setPosition(double x, double y)=0
Warps the cursor to a logical window position.
virtual double getMovementX()=0
Pixel delta since the last getMovementX() (also latches Y for getMovementY).
virtual bool isCursorSupported() const =0
True when the platform supports software/hardware cursors.
virtual void setY(double y)=0
Warps the cursor Y while keeping X.
virtual void setX(double x)=0
Warps the cursor X while keeping Y.
virtual bool setRelativeMode(bool relative)=0
Enables relative mouse mode (hidden cursor, motion deltas).
virtual void setVisible(bool visible)=0
Shows or hides the OS cursor.
virtual bool isGrabbed() const =0
True when cursor grab is active.
virtual void setGrabbed(bool grab)=0
Confines the cursor to the window when grab is true.
virtual Cursor * getSystemCursor(std::string cursortype)=0
Returns a named system cursor (e.g. "arrow", "ibeam"); may cache.
virtual void getPosition(double &x, double &y) const =0
Writes cursor position in window logical coordinates.
virtual double getMovementY() const =0
Pixel delta latched by the most recent getMovementX(); call X then Y each frame.
virtual bool isVisible() const =0
True when the OS cursor is visible.
virtual void setCursor()=0
Restores the default system arrow cursor.