Cleaned up PolygonEdit.

This commit is contained in:
Relintai 2022-06-13 18:12:04 +02:00
parent 8178d526ba
commit 665f8be21f
3 changed files with 70 additions and 186 deletions

View File

@ -1,106 +1,73 @@
#include "polygon_edit.h" #include "polygon_edit.h"
#include "polygon_dialog.h"
#include "polygon_view.h"
#include "scene/gui/button.h"
Variant PolygonEdit::get_Variant() { #include "../../../nodes/bases/polygon_base.h"
return Variant;
}
void PolygonEdit::set_Variant(const Variant &val) {
Variant = val;
}
bool PolygonEdit::get_closed() const { bool PolygonEdit::get_closed() const {
return closed; return closed;
} }
void PolygonEdit::set_closed(const bool val) {
closed = val;
}
Variant PolygonEdit::get_Variant() {
return Variant;
}
void PolygonEdit::set_Variant(const Variant &val) {
Variant = val;
}
//tool;
//var MMPolygon = preload("res://addons/mat_maker_gd/nodes/bases/polygon_base.gd");
//export ;
// setget set_closed;
bool closed = true;
// setget set_value;
Variant = null;
signal updated(polygon);
void PolygonEdit::set_closed(const bool c) { void PolygonEdit::set_closed(const bool c) {
closed = c; closed = c;
$PolygonView.set_closed(c); _polygon_view->set_closed(c);
} }
Ref<PolygonBase> PolygonEdit::get_value() {
return value;
}
void PolygonEdit::set_value(const Variant &v) { void PolygonEdit::set_value(const Ref<PolygonBase> &v) {
value = v; value = v;
$PolygonView.set_polygon(value); _polygon_view->set_polygon(value);
$PolygonView.update(); _polygon_view->update();
} }
void PolygonEdit::_on_PolygonEdit_pressed() { void PolygonEdit::_on_PolygonEdit_pressed() {
//var dialog = preload("res://addons/mat_maker_gd/widgets/polygon_edit/polygon_dialog.tscn").instance(); PolygonDialog *dialog = memnew(PolygonDialog);
dialog.set_closed(closed); dialog->set_closed(closed);
add_child(dialog); add_child(dialog);
dialog.connect("polygon_changed", self, "on_value_changed"); dialog->connect("polygon_changed", this, "on_value_changed");
dialog.edit_polygon(value); dialog->edit_polygon(value);
} }
void PolygonEdit::on_value_changed(const Variant &v) { void PolygonEdit::on_value_changed(const Variant &v) {
//set_value(v); //set_value(v);
emit_signal("updated", v); emit_signal("updated", v);
$PolygonView.update(); _polygon_view->update();
}
} }
PolygonEdit::PolygonEdit() { PolygonEdit::PolygonEdit() {
//var MMPolygon = preload("res://addons/mat_maker_gd/nodes/bases/polygon_base.gd");
closed = true; closed = true;
= null;
set_custom_minimum_size(Vector2(32, 32));
set_focus_mode(FOCUS_CLICK);
_polygon_view = memnew(PolygonView);
add_child(_polygon_view);
_polygon_view->set_anchors_and_margins_preset(PRESET_WIDE);
_polygon_view->set_mouse_filter(MOUSE_FILTER_IGNORE);
} }
PolygonEdit::~PolygonEdit() { PolygonEdit::~PolygonEdit() {
} }
void PolygonEdit::_bind_methods() {
static void PolygonEdit::_bind_methods() { ADD_SIGNAL(MethodInfo("updated", PropertyInfo(Variant::OBJECT, "polygon", PROPERTY_HINT_RESOURCE_TYPE, "PolygonBase")));
ClassDB::bind_method(D_METHOD("get_Variant"), &PolygonEdit::get_Variant);
ClassDB::bind_method(D_METHOD("set_Variant", "value"), &PolygonEdit::set_Variant);
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "Variant", PROPERTY_HINT_RESOURCE_TYPE, "Variant"), "set_Variant", "get_Variant");
ClassDB::bind_method(D_METHOD("get_closed"), &PolygonEdit::get_closed); ClassDB::bind_method(D_METHOD("get_closed"), &PolygonEdit::get_closed);
ClassDB::bind_method(D_METHOD("set_closed", "value"), &PolygonEdit::set_closed); ClassDB::bind_method(D_METHOD("set_closed", "value"), &PolygonEdit::set_closed);
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "closed"), "set_closed", "get_closed"); ADD_PROPERTY(PropertyInfo(Variant::BOOL, "closed"), "set_closed", "get_closed");
ClassDB::bind_method(D_METHOD("get_value"), &PolygonEdit::get_value);
ClassDB::bind_method(D_METHOD("get_Variant"), &PolygonEdit::get_Variant); ClassDB::bind_method(D_METHOD("set_value", "value"), &PolygonEdit::set_value);
ClassDB::bind_method(D_METHOD("set_Variant", "value"), &PolygonEdit::set_Variant); ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "value", PROPERTY_HINT_RESOURCE_TYPE, "PolygonBase"), "set_value", "get_value");
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "Variant", PROPERTY_HINT_RESOURCE_TYPE, "Variant"), "set_Variant", "get_Variant");
ClassDB::bind_method(D_METHOD("set_closed", "c"), &PolygonEdit::set_closed, true); ClassDB::bind_method(D_METHOD("set_closed", "c"), &PolygonEdit::set_closed, true);
ClassDB::bind_method(D_METHOD("set_value", "v"), &PolygonEdit::set_value); ClassDB::bind_method(D_METHOD("set_value", "v"), &PolygonEdit::set_value);
ClassDB::bind_method(D_METHOD("_on_PolygonEdit_pressed"), &PolygonEdit::_on_PolygonEdit_pressed); ClassDB::bind_method(D_METHOD("_on_PolygonEdit_pressed"), &PolygonEdit::_on_PolygonEdit_pressed);
ClassDB::bind_method(D_METHOD("on_value_changed", "v"), &PolygonEdit::on_value_changed); ClassDB::bind_method(D_METHOD("on_value_changed", "v"), &PolygonEdit::on_value_changed);
} }

