diff --git a/modules/material_maker/editor/widgets/curve_edit/curve_edit.cpp b/modules/material_maker/editor/widgets/curve_edit/curve_edit.cpp index c6e2c9bea..8236efa67 100644 --- a/modules/material_maker/editor/widgets/curve_edit/curve_edit.cpp +++ b/modules/material_maker/editor/widgets/curve_edit/curve_edit.cpp @@ -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); - - } - - - diff --git a/modules/material_maker/editor/widgets/curve_edit/curve_edit.h b/modules/material_maker/editor/widgets/curve_edit/curve_edit.h index ed180fec5..9e5c4809a 100644 --- a/modules/material_maker/editor/widgets/curve_edit/curve_edit.h +++ b/modules/material_maker/editor/widgets/curve_edit/curve_edit.h @@ -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 diff --git a/modules/material_maker/editor/widgets/curve_edit/curve_editor.ctscn b/modules/material_maker/editor/widgets/curve_edit/curve_editor.ctscn deleted file mode 100644 index f5d0b6df0..000000000 --- a/modules/material_maker/editor/widgets/curve_edit/curve_editor.ctscn +++ /dev/null @@ -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} - - - - -}