summaryrefslogtreecommitdiffstats
path: root/test/src/example.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/src/example.cpp')
-rw-r--r--test/src/example.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/test/src/example.cpp b/test/src/example.cpp
index 2b8bef6..5372d70 100644
--- a/test/src/example.cpp
+++ b/test/src/example.cpp
@@ -63,10 +63,18 @@ int ExampleRef::get_id() const {
return id;
}
+void ExampleRef::_notification(int p_what) {
+ if (p_what == NOTIFICATION_POSTINITIALIZE) {
+ post_initialized = true;
+ }
+}
+
void ExampleRef::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_id", "id"), &ExampleRef::set_id);
ClassDB::bind_method(D_METHOD("get_id"), &ExampleRef::get_id);
+ ClassDB::bind_method(D_METHOD("was_post_initialized"), &ExampleRef::was_post_initialized);
+
ADD_PROPERTY(PropertyInfo(Variant::INT, "id"), "set_id", "get_id");
}
@@ -220,6 +228,7 @@ void Example::_bind_methods() {
ClassDB::bind_method(D_METHOD("def_args", "a", "b"), &Example::def_args, DEFVAL(100), DEFVAL(200));
ClassDB::bind_method(D_METHOD("callable_bind"), &Example::callable_bind);
+ ClassDB::bind_method(D_METHOD("test_post_initialize"), &Example::test_post_initialize);
ClassDB::bind_static_method("Example", D_METHOD("test_static", "a", "b"), &Example::test_static);
ClassDB::bind_static_method("Example", D_METHOD("test_static2"), &Example::test_static2);
@@ -597,6 +606,12 @@ Vector4 Example::get_v4() const {
return Vector4(1.2, 3.4, 5.6, 7.8);
}
+bool Example::test_post_initialize() const {
+ Ref<ExampleRef> new_example_ref;
+ new_example_ref.instantiate();
+ return new_example_ref->was_post_initialized();
+}
+
// Virtual function override.
bool Example::_has_point(const Vector2 &point) const {
Label *label = get_node<Label>("Label");