blob: 7e2144b841a80ca74f917f2d2635ae9751a470b8 (
plain) (
blame)
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
|
/*
** Haaf's Game Engine 1.7
** Copyright (C) 2003-2007, Relish Games
** hge.relishgames.com
**
** hgeGUI helper classes header
*/
#ifndef HGEGUI_H
#define HGEGUI_H
#include "hge.h"
#include "hgesprite.h"
#include "hgerect.h"
#define HGEGUI_NONAVKEYS 0
#define HGEGUI_LEFTRIGHT 1
#define HGEGUI_UPDOWN 2
#define HGEGUI_CYCLED 4
class hgeGUI;
/*
** hgeGUIObject
*/
class hgeGUIObject
{
public:
hgeGUIObject() { hge=hgeCreate(HGE_VERSION); color=0xFFFFFFFF; }
virtual ~hgeGUIObject() { hge->Release(); }
virtual void Render() = 0;
virtual void Update(float dt) {}
virtual void Enter() {}
virtual void Leave() {}
virtual void Reset() {}
virtual bool IsDone() { return true; }
virtual void Focus(bool bFocused) {}
virtual void MouseOver(bool bOver) {}
virtual bool MouseMove(float x, float y) { return false; }
virtual bool MouseLButton(bool bDown) { return false; }
virtual bool MouseRButton(bool bDown) { return false; }
virtual bool MouseWheel(int nNotches) { return false; }
virtual bool KeyClick(int key, int chr) { return false; }
virtual void SetColor(DWORD _color) { color=_color; }
int id;
bool bStatic;
bool bVisible;
bool bEnabled;
hgeRect rect;
DWORD color;
hgeGUI *gui;
hgeGUIObject *next;
hgeGUIObject *prev;
protected:
hgeGUIObject(const hgeGUIObject &go);
hgeGUIObject& operator= (const hgeGUIObject &go);
static HGE *hge;
};
/*
** hgeGUI
*/
class hgeGUI
{
public:
hgeGUI();
~hgeGUI();
void AddCtrl(hgeGUIObject *ctrl);
void DelCtrl(int id);
hgeGUIObject* GetCtrl(int id) const;
void MoveCtrl(int id, float x, float y);
void ShowCtrl(int id, bool bVisible);
void EnableCtrl(int id, bool bEnabled);
void SetNavMode(int mode);
void SetCursor(hgeSprite *spr);
void SetColor(DWORD color);
void SetFocus(int id);
int GetFocus() const;
void Enter();
void Leave();
void Reset();
void Move(float dx, float dy);
int Update(float dt);
void Render();
private:
hgeGUI(const hgeGUI &);
hgeGUI& operator= (const hgeGUI&);
bool ProcessCtrl(hgeGUIObject *ctrl);
static HGE *hge;
hgeGUIObject *ctrls;
hgeGUIObject *ctrlLock;
hgeGUIObject *ctrlFocus;
hgeGUIObject *ctrlOver;
int navmode;
int nEnterLeave;
hgeSprite *sprCursor;
float mx,my;
int nWheel;
bool bLPressed, bLReleased;
bool bRPressed, bRReleased;
};
#endif
|