// // SimpleButton.h // - base class for creating buttons/links inside of the game engine. // // Created by Michael Nguyen on 1/21/12. // Copyright (c) 2012 __MyCompanyName__. All rights reserved. // #ifndef wagic_SimpleButton_h #define wagic_SimpleButton_h #include #include #include using std::string; #define SCALE_SELECTED 1.2f #define SCALE_NORMAL 1.0f #define SCALE_SHRINK 0.75f #define SCALE_SELECTED_LARGE 1.7f #define SCALE_LARGE_NORMAL 1.5f class SimpleButton: public JGuiObject { private: float mScale; float mTargetScale; bool mHasFocus; bool mIsValidSelection; float mX; float mY; protected: float mYOffset; JGuiController* parent; int mFontId; string mText; float mXOffset; public: SimpleButton(int id); SimpleButton(JGuiController* _parent, int id, int fontId, string text, float x, float y, bool hasFocus = false, bool autoTranslate = false); virtual float getScale() const; virtual float getTargetScale() const; virtual JGuiController* getParent() const; virtual int getFontId() const; virtual void setFontId( const int& fontId ); virtual void setX( const float& x ) { mX = x; }; virtual void setY( const float& y ) { mY = y; }; virtual void setIsSelectionValid( bool validSelection ); virtual void setFocus(bool value); virtual void setText( const string& text); virtual bool isSelectionValid() const; virtual bool hasFocus() const; virtual string getText() const; float getX() const; float getY() const; virtual void checkUserClick(); virtual float GetWidth(); virtual float GetEnlargedWidth(); virtual void Relocate(float x, float y); virtual void RenderWithOffset(float yOffset); virtual void Render(); virtual void Update(float dt); virtual void Entering(); virtual bool Leaving(JButton key); virtual bool ButtonPressed(); virtual ostream& toString(ostream& out) const; virtual bool getTopLeft(float& top, float& left) { top = mY + mYOffset; left = mX; return true; } ; }; #endif