summaryrefslogtreecommitdiffstats
path: root/core/object/object.h
diff options
context:
space:
mode:
Diffstat (limited to 'core/object/object.h')
-rw-r--r--core/object/object.h19
1 files changed, 14 insertions, 5 deletions
diff --git a/core/object/object.h b/core/object/object.h
index d697f14b7e..f97691841f 100644
--- a/core/object/object.h
+++ b/core/object/object.h
@@ -165,7 +165,7 @@ struct PropertyInfo {
PropertyInfo() {}
- PropertyInfo(const Variant::Type p_type, const String p_name, const PropertyHint p_hint = PROPERTY_HINT_NONE, const String &p_hint_string = "", const uint32_t p_usage = PROPERTY_USAGE_DEFAULT, const StringName &p_class_name = StringName()) :
+ PropertyInfo(const Variant::Type p_type, const String &p_name, const PropertyHint p_hint = PROPERTY_HINT_NONE, const String &p_hint_string = "", const uint32_t p_usage = PROPERTY_USAGE_DEFAULT, const StringName &p_class_name = StringName()) :
type(p_type),
name(p_name),
hint(p_hint),
@@ -317,6 +317,10 @@ struct ObjectGDExtension {
bool is_virtual = false;
bool is_abstract = false;
bool is_exposed = true;
+#ifdef TOOLS_ENABLED
+ bool is_runtime = false;
+ bool is_placeholder = false;
+#endif
GDExtensionClassSet set;
GDExtensionClassGet get;
GDExtensionClassGetPropertyList get_property_list;
@@ -354,8 +358,8 @@ struct ObjectGDExtension {
#ifdef TOOLS_ENABLED
void *tracking_userdata = nullptr;
- void (*track_instance)(void *p_userdata, void *p_instance);
- void (*untrack_instance)(void *p_userdata, void *p_instance);
+ void (*track_instance)(void *p_userdata, void *p_instance) = nullptr;
+ void (*untrack_instance)(void *p_userdata, void *p_instance) = nullptr;
#endif
};
@@ -698,7 +702,11 @@ protected:
virtual void _notificationv(int p_notification, bool p_reversed) {}
static void _bind_methods();
+#ifndef DISABLE_DEPRECATED
+ static void _bind_compatibility_methods();
+#else
static void _bind_compatibility_methods() {}
+#endif
bool _set(const StringName &p_name, const Variant &p_property) { return false; };
bool _get(const StringName &p_name, Variant &r_property) const { return false; };
void _get_property_list(List<PropertyInfo> *p_list) const {};
@@ -755,6 +763,7 @@ protected:
void _clear_internal_resource_paths(const Variant &p_var);
friend class ClassDB;
+ friend class PlaceholderExtensionInstance;
bool _disconnect(const StringName &p_signal, const Callable &p_callable, bool p_force = false);
@@ -947,8 +956,6 @@ public:
Variant::Type get_static_property_type(const StringName &p_property, bool *r_valid = nullptr) const;
Variant::Type get_static_property_type_indexed(const Vector<StringName> &p_path, bool *r_valid = nullptr) const;
- virtual void get_argument_options(const StringName &p_function, int p_idx, List<String> *r_options) const;
-
// Translate message (internationalization).
String tr(const StringName &p_message, const StringName &p_context = "") const;
String tr_n(const StringName &p_message, const StringName &p_message_plural, int p_n, const StringName &p_context = "") const;
@@ -960,6 +967,7 @@ public:
_FORCE_INLINE_ bool can_translate_messages() const { return _can_translate; }
#ifdef TOOLS_ENABLED
+ virtual void get_argument_options(const StringName &p_function, int p_idx, List<String> *r_options) const;
void editor_set_section_unfold(const String &p_section, bool p_unfolded);
bool editor_is_section_unfolded(const String &p_section);
const HashSet<String> &editor_get_section_folding() const { return editor_section_folding; }
@@ -977,6 +985,7 @@ public:
#ifdef TOOLS_ENABLED
void clear_internal_extension();
void reset_internal_extension(ObjectGDExtension *p_extension);
+ bool is_extension_placeholder() const { return _extension && _extension->is_placeholder; }
#endif
void clear_internal_resource_paths();