add drop down menu to clear grids
This commit is contained in:
@@ -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"))
|
||||
|
||||
@@ -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] = {
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user