--- rbgdkcolor.c.orig Sat Jan 8 20:52:27 2000 +++ rbgdkcolor.c Thu Jun 15 23:15:57 2000 @@ -78,6 +78,42 @@ return make_gdkcolor(&c); } +static VALUE +gdkcolor_red(self) + VALUE self; +{ + return INT2NUM(get_gdkcolor(self)->red); +} + +static VALUE +gdkcolor_green(self) + VALUE self; +{ + return INT2NUM(get_gdkcolor(self)->green); +} + +static VALUE +gdkcolor_blue(self) + VALUE self; +{ + return INT2NUM(get_gdkcolor(self)->blue); +} + +static VALUE +gdkcolor_rgb(self) + VALUE self; +{ + GdkColor *c; + VALUE a; + c = get_gdkcolor(self); + a = rb_ary_new2(3); + RARRAY(a)->ptr[0] = INT2NUM(c->red); + RARRAY(a)->ptr[1] = INT2NUM(c->green); + RARRAY(a)->ptr[2] = INT2NUM(c->blue); + RARRAY(a)->len = 3; + return a; +} + /* * Gdk::ColorContext @@ -104,7 +140,10 @@ gdkColor = rb_define_class_under(mGdk, "Color", rb_cData); rb_define_singleton_method(gdkColor, "new", gdkcolor_s_new, 3); - + rb_define_method(gdkColor, "red", gdkcolor_red, 0); + rb_define_method(gdkColor, "green", gdkcolor_green, 0); + rb_define_method(gdkColor, "blue", gdkcolor_blue, 0); + rb_define_method(gdkColor, "rgb", gdkcolor_rgb, 0); /* * Gdk::ColorContext */