add drop down menu to clear grids

This commit is contained in:
2017-05-10 01:43:01 +01:00
parent fbb73ccbbb
commit aada69d447
4 changed files with 18 additions and 6 deletions

View File

@@ -691,6 +691,12 @@ void App::initLayout()
layout[main_id]->update(); layout[main_id]->update();
popup->mouse_capture(); popup->mouse_capture();
popup->m_mouse_ignore = false; popup->m_mouse_ignore = false;
popup->find<NodeButtonCustom>("clear-grids")->on_click = [this](Node*) {
CanvasModeGrid* mode = (CanvasModeGrid*)ui::Canvas::modes[(int)ui::Canvas::kCanvasMode::Grid][0];
mode->clear();
popup->mouse_release();
popup->destroy();
};
}; };
} }
if (auto* toolbar = layout[main_id]->find<Node>("toolbar")) if (auto* toolbar = layout[main_id]->find<Node>("toolbar"))

View File

@@ -8,7 +8,7 @@ std::vector<CanvasMode*> ui::Canvas::modes[] = {
{ new CanvasModePen, new CanvasModeBasicCamera }, { new CanvasModePen, new CanvasModeBasicCamera },
{ new CanvasModeLine, new CanvasModeBasicCamera }, { new CanvasModeLine, new CanvasModeBasicCamera },
{ new CanvasModeCamera, new CanvasModeBasicCamera }, { new CanvasModeCamera, new CanvasModeBasicCamera },
{ new CanvasModeNormal, new CanvasModeBasicCamera }, { new CanvasModeGrid, new CanvasModeBasicCamera },
{ new CanvasModeFill, new CanvasModeBasicCamera }, { new CanvasModeFill, new CanvasModeBasicCamera },
}; };
glm::vec3 ui::Canvas::m_plane_origin[6] = { glm::vec3 ui::Canvas::m_plane_origin[6] = {

View File

@@ -185,7 +185,7 @@ void CanvasModeCamera::on_MouseEvent(MouseEvent* me, glm::vec2& loc)
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
void CanvasModeNormal::on_MouseEvent(MouseEvent* me, glm::vec2& loc) void CanvasModeGrid::on_MouseEvent(MouseEvent* me, glm::vec2& loc)
{ {
switch (me->m_type) switch (me->m_type)
{ {
@@ -228,7 +228,7 @@ void CanvasModeNormal::on_MouseEvent(MouseEvent* me, glm::vec2& loc)
} }
} }
void CanvasModeNormal::on_Draw(const glm::mat4& ortho, const glm::mat4& proj, const glm::mat4& camera) void CanvasModeGrid::on_Draw(const glm::mat4& ortho, const glm::mat4& proj, const glm::mat4& camera)
{ {
//if (m_dragging) //if (m_dragging)
for (auto l : m_lines) for (auto l : m_lines)
@@ -246,12 +246,12 @@ void CanvasModeNormal::on_Draw(const glm::mat4& ortho, const glm::mat4& proj, co
} }
} }
void CanvasModeNormal::init() void CanvasModeGrid::init()
{ {
m_line.create(); m_line.create();
} }
void CanvasModeNormal::commit() void CanvasModeGrid::commit()
{ {
auto drawer = [this](const glm::mat4& camera, const glm::mat4& proj){ auto drawer = [this](const glm::mat4& camera, const glm::mat4& proj){
ui::ShaderManager::use(ui::kShader::Color); ui::ShaderManager::use(ui::kShader::Color);
@@ -266,6 +266,11 @@ void CanvasModeNormal::commit()
canvas->draw_objects(std::bind(drawer, std::placeholders::_1, std::placeholders::_2)); canvas->draw_objects(std::bind(drawer, std::placeholders::_1, std::placeholders::_2));
} }
void CanvasModeGrid::clear()
{
m_lines.clear();
}
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
void CanvasModeFill::init() void CanvasModeFill::init()

View File

@@ -55,7 +55,7 @@ public:
virtual void init() override; virtual void init() override;
}; };
class CanvasModeNormal : public CanvasMode class CanvasModeGrid : public CanvasMode
{ {
ui::LineSegment m_line; ui::LineSegment m_line;
glm::vec3 origin; glm::vec3 origin;
@@ -69,6 +69,7 @@ public:
virtual void on_Draw(const glm::mat4& ortho, const glm::mat4& proj, const glm::mat4& camera) override; virtual void on_Draw(const glm::mat4& ortho, const glm::mat4& proj, const glm::mat4& camera) override;
virtual void init() override; virtual void init() override;
void commit(); void commit();
void clear();
}; };
class CanvasModeCamera : public CanvasMode class CanvasModeCamera : public CanvasMode