#ifndef _CBUTTON_HPP_ #define _CBUTTON_HPP_ /*** SDL Header Files ***/ #include /*** Custom Header Files ***/ #include "cWindow.hpp" #include "GUIHelpers/Enums.hpp" #include "GUIHelpers/GUIUtility.hpp" #include "../VideoEngine/cSprite.hpp" #include "../VideoEngine/cImage.hpp" #include "../MathEngine/iVector/iVector2.hpp" /*** DLL Header File ***/ #include "dllExport.h" /*** Custom Header Files ***/ #include "cLayout.hpp" #include "../UtilityEngine/cString.hpp" #include "../EventEngine/cEvent.hpp" using UtilityEngine::cString; namespace GUIEngine { class EXPORT_FROM_MYDLL cButton : public cLayout, public EventEngine::cEvent { public: static const cString sNAME; /*= "button";*/ cButton(); cButton( cWindow* parent, const signed int id, const GUIHelpers::eAlign align = sALIGN, const GUIHelpers::eLayout layout = sLAYOUT, const GUIHelpers::Position& pos = sPOSITION, const GUIHelpers::Size& size = sSIZE, const GUIHelpers::Padding& padding = sPADDING, const cString& name = sNAME, VideoEngine::cImage** image = nullptr ); virtual ~cButton(); /// Functions void Create( cWindow* parent, const signed int id, const GUIHelpers::eAlign align = sALIGN, const GUIHelpers::eLayout layout = sLAYOUT, const GUIHelpers::Position& pos = sPOSITION, const GUIHelpers::Size& size = sSIZE, const GUIHelpers::Padding& padding = sPADDING, const cString& name = sNAME, VideoEngine::cImage** image = nullptr ); virtual void Display(); virtual void Press(); virtual void OnLButtonUp(); /// Sets /// Gets virtual const GUIHelpers::eType getType() const; virtual const GUIHelpers::RGBA& getDebugColour() const; private: void CreateLabel(); void GenerateImage(); void GenerateTexture(); private: /// Variables VideoEngine::cSprite m_sprite; VideoEngine::cImage* mp_texture;/// = nullptr VideoEngine::cImage* mp_texturePress;/// = nullptr /// Pointer to the image that will be displayed on the button. VideoEngine::cImage** mpp_image;/// = nullptr };/// END CLASS DEFINITION cButton }/// END NAMESPACE DEFINITION GUIEngine #endif/// END IFNDEF _CBUTTON_HPP_