1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
#ifndef __ASURA_ENGINE_CURSOR_H__
#define __ASURA_ENGINE_CURSOR_H__
#include <SDL2/SDL.h>
#include <asura-utils/scripting/portable.hpp>
#include "../graphics/image_data.h"
#include "input_device.hpp"
namespace AsuraEngine
{
namespace Input
{
class CursorImpl;
// Types of system cursors.
enum SystemCursor
{
CURSOR_ARROW,
CURSOR_IBEAM,
CURSOR_WAIT,
CURSOR_CROSSHAIR,
CURSOR_WAITARROW,
CURSOR_SIZENWSE,
CURSOR_SIZENESW,
CURSOR_SIZEWE,
CURSOR_SIZENS,
CURSOR_SIZEALL,
CURSOR_NO,
CURSOR_HAND,
CURSOR_MAX_ENUM
};
enum CursorType
{
CURSORTYPE_SYSTEM,
CURSORTYPE_IMAGE,
CURSORTYPE_MAX_ENUM
};
// ָö
#include "Cursor.defs"
class Cursor
: public AEScripting::Portable<Cursor>
{
public:
LUAX_DECL_FACTORY(Cursor);
Cursor(Graphics::ImageData& imageData, int hotx, int hoty);
Cursor(SystemCursor cursortype);
~Cursor();
SDL_Cursor* GetHandle() const;
CursorType GetType() const;
SystemCursor GetSystemType() const;
private:
CursorType mType;
SystemCursor mSystemType;
CursorImpl* mImpl;
};
ASURA_ABSTRACT class CursorImpl
{
};
}
}
#endif
|