change node children from unique to shared ptr, rename Canvas2D to StrokePreview, add panel toolbar with icon buttons to toggle
This commit is contained in:
@@ -155,7 +155,7 @@ public:
|
||||
class LayoutManager* m_manager;
|
||||
uint16_t m_nodeID;
|
||||
std::string m_nodeID_s;
|
||||
std::vector<std::unique_ptr<Node>> m_children;
|
||||
std::vector<std::shared_ptr<Node>> m_children;
|
||||
Node* current_mouse_capture = nullptr;
|
||||
Node* current_key_capture = nullptr;
|
||||
bool m_mouse_captured = false;
|
||||
@@ -301,7 +301,10 @@ public:
|
||||
const Node* init_template(const char* id);
|
||||
void add_child(Node* n);
|
||||
void add_child(Node* n, int index);
|
||||
void add_child(std::shared_ptr<Node> n);
|
||||
void add_child(std::shared_ptr<Node> n, int index);
|
||||
void remove_child(Node* n);
|
||||
void remove_all_children();
|
||||
void move_child(Node* n, int index);
|
||||
void move_child_offset(Node* n, int offset);
|
||||
int get_child_index(Node* n);
|
||||
@@ -732,10 +735,10 @@ public:
|
||||
case kEventType::KeyDown:
|
||||
switch (ke->m_key)
|
||||
{
|
||||
case VK_BACK:
|
||||
m_string.erase(m_string.end() - 1);
|
||||
m_text->set_text(m_string.c_str());
|
||||
break;
|
||||
// case VK_BACK:
|
||||
// m_string.erase(m_string.end() - 1);
|
||||
// m_text->set_text(m_string.c_str());
|
||||
// break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -1655,7 +1658,7 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
class NodeCanvas2D : public NodeBorder
|
||||
class NodeStrokePreview : public NodeBorder
|
||||
{
|
||||
RTT m_rtt;
|
||||
Sampler m_sampler;
|
||||
@@ -1696,7 +1699,7 @@ public:
|
||||
"}";
|
||||
m_shader.create(shader_v, shader_f);
|
||||
}
|
||||
virtual Node* clone_instantiate() const override { return new NodeCanvas2D(); }
|
||||
virtual Node* clone_instantiate() const override { return new NodeStrokePreview(); }
|
||||
virtual void clone_copy(Node* dest) const override
|
||||
{
|
||||
NodeBorder::clone_copy(dest);
|
||||
@@ -1707,7 +1710,7 @@ public:
|
||||
}
|
||||
virtual void clone_finalize(Node* dest) const override
|
||||
{
|
||||
NodeCanvas2D* n = (NodeCanvas2D*)dest;
|
||||
NodeStrokePreview* n = (NodeStrokePreview*)dest;
|
||||
n->init_controls();
|
||||
}
|
||||
void init_controls()
|
||||
@@ -1798,7 +1801,7 @@ public:
|
||||
class NodePanelStroke : public Node
|
||||
{
|
||||
public:
|
||||
NodeCanvas2D* m_canvas;
|
||||
NodeStrokePreview* m_canvas;
|
||||
NodeSliderH* m_tip_size;
|
||||
NodeSliderH* m_tip_spacing;
|
||||
NodeSliderH* m_tip_flow;
|
||||
@@ -1821,26 +1824,26 @@ public:
|
||||
}
|
||||
void init_controls()
|
||||
{
|
||||
m_canvas = find<NodeCanvas2D>("canvas");
|
||||
m_canvas = find<NodeStrokePreview>("canvas");
|
||||
|
||||
init_slider(m_tip_size, "tip-size", &NodeCanvas2D::m_tip_size);
|
||||
init_slider(m_tip_spacing, "tip-spacing", &NodeCanvas2D::m_tip_spacing);
|
||||
init_slider(m_tip_flow, "tip-flow", &NodeCanvas2D::m_tip_flow);
|
||||
init_slider(m_tip_angle, "tip-angle", &NodeCanvas2D::m_tip_angle);
|
||||
init_slider(m_jitter_scale, "jitter-scale", &NodeCanvas2D::m_jitter_scale);
|
||||
init_slider(m_jitter_angle, "jitter-angle", &NodeCanvas2D::m_jitter_angle);
|
||||
init_slider(m_jitter_spread, "jitter-spread", &NodeCanvas2D::m_jitter_spread);
|
||||
init_slider(m_jitter_flow, "jitter-flow", &NodeCanvas2D::m_jitter_flow);
|
||||
init_slider(m_tip_size, "tip-size", &NodeStrokePreview::m_tip_size);
|
||||
init_slider(m_tip_spacing, "tip-spacing", &NodeStrokePreview::m_tip_spacing);
|
||||
init_slider(m_tip_flow, "tip-flow", &NodeStrokePreview::m_tip_flow);
|
||||
init_slider(m_tip_angle, "tip-angle", &NodeStrokePreview::m_tip_angle);
|
||||
init_slider(m_jitter_scale, "jitter-scale", &NodeStrokePreview::m_jitter_scale);
|
||||
init_slider(m_jitter_angle, "jitter-angle", &NodeStrokePreview::m_jitter_angle);
|
||||
init_slider(m_jitter_spread, "jitter-spread", &NodeStrokePreview::m_jitter_spread);
|
||||
init_slider(m_jitter_flow, "jitter-flow", &NodeStrokePreview::m_jitter_flow);
|
||||
//m_canvas->draw_stroke();
|
||||
}
|
||||
void init_slider(NodeSliderH*& slider, const char* id, float NodeCanvas2D::* prop)
|
||||
void init_slider(NodeSliderH*& slider, const char* id, float NodeStrokePreview::* prop)
|
||||
{
|
||||
slider = find<NodeSliderH>(id);
|
||||
slider->on_value_changed = std::bind(&NodePanelStroke::handle_slide,
|
||||
this, prop, std::placeholders::_1, std::placeholders::_2);
|
||||
m_canvas->*prop = slider->m_value.x;
|
||||
}
|
||||
void handle_slide(float NodeCanvas2D::* prop, Node* target, float value)
|
||||
void handle_slide(float NodeStrokePreview::* prop, Node* target, float value)
|
||||
{
|
||||
m_canvas->*prop = value;
|
||||
m_canvas->draw_stroke();
|
||||
|
||||
Reference in New Issue
Block a user