My Project
|
00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 00011 00012 00013 00014 00015 00016 00017 00018 00019 00020 00021 00022 00023 00024 00025 00026 00027 00028 #pragma once 00029 #include "Define.h" 00030 #include "GUIBaseObject.h" 00031 00032 namespace SallyAPI 00033 { 00034 namespace GUI 00035 { 00041 00042 enum ControlRotation {CONTROLROTATION_LEFT, CONTROLROTATION_RIGHT}; 00043 00052 00053 class DLL_API_SALLY CControl 00054 : public SallyAPI::GUI::CGUIBaseObject 00055 { 00056 protected: 00057 bool m_bVisible; 00058 bool m_bEnabled; 00059 bool m_bPressed; 00060 int m_iControlId; 00061 D3DCOLOR m_rgbFontColour; 00062 int m_iAlign; 00063 bool m_bLocalised; 00064 bool m_bMouseDown; 00065 int m_iMouseDownX; 00066 int m_iMouseDownY; 00067 00068 float m_fDeltaMoveX; 00069 float m_fDeltaMoveY; 00070 int m_iDestinationX; 00071 int m_iDestinationY; 00072 int m_iStartX; 00073 int m_iStartY; 00074 int m_iAnimationSpeedMoveX; 00075 int m_iAnimationSpeedMoveY; 00076 bool m_bAnimationMoveY; 00077 bool m_bAnimationMoveX; 00078 00079 float m_fDeltaResizeWidth; 00080 float m_fDeltaResizeHeight; 00081 int m_iDestinationWidth; 00082 int m_iDestinationHeight; 00083 int m_iStartWidth; 00084 int m_iStartHeight; 00085 int m_iAnimationSpeedResizeWidth; 00086 int m_iAnimationSpeedResizeHeight; 00087 bool m_bAnimationResizeWidth; 00088 bool m_bAnimationResizeHeight; 00089 00090 float m_fDeltaBlend; 00091 int m_iDestinationBlend; 00092 int m_iStartBlend; 00093 int m_iAnimationSpeedBlend; 00094 bool m_bAnimationBlend; 00095 00096 float m_fDeltaRotateY; 00097 float m_fStartRotateY; 00098 float m_fSpeedRotateY; 00099 bool m_bAnimationRotateY; 00100 bool m_bAnimationRotateYRun; 00101 00102 float m_fDeltaRotateX; 00103 float m_fStartRotateX; 00104 float m_fSpeedRotateX; 00105 bool m_bAnimationRotateX; 00106 bool m_bAnimationRotateXRun; 00107 00108 float m_fDeltaRotateZ; 00109 float m_fStartRotateZ; 00110 float m_fSpeedRotateZ; 00111 bool m_bAnimationRotateZ; 00112 bool m_bAnimationRotateZRun; 00113 00114 ControlRotation m_eRotationX; 00115 ControlRotation m_eRotationY; 00116 ControlRotation m_eRotationZ; 00117 00118 float m_fStopAtAngelX; 00119 float m_fStopAtAngelY; 00120 float m_fStopAtAngelZ; 00121 00122 float m_fTimeMouseUp; 00123 float m_fTimeMouseDown; 00124 00125 virtual SallyAPI::Core::CFont* GetCurrentFont(const std::string& fontName); 00126 virtual RECT GetTextRect(int leftImage, int rightImage, int borderLeft, int borderRight, int topImage, int bottomImage, int borderTop, int borderBottom); 00127 00128 virtual void DrawButtonBackground(int leftImageTop, int middleImageTop, int rightImageTop, 00129 int leftImage, int middleImage, int rightImage, 00130 int leftImageBottom, int middleImageBottom, int rightImageBottom); 00131 virtual void DrawButtonBackground(int leftImage, int middleImage, int rightImage); 00132 virtual void DrawButtonBackground(int leftImage, int middleImage, int rightImage, int xCorrection, int yCorrection, int widthCorrection, int heightCorrection); 00133 virtual void DrawText(RECT r, const std::string& fontName, const std::string& text); 00134 virtual void DrawText(int leftImage, int rightImage, int borderLeft, int borderRight, const std::string& fontName, const std::string& text = ""); 00135 virtual void DrawText(int leftImage, int rightImage, int borderLeft, int borderRight, int topImage, int bottomImage, int borderTop, int borderBottom, const std::string& fontName, const std::string& text = ""); 00136 virtual void DrawTextToRenderTarget(int width, int height, const std::string& fontName, int offSetX, int offSetY, const std::string& text = ""); 00137 00138 virtual void ResizeInternal(int width, int height); 00139 virtual void MoveInternal(int x, int y); 00140 00141 virtual void UpdateControl(); 00142 00143 virtual void ResetMouse(); 00144 00145 virtual bool ProcessMouseDoubleClick(int x, int y); 00146 virtual bool ProcessMouseDown(int x, int y); 00147 virtual bool ProcessMouseUp(int x, int y); 00148 virtual bool ProcessMouseMove(int x, int y); 00149 public: 00150 CControl(SallyAPI::GUI::CGUIBaseObject* parent, int x, int y, int width, int height, int controlId = 0); 00151 virtual ~CControl(); 00152 00153 virtual void Move(int x, int y); 00154 virtual void Resize(int width, int height); 00155 00156 virtual void MoveAnimated(int x, int y, int speed, bool moveToEnd = true); 00157 virtual void ResizeAnimated(int width, int height, int speed, bool moveToEnd = true); 00158 00159 virtual void MoveAnimated(int x, int y, int speedX, int speedY, bool moveToEnd = true); 00160 virtual void ResizeAnimated(int width, int height, int speedWidth, int speedHeight, bool moveToEnd = true); 00161 00162 virtual void BlendAnimated(int alphaBlending, int speed, bool moveToEnd = true); 00163 virtual void RotateAnimatedY(float speed, bool bRun); 00164 virtual void RotateAnimatedX(float speed, bool bRun); 00165 virtual void RotateAnimatedZ(float speed, bool bRun); 00166 00167 00168 virtual void SetRotationX(ControlRotation value); 00169 virtual void SetRotationY(ControlRotation value); 00170 virtual void SetRotationZ(ControlRotation value); 00171 00172 virtual ControlRotation GetRotationX(); 00173 virtual ControlRotation GetRotationY(); 00174 virtual ControlRotation GetRotationZ(); 00175 00176 virtual void Visible(bool visible); 00177 virtual void Enable(bool enable); 00178 virtual void SetLocalised(bool localised); 00179 virtual void InvalidateControl(); 00180 00181 virtual void SetText(const std::string& text); 00182 00183 virtual bool IsVisible(); 00184 virtual bool IsEnabled(); 00185 virtual bool IsLocalised(); 00186 virtual bool IsMouseDown(); 00187 virtual bool IsPressed(); 00188 00189 virtual void SetStopAngelX(float angel); 00190 virtual void SetStopAngelY(float angel); 00191 virtual void SetStopAngelZ(float angel); 00192 00193 virtual int GetMouseDownX(); 00194 virtual int GetMouseDownY(); 00195 00196 virtual void SetColor(D3DCOLOR rgbFontColour); 00197 virtual void SetAlign(int align); 00198 00199 virtual int GetControlId(); 00200 00201 virtual void Timer(float timeDelta); 00202 virtual void Render(); 00203 virtual void Update(); 00204 virtual void CleanUp(); 00205 virtual void SendMessageToParent(SallyAPI::GUI::CGUIBaseObject* reporter, int reporterId, int messageId, SallyAPI::GUI::SendMessage::CParameterBase* messageParameter = NULL); 00206 virtual void SendMessageToChilds(SallyAPI::GUI::CGUIBaseObject* reporter, int reporterId, int messageId, SallyAPI::GUI::SendMessage::CParameterBase* messageParameter = NULL); 00207 virtual void ProcessKeyboard(char KeyboardState[256], char KeyboardStatePressed[256]); 00208 00209 virtual bool CheckProcessMouseDoubleClick(int x, int y); 00210 virtual bool CheckProcessMouseDown(int x, int y); 00211 virtual bool CheckProcessMouseUp(int x, int y); 00212 virtual bool CheckProcessMouseMove(int x, int y); 00213 00214 int GetDestinationPositionX(); 00215 int GetDestinationPositionY(); 00216 int GetDestinationHeight(); 00217 int GetDestinationWidth(); 00218 00219 bool IsAnimationActivePositionX(); 00220 bool IsAnimationActivePositionY(); 00221 bool IsAnimationActiveHeight(); 00222 bool IsAnimationActiveWidth(); 00223 bool IsControlHit(int x, int y); 00224 }; 00225 } 00226 }