Class: QML::MetaClass
- Inherits:
-
Object
- Object
- QML::MetaClass
- Defined in:
- ext/qml/meta_class.c
Instance Method Summary collapse
- #add_method(name, arity) ⇒ Object
- #add_property(name, notifier) ⇒ Object
- #add_signal(name, params) ⇒ Object
- #register(uri, versionMajor, versionMinor, qmlName) ⇒ Object
- #wrap(access) ⇒ Object
Instance Method Details
#add_method(name, arity) ⇒ Object
179 180 181 182 183 |
# File 'ext/qml/meta_class.c', line 179
static VALUE meta_class_add_method(VALUE self, VALUE name, VALUE arity) {
qmlbind_metaclass *metaclass = rbqml_get_metaclass(self);
qmlbind_metaclass_add_method(metaclass, rb_id2name(SYM2ID(name)), NUM2INT(arity));
return Qnil;
}
|
#add_property(name, notifier) ⇒ Object
199 200 201 202 203 |
# File 'ext/qml/meta_class.c', line 199
static VALUE meta_class_add_property(VALUE self, VALUE name, VALUE notifier) {
qmlbind_metaclass *metaclass = rbqml_get_metaclass(self);
qmlbind_metaclass_add_property(metaclass, rb_id2name(SYM2ID(name)), rb_id2name(SYM2ID(notifier)));
return Qnil;
}
|
#add_signal(name, params) ⇒ Object
185 186 187 188 189 190 191 192 193 194 195 196 197 |
# File 'ext/qml/meta_class.c', line 185
static VALUE meta_class_add_signal(VALUE self, VALUE name, VALUE params) {
qmlbind_metaclass *metaclass = rbqml_get_metaclass(self);
int arity = RARRAY_LEN(params);
const char **paramStrs = alloca(arity * sizeof(char *));
for (int i = 0; i < arity; ++i) {
paramStrs[i] = rb_id2name(SYM2ID(RARRAY_AREF(params, i)));
}
qmlbind_metaclass_add_signal(metaclass, rb_id2name(SYM2ID(name)), arity, paramStrs);
return Qnil;
}
|
#register(uri, versionMajor, versionMinor, qmlName) ⇒ Object
228 229 230 231 232 233 234 235 236 |
# File 'ext/qml/meta_class.c', line 228
static VALUE meta_class_register(VALUE self, VALUE uri, VALUE versionMajor, VALUE versionMinor, VALUE qmlName) {
qmlbind_metaclass *metaclass = rbqml_get_metaclass(self);
qmlbind_metaclass_register(
metaclass,
rb_string_value_cstr(&uri),
NUM2INT(versionMajor), NUM2INT(versionMinor),
rb_string_value_cstr(&qmlName));
return self;
}
|
#wrap(access) ⇒ Object
216 217 218 219 220 221 222 223 224 225 226 |
# File 'ext/qml/meta_class.c', line 216
VALUE meta_class_wrap(VALUE self, VALUE access) {
wrap_data data;
data.engine = rbqml_get_engine(rbqml_engine);
data.metaclass = rbqml_get_metaclass(self);
data.handle = (qmlbind_client_object *)access;
qmlbind_value *wrapped = rb_thread_call_without_gvl(wrap_impl, &data, RUBY_UBF_IO, NULL);
VALUE ret = rbqml_to_ruby(wrapped);
qmlbind_value_release(wrapped);
return ret;
}
|