EditorInspectorPlugin (original) (raw)

Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

Checking the stable version of the documentation...

Inherits: RefCounted < Object

Plugin for adding custom property editors on the inspector.

Description

EditorInspectorPlugin allows adding custom property editors to EditorInspector.

When an object is edited, the _can_handle() function is called and must return true if the object type is supported.

If supported, the function _parse_begin() will be called, allowing to place custom controls at the beginning of the class.

Subsequently, the _parse_category() and _parse_property() are called for every category and property. They offer the ability to add custom controls to the inspector too.

Finally, _parse_end() will be called.

On each of these calls, the "add" functions can be called.

To use EditorInspectorPlugin, register it using the EditorPlugin.add_inspector_plugin() method first.

Tutorials

Methods

bool _can_handle(object: Object) virtual const
void _parse_begin(object: Object) virtual
void _parse_category(object: Object, category: String) virtual
void _parse_end(object: Object) virtual
void _parse_group(object: Object, group: String) virtual
bool _parse_property(object: Object, type: Variant.Type, name: String, hint_type: PropertyHint, hint_string: String, usage_flags: BitField[PropertyUsageFlags], wide: bool) virtual
void add_custom_control(control: Control)
void add_property_editor(property: String, editor: Control, add_to_end: bool = false, label: String = "")
void add_property_editor_for_multiple_properties(label: String, properties: PackedStringArray, editor: Control)

Method Descriptions

bool _can_handle(object: Object) virtual const 🔗

Returns true if this object can be handled by this plugin.


void _parse_begin(object: Object) virtual 🔗

Called to allow adding controls at the beginning of the property list for object.


void _parse_category(object: Object, category: String) virtual 🔗

Called to allow adding controls at the beginning of a category in the property list for object.


void _parse_end(object: Object) virtual 🔗

Called to allow adding controls at the end of the property list for object.


void _parse_group(object: Object, group: String) virtual 🔗

Called to allow adding controls at the beginning of a group or a sub-group in the property list for object.


bool _parse_property(object: Object, type: Variant.Type, name: String, hint_type: PropertyHint, hint_string: String, usage_flags: BitField[PropertyUsageFlags], wide: bool) virtual 🔗

Called to allow adding property-specific editors to the property list for object. The added editor control must extend EditorProperty. Returning true removes the built-in editor for this property, otherwise allows to insert a custom editor before the built-in one.


void add_custom_control(control: Control) 🔗

Adds a custom control, which is not necessarily a property editor.


void add_property_editor(property: String, editor: Control, add_to_end: bool = false, label: String = "") 🔗

Adds a property editor for an individual property. The editor control must extend EditorProperty.

There can be multiple property editors for a property. If add_to_end is true, this newly added editor will be displayed after all the other editors of the property whose add_to_end is false. For example, the editor uses this parameter to add an "Edit Region" button for Sprite2D.region_rect below the regular Rect2 editor.

label can be used to choose a custom label for the property editor in the inspector. If left empty, the label is computed from the name of the property instead.


void add_property_editor_for_multiple_properties(label: String, properties: PackedStringArray, editor: Control) 🔗

Adds an editor that allows modifying multiple properties. The editor control must extend EditorProperty.