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
a785b0aaf004 More work on the Gui system
koryspansel
parents: 21
diff changeset
62 /*
a785b0aaf004 More work on the Gui system
koryspansel
parents: 21
diff changeset
63 * pFont
a785b0aaf004 More work on the Gui system
koryspansel
parents: 21
diff changeset
64 */
a785b0aaf004 More work on the Gui system
koryspansel
parents: 21
diff changeset
65 ID3DXFont* pFont;
a785b0aaf004 More work on the Gui system
koryspansel
parents: 21
diff changeset
66
a785b0aaf004 More work on the Gui system
koryspansel
parents: 21
diff changeset
67 /*
a785b0aaf004 More work on the Gui system
koryspansel
parents: 21
diff changeset
68 * kText
a785b0aaf004 More work on the Gui system
koryspansel
parents: 21
diff changeset
69 */
a785b0aaf004 More work on the Gui system
koryspansel
parents: 21
diff changeset
70 FixedString<> kText;
a785b0aaf004 More work on the Gui system
koryspansel
parents: 21
diff changeset
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
33cb6979ac51 More work on GUI system
koryspansel
parents: 11
diff changeset
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
a785b0aaf004 More work on the Gui system
koryspansel
parents: 21
diff changeset
105 * SetFont
a785b0aaf004 More work on the Gui system
koryspansel
parents: 21
diff changeset
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
a785b0aaf004 More work on the Gui system
koryspansel
parents: 21
diff changeset
108
a785b0aaf004 More work on the Gui system
koryspansel
parents: 21
diff changeset
109 /*
a785b0aaf004 More work on the Gui system
koryspansel
parents: 21
diff changeset
110 * SetText
a785b0aaf004 More work on the Gui system
koryspansel
parents: 21
diff changeset
111 */
a785b0aaf004 More work on the Gui system
koryspansel
parents: 21
diff changeset
112 void SetText(const char* pText);
a785b0aaf004 More work on the Gui system
koryspansel
parents: 21
diff changeset
113
a785b0aaf004 More work on the Gui system
koryspansel
parents: 21
diff changeset
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__