Mercurial > LightClone
annotate LightClone/Source/GuiButton.h @ 33:06b151afc8d0
Cleaned up UI art; Completed drag and drop; Centered grid
author | koryspansel <koryspansel@bendbroadband.com> |
---|---|
date | Wed, 21 Sep 2011 00:50:20 -0700 |
parents | 3a63df04f3c0 |
children | 7ff46a00bcd3 |
rev | line source |
---|---|
11
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
1 /* |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
2 * GuiButton |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
3 */ |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
4 |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
5 #ifndef __GUIBUTTON_H__ |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
6 #define __GUIBUTTON_H__ |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
7 |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
8 #include "Core.h" |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
9 #include "GuiElement.h" |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
10 |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
11 /* |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
12 * GuiButtonState |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
13 */ |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
14 enum |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
15 { |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
16 GuiButtonState_Normal, |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
17 GuiButtonState_Down, |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
18 GuiButtonState_Hover, |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
19 GuiButtonState_Disabled, |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
20 GuiButtonState_Count, |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
21 }; |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
22 |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
23 /* |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
24 * GuiButton |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
25 */ |
21
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
26 class GuiButton : public GuiElement |
11
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
27 { |
21
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
28 public: |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
29 |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
30 /* |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
31 * EventClick |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
32 */ |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
33 static const char* EventClick; |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
34 |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
35 private: |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
36 |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
37 /* |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
38 * pResourceManager |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
39 */ |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
40 ResourceManager* pResourceManager; |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
41 |
11
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
42 /* |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
43 * nState |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
44 */ |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
45 uint32 nState; |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
46 |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
47 /* |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
48 * pEffect |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
49 */ |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
50 ID3DXEffect* pEffect; |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
51 |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
52 /* |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
53 * pVertexBuffer |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
54 */ |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
55 IDirect3DVertexBuffer9* pVertexBuffer; |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
56 |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
57 /* |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
58 * pTexture |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
59 */ |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
60 IDirect3DTexture9* pTexture[GuiButtonState_Count]; |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
61 |
23 | 62 /* |
63 * pFont | |
64 */ | |
65 ID3DXFont* pFont; | |
66 | |
67 /* | |
68 * kText | |
69 */ | |
70 FixedString<> kText; | |
71 | |
11
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
72 public: |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
73 |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
74 /* |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
75 * GuiButton |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
76 */ |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
77 GuiButton(); |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
78 |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
79 /* |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
80 * Initialize |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
81 */ |
21
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
82 virtual ErrorCode Initialize(ResourceManager* pManager); |
11
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
83 |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
84 /* |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
85 * Terminate |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
86 */ |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
87 virtual void Terminate(); |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
88 |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
89 /* |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
90 * Update |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
91 */ |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
92 virtual void Update(float fElapsed); |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
93 |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
94 /* |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
95 * Render |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
96 */ |
18 | 97 virtual void Render(RenderContext& kContext, Camera& kCamera); |
11
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
98 |
21
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
99 /* |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
100 * SetTexture |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
101 */ |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
102 ErrorCode SetTexture(uint32 nState, const char* pName, bool bResize = false); |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
103 |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
104 /* |
23 | 105 * SetFont |
106 */ | |
33
06b151afc8d0
Cleaned up UI art; Completed drag and drop; Centered grid
koryspansel <koryspansel@bendbroadband.com>
parents:
26
diff
changeset
|
107 ErrorCode SetFont(const char* pName, uint32 nSize, uint32 nWeight = FW_NORMAL); |
23 | 108 |
109 /* | |
110 * SetText | |
111 */ | |
112 void SetText(const char* pText); | |
113 | |
114 /* | |
26
3a63df04f3c0
Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents:
23
diff
changeset
|
115 * OnMouseEnter |
3a63df04f3c0
Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents:
23
diff
changeset
|
116 */ |
3a63df04f3c0
Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents:
23
diff
changeset
|
117 virtual void OnMouseEnter(); |
3a63df04f3c0
Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents:
23
diff
changeset
|
118 |
3a63df04f3c0
Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents:
23
diff
changeset
|
119 /* |
3a63df04f3c0
Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents:
23
diff
changeset
|
120 * OnMouseLeave |
3a63df04f3c0
Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents:
23
diff
changeset
|
121 */ |
3a63df04f3c0
Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents:
23
diff
changeset
|
122 virtual void OnMouseLeave(); |
3a63df04f3c0
Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents:
23
diff
changeset
|
123 |
3a63df04f3c0
Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents:
23
diff
changeset
|
124 /* |
21
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
125 * OnMouseDown |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
126 */ |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
127 virtual void OnMouseDown(uint32 nButton, float fX, float fY); |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
128 |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
129 /* |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
130 * OnMouseUp |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
131 */ |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
132 virtual void OnMouseUp(uint32 nButton, float fX, float fY); |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
133 |
26
3a63df04f3c0
Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents:
23
diff
changeset
|
134 /* |
3a63df04f3c0
Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents:
23
diff
changeset
|
135 * OnMouseMove |
3a63df04f3c0
Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents:
23
diff
changeset
|
136 */ |
3a63df04f3c0
Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents:
23
diff
changeset
|
137 virtual void OnMouseMove(float fX, float fY); |
3a63df04f3c0
Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents:
23
diff
changeset
|
138 |
11
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
139 private: |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
140 |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
141 /* |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
142 * SetupVertexBuffer |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
143 */ |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
144 ErrorCode SetupVertexBuffer(); |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
145 }; |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
146 |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
147 #endif //__GUIBUTTON_H__ |