载入中...
搜索中...
未找到
Mouse.h
浏览该文件的文档.
1#pragma once
2#include <map>
3
4#include "mouse/Mouse.h"
5#include "mouse/sdl/Cursor.h"
6
7
8namespace eve::mouse::sdl {
9
11class Mouse : public eve::mouse::Mouse {
12public:
14 Mouse();
16 virtual ~Mouse();
17
19 eve::mouse::Cursor *newCursor(eve::image::ImageData *data, int hotx, int hoty) override;
21 eve::mouse::Cursor *getSystemCursor(std::string cursortype) override;
22
24 void setCursor(eve::mouse::Cursor *cursor) override;
26 void setCursor() override;
27
29 eve::mouse::Cursor *getCursor() const override;
30
32 bool isCursorSupported() const override;
33
35 double getX() const override;
37 double getY() const override;
39 void getPosition(double &x, double &y) const override;
41 void setX(double x) override;
43 void setY(double y) override;
45 void setPosition(double x, double y) override;
47 void setVisible(bool visible) override;
49 bool isDown(const std::vector<int> &buttons) const override;
51 bool isVisible() const override;
53 void setGrabbed(bool grab) override;
55 bool isGrabbed() const override;
57 bool setRelativeMode(bool relative) override;
59 bool getRelativeMode() const override;
61 double getMovementX() override;
63 double getMovementY() const override;
64
65private:
66 eve::mouse::Cursor * curCursor;
67 std::map<std::string, Cursor *> systemCursors;
68 int lastRelY = 0;
69}; // Mouse
70
71} // namespace eve::mouse::sdl
float y
Definition AnimClip.cpp:738
float x
Definition AnimClip.cpp:738
Vec3 relative
Definition AnimSmr.cpp:164
std::size_t cursor
bool visible
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
SDL mouse backend implementing eve::mouse::Mouse.
Definition Mouse.h:11
void setVisible(bool visible) override
Shows or hides the OS cursor.
Definition Mouse.cpp:148
bool isCursorSupported() const override
True when the platform supports software/hardware cursors.
Definition Mouse.cpp:83
bool isGrabbed() const override
True when cursor grab is active.
Definition Mouse.cpp:192
virtual ~Mouse()
Releases cached system cursors.
Definition Mouse.cpp:33
double getY() const override
Cursor Y in window logical coordinates.
Definition Mouse.cpp:99
eve::mouse::Cursor * newCursor(eve::image::ImageData *data, int hotx, int hoty) override
Builds a custom cursor from image pixels with hotspot (hotx, hoty).
Definition Mouse.cpp:44
void setPosition(double x, double y) override
Warps the cursor to a logical window position.
Definition Mouse.cpp:120
void setCursor() override
Installs a cursor as the active OS cursor.
Definition Mouse.cpp:71
eve::mouse::Cursor * getSystemCursor(std::string cursortype) override
Returns a named system cursor (e.g. "arrow", "ibeam"); may cache.
Definition Mouse.cpp:49
void setGrabbed(bool grab) override
Confines the cursor to the window when grab is true.
Definition Mouse.cpp:186
void getPosition(double &x, double &y) const override
Writes cursor position in window logical coordinates.
Definition Mouse.cpp:110
bool getRelativeMode() const override
True when relative mouse mode is active.
Definition Mouse.cpp:205
void setX(double x) override
Warps the cursor X while keeping Y.
Definition Mouse.cpp:138
bool isVisible() const override
True when the OS cursor is visible.
Definition Mouse.cpp:181
double getX() const override
Cursor X in window logical coordinates.
Definition Mouse.cpp:88
bool setRelativeMode(bool relative) override
Enables relative mouse mode (hidden cursor, motion deltas).
Definition Mouse.cpp:200
eve::mouse::Cursor * getCursor() const override
Currently installed cursor, or null for the default.
Definition Mouse.cpp:77
double getMovementX() override
Pixel delta since the last getMovementX() (also latches Y for getMovementY).
Definition Mouse.cpp:210
double getMovementY() const override
Pixel delta latched by the most recent getMovementX(); call X then Y each frame.
Definition Mouse.cpp:218
void setY(double y) override
Warps the cursor Y while keeping X.
Definition Mouse.cpp:143
Mouse()
Constructs the SDL mouse module with default cursor state.
Definition Mouse.cpp:25
bool isDown(const std::vector< int > &buttons) const override
True if any listed mouse button index is currently down.
Definition Mouse.cpp:153