diff options
Diffstat (limited to 'plugingui/button_base.cc')
| -rw-r--r-- | plugingui/button_base.cc | 21 | 
1 files changed, 20 insertions, 1 deletions
| diff --git a/plugingui/button_base.cc b/plugingui/button_base.cc index 1030bbc..bf441f5 100644 --- a/plugingui/button_base.cc +++ b/plugingui/button_base.cc @@ -42,7 +42,7 @@ ButtonBase::~ButtonBase()  void ButtonBase::buttonEvent(ButtonEvent* buttonEvent)  {  	// Ignore everything except left clicks. -	if(buttonEvent->button != MouseButton::left) +	if(!enabled || buttonEvent->button != MouseButton::left)  	{  		return;  	} @@ -74,8 +74,23 @@ void ButtonBase::setText(const std::string& text)  	redraw();  } +void ButtonBase::setEnabled(bool enabled) +{ +	this->enabled = enabled; +	redraw(); +} + +bool ButtonBase::isEnabled() const +{ +	return enabled; +} +  void ButtonBase::mouseLeaveEvent()  { +	if (!enabled) { +		return; +	} +  	in_button = false;  	if(button_state == State::Down)  	{ @@ -86,6 +101,10 @@ void ButtonBase::mouseLeaveEvent()  void ButtonBase::mouseEnterEvent()  { +	if (!enabled) { +		return; +	} +  	in_button = true;  	if(button_state == State::Down)  	{ | 
