VALUE shoes_canvas_style(int argc, VALUE *argv, VALUE self) { VALUE klass, attr; SETUP(); rb_scan_args(argc, argv, "02", &klass, &attr); if (!NIL_P(attr)) shoes_app_style(canvas->app, klass, attr); else if (!NIL_P(klass)) { if (NIL_P(canvas->attr)) canvas->attr = rb_hash_new(); rb_funcall(canvas->attr, s_update, 1, klass); shoes_canvas_repaint_all(canvas->parent); } return canvas->attr; }
VALUE shoes_canvas_style(int argc, VALUE *argv, VALUE self) { rb_arg_list args; SETUP_CANVAS(); switch (rb_parse_args(argc, argv, "kh,h,", &args)) { case 1: shoes_app_style(canvas->app, args.a[0], args.a[1]); break; case 2: if (NIL_P(canvas->attr)) canvas->attr = rb_hash_new(); rb_funcall(canvas->attr, s_update, 1, args.a[0]); shoes_canvas_repaint_all(canvas->parent); break; case 3: return rb_obj_freeze(rb_obj_dup(canvas->attr)); } return self; }