Files
PlanetFleet/button.h
T
devZoGok 179f4c28ac factored out a state manager
using GameManager via a singleton
2021-10-30 08:09:30 +03:00

55 lines
2.1 KiB
C++
Executable File

#pragma once
#ifndef BUTTON_H
#define BUTTON_H
#include <irrlicht.h>
#include <string>
#include "abstractImage.h"
#include "abstractBitmapText.h"
#include "gameManager.h"
#include "util.h"
namespace game{
namespace gui {
class Button {
public:
Button();
Button(irr::core::vector2d<s32>, irr::core::vector2d<s32>, irr::core::stringw, bool);
~Button();
virtual void onClick(){}
virtual void onMouseOver(){}
virtual void onMouseAway(){}
virtual void update();
virtual void moveText(int, int);
virtual void moveButton(int, int);
inline void setMouseOverDone(bool m){this->mouseOverDone=m;}
inline void setMouseAwayDone(bool m){this->mouseAwayDone=m;}
void setImageButton(Image*);
inline irr::core::vector2d<s32> getPos(){return pos;}
inline irr::core::vector2d<s32> getSize(){return size;}
inline void setPos(irr::core::vector2d<s32> p){this->pos=p;}
inline void setSize(irr::core::vector2d<s32> s){this->size=s;}
inline irr::video::SColor* getColor(){return color;}
inline void setColor(irr::video::SColor *c){this->color=c;}
inline irr::core::stringw getName(){return name;}
inline void setName(irr::core::stringw n){this->name=n;}
inline bool isSeparate(){return separate;}
inline bool isImageButton(){return imageButton;}
inline bool isMouseOverDone(){return mouseOverDone;}
inline bool isMouseAwayDone(){return mouseAwayDone;}
inline Image* getImage(){return image;}
private:
Image *image = nullptr;
bool separate = true, imageButton = false;
int textXOffset = 0, textYOffset = 0;
protected:
irr::core::stringw name;
irr::core::vector2d<s32> pos, size;
irr::video::SColor *color = nullptr;
bool mouseOverDone=false,mouseAwayDone=false;
};
}
}
#endif