My Project
GUIPosition.h
1 #pragma once
2 #include <string>
3 
4 #ifndef WIN32
5 /*
6 * DrawText() Format Flags
7 */
8 #define DT_TOP 0x00000000
9 #define DT_LEFT 0x00000000
10 #define DT_CENTER 0x00000001
11 #define DT_RIGHT 0x00000002
12 #define DT_VCENTER 0x00000004
13 #define DT_BOTTOM 0x00000008
14 #define DT_WORDBREAK 0x00000010
15 #define DT_SINGLELINE 0x00000020
16 #define DT_EXPANDTABS 0x00000040
17 #define DT_TABSTOP 0x00000080
18 #define DT_NOCLIP 0x00000100
19 #define DT_EXTERNALLEADING 0x00000200
20 #define DT_CALCRECT 0x00000400
21 #define DT_NOPREFIX 0x00000800
22 #define DT_INTERNAL 0x00001000
23 #endif
24 
25 namespace ParaEngine
26 {
27  using namespace std;
28  class CBaseObject;
29  class IScene;
30 
34  struct CGUIPosition
35  {
36  public:
37  CGUIPosition();
38  CGUIPosition(const RECT& rect_);
39  CGUIPosition(int x, int y, int width, int height);
40 
44  {
46  upper_left = 0,
73 
74  };
75 
81  {
82  relative_to_screen = 10,
83  relative_to_3Dobject = 11,
84  relative_to_parent = 12
85  };
86 
87  public:
88  void SetWidth(int width);
89  void SetHeight(int height);
90  void SetDepth(float Depth);
95  void Update3DDepth(float Depth);
96 
97  bool IsNormalWidthHeight() const;
98 
99  int GetWidth()const;
100  int GetHeight()const;
101  int GetLeft() const;
102  int GetTop() const;
103  void SetLeft(int X);
104  void SetTop(int Y);
105  float GetDepth()const;
106  void SetXY(int X, int Y);
107 
108  void SetSize(int width, int height);
109 
112  void Reposition(const char* alignment, int left, int top, int width, int height);
113 
135  int SetAlignment(const char* alignment);
136 
143  void CalculateAbsPosition(RECT* pOut, const RECT* pParentRect) const;
144 
145 
146  bool IsRelativeTo3DObject() const { return m_nPositionType == relative_to_3Dobject; }
147  bool IsRelativeToParent() const { return m_nPositionType == relative_to_parent; }
148  bool IsRelativeToScreen() const { return m_nPositionType == relative_to_screen; }
149 
151  static void GetAbsPosition(RECT* pOut, const RECT* pParentRect, const CGUIPosition* pIn);
152 
153  CGUIPosition_TYPE GetPositionType() const { return m_nPositionType; }
154  void SetPositionType(CGUIPosition_TYPE val) { m_nPositionType = val; }
155 
156  void SetRelatveTo3DObject(const char* s3DObjectName, float fOffset = 0.f);
157  void SetRelatveTo3DObject(CBaseObject* p3DObject, float fOffset = 0.f);
158 
159  bool Is3DObjectSpecified() const;
160  CBaseObject* GetRelative3DObject(IScene * pScene = NULL) const;
161  public:
164 
166  {
168  {
169  GUI_ALIGNMENT_TYPE alignType;
170  }To2D;
171 
173  {
175  float fOffSet;
176  //CBaseObject * p3DSceneObject;
177  float m_v3DPosition[3];
178  }To3D;
179  }Relative;
180 
182  std::string m_s3DObjectName;
185  protected:
188  float m_fDepth;
189  };
190 }
Definition: GUIPosition.h:72
Definition: GUIPosition.h:165
Definition: combase.h:159
Basic scene interface: implemented by the CSceneObject and CMiniScenegraph class. ...
Definition: IScene.h:12
CGUIPosition_TYPE m_nPositionType
relative to screen | relative to 3D scene object
Definition: GUIPosition.h:187
Definition: GUIPosition.h:48
different physics engine has different winding order.
Definition: EventBinding.h:32
Definition: ManagedDef.h:18
Definition: GUIPosition.h:50
std::string m_s3DObjectName
3d object name that this gui object is attached to.
Definition: GUIPosition.h:182
int m_n3DObjectID
3d object id that this gui object is attached to.
Definition: GUIPosition.h:184
Definition: GUIPosition.h:56
float fOffSet
pointer to the 3D scene object
Definition: GUIPosition.h:175
Definition: GUIPosition.h:66
RECT rect
internal value in absolute screen coordinates
Definition: GUIPosition.h:163
Definition: GUIPosition.h:70
Definition: GUIPosition.h:52
Defines the base class of all scene elements:CBaseObject for Parallel World Engine.
Definition: BaseObject.h:230
CGUIPosition_TYPE
How the position of the GUI object is specified.
Definition: GUIPosition.h:80
Definition: GUIPosition.h:64
position of the GUI object
Definition: GUIPosition.h:34
Definition: GUIPosition.h:68
Definition: GUIPosition.h:60
Definition: GUIPosition.h:62
GUI_ALIGNMENT_TYPE
relative to 2D screen
Definition: GUIPosition.h:43
Definition: GUIPosition.h:54
Definition: GUIPosition.h:58