40 lines
1.2 KiB
C++
40 lines
1.2 KiB
C++
#pragma once
|
|
#include "node_border.h"
|
|
|
|
class NodeSliderH : public NodeBorder
|
|
{
|
|
bool dragging = false;
|
|
public:
|
|
glm::vec2 m_mask{ 1, 0 };
|
|
glm::vec2 m_value;
|
|
std::function<void(Node* target, float value)> on_value_changed;
|
|
virtual Node* clone_instantiate() const override;
|
|
virtual void clone_copy(Node* dest) const override;
|
|
virtual void init() override;
|
|
virtual void draw() override;
|
|
void set_value(float value);
|
|
float get_value();
|
|
virtual void parse_attributes(kAttribute ka, const tinyxml2::XMLAttribute* attr) override;
|
|
virtual kEventResult handle_event(Event* e) override;
|
|
};
|
|
|
|
class NodeSliderV : public NodeSliderH
|
|
{
|
|
public:
|
|
virtual Node* clone_instantiate() const override { return new NodeSliderV(); }
|
|
NodeSliderV() { m_mask = { 0, 1 }; }
|
|
};
|
|
|
|
class NodeSliderHue : public NodeSliderV
|
|
{
|
|
public:
|
|
glm::vec4 m_color;
|
|
std::function<void(Node* target, glm::vec4 color)> on_hue_changed;
|
|
virtual Node* clone_instantiate() const override;
|
|
virtual void clone_finalize(Node* dest) const override;
|
|
virtual void init() override;
|
|
void init_controls();
|
|
glm::vec4 get_hue();
|
|
virtual void draw() override;
|
|
};
|