My Project
GUIButton.h
1 #pragma once
2 
3 #include <vector>
4 
5 #include "GUIBase.h"
6 namespace ParaEngine
7 {
8  class CGUIContainer;
9 
10  class CGUIButton : public CGUIBase
11  {
12  public:
13  CGUIButton();
14  virtual ~CGUIButton();
16  // implementation of IAttributeFields
17 
19  virtual int GetAttributeClassID(){ return ATTRIBUTE_CLASSID_CGUIButton; }
21  virtual const char* GetAttributeClassName(){ static const char name[] = "CGUIButton"; return name; }
23  virtual const char* GetAttributeClassDescription(){ static const char desc[] = ""; return desc; }
25  virtual int InstallFields(CAttributeClass* pClass, bool bOverride);
26 
27  ATTRIBUTE_METHOD1(CGUIButton, GetOnRenderScript_s, const char**) { *p1 = cls->GetOnRenderScript().c_str(); return S_OK; }
28  ATTRIBUTE_METHOD1(CGUIButton, SetOnRenderScript_s, const char*) { cls->SetOnRenderScript(p1); return S_OK; }
29 
30  virtual bool MsgProc(MSG *event);
31  virtual string ToScript(int option=0);
32  virtual void Reset();
33  virtual HRESULT Render(GUIState* pGUIState, float fElapsedTime);
34  virtual HRESULT OnRenderExternal(GUIState* pGUIState, float fElapsedTime);
35 
36  virtual bool ActivateScript(const string code){return false;};
37  void InitObject(const char * strObjectName, const char * alignment, int x, int y, int width, int height);
38  void UpdateRects();
39 
44  virtual void SetTextA(const char* szText);
50  virtual void SetText(const char16_t* wszText);
57  virtual int GetTextA(std::string& out);
63  virtual const char16_t* GetText(){return m_szText.data();};
64 
65  virtual IObject* Clone()const;
66  virtual void Clone(IObject* pobj)const;
67  virtual const IType* GetType()const{return m_type;}
72  static void StaticInit();
73 
80  virtual int GetAnimationStyle();
89  virtual void SetAnimationStyle(int nStyle);
90 
95  void SetDefaultButton(bool bDefault);
96 
98  bool IsDefaultButton() {return m_bIsDefaultButton;};
99 
102  virtual void SetTextScale(float fScale);
105  virtual float GetTextScale();
106 
112  virtual bool OnMouseEnter();
113 
119  virtual bool OnMouseLeave();
120 
122  virtual bool IsPressed(){return m_bPressed;}
123 
125  virtual void SetPadding( int nPadding);
126 
128  virtual int GetPadding();
129 
131  const std::string& GetOnRenderScript();
132 
134  void SetOnRenderScript(const char* sScript);
135 
136  protected:
137  static const IType* m_type;
138  bool m_bPressed;
139  bool m_bIsDefaultButton;
140  std::u16string m_szText;
141 
142  short m_nPadding;
143  short m_nAnimationStyle;
144  int m_nAnimationData;
145 
146 
150  };
151 }
virtual const char16_t * GetText()
get the text of the control The control internally store everything in Unicode.
Definition: GUIButton.h:63
Definition: GUIButton.h:10
virtual void SetTextScale(float fScale)
set the text scale the text scale, default to 1.f.
Definition: GUIButton.cpp:590
IType is for type information and validating It contains type information of an object.
Definition: Type.h:75
an attribute class is a collection of attribute fields.
Definition: AttributeClass.h:10
virtual int GetPadding()
padding between the background and content
Definition: GUIButton.cpp:730
Definition: EventBinding.h:22
different physics engine has different winding order.
Definition: EventBinding.h:32
virtual int GetAnimationStyle()
get the animation style of this object.
Definition: GUIButton.cpp:84
virtual int GetTextA(std::string &out)
get the text of the control
Definition: GUIButton.cpp:622
virtual int InstallFields(CAttributeClass *pClass, bool bOverride)
this class should be implemented if one wants to add new attribute.
Definition: GUIButton.cpp:735
void SetDefaultButton(bool bDefault)
set whether this is the default button.
Definition: GUIButton.cpp:709
float m_text_scale
the text scale, default to 1.f.
Definition: GUIButton.h:149
const std::string & GetOnRenderScript()
get on render script
Definition: GUIButton.cpp:744
virtual void SetTextA(const char *szText)
Set the text of this object.
Definition: GUIButton.cpp:616
virtual const char * GetAttributeClassName()
a static string, describing the attribute class object&#39;s name
Definition: GUIButton.h:21
base object for all 2D GUI objects (1) 2D GUI object are not tested against view frustum, instead it is controlled by visibility tag automatically or through user input.
Definition: GUIBase.h:54
base class for object, such as CBaseObject, IAttributeObject, GUI object.
Definition: PERef.h:287
virtual const char * GetAttributeClassDescription()
a static string, describing the attribute class object
Definition: GUIButton.h:23
virtual void SetText(const char16_t *wszText)
Set the text of this object The control internally store everything in Unicode.
Definition: GUIButton.cpp:610
virtual bool IsPressed()
whether it is pressed.
Definition: GUIButton.h:122
virtual void Reset()
Resets the objects states.
Definition: GUIButton.cpp:56
It&#39;s used as parameter to Render method of each GUI object.
Definition: GUIState.h:16
static void StaticInit()
Initialize the event mapping for the default CGUIButton class All its inheritances should have a Stat...
Definition: GUIButton.cpp:121
virtual bool OnMouseLeave()
Default handler of OnMouseLeave event OnMouseLeave is triggered whenever a mouse leaves a the rectang...
Definition: GUIButton.cpp:259
virtual bool OnMouseEnter()
Default handler of OnMouseEnter event OnMouseEnter is triggered whenever a mouse enters the rectangle...
Definition: GUIButton.cpp:265
void SetOnRenderScript(const char *sScript)
set on render script
Definition: GUIButton.cpp:755
Definition: inftrees.h:24
virtual void SetPadding(int nPadding)
padding between the background and content
Definition: GUIButton.cpp:723
virtual float GetTextScale()
get the text scale the text scale, default to 1.f.
Definition: GUIButton.cpp:595
virtual IObject * Clone() const
Clone the object&#39;s contains and return a pointer to the newly created object.
Definition: GUIButton.cpp:77
virtual bool MsgProc(MSG *event)
the procedure that handles all the events.
Definition: GUIButton.cpp:271
virtual int GetAttributeClassID()
attribute class ID should be identical, unless one knows how overriding rules work.
Definition: GUIButton.h:19
bool IsDefaultButton()
whether this is the default button
Definition: GUIButton.h:98
virtual void SetAnimationStyle(int nStyle)
set the animation style of this object.
Definition: GUIButton.cpp:88