diff --git a/engine/app.cpp b/engine/app.cpp index aa29bdf..e3ef3e0 100644 --- a/engine/app.cpp +++ b/engine/app.cpp @@ -460,9 +460,49 @@ void App::initLayout() canvas->m_canvas->m_layers[canvas->m_canvas->m_order[idx]].m_alpha_locked = visible; }; + canvas->m_canvas->layer_add("Default"); + layers->add_layer("Default"); + + static glm::vec4 color_button_normal{.1, .1, .1, 1}; + static glm::vec4 color_button_hlight{ 1, .0, .0, 1}; if (auto* button = layout[main_id]->find("btn-pen")) { button->on_click = [this](Node*) { + canvas->m_canvas->m_erase = false; + layout[main_id]->find("btn-pen")->set_color(color_button_hlight); + layout[main_id]->find("btn-erase")->set_color(color_button_normal); + layout[main_id]->find("btn-line")->set_color(color_button_normal); + layout[main_id]->find("btn-cam")->set_color(color_button_normal); + }; + } + if (auto* button = layout[main_id]->find("btn-erase")) + { + button->on_click = [this](Node*) { + canvas->m_canvas->m_erase = true; + layout[main_id]->find("btn-pen")->set_color(color_button_normal); + layout[main_id]->find("btn-erase")->set_color(color_button_hlight); + layout[main_id]->find("btn-line")->set_color(color_button_normal); + layout[main_id]->find("btn-cam")->set_color(color_button_normal); + }; + } + if (auto* button = layout[main_id]->find("btn-line")) + { + button->on_click = [this](Node*) { + canvas->m_canvas->m_erase = true; + layout[main_id]->find("btn-pen")->set_color(color_button_normal); + layout[main_id]->find("btn-erase")->set_color(color_button_normal); + layout[main_id]->find("btn-line")->set_color(color_button_hlight); + layout[main_id]->find("btn-cam")->set_color(color_button_normal); + }; + } + if (auto* button = layout[main_id]->find("btn-cam")) + { + button->on_click = [this](Node*) { + canvas->m_canvas->m_erase = true; + layout[main_id]->find("btn-pen")->set_color(color_button_normal); + layout[main_id]->find("btn-erase")->set_color(color_button_normal); + layout[main_id]->find("btn-line")->set_color(color_button_normal); + layout[main_id]->find("btn-cam")->set_color(color_button_hlight); }; } if (auto* button = layout[main_id]->find("btn-bucket")) diff --git a/engine/layout.h b/engine/layout.h index 74901c0..651cbbc 100644 --- a/engine/layout.h +++ b/engine/layout.h @@ -665,6 +665,11 @@ public: // m_border->parse_attributes(ka, attr); // m_text->parse_attributes(ka, attr); } + void set_color(const glm::vec4& c) + { + color_normal = c; + m_border->m_color = color_normal; + } virtual kEventResult handle_event(Event* e) override { Node::handle_event(e);