summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1998-09-17 09:55:47 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1998-09-17 09:55:47 +0000
commit9d04ee7eddb098f0450f3e6b1c1ab5f6e81b3c48 (patch)
treeef4b9e2420aa7242d11d13c75dcbbac15a185563
parent4fad1f8a239f6c39d4c4270d0f36e3f5c946a533 (diff)
*** empty log message ***
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/v1_1r@304 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ext/gtk/gtk.c697
1 files changed, 635 insertions, 62 deletions
diff --git a/ext/gtk/gtk.c b/ext/gtk/gtk.c
index 6c14fdd869..9cad9c954d 100644
--- a/ext/gtk/gtk.c
+++ b/ext/gtk/gtk.c
@@ -100,7 +100,7 @@ static VALUE gAcceleratorTable;
static VALUE gStyle;
static VALUE gPreviewInfo;
static VALUE gAllocation;
-static VALUE gRequisiton;
+static VALUE gRequisition;
static VALUE mRC;
@@ -381,6 +381,61 @@ get_gdkfont(font)
}
static VALUE
+gdkfnt_load_font(self, name)
+ VALUE self, name;
+{
+ GdkFont *font;
+
+ font = gdk_font_load(STR2CSTR(name));
+ return Data_Wrap_Struct(gdkFont, 0, gdk_font_unref, font);
+ /* return make_gdkfont(new); */
+}
+
+static VALUE
+gdkfnt_load_fontset(self, name)
+ VALUE self, name;
+{
+ GdkFont *new;
+
+ new = gdk_fontset_load(STR2CSTR(name));
+ return make_gdkfont(new);
+}
+
+static VALUE
+gdkfnt_new(self, name)
+ VALUE self, name;
+{
+ char *cname = STR2CSTR(name);
+ return (strchr(cname, ',') == NULL)
+ ? gdkfnt_load_font(self, name)
+ : gdkfnt_load_fontset(self, name);
+}
+
+static VALUE
+gdkfnt_string_width(self, str)
+ VALUE self, str;
+{
+ int w;
+
+ w = gdk_string_width(get_gdkfont(self), STR2CSTR(str));
+ return INT2NUM(w);
+}
+
+static VALUE
+gdkfnt_ascent(self)
+ VALUE self;
+{
+ return INT2NUM(get_gdkfont(self)->ascent);
+}
+
+static VALUE
+gdkfnt_descent(self)
+ VALUE self;
+{
+ return INT2NUM(get_gdkfont(self)->descent);
+}
+
+static VALUE
gdkfnt_equal(fn1, fn2)
VALUE fn1, fn2;
{
@@ -436,8 +491,8 @@ get_tobj(obj, klass)
#define make_gallocation(c) make_tobj(c, gAllocation, sizeof(GtkAllocation))
#define get_gallocation(c) ((GtkAllocation*)get_tobj(c, gAllocation))
-#define make_grequisiton(c) make_tobj(c, gRequisiton, sizeof(GtkRequisition))
-#define get_grequisiton(c) ((GtkRequisition*)get_tobj(c, gRequisiton))
+#define make_grequisition(c) make_tobj(c, gRequisition, sizeof(GtkRequisition))
+#define get_grequisition(c) ((GtkRequisition*)get_tobj(c, gRequisition))
#define make_gdkrectangle(r) make_tobj(r, gdkRectangle, sizeof(GdkRectangle))
#define get_gdkrectangle(r) ((GdkRectangle*)get_tobj(r, gdkRectangle))
@@ -776,6 +831,77 @@ gdkwin_root_window(self)
return INT2NUM(GDK_ROOT_WINDOW() );
}
+static VALUE
+gdkwin_clear(self)
+ VALUE self;
+{
+ gdk_window_clear(get_gdkwindow(self));
+ return self;
+}
+
+static VALUE
+gdkwin_clear_area(self, x,y,w,h)
+ VALUE self,x,y,w,h;
+{
+ gdk_window_clear_area(get_gdkwindow(self),
+ NUM2INT(x), NUM2INT(y), NUM2INT(w), NUM2INT(h));
+ return self;
+}
+
+static VALUE
+gdkwin_clear_area_e(self, x,y,w,h)
+ VALUE self,x,y,w,h;
+{
+ gdk_window_clear_area_e(get_gdkwindow(self),
+ NUM2INT(x), NUM2INT(y), NUM2INT(w), NUM2INT(h));
+ return self;
+}
+
+static VALUE
+gdkwin_set_background(self, c)
+ VALUE self, c;
+{
+ GdkColor color;
+ color.pixel = NUM2INT(c);
+ gdk_window_set_background(get_gdkwindow(self), &color);
+ return self;
+}
+
+static VALUE
+gdkwin_set_back_pixmap(self, pixmap, parent_relative)
+ VALUE self, pixmap, parent_relative;
+{
+ gdk_window_set_back_pixmap(get_gdkwindow(self), get_gdkpixmap(pixmap),
+ NUM2INT(parent_relative));
+ return self;
+}
+
+static VALUE
+gdkwin_move(self, x,y)
+ VALUE self, x,y;
+{
+ gdk_window_move(get_gdkwindow(self),
+ NUM2INT(x), NUM2INT(y));
+ return self;
+}
+
+static VALUE
+gdkwin_resize(self, w,h)
+ VALUE self, w,h;
+{
+ gdk_window_resize(get_gdkwindow(self),
+ NUM2INT(w), NUM2INT(h));
+ return self;
+}
+
+static VALUE
+gdkwin_move_resize(self, x,y,w,h)
+ VALUE self, x,y,w,h;
+{
+ gdk_window_move_resize(get_gdkwindow(self),
+ NUM2INT(x), NUM2INT(y), NUM2INT(w), NUM2INT(h));
+ return self;
+}
static VALUE
make_gdkevent(event)
@@ -868,6 +994,72 @@ gdkgc_destroy(self)
}
static VALUE
+gdkgc_set_function(self, func)
+ VALUE func;
+{
+ GdkFunction f;
+ f = (GdkFunction) NUM2INT(func);
+ if (f != GDK_COPY && f != GDK_INVERT && f != GDK_XOR)
+ ArgError("function out of range");
+
+ gdk_gc_set_function(get_gdkgc(self), f);
+ return func;
+}
+
+static VALUE
+gdkgc_set_foreground(self, pix)
+ VALUE pix;
+{
+ GdkColor c;
+ c.pixel = NUM2INT(pix);
+ gdk_gc_set_foreground(get_gdkgc(self), &c);
+ return pix;
+}
+
+static VALUE
+gdkgc_set_background(self, pix)
+ VALUE pix;
+{
+ GdkColor c;
+ c.pixel = NUM2INT(pix);
+ gdk_gc_set_background(get_gdkgc(self), &c);
+ return pix;
+}
+
+static VALUE
+gdkgc_set_clip_mask(self, mask)
+ VALUE mask;
+{
+ gdk_gc_set_clip_mask(get_gdkgc(self), get_gdkbitmap(mask));
+ return mask;
+}
+
+static VALUE
+gdkgc_set_clip_origin(self, x, y)
+ VALUE x, y;
+{
+ gdk_gc_set_clip_origin(get_gdkgc(self), NUM2INT(x), NUM2INT(y));
+ return self;
+}
+
+static VALUE
+gdkgc_set_clip_rectangle(self, rectangle)
+ VALUE rectangle;
+{
+ gdk_gc_set_clip_rectangle(get_gdkgc(self), get_gdkrectangle(rectangle));
+ return rectangle;
+}
+/*
+static VALUE
+gdkgc_set_clip_region(self, region)
+ VALUE region;
+{
+ gdk_gc_set_clip_region(get_gdkgc(self), get_gdkregion(region));
+ return region;
+}
+*/
+
+static VALUE
glist2ary(list)
GList *list;
{
@@ -1038,6 +1230,7 @@ signal_setup_args(obj, sig, argc, params, args)
GtkArg *params;
VALUE args;
{
+ GtkArg *params1;
int i;
char *signame = rb_id2name(sig);
@@ -1047,7 +1240,7 @@ signal_setup_args(obj, sig, argc, params, args)
return;
}
if (strcmp(signame, "size_request") == 0) {
- ary_push(args, make_grequisiton(GTK_VALUE_POINTER(params[0])));
+ ary_push(args, make_grequisition(GTK_VALUE_POINTER(params[0])));
return;
}
if (strcmp(signame, "size_allocate") == 0) {
@@ -1055,12 +1248,12 @@ signal_setup_args(obj, sig, argc, params, args)
return;
}
}
- else if (obj_is_kind_of(obj, gWindow)) {
+ if (obj_is_kind_of(obj, gWindow)) {
if (strcmp(signame, "move_resize") == 0) {
- ary_push(args, NUM2INT(*GTK_RETLOC_INT(params[0])));
- ary_push(args, NUM2INT(*GTK_RETLOC_INT(params[1])));
- ary_push(args, NUM2INT(GTK_VALUE_INT(params[3])));
- ary_push(args, NUM2INT(GTK_VALUE_INT(params[4])));
+ ary_push(args, INT2NUM(*GTK_RETLOC_INT(params[0])));
+ ary_push(args, INT2NUM(*GTK_RETLOC_INT(params[1])));
+ ary_push(args, INT2NUM(GTK_VALUE_INT(params[3])));
+ ary_push(args, INT2NUM(GTK_VALUE_INT(params[4])));
return;
}
if (strcmp(signame, "set_focus") == 0) {
@@ -1068,32 +1261,49 @@ signal_setup_args(obj, sig, argc, params, args)
return;
}
}
- else if (obj_is_kind_of(obj, gEntry)) {
+ if (obj_is_kind_of(obj, gEntry)) {
if (strcmp(signame, "insert_position") == 0) {
- ary_push(args, NUM2INT(*GTK_RETLOC_INT(params[0])));
+ ary_push(args, INT2NUM(*GTK_RETLOC_INT(params[0])));
return;
}
}
- else if (obj_is_kind_of(obj, gCList)) {
- if (strcmp(signame, "select_row") == 0) {
- if (GTK_VALUE_POINTER(params[0]))
- ary_push(args, make_gdkevent(GTK_VALUE_POINTER(params[0])));
- else
- ary_push(args, Qnil);
- return;
- }
- if (strcmp(signame, "unselect_row") == 0) {
- if (GTK_VALUE_POINTER(params[0]))
- ary_push(args, make_gdkevent(GTK_VALUE_POINTER(params[0])));
+ if (obj_is_kind_of(obj, gCList)) {
+ if (strcmp(signame, "select_row") == 0 ||
+ strcmp(signame, "unselect_row") == 0) {
+ ary_push(args, INT2NUM(GTK_VALUE_INT(params[0])));
+ ary_push(args, INT2NUM(GTK_VALUE_INT(params[1])));
+ if (GTK_VALUE_POINTER(params[2]))
+ ary_push(args, make_gdkevent(GTK_VALUE_POINTER(params[2])));
else
ary_push(args, Qnil);
return;
}
}
+ params1 = params;
for (i=0; i<argc; i++) {
- ary_push(args, arg_to_value(params));
- params++;
+ ary_push(args, arg_to_value(params1));
+ params1++;
+ }
+}
+
+static void
+signal_sync_args(obj, sig, argc, params, args)
+ VALUE obj;
+ ID sig;
+ int argc;
+ GtkArg *params;
+ VALUE args;
+{
+ int i;
+ char *signame = rb_id2name(sig);
+
+ if (obj_is_kind_of(obj, gWidget)) {
+ if (strcmp(signame, "size_request") == 0) {
+ memcpy(GTK_VALUE_POINTER(params[0]), get_grequisition(ary_pop(args)),
+ sizeof(GtkRequisition));
+ return;
+ }
}
}
@@ -1220,8 +1430,14 @@ signal_callback(widget, data, nparams, params)
else {
ary_unshift(args, self);
result = rb_apply(proc, id_call, args);
+ ary_shift(args);
}
arg_set_value(params+nparams, result);
+
+ for (i=0; i<RARRAY(a)->len; i++) {
+ ary_pop(args);
+ }
+ signal_sync_args(self, id, nparams, params, args);
}
static void
@@ -1384,6 +1600,12 @@ cont_bwidth(self, width)
NUM2INT(width));
return self;
}
+static VALUE
+cont_get_bwidth(self)
+ VALUE self;
+{
+ return INT2NUM(GTK_CONTAINER(get_widget(self))->border_width);
+}
static VALUE
cont_add(self, other)
@@ -1537,6 +1759,34 @@ misc_set_padding(self, xpad, ypad)
}
static VALUE
+misc_get_xalign(self)
+ VALUE self;
+{
+ return float_new(GTK_MISC(get_widget(self))->xalign);
+}
+
+static VALUE
+misc_get_yalign(self)
+ VALUE self;
+{
+ return float_new(GTK_MISC(get_widget(self))->yalign);
+}
+
+static VALUE
+misc_get_xpad(self)
+ VALUE self;
+{
+ return INT2NUM(GTK_MISC(get_widget(self))->xpad);
+}
+
+static VALUE
+misc_get_ypad(self)
+ VALUE self;
+{
+ return INT2NUM(GTK_MISC(get_widget(self))->ypad);
+}
+
+static VALUE
arrow_initialize(self, arrow_t, shadow_t)
VALUE self, arrow_t, shadow_t;
{
@@ -1742,7 +1992,7 @@ static VALUE
widget_size_request(self, req)
VALUE self, req;
{
- gtk_widget_size_request(get_widget(self), get_grequisiton(req));
+ gtk_widget_size_request(get_widget(self), get_grequisition(req));
return self;
}
@@ -1816,6 +2066,23 @@ widget_visible(self)
return TRUE;
return FALSE;
}
+static VALUE
+widget_mapped(self)
+ VALUE self;
+{
+ if (GTK_WIDGET_MAPPED(get_widget(self)))
+ return TRUE;
+ return FALSE;
+}
+
+static VALUE
+widget_realized(self)
+ VALUE self;
+{
+ if (GTK_WIDGET_REALIZED(get_widget(self)))
+ return TRUE;
+ return FALSE;
+}
static VALUE
widget_reparent(self, parent)
@@ -2056,42 +2323,75 @@ static VALUE
widget_push_visual(self, visual)
VALUE self, visual;
{
+ GdkVisual v;
gtk_widget_push_visual(get_gdkvisual(visual));
return make_gdkcmap(visual);
}
static VALUE
widget_push_style(self, style)
- VALUE self, style;
+ VALUE self;
{
gtk_widget_push_style(get_gstyle(style));
return Qnil;
}
static VALUE
-widget_pop_cmap(self, cmap)
- VALUE self, cmap;
+widget_pop_cmap(self)
+ VALUE self;
{
gtk_widget_pop_colormap();
return Qnil;
}
static VALUE
-widget_pop_visual(self, visual)
- VALUE self, visual;
+widget_pop_visual(self)
+ VALUE self;
{
gtk_widget_pop_visual();
return Qnil;
}
static VALUE
-widget_pop_style(self, style)
- VALUE self, style;
+widget_pop_style(self)
+ VALUE self;
{
gtk_widget_pop_style();
return Qnil;
}
+/*
+static VALUE
+widget_peek_cmap(self)
+ VALUE self;
+{
+ GdkColormap *cmap;
+
+ cmap = (GdkColormap*)gtk_widget_peek_colormap();
+ return make_gdkcmap(cmap);
+}
+
+static VALUE
+widget_peek_visual(self)
+ VALUE self;
+{
+ GdkVisual *v;
+
+ v = (GdkVisual*)gtk_widget_peek_visual();
+ return make_gdkvisual(v);
+}
+
+static VALUE
+widget_peek_style(self)
+ VALUE self;
+{
+ GtkStyle *style;
+
+ style = (GtkStyle*)gtk_widget_peek_style();
+ return make_gstyle(style);
+}
+*/
+
static VALUE
widget_set_default_cmap(self, cmap)
VALUE self, cmap;
@@ -2167,6 +2467,34 @@ widget_get_alloc(self)
{
return make_gallocation(&(get_widget(self)->allocation));
}
+static VALUE
+widget_set_alloc(self, x,y,w,h)
+ VALUE self, x,y,w,h;
+{
+ GtkAllocation *a = &(get_widget(self)->allocation);
+ a->x = NUM2INT(x);
+ a->y = NUM2INT(y);
+ a->width = NUM2INT(w);
+ a->height = NUM2INT(h);
+ return self;
+}
+
+static VALUE
+widget_get_requisition(self)
+ VALUE self;
+{
+ return make_grequisition(&(get_widget(self)->requisition));
+}
+
+static VALUE
+widget_set_requisition(self, w,h)
+ VALUE self,w,h;
+{
+ GtkRequisition *r = &(get_widget(self)->requisition);
+ r->width = NUM2INT(w);
+ r->height = NUM2INT(h);
+ return self;
+}
static VALUE
widget_state(self)
@@ -2818,14 +3146,29 @@ label_initialize(self, label)
set_widget(self, gtk_label_new(STR2CSTR(label)));
return Qnil;
}
+static VALUE
+label_get_jtype(self)
+ VALUE self;
+{
+ return(INT2FIX(GTK_LABEL(get_widget(self))->jtype));
+}
+static VALUE
+label_set_jtype(self, jtype)
+ VALUE self, jtype;
+{
+ GtkJustification j;
+ j = (GtkJustification) NUM2INT(jtype);
+ gtk_label_set_justify(GTK_LABEL(get_widget(self)), j);
+ return self;
+}
static VALUE
label_get(self)
VALUE self;
{
- gchar** str;
- gtk_label_get(GTK_LABEL(get_widget(self)), str);
- return str_new2(*str);
+ gchar* str;
+ gtk_label_get(GTK_LABEL(get_widget(self)), &str);
+ return str_new2(str);
}
static VALUE
@@ -5492,6 +5835,13 @@ style_s_new(klass)
}
static VALUE
+style_copy(self)
+ VALUE self;
+{
+ return make_gstyle(gtk_style_copy(get_gstyle(self)));
+}
+
+static VALUE
style_attach(self, win)
VALUE self, win;
{
@@ -5506,7 +5856,7 @@ style_detach(self)
}
static VALUE
-style_set_bg(self, win, state_type)
+style_set_background(self, win, state_type)
VALUE self, win, state_type;
{
gtk_style_set_background(get_gstyle(self), get_gdkwindow(win),
@@ -5584,6 +5934,33 @@ style_base(self, idx)
return make_gdkcolor(get_gstyle(self)->base[i]);
}
+#define DEFINE_STYLE_SET_COLOR(func, type) \
+static VALUE \
+func(self, idx, r, g, b) \
+ VALUE self, idx, r, g, b; \
+{ \
+ GtkStyle *style; \
+ GdkColor *color; \
+ int i = NUM2INT(idx); \
+ \
+ if (i < 0 || 5 < i) ArgError("state out of range"); \
+ style = get_gstyle(self); \
+ if (style->fg_gc[0] != NULL) ArgError("you must not change widget style."); \
+ color = &(style-> type [i]); \
+ color->red = NUM2INT(r); \
+ color->green = NUM2INT(g); \
+ color->blue = NUM2INT(b); \
+ return(make_gdkcolor(*color)); \
+} \
+
+DEFINE_STYLE_SET_COLOR(style_set_fg, fg)
+DEFINE_STYLE_SET_COLOR(style_set_bg, bg)
+DEFINE_STYLE_SET_COLOR(style_set_light, light)
+DEFINE_STYLE_SET_COLOR(style_set_dark, dark)
+DEFINE_STYLE_SET_COLOR(style_set_mid, mid)
+DEFINE_STYLE_SET_COLOR(style_set_text, text)
+DEFINE_STYLE_SET_COLOR(style_set_base, base)
+
static VALUE
style_black(self)
{
@@ -5603,6 +5980,23 @@ style_font(self)
}
static VALUE
+style_set_font(self, f)
+ VALUE f;
+{
+ GdkFont *font = get_gdkfont(f);
+ GtkStyle *style = get_gstyle(self);
+
+ if (style->fg_gc[0] != NULL) ArgError("you must not change widget style.");
+ if (style->font != NULL)
+ gdk_font_unref(style->font);
+
+ gdk_font_ref(font);
+ style->font = font;
+
+ return self;
+}
+
+static VALUE
style_fg_gc(self, idx)
VALUE self, idx;
{
@@ -5782,6 +6176,18 @@ style_draw_string(self,) /* 5 */
#endif
static VALUE
+gallocation_new(VALUE self, VALUE x, VALUE y, VALUE w, VALUE h)
+{
+ GtkAllocation a;
+
+ a.x = NUM2INT(x);
+ a.y = NUM2INT(y);
+ a.width = NUM2INT(w);
+ a.height = NUM2INT(h);
+ return make_gallocation(&a);
+}
+
+static VALUE
gallocation_x(self)
{
return INT2NUM(get_gallocation(self)->x);
@@ -5805,6 +6211,27 @@ gallocation_h(self)
return INT2NUM(get_gallocation(self)->height);
}
+static VALUE
+gallocation_to_a(self)
+ VALUE self;
+{
+ GtkAllocation *a;
+
+ a = get_gallocation(self);
+ return ary_new3(4, a->x, a->y, a->width, a->height);
+}
+
+static VALUE
+gallocation_to_s(self)
+ VALUE self;
+{
+ char str[2 +2*3 +5*4 +1]; /* member is guint16. max string size is 5 */
+ GtkAllocation *a;
+
+ a = get_gallocation(self);
+ sprintf(str, "(%5d, %5d, %5d, %5d)", a->x, a->y, a->width, a->height);
+ return str_new2(str);
+}
static VALUE
gtk_m_main(self)
@@ -6011,109 +6438,168 @@ gdkdraw_draw_segs(self, gc, segs)
segments[i].y2 = NUM2INT(RARRAY(RARRAY(segs)->ptr[i])->ptr[3]);
}
gdk_draw_segments(get_gdkdrawable(self), get_gdkgc(gc),
- segments,
- RARRAY(segs)->len);
+ segments, RARRAY(segs)->len);
return self;
}
+static VALUE grequisition_new(self, w, h)
+ VALUE self, w, h;
+{
+ GtkRequisition r;
+
+ r.width = NUM2INT(w);
+ r.height = NUM2INT(h);
+ return make_grequisition(&r);
+}
+
+static VALUE
+grequisition_w(self)
+ VALUE self;
+{
+ return INT2NUM(get_grequisition(self)->width);
+}
+
+static VALUE
+grequisition_h(self)
+ VALUE self;
+{
+ return INT2NUM(get_grequisition(self)->height);
+}
+
+static VALUE
+grequisition_set_w(self, w)
+ VALUE self, w;
+{
+ get_grequisition(self)->width = NUM2INT(w);
+ return self;
+}
+
+static VALUE
+grequisition_set_h(self, h)
+ VALUE self, h;
+{
+ get_grequisition(self)->height = NUM2INT(h);
+ return self;
+}
+
+static VALUE
+grequisition_to_a(self)
+ VALUE self;
+{
+ GtkRequisition *r;
+
+ r = get_grequisition(self);
+ return ary_new3(2, r->width, r->height);
+}
+
+static VALUE
+grequisition_to_s(self)
+ VALUE self;
+{
+ char str[2 +2*1 +5*2 +1]; /* member is guint16. max string size is 5 */
+ GtkRequisition *r;
+
+ r = get_grequisition(self);
+ sprintf(str, "(%5d, %5d)", r->width, r->height);
+ return str_new2(str);
+}
static VALUE
gdkrect_s_new(self, x, y, width, height)
VALUE self, x, y, width, height;
{
- GdkRectangle new;
- new.x = NUM2INT(x);
- new.y = NUM2INT(y);
- new.width = NUM2INT(width);
- new.height = NUM2INT(height);
- return make_gdkrectangle(&new);
+ GdkRectangle new;
+ new.x = NUM2INT(x);
+ new.y = NUM2INT(y);
+ new.width = NUM2INT(width);
+ new.height = NUM2INT(height);
+ return make_gdkrectangle(&new);
}
static VALUE
gdkrect_x(self)
{
- return INT2NUM(get_gdkrectangle(self)->x);
+ return INT2NUM(get_gdkrectangle(self)->x);
}
static VALUE
gdkrect_y(self)
{
- return INT2NUM(get_gdkrectangle(self)->y);
+ return INT2NUM(get_gdkrectangle(self)->y);
}
static VALUE
gdkrect_w(self)
{
- return INT2NUM(get_gdkrectangle(self)->width);
+ return INT2NUM(get_gdkrectangle(self)->width);
}
static VALUE
gdkrect_h(self)
{
- return INT2NUM(get_gdkrectangle(self)->height);
+ return INT2NUM(get_gdkrectangle(self)->height);
}
static VALUE
gdkevent_type(self)
{
- return INT2NUM(get_gdkevent(self)->type);
+ return INT2NUM(get_gdkevent(self)->type);
}
static VALUE
gdkeventexpose_area(self)
{
- return make_gdkrectangle( &(((GdkEventExpose*)get_gdkevent(self))->area) );
+ return make_gdkrectangle(&(((GdkEventExpose*)get_gdkevent(self))->area));
}
static VALUE
gdkeventbutton_x(self)
{
- return INT2NUM(((GdkEventButton*)get_gdkevent(self))->x);
+ return INT2NUM(((GdkEventButton*)get_gdkevent(self))->x);
}
static VALUE
gdkeventbutton_y(self)
{
- return INT2NUM(((GdkEventButton*)get_gdkevent(self))->y);
+ return INT2NUM(((GdkEventButton*)get_gdkevent(self))->y);
}
static VALUE
gdkeventbutton_button(self)
{
- return INT2NUM(((GdkEventButton*)get_gdkevent(self))->button);
+ return INT2NUM(((GdkEventButton*)get_gdkevent(self))->button);
}
static VALUE
gdkeventmotion_window(self)
{
- return make_gdkwindow( ((GdkEventMotion*)get_gdkevent(self))->window);
+ return make_gdkwindow(((GdkEventMotion*)get_gdkevent(self))->window);
}
static VALUE
gdkeventmotion_x(self)
{
- return INT2NUM(((GdkEventMotion*)get_gdkevent(self))->x);
+ return INT2NUM(((GdkEventMotion*)get_gdkevent(self))->x);
}
static VALUE
gdkeventmotion_y(self)
{
- return INT2NUM(((GdkEventMotion*)get_gdkevent(self))->y);
+ return INT2NUM(((GdkEventMotion*)get_gdkevent(self))->y);
}
static VALUE
gdkeventmotion_state(self)
{
- return INT2NUM(((GdkEventMotion*)get_gdkevent(self))->state);
+ return INT2NUM(((GdkEventMotion*)get_gdkevent(self))->state);
}
static VALUE
gdkeventmotion_is_hint(self)
{
- return INT2NUM(((GdkEventMotion*)get_gdkevent(self))->is_hint);
+ return INT2NUM(((GdkEventMotion*)get_gdkevent(self))->is_hint);
}
-
static gint
idle()
{
@@ -6340,7 +6826,7 @@ Init_gtk()
gAcceleratorTable = rb_define_class_under(mGtk, "AcceleratorTable", cData);
gStyle = rb_define_class_under(mGtk, "Style", cData);
gPreviewInfo = rb_define_class_under(mGtk, "PreviewInfo", cData);
- gRequisiton = rb_define_class_under(mGtk, "Requisiton", cData);
+ gRequisition = rb_define_class_under(mGtk, "Requisition", cData);
gAllocation = rb_define_class_under(mGtk, "Allocation", cData);
mRC = rb_define_module_under(mGtk, "RC");
@@ -6424,6 +6910,7 @@ Init_gtk()
rb_define_method(gWidget, "grab_default", widget_grab_default, 0);
rb_define_method(gWidget, "set_state", widget_set_state, 1);
rb_define_method(gWidget, "visible?", widget_visible, 0);
+ rb_define_method(gWidget, "mapped?", widget_mapped, 0);
rb_define_method(gWidget, "reparent", widget_reparent, 1);
rb_define_method(gWidget, "popup", widget_popup, 2);
rb_define_method(gWidget, "intersect", widget_intersect, 2);
@@ -6439,6 +6926,9 @@ Init_gtk()
rb_define_method(gWidget, "set_extension_events", widget_set_eevents, 1);
rb_define_method(gWidget, "unparent", widget_unparent, 0);
rb_define_method(gWidget, "allocation", widget_get_alloc, 0);
+ rb_define_method(gWidget, "set_allocation", widget_set_alloc, 4);
+ rb_define_method(gWidget, "requisition", widget_get_requisition, 0);
+ rb_define_method(gWidget, "set_requisition", widget_set_requisition, 2);
rb_define_method(gWidget, "state", widget_state, 0);
rb_define_method(gWidget, "get_toplevel", widget_get_toplevel, 0);
rb_define_method(gWidget, "get_ancestor", widget_get_ancestor, 1);
@@ -6460,6 +6950,11 @@ Init_gtk()
rb_define_singleton_method(gWidget, "pop_colomap", widget_pop_cmap, 0);
rb_define_singleton_method(gWidget, "pop_visual", widget_pop_visual, 0);
rb_define_singleton_method(gWidget, "pop_style", widget_pop_style, 0);
+ /* below peek_* function is defined in *.c but not decralated in gtk/*.h
+ rb_define_singleton_method(gWidget, "peek_colomap", widget_pop_cmap, 0);
+ rb_define_singleton_method(gWidget, "peek_visual", widget_pop_visual, 0);
+ rb_define_singleton_method(gWidget, "peek_style", widget_pop_style, 0);
+ */
rb_define_singleton_method(gWidget, "set_default_colomap",
widget_set_default_cmap, 1);
@@ -6488,6 +6983,7 @@ Init_gtk()
/* Container */
rb_define_method(gContainer, "border_width", cont_bwidth, 1);
+ rb_define_method(gContainer, "get_border_width", cont_get_bwidth, 0);
rb_define_method(gContainer, "add", cont_add, 1);
rb_define_method(gContainer, "disable_resize", cont_disable_resize, 0);
rb_define_method(gContainer, "enable_resize", cont_enable_resize, 0);
@@ -6509,6 +7005,10 @@ Init_gtk()
/* Misc */
rb_define_method(gMisc, "set_alignment", misc_set_align, 2);
rb_define_method(gMisc, "set_padding", misc_set_padding, 2);
+ rb_define_method(gMisc, "xalign", misc_get_xalign, 0);
+ rb_define_method(gMisc, "yalign", misc_get_yalign, 0);
+ rb_define_method(gMisc, "xpad", misc_get_xpad, 0);
+ rb_define_method(gMisc, "ypad", misc_get_ypad, 0);
/* Arrow */
rb_define_method(gArrow, "initialize", arrow_initialize, 2);
@@ -6548,6 +7048,7 @@ Init_gtk()
rb_define_method(gTButton, "set_state", tbtn_set_state, 1);
rb_define_method(gTButton, "toggled", tbtn_toggled, 0);
rb_define_method(gTButton, "active", tbtn_active, 0);
+ rb_define_method(gTButton, "active?", tbtn_active, 0);
/* CheckButton */
rb_define_method(gCButton, "initialize", cbtn_initialize, -1);
@@ -6817,7 +7318,11 @@ Init_gtk()
/* Label */
rb_define_method(gLabel, "initialize", label_initialize, 1);
rb_define_method(gLabel, "get", label_get, 0);
+ rb_define_method(gLabel, "jtype", label_get_jtype, 0);
+ rb_define_method(gLabel, "jtype=", label_set_jtype, 1);
rb_define_method(gLabel, "set", label_set, 1);
+ rb_define_method(gLabel, "jtype", label_get_jtype, 0);
+ rb_define_method(gLabel, "jtype=", label_set_jtype, 1);
/* List */
rb_define_method(gList, "initialize", list_initialize, 0);
@@ -7011,9 +7516,12 @@ Init_gtk()
/* AcceleratorTable */
/* Style */
rb_define_singleton_method(gStyle, "new", style_s_new, 0);
+ rb_define_method(gStyle, "copy", style_copy, 0);
+ rb_define_method(gStyle, "clone", style_copy, 0);
+ rb_define_method(gStyle, "dup", style_copy, 0);
rb_define_method(gStyle, "attach", style_attach, 1);
rb_define_method(gStyle, "detach", style_detach, 0);
- rb_define_method(gStyle, "set_background", style_set_bg, 0);
+ rb_define_method(gStyle, "set_background", style_set_background, 2);
rb_define_method(gStyle, "fg", style_fg, 1);
rb_define_method(gStyle, "bg", style_bg, 1);
rb_define_method(gStyle, "light", style_light, 1);
@@ -7021,9 +7529,18 @@ Init_gtk()
rb_define_method(gStyle, "mid", style_mid, 1);
rb_define_method(gStyle, "text", style_text, 1);
rb_define_method(gStyle, "base", style_base, 1);
+ rb_define_method(gStyle, "set_fg", style_set_fg, 4);
+ rb_define_method(gStyle, "set_bg", style_set_bg, 4);
+ rb_define_method(gStyle, "set_light", style_set_light, 4);
+ rb_define_method(gStyle, "set_dark", style_set_dark, 4);
+ rb_define_method(gStyle, "set_mid", style_set_mid, 4);
+ rb_define_method(gStyle, "set_text", style_set_text, 4);
+ rb_define_method(gStyle, "set_base", style_set_base, 4);
+
rb_define_method(gStyle, "black", style_black, 0);
rb_define_method(gStyle, "white", style_white, 0);
rb_define_method(gStyle, "font", style_font, 0);
+ rb_define_method(gStyle, "set_font", style_set_font, 1);
rb_define_method(gStyle, "fg_gc", style_fg_gc, 1);
rb_define_method(gStyle, "bg_gc", style_bg_gc, 1);
rb_define_method(gStyle, "light_gc", style_light_gc, 1);
@@ -7045,10 +7562,28 @@ Init_gtk()
rb_define_method(gStyle, "draw_string", style_draw_string, 5);
#endif
+ rb_define_singleton_method(gAllocation, "new", gallocation_new, 4);
rb_define_method(gAllocation, "x", gallocation_x, 0);
rb_define_method(gAllocation, "y", gallocation_y, 0);
rb_define_method(gAllocation, "width", gallocation_w, 0);
rb_define_method(gAllocation, "height", gallocation_h, 0);
+ rb_define_method(gAllocation, "to_a", gallocation_to_a, 0);
+ rb_define_method(gAllocation, "to_s", gallocation_to_s, 0);
+
+ rb_define_singleton_method(gRequisition, "new", grequisition_new, 2);
+ rb_define_method(gRequisition, "width", grequisition_w, 0);
+ rb_define_method(gRequisition, "height", grequisition_h, 0);
+ rb_define_method(gRequisition, "width=", grequisition_set_w, 1);
+ rb_define_method(gRequisition, "height=", grequisition_set_h, 1);
+ rb_define_method(gRequisition, "to_a", grequisition_to_a, 0);
+ rb_define_method(gRequisition, "to_s", grequisition_to_s, 0);
+
+ rb_define_method(gRequisition, "width", grequisition_w, 0);
+ rb_define_method(gRequisition, "height", grequisition_h, 0);
+ /*
+ rb_define_method(gRequisition, "width=", grequisition_set_w, 1);
+ rb_define_method(gRequisition, "height=", grequisition_set_h, 1);
+ */
/* Gtk module */
rb_define_module_function(mGtk, "main", gtk_m_main, 0);
@@ -7075,6 +7610,12 @@ Init_gtk()
/* Gdk module */
/* GdkFont */
+ rb_define_singleton_method(gdkFont, "load_font", gdkfnt_load_font, 1);
+ rb_define_singleton_method(gdkFont, "new", gdkfnt_new, 1);
+ rb_define_singleton_method(gdkFont, "load_fontset", gdkfnt_load_fontset, 1);
+ rb_define_method(gdkFont, "string_width", gdkfnt_string_width, 1);
+ rb_define_method(gdkFont, "ascent", gdkfnt_ascent, 0);
+ rb_define_method(gdkFont, "descent", gdkfnt_descent, 0);
rb_define_method(gdkFont, "==", gdkfnt_equal, 1);
/* GdkDrawable */
@@ -7112,11 +7653,26 @@ Init_gtk()
rb_define_method(gdkWindow, "pointer_ungrab", gdkwin_pointer_ungrab, 1);
rb_define_singleton_method(gdkWindow, "foreign_new", gdkwin_foreign_new, 1);
rb_define_singleton_method(gdkWindow, "root_window", gdkwin_root_window, 0);
+ rb_define_method(gdkWindow, "clear", gdkwin_clear, 0);
+ rb_define_method(gdkWindow, "clear_area", gdkwin_clear_area, 4);
+ rb_define_method(gdkWindow, "clear_area_e", gdkwin_clear, 4);
+ rb_define_method(gdkWindow, "set_background", gdkwin_set_background, 1);
+ rb_define_method(gdkWindow, "set_back_pixmap", gdkwin_set_back_pixmap, 2);
+ rb_define_method(gdkWindow, "move", gdkwin_move, 2);
+ rb_define_method(gdkWindow, "resize", gdkwin_resize, 2);
+ rb_define_method(gdkWindow, "move_resize", gdkwin_move_resize, 4);
/* GdkGC */
rb_define_singleton_method(gdkGC, "new", gdkgc_s_new, 1);
rb_define_method(gdkGC, "copy", gdkgc_copy, 1);
rb_define_method(gdkGC, "destroy", gdkgc_destroy, 0);
+ rb_define_method(gdkGC, "set_function", gdkgc_set_function, 1);
+ rb_define_method(gdkGC, "set_foreground", gdkgc_set_foreground, 1);
+ rb_define_method(gdkGC, "set_background", gdkgc_set_background, 1);
+ rb_define_method(gdkGC, "set_clip_mask", gdkgc_set_clip_mask, 1);
+ rb_define_method(gdkGC, "set_clip_origin", gdkgc_set_clip_origin, 2);
+ rb_define_method(gdkGC, "set_clip_rectangle", gdkgc_set_clip_rectangle, 1);
+ /* rb_define_method(gdkGC, "set_clip_region", gdkgc_set_clip_region, 1); */
/* GdkImage */
rb_define_singleton_method(gdkImage, "new_bitmap", gdkimage_s_newbmap, 4);
@@ -7185,11 +7741,18 @@ Init_gtk()
rb_define_const(mGtk, "POLICY_ALWAYS", INT2FIX(GTK_POLICY_ALWAYS));
rb_define_const(mGtk, "POLICY_AUTOMATIC", INT2FIX(GTK_POLICY_AUTOMATIC));
+ /* GtkJustification */
+ rb_define_const(mGtk, "JUSTIFY_LEFT", INT2FIX(GTK_JUSTIFY_LEFT));
+ rb_define_const(mGtk, "JUSTIFY_RIGHT", INT2FIX(GTK_JUSTIFY_RIGHT));
+ rb_define_const(mGtk, "JUSTIFY_CENTER", INT2FIX(GTK_JUSTIFY_CENTER));
+ rb_define_const(mGtk, "JUSTIFY_FILL", INT2FIX(GTK_JUSTIFY_FILL));
+
/* GtkSelectionMode */
rb_define_const(mGtk, "SELECTION_SINGLE", INT2FIX(GTK_SELECTION_SINGLE));
rb_define_const(mGtk, "SELECTION_BROWSE", INT2FIX(GTK_SELECTION_BROWSE));
rb_define_const(mGtk, "SELECTION_MULTIPLE", INT2FIX(GTK_SELECTION_MULTIPLE));
rb_define_const(mGtk, "SELECTION_EXTENDED", INT2FIX(GTK_SELECTION_EXTENDED));
+
/* GtkPositionType */
rb_define_const(mGtk, "POS_LEFT", INT2FIX(GTK_POS_LEFT));
rb_define_const(mGtk, "POS_RIGHT", INT2FIX(GTK_POS_RIGHT));
@@ -7202,22 +7765,27 @@ Init_gtk()
rb_define_const(mGtk, "SHADOW_OUT", INT2FIX(GTK_SHADOW_OUT));
rb_define_const(mGtk, "SHADOW_ETCHED_IN", INT2FIX(GTK_SHADOW_ETCHED_IN));
rb_define_const(mGtk, "SHADOW_ETCHED_OUT", INT2FIX(GTK_SHADOW_ETCHED_OUT));
+
/* GtkStateType */
rb_define_const(mGtk, "STATE_NORMAL", INT2FIX(GTK_STATE_NORMAL));
rb_define_const(mGtk, "STATE_ACTIVE", INT2FIX(GTK_STATE_ACTIVE));
rb_define_const(mGtk, "STATE_PRELIGHT", INT2FIX(GTK_STATE_PRELIGHT));
rb_define_const(mGtk, "STATE_SELECTED", INT2FIX(GTK_STATE_SELECTED));
rb_define_const(mGtk, "STATE_INSENSITIVE", INT2FIX(GTK_STATE_INSENSITIVE));
+
/* GtkAttachOptions */
rb_define_const(mGtk, "EXPAND", INT2FIX(GTK_EXPAND));
rb_define_const(mGtk, "SHRINK", INT2FIX(GTK_SHRINK));
rb_define_const(mGtk, "FILL", INT2FIX(GTK_FILL));
+
/* GtkSubmenuDirection */
rb_define_const(mGtk, "DIRECTION_LEFT", INT2FIX(GTK_DIRECTION_LEFT));
rb_define_const(mGtk, "DIRECTION_RIGHT", INT2FIX(GTK_DIRECTION_RIGHT));
+
/* GtkSubmenuPlacement */
rb_define_const(mGtk, "TOP_BOTTOM", INT2FIX(GTK_TOP_BOTTOM));
rb_define_const(mGtk, "LEFT_RIGHT", INT2FIX(GTK_LEFT_RIGHT));
+
/* GtkMetricType */
rb_define_const(mGtk, "PIXELS", INT2FIX(GTK_PIXELS));
rb_define_const(mGtk, "INCHES", INT2FIX(GTK_INCHES));
@@ -7248,6 +7816,11 @@ Init_gtk()
rb_define_const(mGtk, "ORIENTATION_HORIZONTAL", INT2FIX(GTK_ORIENTATION_HORIZONTAL));
rb_define_const(mGtk, "ORIENTATION_VERTICAL", INT2FIX(GTK_ORIENTATION_VERTICAL));
+ /* GdkMiscMode */
+ rb_define_const(mGdk, "FUNCTION_COPY", INT2FIX(GDK_COPY));
+ rb_define_const(mGdk, "FUNCTION_INVERT", INT2FIX(GDK_INVERT));
+ rb_define_const(mGdk, "FUNCTION_XOR", INT2FIX(GDK_XOR));
+
/* GdkExtensionMode */
rb_define_const(mGdk, "EXTENSION_EVENTS_NONE", INT2FIX(GDK_EXTENSION_EVENTS_NONE));
rb_define_const(mGdk, "EXTENSION_EVENTS_ALL", INT2FIX(GDK_EXTENSION_EVENTS_ALL));
@@ -7336,7 +7909,7 @@ Init_gtk()
}
for (i=1;i<argc;i++) {
- RARRAY(rb_argv)->ptr[i] = str_taint(str_new2(argv[i]));
+ RARRAY(rb_argv)->ptr[i-1] = str_taint(str_new2(argv[i]));
}
RARRAY(rb_argv)->len = argc-1;