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