static css_dim_t node_measure(void *context, float width, float height) { RubyFrame frame; VALUE node = ((struct ruby_css_node *)context)->obj; static SEL measure_sel = 0; if (measure_sel == 0) { #if CC_TARGET_OS_IPHONE || CC_TARGET_OS_APPLETV measure_sel = rb_selector("measure:"); #else measure_sel = rb_selector("measure"); #endif } VALUE args[] = { DBL2NUM(width), DBL2NUM(height) }; VALUE ary = rb_send(node, measure_sel, 2, args); css_dim_t dim; dim.dimensions[0] = NUM2DBL(RARRAY_AT(ary, 0)); dim.dimensions[1] = NUM2DBL(RARRAY_AT(ary, 1)); return dim; }
virtual void update(float delta) { LayerColor::update(delta); VALUE arg = DBL2NUM(delta); rb_send(obj, update_sel, 1, &arg); }
virtual bool applicationDidFinishLaunching() { rb_send(obj, start_sel, 0, NULL); return true; }