pen state and buttons color when active

This commit is contained in:
2017-05-04 21:46:35 +01:00
parent 45275c2947
commit 773ff61f92
5 changed files with 36 additions and 16 deletions

View File

@@ -845,6 +845,11 @@ public:
m_color = color_normal;
m_mouse_ignore = false;
}
void set_color(const glm::vec4& c)
{
color_normal = c;
m_color = color_normal;
}
virtual kEventResult handle_event(Event* e) override
{
NodeBorder::handle_event(e);
@@ -1489,6 +1494,11 @@ public:
if (on_layer_change)
on_layer_change(this, -1, m_layers_container->get_child_index(m_current_layer));
}
void clear()
{
m_layers_container->remove_all_children();
m_layers.clear();
}
};
class NodeButtonBrush : public NodeButtonCustom
@@ -1771,6 +1781,7 @@ public:
init_controls();
if (m_size.x > 0 && m_size.y > 0)
m_rtt.create(m_size.x, m_size.y);
draw_stroke();
}
virtual void clear_context() override
{
@@ -2043,7 +2054,8 @@ public:
ui::ShaderManager::u_mat4(kShaderUniform::MVP, plane_mvp);
for (auto layer_index : m_canvas->m_order)
{
if (!(m_canvas->m_erase && m_canvas->m_show_tmp && m_canvas->m_current_layer_idx == layer_index))
if (!(m_canvas->m_state == ui::Canvas::kPenState::Erase &&
m_canvas->m_show_tmp && m_canvas->m_current_layer_idx == layer_index))
{
ui::ShaderManager::u_float(kShaderUniform::Alpha, m_canvas->m_layers[layer_index].m_opacity);
m_canvas->m_layers[layer_index].m_rtt[plane_index].bindTexture();
@@ -2130,7 +2142,7 @@ public:
break;
case kEventType::KeyDown:
if (ke->m_key == kKey::KeyE)
m_canvas->m_erase = true;
m_canvas->m_state = ui::Canvas::kPenState::Erase;
if (ke->m_key == kKey::KeySpacebar)
m_canvas->m_alpha_lock = true;
if (ke->m_key == kKey::AndroidVolumeUp)
@@ -2140,7 +2152,7 @@ public:
break;
case kEventType::KeyUp:
if (ke->m_key == kKey::KeyE)
m_canvas->m_erase = false;
m_canvas->m_state = ui::Canvas::kPenState::Draw;
if (ke->m_key == kKey::KeySpacebar)
m_canvas->m_alpha_lock = false;
break;