#include "..\e2dnode.h" #include "..\e2dmanager.h" #define SAFE_SET(pointer, func, ...) if (pointer) { pointer->##func(__VA_ARGS__); } e2d::Button::Button() : _func(nullptr) , _state(ButtonState::NORMAL) , _enable(true) , _isSelected(false) , _normal(nullptr) , _mouseover(nullptr) , _selected(nullptr) , _disabled(nullptr) { } e2d::Button::Button(Node * normal, const Function& func) : _func(nullptr) , _state(ButtonState::NORMAL) , _enable(true) , _isSelected(false) , _normal(nullptr) , _mouseover(nullptr) , _selected(nullptr) , _disabled(nullptr) { this->setNormal(normal); this->setClickFunc(func); } e2d::Button::Button(Node * normal, Node * selected, const Function& func) : _func(nullptr) , _state(ButtonState::NORMAL) , _enable(true) , _isSelected(false) , _normal(nullptr) , _mouseover(nullptr) , _selected(nullptr) , _disabled(nullptr) { this->setNormal(normal); this->setSelected(selected); this->setClickFunc(func); } e2d::Button::Button(Node * normal, Node * mouseover, Node * selected, const Function& func) : _func(nullptr) , _state(ButtonState::NORMAL) , _enable(true) , _isSelected(false) , _normal(nullptr) , _mouseover(nullptr) , _selected(nullptr) , _disabled(nullptr) { this->setNormal(normal); this->setMouseOver(mouseover); this->setSelected(selected); this->setClickFunc(func); } e2d::Button::Button(Node * normal, Node * mouseover, Node * selected, Node * disabled, const Function& func) : _func(nullptr) , _state(ButtonState::NORMAL) , _enable(true) , _isSelected(false) , _normal(nullptr) , _mouseover(nullptr) , _selected(nullptr) , _disabled(nullptr) { this->setNormal(normal); this->setMouseOver(mouseover); this->setSelected(selected); this->setDisabled(disabled); this->setClickFunc(func); } e2d::Button * e2d::Button::create() { return Create