コード例 #1
0
ファイル: canvas.c プロジェクト: Sitekurfer/shoes
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;
}
コード例 #2
0
ファイル: canvas.c プロジェクト: Shoes3/shoes3
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;
}