View File

@ -1,78 +0,0 @@
void construct() {
//Script: res://addons/mat_maker_gd/widgets/polygon_edit/polygon_edit.gd
Button *polygonedit = memnew(Button);
polygonedit->set_name("PolygonEdit");
polygonedit->set_name("PolygonEdit");
//polygonedit->set("name", PolygonEdit));
polygonedit->set_filename("res://addons/mat_maker_gd/widgets/polygon_edit/polygon_edit.tscn");
//polygonedit->set("filename", "res://addons/mat_maker_gd/widgets/polygon_edit/polygon_edit.tscn");
polygonedit->set_anchor_left(1);
//polygonedit->set("anchor_left", 1);
polygonedit->set_anchor_right(1);
//polygonedit->set("anchor_right", 1);
polygonedit->set_anchor_bottom(1);
//polygonedit->set("anchor_bottom", 1);
polygonedit->set_margin_left(-1280);
//polygonedit->set("margin_left", -1280);
polygonedit->set_margin_right(-1248);
//polygonedit->set("margin_right", -1248);
polygonedit->set_margin_bottom(-688);
//polygonedit->set("margin_bottom", -688);
polygonedit->set_rect_position(Vector2(-1280, 0));
//polygonedit->set("rect_position", Vector2(-1280, 0));
polygonedit->set_rect_global_position(Vector2(-1280, 0));
//polygonedit->set("rect_global_position", Vector2(-1280, 0));
polygonedit->set_rect_size(Vector2(32, 20));
//polygonedit->set("rect_size", Vector2(32, 20));
polygonedit->set_rect_min_size(Vector2(32, 32));
//polygonedit->set("rect_min_size", Vector2(32, 32));
polygonedit->set_focus_mode(1);
//polygonedit->set("focus_mode", 1);
//polygonedit property __meta__ TYPE_DICTIONARY value: {_edit_use_anchors_:False}
//Script: res://addons/mat_maker_gd/widgets/polygon_edit/polygon_view.gd
Control *polygonview_polygonedit = memnew(Control);
polygonview_polygonedit->set_name("PolygonView");
polygonedit->add_child(polygonview_polygonedit);
polygonview_polygonedit->set_name("PolygonView");
//polygonview_polygonedit->set("name", PolygonView));
polygonview_polygonedit->set_filename("res://addons/mat_maker_gd/widgets/polygon_edit/polygon_view.tscn");
//polygonview_polygonedit->set("filename", "res://addons/mat_maker_gd/widgets/polygon_edit/polygon_view.tscn");
//polygonview_polygonedit property owner TYPE_OBJECT value: PolygonEdit:[Button:42430]
polygonview_polygonedit->set_anchor_right(1);
//polygonview_polygonedit->set("anchor_right", 1);
polygonview_polygonedit->set_anchor_bottom(1);
//polygonview_polygonedit->set("anchor_bottom", 1);
polygonview_polygonedit->set_mouse_filter(2);
//polygonview_polygonedit->set("mouse_filter", 2);
//polygonview_polygonedit property __meta__ TYPE_DICTIONARY value: {_edit_use_anchors_:False}
}

View File

@ -1,23 +1,23 @@
#ifndef POLYGON_EDIT_H #ifndef POLYGON_EDIT_H
#define POLYGON_EDIT_H #define POLYGON_EDIT_H
#include "core/reference.h"
#include "scene/gui/control.h"
class PolygonBase;
class PolygonView;
class PolygonEdit : public Control { class PolygonEdit : public Control {
GDCLASS(PolygonEdit, Control); GDCLASS(PolygonEdit, Control);
public: public:
Variant get_Variant();
void set_Variant(const Variant &val);
bool get_closed() const; bool get_closed() const;
void set_closed(const bool val);
Variant get_Variant();
void set_Variant(const Variant &val);
void set_closed(const bool c = true); void set_closed(const bool c = true);
void set_value(const Variant &v);
Ref<PolygonBase> get_value();
void set_value(const Ref<PolygonBase> &v);
void _on_PolygonEdit_pressed(); void _on_PolygonEdit_pressed();
void on_value_changed(const Variant &v); void on_value_changed(const Variant &v);
@ -27,15 +27,10 @@ class PolygonEdit : public Control {
protected: protected:
static void _bind_methods(); static void _bind_methods();
//tool bool closed;
Variant = preload("res://addons/mat_maker_gd/nodes/bases/polygon_base.gd"); Ref<PolygonBase> value;
//export
// setget set_closed PolygonView *_polygon_view;
bool closed = true;
// setget set_value
Variant = null;
signal updated(polygon);
}; };
#endif #endif