libqmlbind
A C library for creating QML bindings for other languages easily through exporting objects to QML
|
encapsulates client-side functions that are used from QML for C object creation, destruction, method calls and property modification. More...
#include <qmlbind_global.h>
Public Attributes | |
qmlbind_client_object *(* | new_object )(qmlbind_client_class *classRef, qmlbind_signal_emitter *signalEmitter) |
creates a new qmlbind_client_object to be used in QML. More... | |
void(* | delete_object )(qmlbind_client_object *object) |
deletes a qmlbind_client_object that was created by new_object . | |
qmlbind_value *(* | call_method )(qmlbind_engine *engine, qmlbind_client_object *object, const char *name, int argc, const qmlbind_value *const *argv) |
executes the name method defined on the qmlbind_client_object , with argc parameters in argv , and returns the result. More... | |
qmlbind_value *(* | get_property )(qmlbind_engine *engine, qmlbind_client_object *object, const char *name) |
returns the value of the name property of the object C object. Ownership must be transferred to the caller. More... | |
void(* | set_property )(qmlbind_engine *engine, qmlbind_client_object *object, const char *name, const qmlbind_value *value) |
sets the value of the name property to of the object C object to value . More... | |
encapsulates client-side functions that are used from QML for C object creation, destruction, method calls and property modification.
Those functions need to be implemented by libqmlbind's users for qmlbind_client_object
s they want to expose to QML.
This struct is needed to construct new qmlbind_exporter
s. All function pointers need to be defined, a nullptr is not a valid value here.
qmlbind_client_object*(* qmlbind_client_callbacks::new_object) (qmlbind_client_class *classRef, qmlbind_signal_emitter *signalEmitter) |
creates a new qmlbind_client_object
to be used in QML.
qmlbind_client_callbacks
hands over the qmlbind_client_object
returned from this function as object
to call_method()
, get_property()
and set_property()
.
classRef | the qmlbind_client_class value that was given to qmlbind_exporter_new . Does not transfer ownership. |
signalEmitter | should be stored in the returned object to be able to emit signals. Ownership is transfered. |
qmlbind_value*(* qmlbind_client_callbacks::call_method) (qmlbind_engine *engine, qmlbind_client_object *object, const char *name, int argc, const qmlbind_value *const *argv) |
executes the name
method defined on the qmlbind_client_object
, with argc
parameters in argv
, and returns the result.
If the method does not return a value, call_method()
should return qmlbind_value_new_undefined()
.
Ownership of the result must be transfered to the caller.
Ownership of engine
and object
is not transfered.
engine
is intended to be used to create new objects or arrays.
qmlbind_value*(* qmlbind_client_callbacks::get_property) (qmlbind_engine *engine, qmlbind_client_object *object, const char *name) |
returns the value of the name
property of the object
C object. Ownership must be transferred to the caller.
In case the name
property does not exist, you should return a qmlbind_value_new_undefined()
.
Ownership of engine
and object
is not transfered.
engine
is intended to be used to create new objects or arrays.
void(* qmlbind_client_callbacks::set_property) (qmlbind_engine *engine, qmlbind_client_object *object, const char *name, const qmlbind_value *value) |
sets the value of the name
property to of the object
C object to value
.
Ownership of engine
and object
is not transfered.
engine
is intended to be used to create new objects or arrays.