00001 00027 #ifndef _CGUIELEMENT_ 00028 #define _CGUIELEMENT_ 00029 00030 #include "Stringable.h" 00031 #include "GameObject2D.h" 00032 #include "FontManager.h" 00033 #include "FontPrinter.h" 00034 #include "GUIHoverColorable.h" 00035 00036 class CGUIElement: public CStringable, public CGameObject2D, public CGUIHoverColorable { 00037 00038 public: 00039 00040 CGUIElement() { 00041 m_isHover = false; 00042 m_fontId = -1; 00043 } 00044 00049 void setLabel(string str) { 00050 m_label = str; 00051 } 00052 00057 void setLabel(const char *str) { 00058 m_label = string(str); 00059 } 00060 00065 string getLabel() { 00066 return m_label; 00067 } 00068 00073 void setFontId(int fontId) { 00074 m_fontId = fontId; 00075 } 00076 00081 int getFontId() { 00082 return m_fontId; 00083 } 00084 00085 bool isHover(){ return m_isHover; } 00086 00087 // eventy 00088 00094 void mouseMove(int x, int y) { 00095 if( this->isVisible() ){ 00096 if (x >= getPositionX() && x <= getPositionX() + getWidth() && y 00097 >= getPositionY() && y <= getPositionY() + getHeight()) { 00098 m_isHover = true; 00099 }else{ 00100 m_isHover = false; 00101 } 00102 } 00103 } 00104 00105 Color4f getCurrentTextColor(){ 00106 if(isHover()){ 00107 return this->m_textHover.getColor(); 00108 } 00109 00110 return this->m_text.getColor(); 00111 } 00112 00113 Color4f getCurrentBackgroundColor(){ 00114 if(isHover()){ 00115 return this->m_backgroundHover.getColor(); 00116 } 00117 00118 return this->m_background.getColor(); 00119 } 00120 00125 GLfloat getPaddingLeft() const { return m_paddingLeft; }; 00126 00131 GLfloat getPaddingTop() const{ return m_paddingTop; }; 00132 00137 GLfloat getLineHeight() const{ return m_lineHeight; }; 00138 00143 void setPaddingLeft( GLfloat value ){ m_paddingLeft = value; }; 00144 00149 void setPaddingTop( GLfloat value ){ m_paddingTop = value; }; 00150 00155 void setLineHeight( GLfloat height ){ m_lineHeight = height; }; 00156 00157 protected: 00158 00162 string m_label; 00163 00167 int m_fontId; 00168 00172 bool m_isHover; 00173 00174 00175 GLfloat m_paddingLeft; 00176 GLfloat m_paddingTop; 00177 GLfloat m_lineHeight; 00178 00179 }; 00180 00181 #endif