Cleaned up CurveEdit.

This commit is contained in:
Relintai 2022-06-13 16:46:42 +02:00
parent 20b291a2ea
commit 4c12cb8606
3 changed files with 49 additions and 124 deletions

View File

@ -1,80 +1,53 @@
#include "curve_edit.h"
#include "curve_dialog.h"
#include "curve_view.h"
Variant CurveEdit::get_Variant() {
return Variant;
Variant CurveEdit::get_value() {
return value;
}
void CurveEdit::set_Variant(const Variant &val) {
Variant = val;
void CurveEdit::set_value(const Variant &v) {
value = v;
_curve_view->set_curve(value);
_curve_view->update();
}
Variant CurveEdit::get_Variant() {
return Variant;
void CurveEdit::_on_CurveEdit_pressed() {
CurveDialog *dialog = memnew(CurveDialog);
add_child(dialog);
dialog->connect("curve_changed", self, "on_value_changed");
dialog->edit_curve(value);
}
void CurveEdit::set_Variant(const Variant &val) {
Variant = val;
void CurveEdit::on_value_changed(const Variant &v) {
//set_value(v);
emit_signal("updated", v);
_curve_view->update();
}
CurveEdit::CurveEdit() {
set_custom_minimum_size(Vector2(60, 20));
set_focus_mode(FOCUS_CLICK);
//tool;
//var MMCurve = preload("res://addons/mat_maker_gd/nodes/bases/curve_base.gd");
// setget set_value;
Variant = null;
signal updated(curve);
void CurveEdit::set_value(const Variant &v) {
value = v;
$CurveView.set_curve(value);
$CurveView.update();
_curve_view = memnew(CurveView);
_curve_view->set_name("CurveView");
add_child(_curve_view);
_curve_view->set_mouse_filter(MOUSE_FILTER_IGNORE);
}
void CurveEdit::_on_CurveEdit_pressed() {
//var dialog = preload("res://addons/mat_maker_gd/widgets/curve_edit/curve_dialog.tscn").instance();
add_child(dialog);
dialog.connect("curve_changed", self, "on_value_changed");
dialog.edit_curve(value);
CurveEdit::~CurveEdit() {
}
void CurveEdit::_bind_methods() {
ADD_SIGNAL(MethodInfo("updated", PropertyInfo(Variant::OBJECT, "curve", PROPERTY_HINT_RESOURCE_TYPE, "CurveBase")));
void CurveEdit::on_value_changed(const Variant &v) {
//set_value(v);
emit_signal("updated", v);
$CurveView.update();
//ClassDB::bind_method(D_METHOD("get_Variant"), &CurveEdit::get_Variant);
//ClassDB::bind_method(D_METHOD("set_Variant", "value"), &CurveEdit::set_Variant);
//ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "Variant", PROPERTY_HINT_RESOURCE_TYPE, "Variant"), "set_Variant", "get_Variant");
ClassDB::bind_method(D_METHOD("set_value", "v"), &CurveEdit::set_value);
ClassDB::bind_method(D_METHOD("_on_CurveEdit_pressed"), &CurveEdit::_on_CurveEdit_pressed);
ClassDB::bind_method(D_METHOD("on_value_changed", "v"), &CurveEdit::on_value_changed);
}
}
CurveEdit::CurveEdit() {
//var MMCurve = preload("res://addons/mat_maker_gd/nodes/bases/curve_base.gd");
= null;
}
CurveEdit::~CurveEdit() {
}
static void CurveEdit::_bind_methods() {
ClassDB::bind_method(D_METHOD("get_Variant"), &CurveEdit::get_Variant);
ClassDB::bind_method(D_METHOD("set_Variant", "value"), &CurveEdit::set_Variant);
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "Variant", PROPERTY_HINT_RESOURCE_TYPE, "Variant"), "set_Variant", "get_Variant");
ClassDB::bind_method(D_METHOD("get_Variant"), &CurveEdit::get_Variant);
ClassDB::bind_method(D_METHOD("set_Variant", "value"), &CurveEdit::set_Variant);
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "Variant", PROPERTY_HINT_RESOURCE_TYPE, "Variant"), "set_Variant", "get_Variant");
ClassDB::bind_method(D_METHOD("set_value", "v"), &CurveEdit::set_value);
ClassDB::bind_method(D_METHOD("_on_CurveEdit_pressed"), &CurveEdit::_on_CurveEdit_pressed);
ClassDB::bind_method(D_METHOD("on_value_changed", "v"), &CurveEdit::on_value_changed);
}

View File

@ -1,34 +1,29 @@
#ifndef CURVE_EDIT_H
#define CURVE_EDIT_H
#include "scene/gui/control.h"
class CurveView;
class CurveEdit : public Control {
GDCLASS(CurveEdit, Control);
GDCLASS(CurveEdit, Control);
public:
public:
Variant get_value();
void set_value(const Variant &v);
Variant get_Variant();
void set_Variant(const Variant &val);
void _on_CurveEdit_pressed();
void on_value_changed(const Variant &v);
Variant get_Variant();
void set_Variant(const Variant &val);
CurveEdit();
~CurveEdit();
void set_value(const Variant &v);
void _on_CurveEdit_pressed();
void on_value_changed(const Variant &v);
protected:
static void _bind_methods();
CurveEdit();
~CurveEdit();
Variant value;
protected:
static void _bind_methods();
//tool
Variant = preload("res://addons/mat_maker_gd/nodes/bases/curve_base.gd");
// setget set_value
Variant = null;
signal updated(curve);
CurveView *_curve_view;
};
#endif

View File

@ -1,43 +0,0 @@
void construct() {
//Script: res://addons/mat_maker_gd/widgets/curve_edit/curve_editor.gd
Control *curveeditor = memnew(Control);
curveeditor->set_name("CurveEditor");
curveeditor->set_name("CurveEditor");
//curveeditor->set("name", CurveEditor));
curveeditor->set_filename("res://addons/mat_maker_gd/widgets/curve_edit/curve_editor.tscn");
//curveeditor->set("filename", "res://addons/mat_maker_gd/widgets/curve_edit/curve_editor.tscn");
curveeditor->set_anchor_right(1);
//curveeditor->set("anchor_right", 1);
curveeditor->set_anchor_bottom(1);
//curveeditor->set("anchor_bottom", 1);
curveeditor->set_margin_left(10);
//curveeditor->set("margin_left", 10);
curveeditor->set_margin_top(10);
//curveeditor->set("margin_top", 10);
curveeditor->set_margin_right(-10);
//curveeditor->set("margin_right", -10);
curveeditor->set_margin_bottom(-10);
//curveeditor->set("margin_bottom", -10);
curveeditor->set_rect_position(Vector2(10, 10));
//curveeditor->set("rect_position", Vector2(10, 10));
curveeditor->set_rect_global_position(Vector2(10, 10));
//curveeditor->set("rect_global_position", Vector2(10, 10));
//curveeditor property __meta__ TYPE_DICTIONARY value: {_edit_use_anchors_:False}
}