godot/doc/classes/Callable.xml
HaSa1002 54ff2da476
Document missing Callable methods
* Callable.hash()
 * Callable.is_custom()
 * Callable.is_null()
 * Callable.is_standard()
 * Callable.bind()
 * Callable.unbind()
 * Callable::operator==
 * Callable::operator!=

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2021-03-01 12:49:21 +01:00

167 lines
5.4 KiB
XML

<?xml version="1.0" encoding="UTF-8" ?>
<class name="Callable" version="4.0">
<brief_description>
An object representing a method in a certain object that can be called.
</brief_description>
<description>
[Callable] is a first class object which can be held in variables and passed to functions. It represents a given method in an [Object], and is typically used for signal callbacks.
[b]Example:[/b]
[codeblocks]
[gdscript]
var callable = Callable(self, "print_args")
func print_args(arg1, arg2, arg3 = ""):
prints(arg1, arg2, arg3)
func test():
callable.call("hello", "world") # Prints "hello world".
callable.call(Vector2.UP, 42, callable) # Prints "(0, -1) 42 Node(Node.gd)::print_args".
callable.call("invalid") # Invalid call, should have at least 2 arguments.
[/gdscript]
[csharp]
Callable callable = new Callable(this, nameof("printArgs"));
public void PrintArgs(object arg1, object arg2, object arg3 = "")
{
GD.PrintS(arg1, arg2, arg3);
}
public void Test()
{
callable.Call("hello", "world"); // Prints "hello world".
callable.Call(Vector2.Up, 42, callable); // Prints "(0, -1) 42 Node(Node.gd)::print_args".
callable.Call("invalid"); // Invalid call, should have at least 2 arguments.
}
[/csharp]
[/codeblocks]
</description>
<tutorials>
</tutorials>
<methods>
<method name="Callable" qualifiers="constructor">
<return type="Callable">
</return>
<description>
Constructs a null [Callable] with no object nor method bound.
</description>
</method>
<method name="Callable" qualifiers="constructor">
<return type="Callable">
</return>
<argument index="0" name="from" type="Callable">
</argument>
<description>
Constructs a [Callable] as a copy of the given [Callable].
</description>
</method>
<method name="Callable" qualifiers="constructor">
<return type="Callable">
</return>
<argument index="0" name="object" type="Object">
</argument>
<argument index="1" name="method" type="StringName">
</argument>
<description>
Creates a new [Callable] for the method called [code]method[/code] in the specified [code]object[/code].
</description>
</method>
<method name="bind" qualifiers="vararg">
<return type="Callable">
</return>
<description>
Returns a copy of this [Callable] with the arguments bound. Bound arguments are passed after the arguments supplied by [method call].
</description>
</method>
<method name="call" qualifiers="vararg">
<return type="Variant">
</return>
<description>
Calls the method represented by this [Callable]. Arguments can be passed and should match the method's signature.
</description>
</method>
<method name="call_deferred" qualifiers="vararg">
<return type="void">
</return>
<description>
Calls the method represented by this [Callable] in deferred mode, i.e. during the idle frame. Arguments can be passed and should match the method's signature.
</description>
</method>
<method name="get_method">
<return type="StringName">
</return>
<description>
Returns the name of the method represented by this [Callable].
</description>
</method>
<method name="get_object">
<return type="Object">
</return>
<description>
Returns the object on which this [Callable] is called.
</description>
</method>
<method name="get_object_id">
<return type="int">
</return>
<description>
Returns the ID of this [Callable]'s object (see [method Object.get_instance_id]).
</description>
</method>
<method name="hash">
<return type="int">
</return>
<description>
Returns the hash value of this [Callable]'s object.
</description>
</method>
<method name="is_custom">
<return type="bool">
</return>
<description>
Returns [code]true[/code] if this [Callable] is a custom callable whose behavior differs based on implementation details. Custom callables are used in the engine for various reasons. If [code]true[/code], you can't use [method get_method].
</description>
</method>
<method name="is_null">
<return type="bool">
</return>
<description>
Returns [code]true[/code] if this [Callable] has no target to call the method on.
</description>
</method>
<method name="is_standard">
<return type="bool">
</return>
<description>
Returns [code]true[/code] if this [Callable] is a standard callable, referencing an object and a method using a [StringName].
</description>
</method>
<method name="operator !=" qualifiers="operator">
<return type="bool">
</return>
<argument index="0" name="right" type="Callable">
</argument>
<description>
Returns [code]true[/code] if both [Callable]s invoke different targets.
</description>
</method>
<method name="operator ==" qualifiers="operator">
<return type="bool">
</return>
<argument index="0" name="right" type="Callable">
</argument>
<description>
Returns [code]true[/code] if both [Callable]s invoke the same custom target.
</description>
</method>
<method name="unbind">
<return type="Callable">
</return>
<argument index="0" name="argcount" type="int">
</argument>
<description>
Returns a copy of this [Callable] with the arguments unbound. Calling the returned [Callable] will call the method without the extra arguments that are supplied in the [Callable] on which you are calling this method.
</description>
</method>
</methods>
<constants>
</constants>
</class>