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();
popup->mouse_capture();
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"))

View File

@@ -8,7 +8,7 @@ std::vector<CanvasMode*> ui::Canvas::modes[] = {
{ new CanvasModePen, new CanvasModeBasicCamera },
{ new CanvasModeLine, new CanvasModeBasicCamera },
{ new CanvasModeCamera, new CanvasModeBasicCamera },
{ new CanvasModeNormal, new CanvasModeBasicCamera },
{ new CanvasModeGrid, new CanvasModeBasicCamera },
{ new CanvasModeFill, new CanvasModeBasicCamera },
};
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)
{
@@ -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)
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();
}
void CanvasModeNormal::commit()
void CanvasModeGrid::commit()
{
auto drawer = [this](const glm::mat4& camera, const glm::mat4& proj){
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));
}
void CanvasModeGrid::clear()
{
m_lines.clear();
}
////////////////////////////////////////////////////////////////////
void CanvasModeFill::init()

View File

@@ -55,7 +55,7 @@ public:
virtual void init() override;
};
class CanvasModeNormal : public CanvasMode
class CanvasModeGrid : public CanvasMode
{
ui::LineSegment m_line;
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 init() override;
void commit();
void clear();
};
class CanvasModeCamera : public CanvasMode