refactor canvas modes

This commit is contained in:
2019-02-01 22:51:25 +01:00
parent e3f6d1cc44
commit 8e5a8eec1b
12 changed files with 326 additions and 272 deletions

View File

@@ -24,6 +24,7 @@ void NodeButton::clone_copy(Node* dest) const
n->color_normal = color_normal;
n->color_hover = color_hover;
n->color_down = color_down;
n->color_active = color_active;
//n->on_click = on_click;
n->m_mouse_ignore = false;
}
@@ -93,6 +94,14 @@ void NodeButton::parse_attributes(kAttribute ka, const tinyxml2::XMLAttribute* a
// m_text->parse_attributes(ka, attr);
}
void NodeButton::set_active(bool active)
{
if (m_active == active)
return;
m_active = active;
m_border->m_color = m_active ? color_active : (m_mouse_inside ? color_hover : color_normal);
}
void NodeButton::set_color(const glm::vec4& c)
{
color_normal = c;
@@ -108,18 +117,18 @@ kEventResult NodeButton::handle_event(Event* e)
m_border->m_color = color_hover;
break;
case kEventType::MouseLeave:
m_border->m_color = color_normal;
m_border->m_color = m_active ? color_active : color_normal;
break;
case kEventType::MouseDownL:
m_border->m_color = color_down;
m_border->m_color = m_active ? color_active : color_down;
break;
case kEventType::MouseUpL:
m_border->m_color = color_normal;
m_border->m_color = m_active ? color_active : color_normal;
if (m_mouse_inside && on_click != nullptr)
on_click(this);
break;
case kEventType::MouseCancel:
m_border->m_color = color_normal;
m_border->m_color = m_active ? color_active : color_normal;
break;
default:
return kEventResult::Available;