diff options
-rw-r--r-- | ChangeLog | 21 | ||||
-rw-r--r-- | MANIFEST | 1 | ||||
-rw-r--r-- | array.c | 3 | ||||
-rw-r--r-- | bignum.c | 2 | ||||
-rw-r--r-- | class.c | 12 | ||||
-rw-r--r-- | configure | 2 | ||||
-rw-r--r-- | configure.in | 2 | ||||
-rw-r--r-- | eval.c | 113 | ||||
-rw-r--r-- | ext/dbm/dbm.c | 64 | ||||
-rw-r--r-- | ext/extmk.rb.in | 2 | ||||
-rw-r--r-- | ext/gtk/gtk.c | 1149 | ||||
-rw-r--r-- | ext/gtk/testa.rb | 18 | ||||
-rw-r--r-- | ext/gtk/testd.rb | 11 | ||||
-rw-r--r-- | file.c | 13 | ||||
-rw-r--r-- | gc.c | 3 | ||||
-rw-r--r-- | hash.c | 3 | ||||
-rw-r--r-- | intern.h | 3 | ||||
-rw-r--r-- | io.c | 76 | ||||
-rw-r--r-- | io.h | 2 | ||||
-rw-r--r-- | lib/date2.rb | 49 | ||||
-rw-r--r-- | lib/mkmf.rb | 2 | ||||
-rw-r--r-- | lib/tempfile.rb | 1 | ||||
-rw-r--r-- | missing/strchr.c | 45 | ||||
-rw-r--r-- | node.h | 3 | ||||
-rw-r--r-- | numeric.c | 2 | ||||
-rw-r--r-- | object.c | 19 | ||||
-rw-r--r-- | re.c | 5 | ||||
-rw-r--r-- | regex.c | 98 | ||||
-rw-r--r-- | ruby.c | 36 | ||||
-rw-r--r-- | ruby.h | 4 | ||||
-rw-r--r-- | sample/goodfriday.rb | 48 | ||||
-rw-r--r-- | string.c | 3 |
32 files changed, 838 insertions, 977 deletions
@@ -1,5 +1,26 @@ +Wed Mar 11 02:14:17 1998 Yukihiro Matsumoto <matz@netlab.co.jp> + + * io.c (io_gets): handle normal case specially for speed. + + * eval.c (rb_disable_super): function to disable superclass's + method explicitly. + + * eval.c (rb_eval): inherits previous method definition's + NOEX_UNDEF-ness, if exists. + + * class.c (rb_define_method): disables superclass's overriding + method by default. + +Tue Mar 10 00:03:24 1998 Yukihiro Matsumoto <matz@netlab.co.jp> + + * ruby.c (load_file): understands multiple options in #! line. + + * regex.c (re_compile_pattern): support for [:alpha:] etc. + Mon Mar 9 16:53:51 1998 Yukihiro Matsumoto <matz@netlab.co.jp> + * io.h (GetOpenFile): embed io_check_closed in GetOpenFile. + * sprintf.c (f_sprintf): zero padding failed for negative integers. @@ -142,6 +142,7 @@ missing/nt.c missing/nt.h missing/setenv.c missing/strcasecmp.c +missing/strchr.c missing/strdup.c missing/strerror.c missing/strftime.c @@ -1229,7 +1229,4 @@ Init_Array() rb_define_method(cArray, "nitems", ary_nitems, 0); cmp = rb_intern("<=>"); - - /* turn on premitive flag for the class */ - FL_SET(cArray, FL_PRIMITIVE); } @@ -1248,6 +1248,4 @@ Init_Bignum() rb_define_method(cBignum, "to_f", big_to_f, 0); rb_define_method(cBignum, "abs", big_abs, 0); rb_define_method(cBignum, "size", big_size, 0); - - FL_SET(cBignum, FL_PRIMITIVE); } @@ -98,9 +98,6 @@ rb_define_class_id(id, super) RBASIC(klass)->klass = singleton_class_new(RBASIC(super)->klass); singleton_class_attached(RBASIC(klass)->klass, klass); rb_funcall(super, rb_intern("inherited"), 1, klass); - if (FL_TEST(super, FL_PRIMITIVE)) { - FL_SET(klass, FL_PRIMITIVE); - } return klass; } @@ -414,7 +411,7 @@ rb_define_method_id(klass, name, func, argc) VALUE (*func)(); int argc; { - rb_add_method(klass, name, NEW_CFUNC(func, argc), NOEX_PUBLIC); + rb_add_method(klass, name, NEW_CFUNC(func,argc), NOEX_PUBLIC|NOEX_CFUNC); } void @@ -427,8 +424,8 @@ rb_define_method(klass, name, func, argc) ID id = rb_intern(name); rb_add_method(klass, id, NEW_CFUNC(func, argc), - (name[0] == 'i' && id == rb_intern("initialize"))? - NOEX_PRIVATE:NOEX_PUBLIC); + ((name[0] == 'i' && id == rb_intern("initialize"))? + NOEX_PRIVATE:NOEX_PUBLIC)|NOEX_CFUNC); } void @@ -438,7 +435,8 @@ rb_define_private_method(klass, name, func, argc) VALUE (*func)(); int argc; { - rb_add_method(klass, rb_intern(name), NEW_CFUNC(func, argc), NOEX_PRIVATE); + rb_add_method(klass, rb_intern(name), NEW_CFUNC(func, argc), + NOEX_PRIVATE|NOEX_CFUNC); } void @@ -2553,7 +2553,7 @@ echo "$ac_t""$ac_cv_func_memcmp_clean" 1>&6 test $ac_cv_func_memcmp_clean = no && LIBOBJS="$LIBOBJS memcmp.o" for ac_func in dup2 setenv memmove mkdir strcasecmp strerror strftime\ - strstr strtoul strdup crypt flock + strchr strstr strtoul strdup crypt flock do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 echo "configure:2560: checking for $ac_func" >&5 diff --git a/configure.in b/configure.in index 54202cfd92..a6749dd952 100644 --- a/configure.in +++ b/configure.in @@ -110,7 +110,7 @@ AC_FUNC_ALLOCA AC_FUNC_VFORK AC_FUNC_MEMCMP AC_REPLACE_FUNCS(dup2 setenv memmove mkdir strcasecmp strerror strftime\ - strstr strtoul strdup crypt flock) + strchr strstr strtoul strdup crypt flock) AC_CHECK_FUNCS(fmod killpg random wait4 waitpid syscall getcwd\ truncate chsize times utimes fcntl lockf setitimer\ setruid seteuid setreuid setrgid setegid setregid\ @@ -35,8 +35,6 @@ char *strrchr(); #endif #endif -extern VALUE cData; - VALUE cProc; static VALUE cBinding; static VALUE proc_call _((VALUE,VALUE)); @@ -106,20 +104,6 @@ rb_add_method(klass, mid, node, noex) st_insert(RCLASS(klass)->m_tbl, mid, body); } -void -rb_remove_method(klass, mid) - VALUE klass; - ID mid; -{ - NODE *body; - - if (!st_delete(RCLASS(klass)->m_tbl, &mid, &body)) { - NameError("method `%s' not defined in %s", - rb_id2name(mid), rb_class2name(klass)); - } - rb_clear_cache_by_id(mid); -} - static NODE* search_method(klass, id, origin) VALUE klass, *origin; @@ -207,6 +191,68 @@ rb_alias(klass, name, def) } static void +remove_method(klass, mid) + VALUE klass; + ID mid; +{ + NODE *body; + + if (!st_delete(RCLASS(klass)->m_tbl, &mid, &body)) { + NameError("method `%s' not defined in %s", + rb_id2name(mid), rb_class2name(klass)); + } + rb_clear_cache_by_id(mid); +} + +void +rb_remove_method(klass, name) + VALUE klass; + char *name; +{ + remove_method(klass, rb_intern(name)); +} + +void +rb_disable_super(klass, name) + VALUE klass; + char *name; +{ + VALUE origin; + NODE *body; + ID mid = rb_intern(name); + + body = search_method(klass, mid, &origin); + if (!body || !body->nd_body) { + NameError("undefined method `%s' for `%s'", + rb_id2name(mid), rb_class2name(klass)); + } + if (origin == klass) { + body->nd_noex |= NOEX_UNDEF; + } + else { + rb_clear_cache_by_id(mid); + rb_add_method(the_class, mid, 0, NOEX_UNDEF); + } +} + +void +rb_enable_super(klass, name) + VALUE klass; + char *name; +{ + VALUE origin; + NODE *body; + ID mid = rb_intern(name); + + body = search_method(klass, mid, &origin); + if (!body || !body->nd_body || origin != klass) { + NameError("undefined method `%s' for `%s'", + rb_id2name(mid), rb_class2name(klass)); + } + body->nd_noex &= ~NOEX_UNDEF; +} + +static void rb_export_method(klass, name, noex) VALUE klass; ID name; @@ -243,7 +289,7 @@ method_boundp(klass, id, ex) int noex; if (rb_get_method_body(&klass, &id, &noex)) { - if (ex && noex == NOEX_PRIVATE) + if (ex && noex & NOEX_PRIVATE) return FALSE; return TRUE; } @@ -1083,7 +1129,7 @@ static VALUE mod_remove_method(mod, name) VALUE mod, name; { - rb_remove_method(mod, rb_to_id(name)); + remove_method(mod, rb_to_id(name)); return mod; } @@ -1818,6 +1864,10 @@ rb_eval(self, node) int argc; VALUE *argv; /* used in SETUP_ARGS */ TMP_PROTECT; + if (the_frame->last_class == 0) { + NameError("superclass method `%s' disabled", + rb_id2name(the_frame->last_func)); + } if (nd_type(node) == NODE_ZSUPER) { argc = the_frame->argc; argv = the_frame->argv; @@ -1830,7 +1880,7 @@ rb_eval(self, node) PUSH_ITER(the_iter->iter?ITER_PRE:ITER_NOT); result = rb_call(RCLASS(the_frame->last_class)->super, self, - the_frame->last_func, argc, argv, 1); + the_frame->last_func, argc, argv, 3); POP_ITER(); } break; @@ -2157,6 +2207,9 @@ rb_eval(self, node) else { noex = NOEX_PUBLIC; } + if (body && origin == the_class && body->nd_noex & NOEX_UNDEF) { + noex |= NOEX_UNDEF; + } rb_add_method(the_class, node->nd_mid, node->nd_defn, noex); if (FL_TEST(the_scope,SCOPE_MODFUNC)) { rb_add_method(rb_singleton_class(the_class), @@ -2201,7 +2254,8 @@ rb_eval(self, node) Warning("redefine %s", rb_id2name(node->nd_mid)); } rb_clear_cache_by_id(node->nd_mid); - rb_add_method(klass, node->nd_mid, node->nd_defn, NOEX_PUBLIC); + rb_add_method(klass, node->nd_mid, node->nd_defn, + NOEX_PUBLIC|(body?body->nd_noex&NOEX_UNDEF:0)); rb_funcall(recv, rb_intern("singleton_method_added"), 1, INT2FIX(node->nd_mid)); result = Qnil; @@ -3084,13 +3138,13 @@ stack_length() } static VALUE -rb_call0(klass, recv, id, argc, argv, scope, body) +rb_call0(klass, recv, id, argc, argv, body, nosuper) VALUE klass, recv; ID id; int argc; /* OK */ VALUE *argv; /* OK */ - int scope; NODE *body; + int nosuper; { NODE *b2; /* OK */ volatile VALUE result = Qnil; @@ -3114,7 +3168,7 @@ rb_call0(klass, recv, id, argc, argv, scope, body) PUSH_ITER(itr); PUSH_FRAME(); the_frame->last_func = id; - the_frame->last_class = klass; + the_frame->last_class = nosuper?0:klass; the_frame->argc = argc; the_frame->argv = argv; @@ -3393,14 +3447,17 @@ rb_call(klass, recv, mid, argc, argv, scope) body = ent->method; } else if ((body = rb_get_method_body(&klass, &id, &noex)) == 0) { + if (scope == 3) { + NameError("super: no superclass method `%s'", rb_id2name(mid)); + } return rb_undefined(recv, mid, argc, argv, scope==2?CSTAT_VCALL:0); } /* receiver specified form for private method */ - if (noex == NOEX_PRIVATE && scope == 0) + if (noex & NOEX_PRIVATE && scope == 0) return rb_undefined(recv, mid, argc, argv, CSTAT_NOEX); - return rb_call0(klass, recv, id, argc, argv, scope, body); + return rb_call0(klass, recv, id, argc, argv, body, noex & NOEX_UNDEF); } VALUE @@ -4323,7 +4380,7 @@ Init_eval() rb_define_method(cModule, "private_class_method", mod_private_method, -1); rb_define_method(cModule, "module_eval", mod_module_eval, 1); - rb_define_method(cModule, "remove_method", mod_remove_method, -1); + rb_define_method(cModule, "remove_method", mod_remove_method, 1); rb_define_method(cModule, "undef_method", mod_undef_method, 1); rb_define_method(cModule, "alias_method", mod_alias_method, 2); @@ -4761,7 +4818,7 @@ method_call(argc, argv, method) Data_Get_Struct(method, struct METHOD, data); PUSH_ITER(iterator_p()?ITER_PRE:ITER_NOT); result = rb_call0(data->klass, data->recv, data->id, - argc, argv, 1, data->body); + argc, argv, data->body, 0); POP_ITER(); return result; } @@ -4833,7 +4890,7 @@ Init_Proc() rb_define_global_function("proc", f_lambda, 0); rb_define_global_function("lambda", f_lambda, 0); rb_define_global_function("binding", f_binding, 0); - cBinding = rb_define_class("Binding", cData); + cBinding = rb_define_class("Binding", cObject); cMethod = rb_define_class("Method", cObject); rb_undef_method(CLASS_OF(cMethod), "new"); diff --git a/ext/dbm/dbm.c b/ext/dbm/dbm.c index 74f8bc5d7a..cd630fdb27 100644 --- a/ext/dbm/dbm.c +++ b/ext/dbm/dbm.c @@ -240,6 +240,65 @@ fdbm_clear(obj) } static VALUE +fdbm_invert(obj) + VALUE obj; +{ + datum key, val; + struct dbmdata *dbmp; + DBM *dbm; + VALUE keystr, valstr; + VALUE hash = hash_new(); + + GetDBM(obj, dbmp); + dbm = dbmp->di_dbm; + for (key = dbm_firstkey(dbm); key.dptr; key = dbm_nextkey(dbm)) { + val = dbm_fetch(dbm, key); + keystr = str_taint(str_new(key.dptr, key.dsize)); + valstr = str_taint(str_new(val.dptr, val.dsize)); + hash_aset(hash, valstr, keystr); + } + return obj; +} + +static VALUE +each_pair(obj) + VALUE obj; +{ + return rb_funcall(obj, rb_intern("each_pair"), 0, 0); +} + +static VALUE fdbm_store _((VALUE,VALUE,VALUE)); + +static VALUE +update_i(pair, dbm) + VALUE pair, dbm; +{ + Check_Type(pair, T_ARRAY); + if (RARRAY(pair)->len < 2) { + ArgError("pair must be [key, value]"); + } + fdbm_store(dbm, RARRAY(pair)->ptr[0], RARRAY(pair)->ptr[1]); + return Qnil; +} + +static VALUE +fdbm_update(obj, other) + VALUE obj, other; +{ + rb_iterate(each_pair, other, update_i, obj); + return obj; +} + +static VALUE +fdbm_replace(obj, other) + VALUE obj, other; +{ + fdbm_clear(obj); + rb_iterate(each_pair, other, update_i, obj); + return obj; +} + +static VALUE fdbm_store(obj, keystr, valstr) VALUE obj, keystr, valstr; { @@ -487,6 +546,7 @@ Init_dbm() rb_include_module(cDBM, mEnumerable); rb_define_singleton_method(cDBM, "open", fdbm_s_open, -1); + rb_define_singleton_method(cDBM, "new", fdbm_s_open, -1); rb_define_method(cDBM, "close", fdbm_close, 0); rb_define_method(cDBM, "[]", fdbm_fetch, 1); rb_define_method(cDBM, "[]=", fdbm_store, 2); @@ -505,6 +565,10 @@ Init_dbm() rb_define_method(cDBM, "delete", fdbm_delete, 1); rb_define_method(cDBM, "delete_if", fdbm_delete_if, 0); rb_define_method(cDBM, "clear", fdbm_clear, 0); + rb_define_method(cDBM,"invert", fdbm_invert, 0); + rb_define_method(cDBM,"update", fdbm_update, 1); + rb_define_method(cDBM,"replace", fdbm_replace, 1); + rb_define_method(cDBM, "include?", fdbm_has_key, 1); rb_define_method(cDBM, "has_key?", fdbm_has_key, 1); rb_define_method(cDBM, "has_value?", fdbm_has_value, 1); diff --git a/ext/extmk.rb.in b/ext/extmk.rb.in index 066e744944..f8f69973e9 100644 --- a/ext/extmk.rb.in +++ b/ext/extmk.rb.in @@ -1,6 +1,6 @@ #! /usr/local/bin/ruby -$".push 'mkmf.rb' +$".push 'mkmf.rb' #" if ARGV[0] == 'static' $force_static = TRUE diff --git a/ext/gtk/gtk.c b/ext/gtk/gtk.c index 69e9b793eb..df0cf58eb1 100644 --- a/ext/gtk/gtk.c +++ b/ext/gtk/gtk.c @@ -120,7 +120,7 @@ static VALUE gdkAtom; static VALUE gdkColorContext; static VALUE gdkEvent; -ID id_gtkdata, id_relatives, id_call, id_init; +ID id_gtkdata, id_relatives, id_call; static void gobj_mark(); @@ -175,7 +175,7 @@ add_relative(obj, relative) { VALUE ary = rb_ivar_get(obj, id_relatives); - if (TYPE(ary) != T_ARRAY) { + if (NIL_P(ary) || TYPE(ary) != T_ARRAY) { ary = ary_new(); rb_ivar_set(obj, id_relatives, ary); } @@ -228,7 +228,7 @@ make_gobject(klass, gtkobj) VALUE obj = obj_alloc(klass); set_gobject(obj, gtkobj); - rb_funcall(obj, id_init, 0, 0); + rb_funcall(obj, rb_intern("initialize"), 0, 0); return obj; } @@ -255,10 +255,7 @@ make_gstyle(style) VALUE obj; gtk_style_ref(style); - obj = Data_Wrap_Struct(gStyle, 0, gtk_style_unref, style); - rb_funcall(obj, id_init, 0, 0); - - return obj; + return Data_Wrap_Struct(gStyle, 0, gtk_style_unref, style); } static GtkStyle* @@ -283,11 +280,8 @@ make_gtkacceltbl(tbl) VALUE obj; gtk_accelerator_table_ref(tbl); - obj = Data_Wrap_Struct(gAcceleratorTable, 0, - gtk_accelerator_table_unref, tbl); - rb_funcall(obj, id_init, 0, 0); - - return obj; + return Data_Wrap_Struct(gAcceleratorTable, 0, + gtk_accelerator_table_unref, tbl); } static GtkAcceleratorTable* @@ -310,9 +304,7 @@ static VALUE make_gtkprevinfo(info) GtkPreviewInfo *info; { - VALUE obj = Data_Wrap_Struct(gPreviewInfo, 0, 0, info); - rb_funcall(obj, id_init, 0, 0); - return obj; + return Data_Wrap_Struct(gPreviewInfo, 0, 0, info); } static GtkPreviewInfo* @@ -332,35 +324,6 @@ get_gtkprevinfo(value) } static VALUE -make_ttips(klass, tips) - VALUE klass; - GtkTooltips *tips; -{ - VALUE obj; - - gtk_tooltips_ref(tips); - obj = Data_Wrap_Struct(klass, 0, gtk_tooltips_unref, tips); - rb_funcall(obj, id_init, 0, 0); - return obj; -} - -static GtkTooltips* -get_ttips(tips) - VALUE tips; -{ - GtkTooltips *gtips; - - if (NIL_P(tips)) return NULL; - - if (!obj_is_instance_of(tips, gTooltips)) { - TypeError("not a GtkTooltips"); - } - Data_Get_Struct(tips, GtkTooltips, gtips); - - return gtips; -} - -static VALUE make_gdkfont(font) GdkFont *font; { @@ -368,7 +331,7 @@ make_gdkfont(font) gdk_font_ref(font); obj = Data_Wrap_Struct(gdkFont, 0, gdk_font_unref, font); - rb_funcall(obj, id_init, 0, 0); + return obj; } @@ -409,7 +372,6 @@ make_tobj(obj, klass, size) copy = xmalloc(size); memcpy(copy, obj, size); data = Data_Wrap_Struct(klass, 0, free, copy); - rb_funcall(data, id_init, 0, 0); return data; } @@ -510,15 +472,15 @@ make_gdkdraw(klass, draw, ref, unref) void (*unref)(); { (*ref)(draw); - return Data_Wrap_Struct(gdkWindow, 0, unref, draw); + return Data_Wrap_Struct(klass, 0, unref, draw); } #define make_gdkwindow2(c,w) make_gdkdraw(c,(w),gdk_window_ref,gdk_window_unref) #define make_gdkbitmap2(c,w) make_gdkdraw(c,(w),gdk_bitmap_ref,gdk_bitmap_unref) #define make_gdkpixmap2(c,w) make_gdkdraw(c,(w),gdk_pixmap_ref,gdk_pixmap_unref) -#define make_gdkwindow(w) make_gdkwindow0(gdkWindow,(w)) -#define make_gdkbitmap(w) make_gdkbitmap0(gdkBitmap,(w)) -#define make_gdkpixmap(w) make_gdkpixmap0(gdkPixmap,(w)) +#define make_gdkwindow(w) make_gdkwindow2(gdkWindow,(w)) +#define make_gdkbitmap(w) make_gdkbitmap2(gdkBitmap,(w)) +#define make_gdkpixmap(w) make_gdkpixmap2(gdkPixmap,(w)) static GdkWindow* get_gdkdraw(draw, klass, kname) @@ -1110,7 +1072,7 @@ arg_set_value(arg, value) #endif #ifdef GTK_TYPE_TOOLTIPS else if (arg->type == GTK_TYPE_TOOLTIPS) - GTK_VALUE_BOXED(*arg) = get_ttips(value); + GTK_VALUE_BOXED(*arg) = get_widget(value); #endif else goto unsupported; @@ -1225,9 +1187,8 @@ gobj_sig_connect(argc, argv, self) VALUE self; { VALUE sig, data; - GtkWidget *widget = get_widget(self); ID id = 0; - int n; + int i; rb_scan_args(argc, argv, "11", &sig, &data); Check_Type(sig, T_STRING); @@ -1237,11 +1198,12 @@ gobj_sig_connect(argc, argv, self) } data = assoc_new(data, INT2NUM(id)); add_relative(self, data); - n = gtk_signal_connect_interp(GTK_OBJECT(widget), RSTRING(sig)->ptr, + i = gtk_signal_connect_interp(GTK_OBJECT(get_widget(self)), + RSTRING(sig)->ptr, signal_callback, (gpointer)data, NULL, 0); - return INT2FIX(n); + return INT2FIX(i); } static VALUE @@ -1251,9 +1213,8 @@ gobj_sig_connect_after(argc, argv, self) VALUE self; { VALUE sig, data; - GtkWidget *widget = get_widget(self); ID id = 0; - int n; + int i; rb_scan_args(argc, argv, "11", &sig, &data); Check_Type(sig, T_STRING); @@ -1262,19 +1223,20 @@ gobj_sig_connect_after(argc, argv, self) id = rb_intern(RSTRING(sig)->ptr); } add_relative(self, data); - n = gtk_signal_connect_interp(GTK_OBJECT(widget), RSTRING(sig)->ptr, + i = gtk_signal_connect_interp(GTK_OBJECT(get_widget(self)), + RSTRING(sig)->ptr, signal_callback, (gpointer)data, NULL, 1); - return INT2FIX(n); + return INT2FIX(i); } static VALUE cont_bwidth(self, width) VALUE self, width; { - GtkWidget *widget = get_widget(self); - gtk_container_border_width(GTK_CONTAINER(widget), NUM2INT(width)); + gtk_container_border_width(GTK_CONTAINER(get_widget(self)), + NUM2INT(width)); return self; } @@ -1282,9 +1244,7 @@ static VALUE cont_add(self, other) VALUE self, other; { - GtkWidget *widget = get_widget(self); - - gtk_container_add(GTK_CONTAINER(widget), get_widget(other)); + gtk_container_add(GTK_CONTAINER(get_widget(self)), get_widget(other)); return self; } @@ -1292,9 +1252,7 @@ static VALUE cont_disable_resize(self) VALUE self; { - GtkWidget *widget = get_widget(self); - - gtk_container_disable_resize(GTK_CONTAINER(widget)); + gtk_container_disable_resize(GTK_CONTAINER(get_widget(self))); return self; } @@ -1302,9 +1260,7 @@ static VALUE cont_enable_resize(self) VALUE self; { - GtkWidget *widget = get_widget(self); - - gtk_container_enable_resize(GTK_CONTAINER(widget)); + gtk_container_enable_resize(GTK_CONTAINER(get_widget(self))); return self; } @@ -1312,9 +1268,7 @@ static VALUE cont_block_resize(self) VALUE self; { - GtkWidget *widget = get_widget(self); - - gtk_container_block_resize(GTK_CONTAINER(widget)); + gtk_container_block_resize(GTK_CONTAINER(get_widget(self))); return self; } @@ -1322,9 +1276,7 @@ static VALUE cont_unblock_resize(self) VALUE self; { - GtkWidget *widget = get_widget(self); - - gtk_container_unblock_resize(GTK_CONTAINER(widget)); + gtk_container_unblock_resize(GTK_CONTAINER(get_widget(self))); return self; } @@ -1332,9 +1284,7 @@ static VALUE cont_need_resize(self) VALUE self; { - GtkWidget *widget = get_widget(self); - - gtk_container_need_resize(GTK_CONTAINER(widget)); + gtk_container_need_resize(GTK_CONTAINER(get_widget(self))); return self; } @@ -1345,13 +1295,12 @@ cont_foreach(argc, argv, self) VALUE self; { VALUE callback; - GtkWidget *widget = get_widget(self); rb_scan_args(argc, argv, "01", &callback); if (NIL_P(callback)) { callback = f_lambda(); } - gtk_container_foreach(GTK_CONTAINER(widget), + gtk_container_foreach(GTK_CONTAINER(get_widget(self)), exec_callback, (gpointer)callback); return self; } @@ -1367,9 +1316,7 @@ static VALUE cont_each(self) VALUE self; { - GtkWidget *widget = get_widget(self); - - gtk_container_foreach(GTK_CONTAINER(widget), + gtk_container_foreach(GTK_CONTAINER(get_widget(self)), yield_callback, 0); return self; } @@ -1378,9 +1325,7 @@ static VALUE cont_focus(self, direction) VALUE self, direction; { - GtkWidget *widget = get_widget(self); - - gtk_container_focus(GTK_CONTAINER(widget), + gtk_container_focus(GTK_CONTAINER(get_widget(self)), (GtkDirectionType)NUM2INT(direction)); return self; } @@ -1399,10 +1344,9 @@ static VALUE cont_children(self, direction) VALUE self, direction; { - GtkWidget *widget = get_widget(self); VALUE ary = ary_new(); - gtk_container_foreach(GTK_CONTAINER(widget), + gtk_container_foreach(GTK_CONTAINER(get_widget(self)), cont_children_callback, (gpointer)ary); return ary; @@ -1423,9 +1367,7 @@ static VALUE align_set(self, xalign, yalign, xscale, yscale) VALUE self, xalign, yalign, xscale, yscale; { - GtkWidget *widget = get_widget(self); - - gtk_alignment_set(GTK_ALIGNMENT(widget), + gtk_alignment_set(GTK_ALIGNMENT(get_widget(self)), NUM2DBL(xalign), NUM2DBL(yalign), NUM2DBL(xscale), NUM2DBL(yscale)); return self; @@ -1435,9 +1377,7 @@ static VALUE misc_set_align(self, xalign, yalign) VALUE self, xalign, yalign; { - GtkWidget *widget = get_widget(self); - - gtk_misc_set_alignment(GTK_MISC(widget), + gtk_misc_set_alignment(GTK_MISC(get_widget(self)), NUM2DBL(xalign), NUM2DBL(yalign)); return self; } @@ -1446,9 +1386,7 @@ static VALUE misc_set_padding(self, xpad, ypad) VALUE self, xpad, ypad; { - GtkWidget *widget = get_widget(self); - - gtk_misc_set_padding(GTK_MISC(widget), + gtk_misc_set_padding(GTK_MISC(get_widget(self)), NUM2DBL(xpad), NUM2DBL(ypad)); return self; } @@ -1466,9 +1404,7 @@ static VALUE arrow_set(self, arrow_t, shadow_t) VALUE self, arrow_t, shadow_t; { - GtkWidget *widget = get_widget(self); - - gtk_arrow_set(GTK_ARROW(widget), + gtk_arrow_set(GTK_ARROW(get_widget(self)), (GtkArrowType)NUM2INT(arrow_t), (GtkShadowType)NUM2INT(shadow_t)); return self; @@ -1486,9 +1422,7 @@ static VALUE frame_set_label(self, label) VALUE self, label; { - GtkWidget *widget = get_widget(self); - - gtk_frame_set_label(GTK_FRAME(widget), STR2CSTR(label)); + gtk_frame_set_label(GTK_FRAME(get_widget(self)), STR2CSTR(label)); return self; } @@ -1496,9 +1430,7 @@ static VALUE frame_set_label_align(self, xalign, yalign) VALUE self, xalign, yalign; { - GtkWidget *widget = get_widget(self); - - gtk_frame_set_label_align(GTK_FRAME(widget), + gtk_frame_set_label_align(GTK_FRAME(get_widget(self)), NUM2DBL(xalign), NUM2DBL(yalign)); @@ -1509,9 +1441,7 @@ static VALUE frame_set_shadow_type(self, type) VALUE self, type; { - GtkWidget *widget = get_widget(self); - - gtk_frame_set_shadow_type(GTK_FRAME(widget), + gtk_frame_set_shadow_type(GTK_FRAME(get_widget(self)), (GtkShadowType)NUM2INT(type)); return self; } @@ -1532,9 +1462,7 @@ static VALUE aframe_set(self, xalign, yalign, ratio, obey_child) VALUE self, xalign, yalign, ratio, obey_child; { - GtkWidget *widget = get_widget(self); - - gtk_aspect_frame_set(GTK_ASPECT_FRAME(widget), + gtk_aspect_frame_set(GTK_ASPECT_FRAME(get_widget(self)), NUM2DBL(xalign), NUM2DBL(yalign), NUM2DBL(ratio), RTEST(obey_child)); return self; @@ -1717,8 +1645,8 @@ static VALUE widget_event(self, event) VALUE self, event; { - int n = gtk_widget_event(get_widget(self), get_gdkevent(event)); - return NUM2INT(n); + int i = gtk_widget_event(get_widget(self), get_gdkevent(event)); + return NUM2INT(i); } static VALUE @@ -1749,9 +1677,7 @@ static VALUE widget_visible(self) VALUE self; { - GtkWidget *widget = get_widget(self); - - if (GTK_WIDGET_VISIBLE(widget)) + if (GTK_WIDGET_VISIBLE(get_widget(self))) return TRUE; return FALSE; } @@ -1776,18 +1702,18 @@ static VALUE widget_intersect(self, area, intersect) VALUE self, area, intersect; { - int n = gtk_widget_intersect(get_widget(self), + int i = gtk_widget_intersect(get_widget(self), get_gdkrectangle(area), get_gdkrectangle(intersect)); - return NUM2INT(n); + return NUM2INT(i); } static VALUE widget_basic(self) VALUE self; { - int n = gtk_widget_basic(get_widget(self)); - return NUM2INT(n); + int i = gtk_widget_basic(get_widget(self)); + return NUM2INT(i); } static VALUE @@ -1970,8 +1896,8 @@ static VALUE widget_get_events(self) VALUE self; { - int n = gtk_widget_get_events(get_widget(self)); - return NUM2INT(n); + int i = gtk_widget_get_events(get_widget(self)); + return NUM2INT(i); } static VALUE @@ -2133,30 +2059,27 @@ static VALUE bbox_get_spacing(self) VALUE self; { - GtkWidget *widget = get_widget(self); - int n = gtk_button_box_get_spacing(GTK_BUTTON_BOX(widget)); + int i = gtk_button_box_get_spacing(GTK_BUTTON_BOX(get_widget(self))); - return INT2FIX(n); + return INT2FIX(i); } static VALUE bbox_get_layout(self) VALUE self; { - GtkWidget *widget = get_widget(self); - int n = gtk_button_box_get_layout(GTK_BUTTON_BOX(widget)); + int i = gtk_button_box_get_layout(GTK_BUTTON_BOX(get_widget(self))); - return INT2FIX(n); + return INT2FIX(i); } static VALUE bbox_get_child_size(self) VALUE self; { - GtkWidget *widget = get_widget(self); int min_width, max_width; - gtk_button_box_get_child_size(GTK_BUTTON_BOX(widget), + gtk_button_box_get_child_size(GTK_BUTTON_BOX(get_widget(self)), &min_width, &max_width); return assoc_new(INT2FIX(min_width), INT2FIX(max_width)); } @@ -2165,10 +2088,9 @@ static VALUE bbox_get_child_ipadding(self) VALUE self; { - GtkWidget *widget = get_widget(self); int ipad_x, ipad_y; - gtk_button_box_get_child_ipadding(GTK_BUTTON_BOX(widget), + gtk_button_box_get_child_ipadding(GTK_BUTTON_BOX(get_widget(self)), &ipad_x, &ipad_y); return assoc_new(INT2FIX(ipad_x), INT2FIX(ipad_y)); } @@ -2177,9 +2099,7 @@ static VALUE bbox_set_spacing(self, spacing) VALUE self, spacing; { - GtkWidget *widget = get_widget(self); - - gtk_button_box_set_spacing(GTK_BUTTON_BOX(widget), + gtk_button_box_set_spacing(GTK_BUTTON_BOX(get_widget(self)), NUM2INT(spacing)); return self; } @@ -2188,9 +2108,7 @@ static VALUE bbox_set_layout(self, layout) VALUE self, layout; { - GtkWidget *widget = get_widget(self); - - gtk_button_box_set_layout(GTK_BUTTON_BOX(widget), + gtk_button_box_set_layout(GTK_BUTTON_BOX(get_widget(self)), NUM2INT(layout)); return self; } @@ -2199,9 +2117,7 @@ static VALUE bbox_set_child_size(self, min_width, max_width) VALUE self, min_width, max_width; { - GtkWidget *widget = get_widget(self); - - gtk_button_box_set_child_size(GTK_BUTTON_BOX(widget), + gtk_button_box_set_child_size(GTK_BUTTON_BOX(get_widget(self)), NUM2INT(min_width), NUM2INT(max_width)); return self; @@ -2211,9 +2127,7 @@ static VALUE bbox_set_child_ipadding(self, ipad_x, ipad_y) VALUE self, ipad_x, ipad_y; { - GtkWidget *widget = get_widget(self); - - gtk_button_box_set_child_ipadding(GTK_BUTTON_BOX(widget), + gtk_button_box_set_child_ipadding(GTK_BUTTON_BOX(get_widget(self)), NUM2INT(ipad_x), NUM2INT(ipad_y)); return self; @@ -2250,9 +2164,8 @@ static VALUE clist_set_border(self, border) VALUE self, border; { - GtkWidget *widget = get_widget(self); - - gtk_clist_set_border(GTK_CLIST(widget), (GtkShadowType)NUM2INT(border)); + gtk_clist_set_border(GTK_CLIST(get_widget(self)), + (GtkShadowType)NUM2INT(border)); return self; } @@ -2260,9 +2173,7 @@ static VALUE clist_set_sel_mode(self, mode) VALUE self, mode; { - GtkWidget *widget = get_widget(self); - - gtk_clist_set_selection_mode(GTK_CLIST(widget), + gtk_clist_set_selection_mode(GTK_CLIST(get_widget(self)), (GtkSelectionMode)NUM2INT(mode)); return self; } @@ -2271,9 +2182,7 @@ static VALUE clist_set_policy(self, vpolicy, hpolicy) VALUE self, vpolicy, hpolicy; { - GtkWidget *widget = get_widget(self); - - gtk_clist_set_policy(GTK_CLIST(widget), + gtk_clist_set_policy(GTK_CLIST(get_widget(self)), (GtkPolicyType)NUM2INT(vpolicy), (GtkPolicyType)NUM2INT(hpolicy)); return self; @@ -2283,9 +2192,7 @@ static VALUE clist_freeze(self) VALUE self; { - GtkWidget *widget = get_widget(self); - - gtk_clist_freeze(GTK_CLIST(widget)); + gtk_clist_freeze(GTK_CLIST(get_widget(self))); return self; } @@ -2293,9 +2200,7 @@ static VALUE clist_thaw(self) VALUE self; { - GtkWidget *widget = get_widget(self); - - gtk_clist_thaw(GTK_CLIST(widget)); + gtk_clist_thaw(GTK_CLIST(get_widget(self))); return self; } @@ -2303,9 +2208,7 @@ static VALUE clist_col_titles_show(self) VALUE self; { - GtkWidget *widget = get_widget(self); - - gtk_clist_column_titles_show(GTK_CLIST(widget)); + gtk_clist_column_titles_show(GTK_CLIST(get_widget(self))); return self; } @@ -2313,9 +2216,7 @@ static VALUE clist_col_titles_hide(self) VALUE self; { - GtkWidget *widget = get_widget(self); - - gtk_clist_column_titles_hide(GTK_CLIST(widget)); + gtk_clist_column_titles_hide(GTK_CLIST(get_widget(self))); return self; } @@ -2323,9 +2224,8 @@ static VALUE clist_col_title_active(self, column) VALUE self, column; { - GtkWidget *widget = get_widget(self); - - gtk_clist_column_title_active(GTK_CLIST(widget), NUM2INT(column)); + gtk_clist_column_title_active(GTK_CLIST(get_widget(self)), + NUM2INT(column)); return self; } @@ -2333,9 +2233,8 @@ static VALUE clist_col_title_passive(self, column) VALUE self, column; { - GtkWidget *widget = get_widget(self); - - gtk_clist_column_title_passive(GTK_CLIST(widget), NUM2INT(column)); + gtk_clist_column_title_passive(GTK_CLIST(get_widget(self)), + NUM2INT(column)); return self; } @@ -2343,9 +2242,7 @@ static VALUE clist_col_titles_active(self) VALUE self; { - GtkWidget *widget = get_widget(self); - - gtk_clist_column_titles_active(GTK_CLIST(widget)); + gtk_clist_column_titles_active(GTK_CLIST(get_widget(self))); return self; } @@ -2353,9 +2250,7 @@ static VALUE clist_col_titles_passive(self) VALUE self; { - GtkWidget *widget = get_widget(self); - - gtk_clist_column_titles_passive(GTK_CLIST(widget)); + gtk_clist_column_titles_passive(GTK_CLIST(get_widget(self))); return self; } @@ -2363,9 +2258,7 @@ static VALUE clist_set_col_title(self, col, title) VALUE self, col, title; { - GtkWidget *widget = get_widget(self); - - gtk_clist_set_column_title(GTK_CLIST(widget), + gtk_clist_set_column_title(GTK_CLIST(get_widget(self)), NUM2INT(col), STR2CSTR(title)); return self; @@ -2375,9 +2268,7 @@ static VALUE clist_set_col_wigdet(self, col, win) VALUE self, col, win; { - GtkWidget *widget = get_widget(self); - - gtk_clist_set_column_widget(GTK_CLIST(widget), + gtk_clist_set_column_widget(GTK_CLIST(get_widget(self)), NUM2INT(col), get_widget(win)); return self; @@ -2387,9 +2278,7 @@ static VALUE clist_set_col_just(self, col, just) VALUE self, col, just; { - GtkWidget *widget = get_widget(self); - - gtk_clist_set_column_justification(GTK_CLIST(widget), + gtk_clist_set_column_justification(GTK_CLIST(get_widget(self)), NUM2INT(col), (GtkJustification)NUM2INT(just)); return self; @@ -2399,9 +2288,7 @@ static VALUE clist_set_col_width(self, col, width) VALUE self, col, width; { - GtkWidget *widget = get_widget(self); - - gtk_clist_set_column_width(GTK_CLIST(widget), + gtk_clist_set_column_width(GTK_CLIST(get_widget(self)), NUM2INT(col), NUM2INT(width)); return self; } @@ -2410,9 +2297,7 @@ static VALUE clist_set_row_height(self, height) VALUE self, height; { - GtkWidget *widget = get_widget(self); - - gtk_clist_set_row_height(GTK_CLIST(widget), NUM2INT(height)); + gtk_clist_set_row_height(GTK_CLIST(get_widget(self)), NUM2INT(height)); return self; } @@ -2420,9 +2305,7 @@ static VALUE clist_moveto(self, row, col, row_align, col_align) VALUE self, row, col, row_align, col_align; { - GtkWidget *widget = get_widget(self); - - gtk_clist_moveto(GTK_CLIST(widget), + gtk_clist_moveto(GTK_CLIST(get_widget(self)), NUM2INT(row), NUM2INT(col), NUM2INT(row_align), NUM2INT(col_align)); return self; @@ -2432,9 +2315,7 @@ static VALUE clist_set_text(self, row, col, text) VALUE self, row, col, text; { - GtkWidget *widget = get_widget(self); - - gtk_clist_set_text(GTK_CLIST(widget), + gtk_clist_set_text(GTK_CLIST(get_widget(self)), NUM2INT(row), NUM2INT(col), STR2CSTR(text)); return self; @@ -2444,9 +2325,7 @@ static VALUE clist_set_pixmap(self, row, col, pixmap, mask) VALUE self, row, col, pixmap, mask; { - GtkWidget *widget = get_widget(self); - - gtk_clist_set_pixmap(GTK_CLIST(widget), + gtk_clist_set_pixmap(GTK_CLIST(get_widget(self)), NUM2INT(row), NUM2INT(col), get_gdkpixmap(pixmap), (GdkBitmap*)get_gdkpixmap(mask)); @@ -2457,9 +2336,7 @@ static VALUE clist_set_pixtext(self, row, col, text, spacing, pixmap, mask) VALUE self, row, col, text, spacing, pixmap, mask; { - GtkWidget *widget = get_widget(self); - - gtk_clist_set_pixtext(GTK_CLIST(widget), + gtk_clist_set_pixtext(GTK_CLIST(get_widget(self)), NUM2INT(row), NUM2INT(col), STR2CSTR(text), NUM2INT(spacing), @@ -2472,9 +2349,7 @@ static VALUE clist_set_foreground(self, row, color) VALUE self, row, color; { - GtkWidget *widget = get_widget(self); - - gtk_clist_set_foreground(GTK_CLIST(widget), + gtk_clist_set_foreground(GTK_CLIST(get_widget(self)), NUM2INT(row), get_gdkcolor(color)); return self; } @@ -2483,9 +2358,7 @@ static VALUE clist_set_background(self, row, color) VALUE self, row, color; { - GtkWidget *widget = get_widget(self); - - gtk_clist_set_background(GTK_CLIST(widget), + gtk_clist_set_background(GTK_CLIST(get_widget(self)), NUM2INT(row), get_gdkcolor(color)); return self; } @@ -2494,9 +2367,7 @@ static VALUE clist_set_shift(self, row, col, verticle, horizontal) VALUE self, row, col, verticle, horizontal; { - GtkWidget *widget = get_widget(self); - - gtk_clist_set_shift(GTK_CLIST(widget), + gtk_clist_set_shift(GTK_CLIST(get_widget(self)), NUM2INT(row), NUM2INT(col), NUM2INT(verticle), NUM2INT(horizontal)); return self; @@ -2506,12 +2377,11 @@ static VALUE clist_append(self, text) VALUE self, text; { - GtkWidget *widget = get_widget(self); char **buf; int i, len; Check_Type(text, T_ARRAY); - len = GTK_CLIST(widget)->columns; + len = GTK_CLIST(get_widget(self))->columns; if (len > RARRAY(text)->len) { ArgError("text too short"); } @@ -2520,7 +2390,7 @@ clist_append(self, text) Check_Type(RARRAY(text)->ptr[i], T_STRING); buf[i] = RSTRING(RARRAY(text)->ptr[i])->ptr; } - i = gtk_clist_append(GTK_CLIST(widget), buf); + i = gtk_clist_append(GTK_CLIST(get_widget(self)), buf); return INT2FIX(i); } @@ -2528,12 +2398,11 @@ static VALUE clist_insert(self, row, text) VALUE self, row, text; { - GtkWidget *widget = get_widget(self); char **buf; int i, len; Check_Type(text, T_ARRAY); - len = GTK_CLIST(widget)->columns; + len = GTK_CLIST(get_widget(self))->columns; if (len > RARRAY(text)->len) { ArgError("text too short"); } @@ -2542,7 +2411,7 @@ clist_insert(self, row, text) Check_Type(RARRAY(text)->ptr[i], T_STRING); buf[i] = RSTRING(RARRAY(text)->ptr[i])->ptr; } - gtk_clist_insert(GTK_CLIST(widget), NUM2INT(row), buf); + gtk_clist_insert(GTK_CLIST(get_widget(self)), NUM2INT(row), buf); return self; } @@ -2550,9 +2419,7 @@ static VALUE clist_remove(self, row) VALUE self, row; { - GtkWidget *widget = get_widget(self); - - gtk_clist_remove(GTK_CLIST(widget), NUM2INT(row)); + gtk_clist_remove(GTK_CLIST(get_widget(self)), NUM2INT(row)); return self; } @@ -2560,10 +2427,9 @@ static VALUE clist_set_row_data(self, row, data) VALUE self, row, data; { - GtkWidget *widget = get_widget(self); - add_relative(self, data); - gtk_clist_set_row_data(GTK_CLIST(widget), NUM2INT(row), (gpointer)data); + gtk_clist_set_row_data(GTK_CLIST(get_widget(self)), + NUM2INT(row), (gpointer)data); return self; } @@ -2571,18 +2437,16 @@ static VALUE clist_get_row_data(self, row) VALUE self, row; { - GtkWidget *widget = get_widget(self); - - return (VALUE)gtk_clist_get_row_data(GTK_CLIST(widget), NUM2INT(row)); + return (VALUE)gtk_clist_get_row_data(GTK_CLIST(get_widget(self)), + NUM2INT(row)); } static VALUE clist_select_row(self, row, col) VALUE self, row, col; { - GtkWidget *widget = get_widget(self); - - gtk_clist_select_row(GTK_CLIST(widget), NUM2INT(row), NUM2INT(col)); + gtk_clist_select_row(GTK_CLIST(get_widget(self)), + NUM2INT(row), NUM2INT(col)); return self; } @@ -2590,9 +2454,8 @@ static VALUE clist_unselect_row(self, row, col) VALUE self, row, col; { - GtkWidget *widget = get_widget(self); - - gtk_clist_unselect_row(GTK_CLIST(widget), NUM2INT(row), NUM2INT(col)); + gtk_clist_unselect_row(GTK_CLIST(get_widget(self)), + NUM2INT(row), NUM2INT(col)); return self; } @@ -2600,9 +2463,7 @@ static VALUE clist_clear(self) VALUE self; { - GtkWidget *widget = get_widget(self); - - gtk_clist_clear(GTK_CLIST(widget)); + gtk_clist_clear(GTK_CLIST(get_widget(self))); return self; } @@ -2618,9 +2479,7 @@ static VALUE gwin_set_policy(self, shrink, grow, auto_shrink) VALUE self, shrink, grow, auto_shrink; { - GtkWidget *widget = get_widget(self); - - gtk_window_set_policy(GTK_WINDOW(widget), + gtk_window_set_policy(GTK_WINDOW(get_widget(self)), RTEST(shrink), RTEST(grow), RTEST(auto_shrink)); return self; } @@ -2629,9 +2488,7 @@ static VALUE gwin_set_title(self, title) VALUE self, title; { - GtkWidget *widget = get_widget(self); - - gtk_window_set_title(GTK_WINDOW(widget), STR2CSTR(title)); + gtk_window_set_title(GTK_WINDOW(get_widget(self)), STR2CSTR(title)); return self; } @@ -2639,9 +2496,7 @@ static VALUE gwin_position(self, pos) VALUE self, pos; { - GtkWidget *widget = get_widget(self); - - gtk_window_position(GTK_WINDOW(widget), + gtk_window_position(GTK_WINDOW(get_widget(self)), (GtkWindowPosition)NUM2INT(pos)); return self; @@ -2651,9 +2506,7 @@ static VALUE gwin_set_wmclass(self, wmclass1, wmclass2) VALUE self, wmclass1, wmclass2; { - GtkWidget *widget = get_widget(self); - - gtk_window_set_wmclass(GTK_WINDOW(widget), + gtk_window_set_wmclass(GTK_WINDOW(get_widget(self)), STR2CSTR(wmclass1), STR2CSTR(wmclass2)); return self; @@ -2663,9 +2516,7 @@ static VALUE gwin_set_focus(self, win) VALUE self, win; { - GtkWidget *widget = get_widget(self); - - gtk_window_set_focus(GTK_WINDOW(widget), get_widget(win)); + gtk_window_set_focus(GTK_WINDOW(get_widget(self)), get_widget(win)); return self; } @@ -2673,9 +2524,7 @@ static VALUE gwin_set_default(self, win) VALUE self, win; { - GtkWidget *widget = get_widget(self); - - gtk_window_set_default(GTK_WINDOW(widget), get_widget(win)); + gtk_window_set_default(GTK_WINDOW(get_widget(self)), get_widget(win)); return self; } @@ -2683,9 +2532,7 @@ static VALUE gwin_add_accel(self, accel) VALUE self, accel; { - GtkWidget *widget = get_widget(self); - - gtk_window_add_accelerator_table(GTK_WINDOW(widget), + gtk_window_add_accelerator_table(GTK_WINDOW(get_widget(self)), get_gtkacceltbl(accel)); return self; } @@ -2694,9 +2541,7 @@ static VALUE gwin_rm_accel(self, accel) VALUE self, accel; { - GtkWidget *widget = get_widget(self); - - gtk_window_remove_accelerator_table(GTK_WINDOW(widget), + gtk_window_remove_accelerator_table(GTK_WINDOW(get_widget(self)), get_gtkacceltbl(accel)); return self; } @@ -2721,10 +2566,8 @@ static VALUE fsel_set_fname(self, fname) VALUE self, fname; { - GtkWidget *widget = get_widget(self); - Check_Type(fname, T_STRING); - gtk_file_selection_set_filename(GTK_FILE_SELECTION(widget), + gtk_file_selection_set_filename(GTK_FILE_SELECTION(get_widget(self)), RSTRING(fname)->ptr); return self; @@ -2734,10 +2577,9 @@ static VALUE fsel_get_fname(self) VALUE self; { - GtkWidget *widget = get_widget(self); gchar *fname; - fname = gtk_file_selection_get_filename(GTK_FILE_SELECTION(widget)); + fname = gtk_file_selection_get_filename(GTK_FILE_SELECTION(get_widget(self))); return str_new2(fname); } @@ -2746,11 +2588,10 @@ static VALUE fsel_ok_button(self) VALUE self; { - GtkWidget *widget = get_widget(self); VALUE b = rb_iv_get(self, "ok_button"); if (NIL_P(b)) { - GtkWidget *w = GTK_FILE_SELECTION(widget)->ok_button; + GtkWidget *w = GTK_FILE_SELECTION(get_widget(self))->ok_button; b = make_widget(gButton, w); rb_iv_set(self, "ok_button", b); } @@ -2762,11 +2603,10 @@ static VALUE fsel_cancel_button(self) VALUE self; { - GtkWidget *widget = get_widget(self); VALUE b = rb_iv_get(self, "cancel_button"); if (NIL_P(b)) { - GtkWidget *w = GTK_FILE_SELECTION(widget)->cancel_button; + GtkWidget *w = GTK_FILE_SELECTION(get_widget(self))->cancel_button; b = make_widget(gButton, w); rb_iv_set(self, "cancel_button", b); } @@ -2778,11 +2618,10 @@ static VALUE fsel_help_button(self) VALUE self; { - GtkWidget *widget = get_widget(self); VALUE b = rb_iv_get(self, "help_button"); if (NIL_P(b)) { - GtkWidget *w = GTK_FILE_SELECTION(widget)->help_button; + GtkWidget *w = GTK_FILE_SELECTION(get_widget(self))->help_button; b = make_widget(gButton, w); rb_iv_set(self, "help_button", b); } @@ -2810,9 +2649,7 @@ static VALUE list_set_sel_mode(self, mode) VALUE self, mode; { - GtkWidget *widget = get_widget(self); - - gtk_list_set_selection_mode(GTK_LIST(widget), + gtk_list_set_selection_mode(GTK_LIST(get_widget(self)), (GtkSelectionMode)NUM2INT(mode)); return self; } @@ -2821,29 +2658,25 @@ static VALUE list_sel_mode(self) VALUE self; { - GtkWidget *widget = get_widget(self); - - return INT2FIX(GTK_LIST(widget)->selection_mode); + return INT2FIX(GTK_LIST(get_widget(self))->selection_mode); } static VALUE list_selection(self) VALUE self; { - GtkWidget *widget = get_widget(self); - return glist2ary(GTK_LIST(widget)->selection); + return glist2ary(GTK_LIST(get_widget(self))->selection); } static VALUE list_insert_items(self, items, pos) VALUE self, items, pos; { - GtkWidget *widget = get_widget(self); GList *glist; glist = ary2glist(items); - gtk_list_insert_items(GTK_LIST(widget), glist, NUM2INT(pos)); + gtk_list_insert_items(GTK_LIST(get_widget(self)), glist, NUM2INT(pos)); g_list_free(glist); return self; @@ -2853,12 +2686,11 @@ static VALUE list_append_items(self, items) VALUE self, items; { - GtkWidget *widget = get_widget(self); GList *glist; glist = ary2glist(items); - gtk_list_append_items(GTK_LIST(widget), glist); + gtk_list_append_items(GTK_LIST(get_widget(self)), glist); g_list_free(glist); return self; @@ -2868,11 +2700,10 @@ static VALUE list_prepend_items(self, items) VALUE self, items; { - GtkWidget *widget = get_widget(self); GList *glist; glist = ary2glist(items); - gtk_list_prepend_items(GTK_LIST(widget), glist); + gtk_list_prepend_items(GTK_LIST(get_widget(self)), glist); g_list_free(glist); return self; @@ -2882,11 +2713,10 @@ static VALUE list_remove_items(self, items) VALUE self, items; { - GtkWidget *widget = get_widget(self); GList *glist; glist = ary2glist(items); - gtk_list_remove_items(GTK_LIST(widget), glist); + gtk_list_remove_items(GTK_LIST(get_widget(self)), glist); g_list_free(glist); return self; @@ -2896,9 +2726,8 @@ static VALUE list_clear_items(self, start, end) VALUE self, start, end; { - GtkWidget *widget = get_widget(self); - - gtk_list_clear_items(GTK_LIST(widget), NUM2INT(start), NUM2INT(end)); + gtk_list_clear_items(GTK_LIST(get_widget(self)), + NUM2INT(start), NUM2INT(end)); return self; } @@ -2906,9 +2735,7 @@ static VALUE list_select_item(self, pos) VALUE self, pos; { - GtkWidget *widget = get_widget(self); - - gtk_list_select_item(GTK_LIST(widget), NUM2INT(pos)); + gtk_list_select_item(GTK_LIST(get_widget(self)), NUM2INT(pos)); return self; } @@ -2916,9 +2743,7 @@ static VALUE list_unselect_item(self, pos) VALUE self, pos; { - GtkWidget *widget = get_widget(self); - - gtk_list_unselect_item(GTK_LIST(widget), NUM2INT(pos)); + gtk_list_unselect_item(GTK_LIST(get_widget(self)), NUM2INT(pos)); return self; } @@ -2926,9 +2751,7 @@ static VALUE list_select_child(self, child) VALUE self, child; { - GtkWidget *widget = get_widget(self); - - gtk_list_select_child(GTK_LIST(widget), get_widget(child)); + gtk_list_select_child(GTK_LIST(get_widget(self)), get_widget(child)); return self; } @@ -2936,9 +2759,7 @@ static VALUE list_unselect_child(self, child) VALUE self, child; { - GtkWidget *widget = get_widget(self); - - gtk_list_unselect_child(GTK_LIST(widget), get_widget(child)); + gtk_list_unselect_child(GTK_LIST(get_widget(self)), get_widget(child)); return self; } @@ -2946,10 +2767,10 @@ static VALUE list_child_position(self, child) VALUE self, child; { - GtkWidget *widget = get_widget(self); gint pos; - pos = gtk_list_child_position(GTK_LIST(widget), get_widget(child)); + pos = gtk_list_child_position(GTK_LIST(get_widget(self)), + get_widget(child)); return INT2FIX(pos); } @@ -2957,9 +2778,7 @@ static VALUE item_select(self) VALUE self; { - GtkWidget *widget = get_widget(self); - - gtk_item_select(GTK_ITEM(widget)); + gtk_item_select(GTK_ITEM(get_widget(self))); return self; } @@ -2967,9 +2786,7 @@ static VALUE item_deselect(self) VALUE self; { - GtkWidget *widget = get_widget(self); - - gtk_item_deselect(GTK_ITEM(widget)); + gtk_item_deselect(GTK_ITEM(get_widget(self))); return self; } @@ -2977,9 +2794,7 @@ static VALUE item_toggle(self) VALUE self; { - GtkWidget *widget = get_widget(self); - - gtk_item_toggle(GTK_ITEM(widget)); + gtk_item_toggle(GTK_ITEM(get_widget(self))); return self; } @@ -3007,9 +2822,8 @@ static VALUE mshell_append(self, child) VALUE self, child; { - GtkWidget *widget = get_widget(self); - - gtk_menu_shell_append(GTK_MENU_SHELL(widget), get_widget(child)); + gtk_menu_shell_append(GTK_MENU_SHELL(get_widget(self)), + get_widget(child)); return self; } @@ -3017,9 +2831,8 @@ static VALUE mshell_prepend(self, child) VALUE self, child; { - GtkWidget *widget = get_widget(self); - - gtk_menu_shell_prepend(GTK_MENU_SHELL(widget), get_widget(child)); + gtk_menu_shell_prepend(GTK_MENU_SHELL(get_widget(self)), + get_widget(child)); return self; } @@ -3027,9 +2840,8 @@ static VALUE mshell_insert(self, child, pos) VALUE self, child, pos; { - GtkWidget *widget = get_widget(self); - - gtk_menu_shell_insert(GTK_MENU_SHELL(widget), get_widget(child), + gtk_menu_shell_insert(GTK_MENU_SHELL(get_widget(self)), + get_widget(child), NUM2INT(pos)); return self; } @@ -3038,9 +2850,7 @@ static VALUE mshell_deactivate(self) VALUE self; { - GtkWidget *widget = get_widget(self); - - gtk_menu_shell_deactivate(GTK_MENU_SHELL(widget)); + gtk_menu_shell_deactivate(GTK_MENU_SHELL(get_widget(self))); return self; } @@ -3056,9 +2866,7 @@ static VALUE menu_append(self, child) VALUE self, child; { - GtkWidget *widget = get_widget(self); - - gtk_menu_append(GTK_MENU(widget), get_widget(child)); + gtk_menu_append(GTK_MENU(get_widget(self)), get_widget(child)); return self; } @@ -3066,9 +2874,7 @@ static VALUE menu_prepend(self, child) VALUE self, child; { - GtkWidget *widget = get_widget(self); - - gtk_menu_prepend(GTK_MENU(widget), get_widget(child)); + gtk_menu_prepend(GTK_MENU(get_widget(self)), get_widget(child)); return self; } @@ -3076,9 +2882,8 @@ static VALUE menu_insert(self, child, pos) VALUE self, child, pos; { - GtkWidget *widget = get_widget(self); - - gtk_menu_insert(GTK_MENU(widget), get_widget(child), NUM2INT(pos)); + gtk_menu_insert(GTK_MENU(get_widget(self)), + get_widget(child), NUM2INT(pos)); return self; } @@ -3097,7 +2902,6 @@ static VALUE menu_popup(self, pshell, pitem, func, button, activate_time) VALUE self, pshell, pitem, func, button, activate_time; { - GtkWidget *widget = get_widget(self); GtkMenuPositionFunc pfunc = NULL; gpointer data = NULL; @@ -3106,7 +2910,7 @@ menu_popup(self, pshell, pitem, func, button, activate_time) data = (gpointer)func; add_relative(self, func); } - gtk_menu_popup(GTK_MENU(widget), + gtk_menu_popup(GTK_MENU(get_widget(self)), get_widget(pshell), get_widget(pitem), pfunc, data, @@ -3119,9 +2923,7 @@ static VALUE menu_popdown(self) VALUE self; { - GtkWidget *widget = get_widget(self); - - gtk_menu_popdown(GTK_MENU(widget)); + gtk_menu_popdown(GTK_MENU(get_widget(self))); return self; } @@ -3129,20 +2931,16 @@ static VALUE menu_get_active(self) VALUE self; { - GtkWidget *widget = get_widget(self); - GtkWidget *mitem = gtk_menu_get_active(GTK_MENU(widget)); + GtkWidget *mitem = gtk_menu_get_active(GTK_MENU(get_widget(self))); - set_widget(gMenuItem, mitem); - return Qnil; + return make_gobject(gMenuItem, mitem); } static VALUE menu_set_active(self, active) VALUE self, active; { - GtkWidget *widget = get_widget(self); - - gtk_menu_set_active(GTK_MENU(widget), NUM2INT(active)); + gtk_menu_set_active(GTK_MENU(get_widget(self)), NUM2INT(active)); return self; } @@ -3150,9 +2948,7 @@ static VALUE menu_set_acceltbl(self, table) VALUE self, table; { - GtkWidget *widget = get_widget(self); - - gtk_menu_set_accelerator_table(GTK_MENU(widget), + gtk_menu_set_accelerator_table(GTK_MENU(get_widget(self)), get_gtkacceltbl(table)); return self; } @@ -3169,9 +2965,7 @@ static VALUE mbar_append(self, child) VALUE self, child; { - GtkWidget *widget = get_widget(self); - - gtk_menu_bar_append(GTK_MENU_BAR(widget), get_widget(child)); + gtk_menu_bar_append(GTK_MENU_BAR(get_widget(self)), get_widget(child)); return self; } @@ -3179,18 +2973,15 @@ static VALUE mbar_prepend(self, child) VALUE self, child; { - GtkWidget *widget = get_widget(self); - - gtk_menu_bar_prepend(GTK_MENU_BAR(widget), get_widget(child)); + gtk_menu_bar_prepend(GTK_MENU_BAR(get_widget(self)), get_widget(child)); return self; } + static VALUE mbar_insert(self, child, pos) VALUE self, child, pos; { - GtkWidget *widget = get_widget(self); - - gtk_menu_bar_insert(GTK_MENU_BAR(widget), + gtk_menu_bar_insert(GTK_MENU_BAR(get_widget(self)), get_widget(child), NUM2INT(pos)); return self; } @@ -3218,9 +3009,8 @@ static VALUE mitem_set_submenu(self, child) VALUE self, child; { - GtkWidget *widget = get_widget(self); - - gtk_menu_item_set_submenu(GTK_MENU_ITEM(widget), get_widget(child)); + gtk_menu_item_set_submenu(GTK_MENU_ITEM(get_widget(self)), + get_widget(child)); return self; } @@ -3228,9 +3018,7 @@ static VALUE mitem_set_placement(self, place) VALUE self, place; { - GtkWidget *widget = get_widget(self); - - gtk_menu_item_set_placement(GTK_MENU_ITEM(widget), + gtk_menu_item_set_placement(GTK_MENU_ITEM(get_widget(self)), (GtkSubmenuPlacement)NUM2INT(place)); return self; } @@ -3239,9 +3027,7 @@ static VALUE mitem_accelerator_size(self) VALUE self; { - GtkWidget *widget = get_widget(self); - - gtk_menu_item_accelerator_size(GTK_MENU_ITEM(widget)); + gtk_menu_item_accelerator_size(GTK_MENU_ITEM(get_widget(self))); return self; } @@ -3249,10 +3035,9 @@ static VALUE mitem_accelerator_text(self) VALUE self; { - GtkWidget *widget = get_widget(self); char buf[1024]; /* enough? */ - gtk_menu_item_accelerator_text(GTK_MENU_ITEM(widget), buf); + gtk_menu_item_accelerator_text(GTK_MENU_ITEM(get_widget(self)), buf); return str_new2(buf); } @@ -3260,9 +3045,7 @@ static VALUE mitem_configure(self, show_toggle, show_submenu) VALUE self, show_toggle, show_submenu; { - GtkWidget *widget = get_widget(self); - - gtk_menu_item_configure(GTK_MENU_ITEM(widget), + gtk_menu_item_configure(GTK_MENU_ITEM(get_widget(self)), NUM2INT(show_toggle), NUM2INT(show_submenu)); return self; @@ -3272,9 +3055,7 @@ static VALUE mitem_select(self) VALUE self; { - GtkWidget *widget = get_widget(self); - - gtk_menu_item_select(GTK_MENU_ITEM(widget)); + gtk_menu_item_select(GTK_MENU_ITEM(get_widget(self))); return self; } @@ -3282,9 +3063,7 @@ static VALUE mitem_deselect(self) VALUE self; { - GtkWidget *widget = get_widget(self); - - gtk_menu_item_deselect(GTK_MENU_ITEM(widget)); + gtk_menu_item_deselect(GTK_MENU_ITEM(get_widget(self))); return self; } @@ -3292,9 +3071,7 @@ static VALUE mitem_activate(self) VALUE self; { - GtkWidget *widget = get_widget(self); - - gtk_menu_item_activate(GTK_MENU_ITEM(widget)); + gtk_menu_item_activate(GTK_MENU_ITEM(get_widget(self))); return self; } @@ -3302,9 +3079,7 @@ static VALUE mitem_right_justify(self) VALUE self; { - GtkWidget *widget = get_widget(self); - - gtk_menu_item_right_justify(GTK_MENU_ITEM(widget)); + gtk_menu_item_right_justify(GTK_MENU_ITEM(get_widget(self))); return self; } @@ -3331,9 +3106,7 @@ static VALUE cmitem_set_state(self, state) VALUE self, state; { - GtkWidget *widget = get_widget(self); - - gtk_check_menu_item_set_state(GTK_CHECK_MENU_ITEM(widget), + gtk_check_menu_item_set_state(GTK_CHECK_MENU_ITEM(get_widget(self)), NUM2INT(state)); return self; } @@ -3342,9 +3115,7 @@ static VALUE cmitem_set_show_toggle(self, always) VALUE self, always; { - GtkWidget *widget = get_widget(self); - - gtk_check_menu_item_set_show_toggle(GTK_CHECK_MENU_ITEM(widget), + gtk_check_menu_item_set_show_toggle(GTK_CHECK_MENU_ITEM(get_widget(self)), (gboolean)RTEST(always)); return self; } @@ -3353,9 +3124,7 @@ static VALUE cmitem_toggled(self) VALUE self; { - GtkWidget *widget = get_widget(self); - - gtk_check_menu_item_toggled(GTK_CHECK_MENU_ITEM(widget)); + gtk_check_menu_item_toggled(GTK_CHECK_MENU_ITEM(get_widget(self))); return self; } @@ -3400,9 +3169,7 @@ static VALUE rmitem_group(self) VALUE self; { - GtkWidget *widget = get_widget(self); - - return gslist2ary(gtk_radio_menu_item_group(GTK_RADIO_MENU_ITEM(widget))); + return gslist2ary(gtk_radio_menu_item_group(GTK_RADIO_MENU_ITEM(get_widget(self)))); } static VALUE @@ -3417,9 +3184,7 @@ static VALUE note_append_page(self, child, label) VALUE self, child, label; { - GtkWidget *widget = get_widget(self); - - gtk_notebook_append_page(GTK_NOTEBOOK(widget), + gtk_notebook_append_page(GTK_NOTEBOOK(get_widget(self)), get_widget(child), get_widget(label)); return self; @@ -3429,9 +3194,7 @@ static VALUE note_prepend_page(self, child, label) VALUE self, child, label; { - GtkWidget *widget = get_widget(self); - - gtk_notebook_prepend_page(GTK_NOTEBOOK(widget), + gtk_notebook_prepend_page(GTK_NOTEBOOK(get_widget(self)), get_widget(child), get_widget(label)); return self; @@ -3441,9 +3204,7 @@ static VALUE note_insert_page(self, child, label, pos) VALUE self, child, label, pos; { - GtkWidget *widget = get_widget(self); - - gtk_notebook_insert_page(GTK_NOTEBOOK(widget), + gtk_notebook_insert_page(GTK_NOTEBOOK(get_widget(self)), get_widget(child), get_widget(label), NUM2INT(pos)); @@ -3454,9 +3215,7 @@ static VALUE note_remove_page(self, pos) VALUE self, pos; { - GtkWidget *widget = get_widget(self); - - gtk_notebook_remove_page(GTK_NOTEBOOK(widget), NUM2INT(pos)); + gtk_notebook_remove_page(GTK_NOTEBOOK(get_widget(self)), NUM2INT(pos)); return self; } @@ -3464,9 +3223,7 @@ static VALUE note_set_page(self, pos) VALUE self, pos; { - GtkWidget *widget = get_widget(self); - - gtk_notebook_set_page(GTK_NOTEBOOK(widget), NUM2INT(pos)); + gtk_notebook_set_page(GTK_NOTEBOOK(get_widget(self)), NUM2INT(pos)); return self; } @@ -3474,18 +3231,14 @@ static VALUE note_cur_page(self) VALUE self; { - GtkWidget *widget = get_widget(self); - - return INT2FIX(GTK_NOTEBOOK(widget)->cur_page); + return INT2FIX(GTK_NOTEBOOK(get_widget(self))->cur_page); } static VALUE note_next_page(self) VALUE self; { - GtkWidget *widget = get_widget(self); - - gtk_notebook_next_page(GTK_NOTEBOOK(widget)); + gtk_notebook_next_page(GTK_NOTEBOOK(get_widget(self))); return self; } @@ -3493,9 +3246,7 @@ static VALUE note_prev_page(self) VALUE self; { - GtkWidget *widget = get_widget(self); - - gtk_notebook_prev_page(GTK_NOTEBOOK(widget)); + gtk_notebook_prev_page(GTK_NOTEBOOK(get_widget(self))); return self; } @@ -3503,9 +3254,7 @@ static VALUE note_set_tab_pos(self, pos) VALUE self, pos; { - GtkWidget *widget = get_widget(self); - - gtk_notebook_set_tab_pos(GTK_NOTEBOOK(widget), NUM2INT(pos)); + gtk_notebook_set_tab_pos(GTK_NOTEBOOK(get_widget(self)), NUM2INT(pos)); return self; } @@ -3513,18 +3262,14 @@ static VALUE note_tab_pos(self, pos) VALUE self, pos; { - GtkWidget *widget = get_widget(self); - - return INT2FIX(GTK_NOTEBOOK(widget)->tab_pos); + return INT2FIX(GTK_NOTEBOOK(get_widget(self))->tab_pos); } static VALUE note_set_show_tabs(self, show_tabs) VALUE self, show_tabs; { - GtkWidget *widget = get_widget(self); - - gtk_notebook_set_tab_pos(GTK_NOTEBOOK(widget), RTEST(show_tabs)); + gtk_notebook_set_tab_pos(GTK_NOTEBOOK(get_widget(self)), RTEST(show_tabs)); return self; } @@ -3532,18 +3277,14 @@ static VALUE note_show_tabs(self) VALUE self; { - GtkWidget *widget = get_widget(self); - - return GTK_NOTEBOOK(widget)->show_tabs?TRUE:FALSE; + return GTK_NOTEBOOK(get_widget(self))->show_tabs?TRUE:FALSE; } static VALUE note_set_show_border(self, show_border) VALUE self, show_border; { - GtkWidget *widget = get_widget(self); - - gtk_notebook_set_tab_pos(GTK_NOTEBOOK(widget), RTEST(show_border)); + gtk_notebook_set_tab_pos(GTK_NOTEBOOK(get_widget(self)), RTEST(show_border)); return self; } @@ -3551,9 +3292,7 @@ static VALUE note_show_border(self) VALUE self; { - GtkWidget *widget = get_widget(self); - - return GTK_NOTEBOOK(widget)->show_border?TRUE:FALSE; + return GTK_NOTEBOOK(get_widget(self))->show_border?TRUE:FALSE; } static VALUE @@ -3568,10 +3307,9 @@ static VALUE omenu_set_menu(self, child) VALUE self, child; { - GtkWidget *widget = get_widget(self); - rb_iv_set(self, "option_menu", child); - gtk_option_menu_set_menu(GTK_OPTION_MENU(widget), get_widget(child)); + gtk_option_menu_set_menu(GTK_OPTION_MENU(get_widget(self)), + get_widget(child)); return self; } @@ -3586,9 +3324,7 @@ static VALUE omenu_remove_menu(self) VALUE self; { - GtkWidget *widget = get_widget(self); - - gtk_option_menu_remove_menu(GTK_OPTION_MENU(widget)); + gtk_option_menu_remove_menu(GTK_OPTION_MENU(get_widget(self))); return self; } @@ -3596,9 +3332,8 @@ static VALUE omenu_set_history(self, index) VALUE self, index; { - GtkWidget *widget = get_widget(self); - - gtk_option_menu_set_history(GTK_OPTION_MENU(widget), NUM2INT(index)); + gtk_option_menu_set_history(GTK_OPTION_MENU(get_widget(self)), + NUM2INT(index)); return self; } @@ -3615,9 +3350,8 @@ static VALUE image_set(self, val, mask) VALUE self, val, mask; { - GtkWidget *widget = get_widget(self); - - gtk_image_set(GTK_IMAGE(widget), get_gdkimage(val), get_gdkpixmap(mask)); + gtk_image_set(GTK_IMAGE(get_widget(self)), get_gdkimage(val), + get_gdkpixmap(mask)); return self; } @@ -3625,11 +3359,10 @@ static VALUE image_get(self) VALUE self; { - GtkWidget *widget = get_widget(self); GdkImage *val; GdkBitmap *mask; - gtk_image_get(GTK_IMAGE(widget), &val, &mask); + gtk_image_get(GTK_IMAGE(get_widget(self)), &val, &mask); return assoc_new(make_gdkimage(self, val), make_gdkpixmap(mask)); @@ -3647,9 +3380,7 @@ static VALUE preview_size(self, w, h) VALUE self, w, h; { - GtkWidget *widget = get_widget(self); - - gtk_preview_size(GTK_PREVIEW(widget), NUM2INT(w), NUM2INT(h)); + gtk_preview_size(GTK_PREVIEW(get_widget(self)), NUM2INT(w), NUM2INT(h)); return self; } @@ -3657,9 +3388,8 @@ static VALUE preview_put(self, win, gc, srcx, srcy, dstx, dsty, w, h) VALUE self, win, gc, srcx, srcy, dstx, dsty, w, h; { - GtkWidget *widget = get_widget(self); - - gtk_preview_put(GTK_PREVIEW(widget), get_gdkwindow(win), get_gdkgc(gc), + gtk_preview_put(GTK_PREVIEW(get_widget(self)), get_gdkwindow(win), + get_gdkgc(gc), NUM2INT(srcx), NUM2INT(srcy), NUM2INT(dstx), NUM2INT(dsty), NUM2INT(w), NUM2INT(h)); @@ -3670,11 +3400,10 @@ static VALUE preview_put_row(self, src, dst, x, y, w) VALUE self, src, dst, x, y, w; { - GtkWidget *widget = get_widget(self); int width = NUM2INT(w); int dlen = width; - if (GTK_PREVIEW(widget)->type == GTK_PREVIEW_COLOR) { + if (GTK_PREVIEW(get_widget(self))->type == GTK_PREVIEW_COLOR) { dlen *= 3; } Check_Type(src, T_STRING); @@ -3686,7 +3415,7 @@ preview_put_row(self, src, dst, x, y, w) ArgError("dst too short"); } str_modify(dst); - gtk_preview_put_row(GTK_PREVIEW(widget), + gtk_preview_put_row(GTK_PREVIEW(get_widget(self)), RSTRING(src)->ptr, RSTRING(dst)->ptr, NUM2INT(x), NUM2INT(y), width); return self; @@ -3696,11 +3425,10 @@ static VALUE preview_draw_row(self, data, x, y, w) VALUE self, data, x, y, w; { - GtkWidget *widget = get_widget(self); int width = NUM2INT(w); int dlen = width; - if (GTK_PREVIEW(widget)->type == GTK_PREVIEW_COLOR) { + if (GTK_PREVIEW(get_widget(self))->type == GTK_PREVIEW_COLOR) { dlen *= 3; } Check_Type(data, T_STRING); @@ -3708,7 +3436,7 @@ preview_draw_row(self, data, x, y, w) ArgError("data too short"); } - gtk_preview_draw_row(GTK_PREVIEW(widget), RSTRING(data)->ptr, + gtk_preview_draw_row(GTK_PREVIEW(get_widget(self)), RSTRING(data)->ptr, NUM2INT(x), NUM2INT(y), width); return self; } @@ -3717,9 +3445,7 @@ static VALUE preview_set_expand(self, expand) VALUE self, expand; { - GtkWidget *widget = get_widget(self); - - gtk_preview_set_expand(GTK_PREVIEW(widget), NUM2INT(expand)); + gtk_preview_set_expand(GTK_PREVIEW(get_widget(self)), NUM2INT(expand)); return self; } @@ -3792,9 +3518,7 @@ static VALUE pbar_update(self, percentage) VALUE self, percentage; { - GtkWidget *widget = get_widget(self); - - gtk_progress_bar_update(GTK_PROGRESS_BAR(widget), + gtk_progress_bar_update(GTK_PROGRESS_BAR(get_widget(self)), NUM2DBL(percentage)); return self; } @@ -3821,9 +3545,7 @@ static VALUE scwin_set_policy(self, hpolicy, vpolicy) VALUE self, hpolicy, vpolicy; { - GtkWidget *widget = get_widget(self); - - gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(widget), + gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(get_widget(self)), (GtkPolicyType)NUM2INT(hpolicy), (GtkPolicyType)NUM2INT(vpolicy)); return self; @@ -3850,7 +3572,6 @@ tbl_attach(argc, argv, self) VALUE *argv; VALUE self; { - GtkWidget *widget = get_widget(self); VALUE child, left, right, top, bottom; VALUE arg0, arg1, arg2, arg3; int xopt, yopt, xspc, yspc; @@ -3865,7 +3586,7 @@ tbl_attach(argc, argv, self) if (!NIL_P(arg2)) xspc = NUM2INT(arg2); if (!NIL_P(arg3)) yspc = NUM2INT(arg3); - gtk_table_attach(GTK_TABLE(widget), + gtk_table_attach(GTK_TABLE(get_widget(self)), get_widget(child), NUM2INT(left),NUM2INT(right), NUM2INT(top),NUM2INT(bottom), @@ -3878,9 +3599,8 @@ static VALUE tbl_set_row_spacing(self, row, spc) VALUE self, row, spc; { - GtkWidget *widget = get_widget(self); - - gtk_table_set_row_spacing(GTK_TABLE(widget), NUM2INT(row), NUM2INT(spc)); + gtk_table_set_row_spacing(GTK_TABLE(get_widget(self)), + NUM2INT(row), NUM2INT(spc)); return self; } @@ -3888,9 +3608,8 @@ static VALUE tbl_set_col_spacing(self, col, spc) VALUE self, col, spc; { - GtkWidget *widget = get_widget(self); - - gtk_table_set_col_spacing(GTK_TABLE(widget), NUM2INT(col), NUM2INT(spc)); + gtk_table_set_col_spacing(GTK_TABLE(get_widget(self)), + NUM2INT(col), NUM2INT(spc)); return self; } @@ -3898,9 +3617,7 @@ static VALUE tbl_set_row_spacings(self, spc) VALUE self, spc; { - GtkWidget *widget = get_widget(self); - - gtk_table_set_row_spacings(GTK_TABLE(widget), NUM2INT(spc)); + gtk_table_set_row_spacings(GTK_TABLE(get_widget(self)), NUM2INT(spc)); return self; } @@ -3908,9 +3625,7 @@ static VALUE tbl_set_col_spacings(self, spc) VALUE self, spc; { - GtkWidget *widget = get_widget(self); - - gtk_table_set_col_spacings(GTK_TABLE(widget), NUM2INT(spc)); + gtk_table_set_col_spacings(GTK_TABLE(get_widget(self)), NUM2INT(spc)); return self; } @@ -3936,9 +3651,7 @@ static VALUE txt_set_editable(self, editable) VALUE self, editable; { - GtkWidget *widget = get_widget(self); - - gtk_text_set_editable(GTK_TEXT(widget), RTEST(editable)); + gtk_text_set_editable(GTK_TEXT(get_widget(self)), RTEST(editable)); return self; } @@ -3946,9 +3659,7 @@ static VALUE txt_set_adjustment(self, h_adj, v_adj) VALUE self, h_adj, v_adj; { - GtkWidget *widget = get_widget(self); - - gtk_text_set_adjustments(GTK_TEXT(widget), + gtk_text_set_adjustments(GTK_TEXT(get_widget(self)), (GtkAdjustment*)get_gobject(h_adj), (GtkAdjustment*)get_gobject(v_adj)); @@ -3959,9 +3670,7 @@ static VALUE txt_set_point(self, index) VALUE self, index; { - GtkWidget *widget = get_widget(self); - - gtk_text_set_point(GTK_TEXT(widget), NUM2INT(index)); + gtk_text_set_point(GTK_TEXT(get_widget(self)), NUM2INT(index)); return self; } @@ -3969,8 +3678,7 @@ static VALUE txt_get_point(self) VALUE self; { - GtkWidget *widget = get_widget(self); - int index = gtk_text_get_point(GTK_TEXT(widget)); + int index = gtk_text_get_point(GTK_TEXT(get_widget(self))); return INT2FIX(index); } @@ -3979,8 +3687,7 @@ static VALUE txt_get_length(self) VALUE self; { - GtkWidget *widget = get_widget(self); - int len = gtk_text_get_length(GTK_TEXT(widget)); + int len = gtk_text_get_length(GTK_TEXT(get_widget(self))); return INT2FIX(len); } @@ -3989,9 +3696,7 @@ static VALUE txt_freeze(self) VALUE self; { - GtkWidget *widget = get_widget(self); - - gtk_text_freeze(GTK_TEXT(widget)); + gtk_text_freeze(GTK_TEXT(get_widget(self))); return self; } @@ -3999,9 +3704,7 @@ static VALUE txt_thaw(self) VALUE self; { - GtkWidget *widget = get_widget(self); - - gtk_text_thaw(GTK_TEXT(widget)); + gtk_text_thaw(GTK_TEXT(get_widget(self))); return self; } @@ -4009,10 +3712,8 @@ static VALUE txt_insert(self, font, fore, back, str) VALUE self, font, fore, back, str; { - GtkWidget *widget = get_widget(self); - Check_Type(str, T_STRING); - gtk_text_insert(GTK_TEXT(widget), + gtk_text_insert(GTK_TEXT(get_widget(self)), get_gdkfont(font), get_gdkcolor(fore), get_gdkcolor(back), @@ -4026,9 +3727,7 @@ static VALUE txt_backward_delete(self, nchars) VALUE self, nchars; { - GtkWidget *widget = get_widget(self); - - gtk_text_backward_delete(GTK_TEXT(widget), NUM2INT(nchars)); + gtk_text_backward_delete(GTK_TEXT(get_widget(self)), NUM2INT(nchars)); return self; } @@ -4036,9 +3735,7 @@ static VALUE txt_forward_delete(self, nchars) VALUE self, nchars; { - GtkWidget *widget = get_widget(self); - - gtk_text_forward_delete(GTK_TEXT(widget), NUM2INT(nchars)); + gtk_text_forward_delete(GTK_TEXT(get_widget(self)), NUM2INT(nchars)); return self; } @@ -4061,17 +3758,16 @@ tbar_initialize(argc, argv, self) } static VALUE -tbar_append_item(self, text, ttext, icon, func) - VALUE self, text, ttext, icon, func; +tbar_append_item(self, text, ttext, ptext, icon, func) + VALUE self, text, ttext, ptext, icon, func; { - GtkWidget *widget = get_widget(self); - if (NIL_P(func)) { func = f_lambda(); } - gtk_toolbar_append_item(GTK_TOOLBAR(widget), + gtk_toolbar_append_item(GTK_TOOLBAR(get_widget(self)), STR2CSTR(text), STR2CSTR(ttext), + STR2CSTR(ptext), get_widget(icon), exec_callback, (gpointer)func); @@ -4079,17 +3775,16 @@ tbar_append_item(self, text, ttext, icon, func) } static VALUE -tbar_prepend_item(self, text, ttext, icon, func) - VALUE self, text, ttext, icon, func; +tbar_prepend_item(self, text, ttext, ptext, icon, func) + VALUE self, text, ttext, ptext, icon, func; { - GtkWidget *widget = get_widget(self); - if (NIL_P(func)) { func = f_lambda(); } - gtk_toolbar_prepend_item(GTK_TOOLBAR(widget), + gtk_toolbar_prepend_item(GTK_TOOLBAR(get_widget(self)), STR2CSTR(text), STR2CSTR(ttext), + STR2CSTR(ptext), get_widget(icon), exec_callback, (gpointer)func); @@ -4097,17 +3792,16 @@ tbar_prepend_item(self, text, ttext, icon, func) } static VALUE -tbar_insert_item(self, text, ttext, icon, func, pos) - VALUE self, text, ttext, icon, func, pos; +tbar_insert_item(self, text, ttext, ptext, icon, func, pos) + VALUE self, text, ttext, ptext, icon, func, pos; { - GtkWidget *widget = get_widget(self); - if (NIL_P(func)) { func = f_lambda(); } - gtk_toolbar_insert_item(GTK_TOOLBAR(widget), + gtk_toolbar_insert_item(GTK_TOOLBAR(get_widget(self)), STR2CSTR(text), STR2CSTR(ttext), + STR2CSTR(ptext), get_widget(icon), exec_callback, (gpointer)func, @@ -4119,9 +3813,7 @@ static VALUE tbar_append_space(self) VALUE self; { - GtkWidget *widget = get_widget(self); - - gtk_toolbar_append_space(GTK_TOOLBAR(widget)); + gtk_toolbar_append_space(GTK_TOOLBAR(get_widget(self))); return self; } @@ -4129,9 +3821,7 @@ static VALUE tbar_prepend_space(self) VALUE self; { - GtkWidget *widget = get_widget(self); - - gtk_toolbar_prepend_space(GTK_TOOLBAR(widget)); + gtk_toolbar_prepend_space(GTK_TOOLBAR(get_widget(self))); return self; } @@ -4139,9 +3829,7 @@ static VALUE tbar_insert_space(self, pos) VALUE self, pos; { - GtkWidget *widget = get_widget(self); - - gtk_toolbar_insert_space(GTK_TOOLBAR(widget), NUM2INT(pos)); + gtk_toolbar_insert_space(GTK_TOOLBAR(get_widget(self)), NUM2INT(pos)); return self; } @@ -4149,9 +3837,7 @@ static VALUE tbar_set_orientation(self, orientation) VALUE self, orientation; { - GtkWidget *widget = get_widget(self); - - gtk_toolbar_set_orientation(GTK_TOOLBAR(widget), + gtk_toolbar_set_orientation(GTK_TOOLBAR(get_widget(self)), (GtkOrientation)NUM2INT(orientation)); return self; } @@ -4160,9 +3846,7 @@ static VALUE tbar_set_style(self, style) VALUE self, style; { - GtkWidget *widget = get_widget(self); - - gtk_toolbar_set_style(GTK_TOOLBAR(widget), + gtk_toolbar_set_style(GTK_TOOLBAR(get_widget(self)), (GtkToolbarStyle)NUM2INT(style)); return self; } @@ -4171,9 +3855,7 @@ static VALUE tbar_set_space_size(self, size) VALUE self, size; { - GtkWidget *widget = get_widget(self); - - gtk_toolbar_set_space_size(GTK_TOOLBAR(widget), NUM2INT(size)); + gtk_toolbar_set_space_size(GTK_TOOLBAR(get_widget(self)), NUM2INT(size)); return self; } @@ -4181,9 +3863,7 @@ static VALUE tbar_set_tooltips(self, enable) VALUE self, enable; { - GtkWidget *widget = get_widget(self); - - gtk_toolbar_set_tooltips(GTK_TOOLBAR(widget), RTEST(enable)); + gtk_toolbar_set_tooltips(GTK_TOOLBAR(get_widget(self)), RTEST(enable)); return self; } @@ -4191,7 +3871,8 @@ static VALUE ttips_initialize(self) VALUE self; { - return make_ttips(self, gtk_tooltips_new()); + set_widget(self, gtk_tooltips_new()); + return Qnil; } static VALUE @@ -4199,7 +3880,7 @@ ttips_set_tips(self, win, text) VALUE self, win, text; { Check_Type(text, T_STRING); - gtk_tooltips_set_tips(get_ttips(self), + gtk_tooltips_set_tips(GTK_TOOLTIPS(get_widget(self)), get_widget(win), RSTRING(text)->ptr); @@ -4210,7 +3891,7 @@ static VALUE ttips_set_delay(self, delay) VALUE self, delay; { - gtk_tooltips_set_delay(get_ttips(self), NUM2INT(delay)); + gtk_tooltips_set_delay(GTK_TOOLTIPS(get_widget(self)), NUM2INT(delay)); return self; } @@ -4219,7 +3900,7 @@ static VALUE ttips_enable(self) VALUE self; { - gtk_tooltips_enable(get_ttips(self)); + gtk_tooltips_enable(GTK_TOOLTIPS(get_widget(self))); return self; } @@ -4227,7 +3908,7 @@ static VALUE ttips_disable(self) VALUE self; { - gtk_tooltips_enable(get_ttips(self)); + gtk_tooltips_disable(GTK_TOOLTIPS(get_widget(self))); return self; } @@ -4243,9 +3924,7 @@ static VALUE tree_append(self, child) VALUE self, child; { - GtkWidget *widget = get_widget(self); - - gtk_tree_append(GTK_TREE(widget), get_widget(child)); + gtk_tree_append(GTK_TREE(get_widget(self)), get_widget(child)); return self; } @@ -4253,9 +3932,7 @@ static VALUE tree_prepend(self, child) VALUE self, child; { - GtkWidget *widget = get_widget(self); - - gtk_tree_prepend(GTK_TREE(widget), get_widget(child)); + gtk_tree_prepend(GTK_TREE(get_widget(self)), get_widget(child)); return self; } @@ -4263,9 +3940,8 @@ static VALUE tree_insert(self, child, pos) VALUE self, child, pos; { - GtkWidget *widget = get_widget(self); - - gtk_tree_insert(GTK_TREE(widget), get_widget(child), NUM2INT(pos)); + gtk_tree_insert(GTK_TREE(get_widget(self)), get_widget(child), + NUM2INT(pos)); return self; } @@ -4293,9 +3969,8 @@ static VALUE titem_set_subtree(self, subtree) VALUE self, subtree; { - GtkWidget *widget = get_widget(self); - - gtk_tree_item_set_subtree(GTK_TREE_ITEM(widget), get_widget(subtree)); + gtk_tree_item_set_subtree(GTK_TREE_ITEM(get_widget(self)), + get_widget(subtree)); return self; } @@ -4303,9 +3978,7 @@ static VALUE titem_select(self) VALUE self; { - GtkWidget *widget = get_widget(self); - - gtk_tree_item_select(GTK_TREE_ITEM(widget)); + gtk_tree_item_select(GTK_TREE_ITEM(get_widget(self))); return self; } @@ -4313,9 +3986,7 @@ static VALUE titem_deselect(self) VALUE self; { - GtkWidget *widget = get_widget(self); - - gtk_tree_item_deselect(GTK_TREE_ITEM(widget)); + gtk_tree_item_deselect(GTK_TREE_ITEM(get_widget(self))); return self; } @@ -4323,9 +3994,7 @@ static VALUE titem_expand(self) VALUE self; { - GtkWidget *widget = get_widget(self); - - gtk_tree_item_expand(GTK_TREE_ITEM(widget)); + gtk_tree_item_expand(GTK_TREE_ITEM(get_widget(self))); return self; } @@ -4333,9 +4002,7 @@ static VALUE titem_collapse(self) VALUE self; { - GtkWidget *widget = get_widget(self); - - gtk_tree_item_collapse(GTK_TREE_ITEM(widget)); + gtk_tree_item_collapse(GTK_TREE_ITEM(get_widget(self))); return self; } @@ -4361,8 +4028,7 @@ static VALUE vport_get_hadj(self) VALUE self; { - GtkWidget *widget = get_widget(self); - GtkAdjustment *adj = gtk_viewport_get_hadjustment(GTK_VIEWPORT(widget)); + GtkAdjustment *adj = gtk_viewport_get_hadjustment(GTK_VIEWPORT(get_widget(self))); return make_gobject(gAdjustment, GTK_OBJECT(adj)); } @@ -4381,11 +4047,8 @@ static VALUE vport_set_vadj(self, adj) VALUE self, adj; { - GtkWidget *widget = get_widget(self); - GtkObject *adjustment = get_gobject(adj); - - gtk_viewport_set_vadjustment(GTK_VIEWPORT(widget), - GTK_ADJUSTMENT(adjustment)); + gtk_viewport_set_vadjustment(GTK_VIEWPORT(get_widget(self)), + GTK_ADJUSTMENT(get_gobject(adj))); return self; } @@ -4394,11 +4057,8 @@ static VALUE vport_set_hadj(self, adj) VALUE self, adj; { - GtkWidget *widget = get_widget(self); - GtkObject *adjustment = get_gobject(adj); - - gtk_viewport_set_hadjustment(GTK_VIEWPORT(widget), - GTK_ADJUSTMENT(adjustment)); + gtk_viewport_set_hadjustment(GTK_VIEWPORT(get_widget(self)), + GTK_ADJUSTMENT(get_gobject(adj))); return self; } @@ -4407,9 +4067,7 @@ static VALUE vport_set_shadow(self, type) VALUE self, type; { - GtkWidget *widget = get_widget(self); - - gtk_viewport_set_shadow_type(GTK_VIEWPORT(widget), + gtk_viewport_set_shadow_type(GTK_VIEWPORT(get_widget(self)), (GtkShadowType)NUM2INT(type)); return self; @@ -4439,9 +4097,7 @@ static VALUE button_pressed(self) VALUE self; { - GtkWidget *widget = get_widget(self); - - gtk_button_pressed(GTK_BUTTON(widget)); + gtk_button_pressed(GTK_BUTTON(get_widget(self))); return self; } @@ -4449,9 +4105,7 @@ static VALUE button_released(self) VALUE self; { - GtkWidget *widget = get_widget(self); - - gtk_button_released(GTK_BUTTON(widget)); + gtk_button_released(GTK_BUTTON(get_widget(self))); return self; } @@ -4459,9 +4113,7 @@ static VALUE button_clicked(self) VALUE self; { - GtkWidget *widget = get_widget(self); - - gtk_button_clicked(GTK_BUTTON(widget)); + gtk_button_clicked(GTK_BUTTON(get_widget(self))); return self; } @@ -4469,9 +4121,7 @@ static VALUE button_enter(self) VALUE self; { - GtkWidget *widget = get_widget(self); - - gtk_button_enter(GTK_BUTTON(widget)); + gtk_button_enter(GTK_BUTTON(get_widget(self))); return self; } @@ -4479,9 +4129,7 @@ static VALUE button_leave(self) VALUE self; { - GtkWidget *widget = get_widget(self); - - gtk_button_leave(GTK_BUTTON(widget)); + gtk_button_leave(GTK_BUTTON(get_widget(self))); return self; } @@ -4509,9 +4157,8 @@ static VALUE tbtn_set_mode(self, mode) VALUE self, mode; { - GtkWidget *widget = get_widget(self); - - gtk_toggle_button_set_mode(GTK_TOGGLE_BUTTON(widget), NUM2INT(mode)); + gtk_toggle_button_set_mode(GTK_TOGGLE_BUTTON(get_widget(self)), + NUM2INT(mode)); return self; } @@ -4519,9 +4166,8 @@ static VALUE tbtn_set_state(self, state) VALUE self, state; { - GtkWidget *widget = get_widget(self); - - gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(widget), NUM2INT(state)); + gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(get_widget(self)), + NUM2INT(state)); return self; } @@ -4529,9 +4175,7 @@ static VALUE tbtn_toggled(self) VALUE self; { - GtkWidget *widget = get_widget(self); - - gtk_toggle_button_toggled(GTK_TOGGLE_BUTTON(widget)); + gtk_toggle_button_toggled(GTK_TOGGLE_BUTTON(get_widget(self))); return self; } @@ -4627,9 +4271,9 @@ box_pack_start_or_end(argc, argv, self, start) widget = get_widget(self); if (start) - gtk_box_pack_start(GTK_BOX(widget), child, expand, fill, padding); + gtk_box_pack_start(GTK_BOX(get_widget(self)), child, expand, fill, padding); else - gtk_box_pack_end(GTK_BOX(widget), child, expand, fill, padding); + gtk_box_pack_end(GTK_BOX(get_widget(self)), child, expand, fill, padding); } static VALUE @@ -4659,12 +4303,10 @@ vbox_initialize(argc, argv, self) VALUE self; { VALUE homogeneous, spacing; - GtkWidget *widget; rb_scan_args(argc, argv, "02", &homogeneous, &spacing); - widget = gtk_vbox_new(RTEST(homogeneous), NUM2INT(spacing)); - set_widget(self, widget); + set_widget(self, gtk_vbox_new(RTEST(homogeneous), NUM2INT(spacing))); return Qnil; } @@ -4680,9 +4322,7 @@ static VALUE colorsel_set_update_policy(self, policy) VALUE self, policy; { - GtkWidget *widget = get_widget(self); - - gtk_color_selection_set_update_policy(GTK_COLOR_SELECTION(widget), + gtk_color_selection_set_update_policy(GTK_COLOR_SELECTION(get_widget(self)), (GtkUpdateType)NUM2INT(policy)); return self; } @@ -4691,9 +4331,7 @@ static VALUE colorsel_set_opacity(self, opacity) VALUE self, opacity; { - GtkWidget *widget = get_widget(self); - - gtk_color_selection_set_opacity(GTK_COLOR_SELECTION(widget), + gtk_color_selection_set_opacity(GTK_COLOR_SELECTION(get_widget(self)), RTEST(opacity)); return self; } @@ -4702,7 +4340,6 @@ static VALUE colorsel_set_color(self, color) VALUE self, color; { - GtkWidget *widget = get_widget(self); double buf[3]; Check_Type(color, T_ARRAY); @@ -4713,7 +4350,7 @@ colorsel_set_color(self, color) buf[1] = NUM2DBL(RARRAY(color)->ptr[1]); buf[2] = NUM2DBL(RARRAY(color)->ptr[2]); - gtk_color_selection_set_color(GTK_COLOR_SELECTION(widget), buf); + gtk_color_selection_set_color(GTK_COLOR_SELECTION(get_widget(self)), buf); return self; } @@ -4721,11 +4358,10 @@ static VALUE colorsel_get_color(self) VALUE self; { - GtkWidget *widget = get_widget(self); double buf[3]; VALUE ary; - gtk_color_selection_get_color(GTK_COLOR_SELECTION(widget), buf); + gtk_color_selection_get_color(GTK_COLOR_SELECTION(get_widget(self)), buf); ary = ary_new2(3); ary_push(ary, NUM2DBL(buf[0])); ary_push(ary, NUM2DBL(buf[1])); @@ -4758,9 +4394,7 @@ static VALUE pixmap_set(self, val, mask) VALUE self, val, mask; { - GtkWidget *widget = get_widget(self); - - gtk_pixmap_set(GTK_PIXMAP(widget), + gtk_pixmap_set(GTK_PIXMAP(get_widget(self)), get_gdkpixmap(val), get_gdkpixmap(mask)); return self; } @@ -4769,11 +4403,10 @@ static VALUE pixmap_get(self) VALUE self; { - GtkWidget *widget = get_widget(self); GdkPixmap *val; GdkBitmap *mask; - gtk_pixmap_get(GTK_PIXMAP(widget), &val, &mask); + gtk_pixmap_get(GTK_PIXMAP(get_widget(self)), &val, &mask); return assoc_new(make_gdkpixmap(val), make_gdkbitmap(mask)); @@ -4791,9 +4424,8 @@ static VALUE darea_size(self, w, h) VALUE self, w, h; { - GtkWidget *widget = get_widget(self); - - gtk_drawing_area_size(GTK_DRAWING_AREA(widget), NUM2INT(w), NUM2INT(h)); + gtk_drawing_area_size(GTK_DRAWING_AREA(get_widget(self)), + NUM2INT(w), NUM2INT(h)); return self; } @@ -4809,10 +4441,8 @@ static VALUE entry_set_text(self, text) VALUE self, text; { - GtkWidget *widget = get_widget(self); - Check_Type(text, T_STRING); - gtk_entry_set_text(GTK_ENTRY(widget), RSTRING(text)->ptr); + gtk_entry_set_text(GTK_ENTRY(get_widget(self)), RSTRING(text)->ptr); return self; } @@ -4837,9 +4467,7 @@ static VALUE fixed_put(self, win, x, y) VALUE self, win, x, y; { - GtkWidget *widget = get_widget(self); - - gtk_fixed_put(GTK_FIXED(widget), get_widget(win), NUM2INT(x), NUM2INT(y)); + gtk_fixed_put(GTK_FIXED(get_widget(self)), get_widget(win), NUM2INT(x), NUM2INT(y)); return self; } @@ -4847,9 +4475,7 @@ static VALUE fixed_move(self, win, x, y) VALUE self, win, x, y; { - GtkWidget *widget = get_widget(self); - - gtk_fixed_move(GTK_FIXED(widget), get_widget(win), NUM2INT(x), NUM2INT(y)); + gtk_fixed_move(GTK_FIXED(get_widget(self)), get_widget(win), NUM2INT(x), NUM2INT(y)); return self; } @@ -4865,9 +4491,7 @@ static VALUE gamma_gamma(self) VALUE self; { - GtkWidget *widget = get_widget(self); - - return float_new(GTK_GAMMA_CURVE(widget)->gamma); + return float_new(GTK_GAMMA_CURVE(get_widget(self))->gamma); } static VALUE @@ -4882,18 +4506,18 @@ static VALUE hbbox_get_spacing_default(self) VALUE self; { - int n = gtk_hbutton_box_get_spacing_default(); + int i = gtk_hbutton_box_get_spacing_default(); - return INT2FIX(n); + return INT2FIX(i); } static VALUE hbbox_get_layout_default(self) VALUE self; { - int n = gtk_hbutton_box_get_layout_default(); + int i = gtk_hbutton_box_get_layout_default(); - return INT2FIX(n); + return INT2FIX(i); } static VALUE @@ -4924,18 +4548,18 @@ static VALUE vbbox_get_spacing_default(self) VALUE self; { - int n = gtk_vbutton_box_get_spacing_default(); + int i = gtk_vbutton_box_get_spacing_default(); - return INT2FIX(n); + return INT2FIX(i); } static VALUE vbbox_get_layout_default(self) VALUE self; { - int n = gtk_vbutton_box_get_layout_default(); + int i = gtk_vbutton_box_get_layout_default(); - return INT2FIX(n); + return INT2FIX(i); } static VALUE @@ -4961,12 +4585,10 @@ hbox_initialize(argc, argv, self) VALUE self; { VALUE homogeneous, spacing; - GtkWidget *widget; rb_scan_args(argc, argv, "02", &homogeneous, &spacing); - widget = gtk_hbox_new(RTEST(homogeneous), NUM2INT(spacing)); - set_widget(self, widget); + set_widget(self, gtk_hbox_new(RTEST(homogeneous), NUM2INT(spacing))); return Qnil; } @@ -4974,9 +4596,7 @@ static VALUE paned_add1(self, child) VALUE self, child; { - GtkWidget *widget = get_widget(self); - - gtk_paned_add1(GTK_PANED(widget), get_widget(child)); + gtk_paned_add1(GTK_PANED(get_widget(self)), get_widget(child)); return self; } @@ -4984,9 +4604,7 @@ static VALUE paned_add2(self, child) VALUE self, child; { - GtkWidget *widget = get_widget(self); - - gtk_paned_add2(GTK_PANED(widget), get_widget(child)); + gtk_paned_add2(GTK_PANED(get_widget(self)), get_widget(child)); return self; } @@ -4994,9 +4612,7 @@ static VALUE paned_handle_size(self, size) VALUE self, size; { - GtkWidget *widget = get_widget(self); - - gtk_paned_handle_size(GTK_PANED(widget), NUM2INT(size)); + gtk_paned_handle_size(GTK_PANED(get_widget(self)), NUM2INT(size)); return self; } @@ -5004,9 +4620,7 @@ static VALUE paned_gutter_size(self, size) VALUE self, size; { - GtkWidget *widget = get_widget(self); - - gtk_paned_gutter_size(GTK_PANED(widget), NUM2INT(size)); + gtk_paned_gutter_size(GTK_PANED(get_widget(self)), NUM2INT(size)); return self; } @@ -5030,9 +4644,7 @@ static VALUE ruler_set_metric(self, metric) VALUE self, metric; { - GtkWidget *widget = get_widget(self); - - gtk_ruler_set_metric(GTK_RULER(widget), + gtk_ruler_set_metric(GTK_RULER(get_widget(self)), (GtkMetricType)NUM2INT(metric)); return self; @@ -5042,9 +4654,7 @@ static VALUE ruler_set_range(self, lower, upper, position, max_size) VALUE self, lower, upper, position, max_size; { - GtkWidget *widget = get_widget(self); - - gtk_ruler_set_range(GTK_RULER(widget), + gtk_ruler_set_range(GTK_RULER(get_widget(self)), NUM2DBL(lower), NUM2DBL(upper), NUM2DBL(position), NUM2DBL(max_size)); @@ -5055,9 +4665,7 @@ static VALUE ruler_draw_ticks(self) VALUE self; { - GtkWidget *widget = get_widget(self); - - gtk_ruler_draw_ticks(GTK_RULER(widget)); + gtk_ruler_draw_ticks(GTK_RULER(get_widget(self))); return self; } @@ -5065,9 +4673,7 @@ static VALUE ruler_draw_pos(self) VALUE self; { - GtkWidget *widget = get_widget(self); - - gtk_ruler_draw_pos(GTK_RULER(widget)); + gtk_ruler_draw_pos(GTK_RULER(get_widget(self))); return self; } @@ -5098,9 +4704,7 @@ static VALUE range_set_update_policy(self, policy) VALUE self, policy; { - GtkWidget *widget = get_widget(self); - - gtk_range_set_update_policy(GTK_RANGE(widget), + gtk_range_set_update_policy(GTK_RANGE(get_widget(self)), (GtkUpdateType)NUM2INT(policy)); return self; } @@ -5109,10 +4713,8 @@ static VALUE range_set_adj(self, adj) VALUE self, adj; { - GtkWidget *widget = get_widget(self); - - gtk_range_set_adjustment(GTK_RANGE(widget), - (GtkAdjustment*)get_gobject(adj)); + gtk_range_set_adjustment(GTK_RANGE(get_widget(self)), + GTK_ADJUSTMENT(get_gobject(adj))); return self; } @@ -5121,9 +4723,7 @@ static VALUE range_draw_bg(self) VALUE self; { - GtkWidget *widget = get_widget(self); - - gtk_range_draw_background(GTK_RANGE(widget)); + gtk_range_draw_background(GTK_RANGE(get_widget(self))); return self; } @@ -5131,9 +4731,7 @@ static VALUE range_draw_trough(self) VALUE self; { - GtkWidget *widget = get_widget(self); - - gtk_range_draw_trough(GTK_RANGE(widget)); + gtk_range_draw_trough(GTK_RANGE(get_widget(self))); return self; } @@ -5141,9 +4739,7 @@ static VALUE range_draw_slider(self) VALUE self; { - GtkWidget *widget = get_widget(self); - - gtk_range_draw_slider(GTK_RANGE(widget)); + gtk_range_draw_slider(GTK_RANGE(get_widget(self))); return self; } @@ -5151,9 +4747,7 @@ static VALUE range_draw_step_forw(self) VALUE self; { - GtkWidget *widget = get_widget(self); - - gtk_range_draw_step_forw(GTK_RANGE(widget)); + gtk_range_draw_step_forw(GTK_RANGE(get_widget(self))); return self; } @@ -5161,9 +4755,7 @@ static VALUE range_draw_step_back(self) VALUE self; { - GtkWidget *widget = get_widget(self); - - gtk_range_draw_step_back(GTK_RANGE(widget)); + gtk_range_draw_step_back(GTK_RANGE(get_widget(self))); return self; } @@ -5171,9 +4763,7 @@ static VALUE range_slider_update(self) VALUE self; { - GtkWidget *widget = get_widget(self); - - gtk_range_slider_update(GTK_RANGE(widget)); + gtk_range_slider_update(GTK_RANGE(get_widget(self))); return self; } @@ -5181,19 +4771,19 @@ static VALUE range_trough_click(self, x, y) VALUE self, x, y; { - GtkWidget *widget = get_widget(self); + int i; - gtk_range_trough_click(GTK_RANGE(widget), NUM2INT(x), NUM2INT(y)); - return self; + i = gtk_range_trough_click(GTK_RANGE(get_widget(self)), + NUM2INT(x), NUM2INT(y), + 0); + return INT2FIX(i); } static VALUE range_default_hslider_update(self) VALUE self; { - GtkWidget *widget = get_widget(self); - - gtk_range_default_hslider_update(GTK_RANGE(widget)); + gtk_range_default_hslider_update(GTK_RANGE(get_widget(self))); return self; } @@ -5201,9 +4791,7 @@ static VALUE range_default_vslider_update(self) VALUE self; { - GtkWidget *widget = get_widget(self); - - gtk_range_default_vslider_update(GTK_RANGE(widget)); + gtk_range_default_vslider_update(GTK_RANGE(get_widget(self))); return self; } @@ -5211,31 +4799,31 @@ static VALUE range_default_htrough_click(self, x, y) VALUE self, x, y; { - GtkWidget *widget = get_widget(self); + int i; - gtk_range_default_htrough_click(GTK_RANGE(widget), - NUM2INT(x), NUM2INT(y)); - return self; + i = gtk_range_default_htrough_click(GTK_RANGE(get_widget(self)), + NUM2INT(x), NUM2INT(y), + 0); + return INT2FIX(i); } static VALUE -range_default_vtrough_click(self, x, y) - VALUE self, x, y; +range_default_vtrough_click(self, x, y, jump_prec) + VALUE self, x, y, jump_prec; { - GtkWidget *widget = get_widget(self); + int i; - gtk_range_default_vtrough_click(GTK_RANGE(widget), - NUM2INT(x), NUM2INT(y)); - return self; + i = gtk_range_default_vtrough_click(GTK_RANGE(get_widget(self)), + NUM2INT(x), NUM2INT(y), + 0); + return INT2FIX(i); } static VALUE range_default_hmotion(self, xdelta, ydelta) VALUE self, xdelta, ydelta; { - GtkWidget *widget = get_widget(self); - - gtk_range_default_hmotion(GTK_RANGE(widget), + gtk_range_default_hmotion(GTK_RANGE(get_widget(self)), NUM2INT(xdelta), NUM2INT(ydelta)); return self; } @@ -5244,9 +4832,7 @@ static VALUE range_default_vmotion(self, xdelta, ydelta) VALUE self, xdelta, ydelta; { - GtkWidget *widget = get_widget(self); - - gtk_range_default_vmotion(GTK_RANGE(widget), + gtk_range_default_vmotion(GTK_RANGE(get_widget(self)), NUM2INT(xdelta), NUM2INT(ydelta)); return self; } @@ -5255,9 +4841,7 @@ static VALUE range_calc_value(self, pos) VALUE self, pos; { - GtkWidget *widget = get_widget(self); - - gtk_range_calc_value(GTK_RANGE(widget), NUM2INT(pos)); + gtk_range_calc_value(GTK_RANGE(get_widget(self)), NUM2INT(pos)); return self; } @@ -5265,9 +4849,7 @@ static VALUE scale_set_digits(self, digits) VALUE self, digits; { - GtkWidget *widget = get_widget(self); - - gtk_scale_set_digits(GTK_SCALE(widget), NUM2INT(digits)); + gtk_scale_set_digits(GTK_SCALE(get_widget(self)), NUM2INT(digits)); return self; } @@ -5275,9 +4857,8 @@ static VALUE scale_set_draw_value(self, draw_value) VALUE self, draw_value; { - GtkWidget *widget = get_widget(self); - - gtk_scale_set_draw_value(GTK_SCALE(widget), NUM2INT(draw_value)); + gtk_scale_set_draw_value(GTK_SCALE(get_widget(self)), + NUM2INT(draw_value)); return self; } @@ -5285,9 +4866,7 @@ static VALUE scale_set_value_pos(self, pos) VALUE self, pos; { - GtkWidget *widget = get_widget(self); - - gtk_scale_set_value_pos(GTK_SCALE(widget), + gtk_scale_set_value_pos(GTK_SCALE(get_widget(self)), (GtkPositionType)NUM2INT(pos)); return self; } @@ -5296,8 +4875,7 @@ static VALUE scale_value_width(self) VALUE self; { - GtkWidget *widget = get_widget(self); - int i = gtk_scale_value_width(GTK_SCALE(widget)); + int i = gtk_scale_value_width(GTK_SCALE(get_widget(self))); return INT2FIX(i); } @@ -5306,9 +4884,7 @@ static VALUE scale_draw_value(self) VALUE self; { - GtkWidget *widget = get_widget(self); - - gtk_scale_draw_value(GTK_SCALE(widget)); + gtk_scale_draw_value(GTK_SCALE(get_widget(self))); return self; } @@ -6092,36 +5668,36 @@ Init_gtk() gTable = rb_define_class_under(mGtk, "Table", gContainer); gText = rb_define_class_under(mGtk, "Text", gWidget); gToolbar = rb_define_class_under(mGtk, "Toolbar", gContainer); - gTooltips = rb_define_class_under(mGtk, "Tooltips", cObject); + gTooltips = rb_define_class_under(mGtk, "Tooltips", cData); gTree = rb_define_class_under(mGtk, "Tree", gContainer); gTreeItem = rb_define_class_under(mGtk, "TreeItem", gItem); gViewPort = rb_define_class_under(mGtk, "ViewPort", gBin); - gAcceleratorTable = rb_define_class_under(mGtk, "AcceleratorTable", cObject); - gStyle = rb_define_class_under(mGtk, "Style", cObject); - gPreviewInfo = rb_define_class_under(mGtk, "PreviewInfo", cObject); - gRequisiton = rb_define_class_under(mGtk, "Requisiton", cObject); - gAllocation = rb_define_class_under(mGtk, "Allocation", cObject); + 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); + gAllocation = rb_define_class_under(mGtk, "Allocation", cData); mGdk = rb_define_module("Gdk"); - gdkFont = rb_define_class_under(mGdk, "Font", cObject); - gdkColor = rb_define_class_under(mGdk, "Color", cObject); - gdkDrawable = rb_define_class_under(mGdk, "Drawable", cObject); + gdkFont = rb_define_class_under(mGdk, "Font", cData); + gdkColor = rb_define_class_under(mGdk, "Color", cData); + gdkDrawable = rb_define_class_under(mGdk, "Drawable", cData); gdkPixmap = rb_define_class_under(mGdk, "Pixmap", gdkDrawable); gdkBitmap = rb_define_class_under(mGdk, "Bitmap", gdkPixmap); gdkWindow = rb_define_class_under(mGdk, "Window", gdkDrawable); - gdkImage = rb_define_class_under(mGdk, "Image", cObject); - gdkVisual = rb_define_class_under(mGdk, "Visual", cObject); - gdkGC = rb_define_class_under(mGdk, "GC", cObject); - gdkGCValues = rb_define_class_under(mGdk, "GCValues", cObject); - gdkRectangle = rb_define_class_under(mGdk, "Rectangle", cObject); - gdkSegment = rb_define_class_under(mGdk, "Segment", cObject); - gdkWindowAttr = rb_define_class_under(mGdk, "WindowAttr", cObject); - gdkCursor = rb_define_class_under(mGdk, "Cursor", cObject); - gdkAtom = rb_define_class_under(mGdk, "Atom", cObject); - gdkColorContext = rb_define_class_under(mGdk, "ColotContext", cObject); - gdkEvent = rb_define_class_under(mGdk, "gdkEvent", cObject); + gdkImage = rb_define_class_under(mGdk, "Image", cData); + gdkVisual = rb_define_class_under(mGdk, "Visual", cData); + gdkGC = rb_define_class_under(mGdk, "GC", cData); + gdkGCValues = rb_define_class_under(mGdk, "GCValues", cData); + gdkRectangle = rb_define_class_under(mGdk, "Rectangle", cData); + gdkSegment = rb_define_class_under(mGdk, "Segment", cData); + gdkWindowAttr = rb_define_class_under(mGdk, "WindowAttr", cData); + gdkCursor = rb_define_class_under(mGdk, "Cursor", cData); + gdkAtom = rb_define_class_under(mGdk, "Atom", cData); + gdkColorContext = rb_define_class_under(mGdk, "ColotContext", cData); + gdkEvent = rb_define_class_under(mGdk, "gdkEvent", cData); /* GtkObject */ rb_define_method(gObject, "initialize", gobj_initialize, -1); @@ -6652,9 +6228,9 @@ Init_gtk() /* Toolbar */ rb_define_method(gToolbar, "initialize", tbar_initialize, -1); - rb_define_method(gToolbar, "append_item", tbar_append_item, 4); - rb_define_method(gToolbar, "prepend_item", tbar_prepend_item, 4); - rb_define_method(gToolbar, "insert_item", tbar_insert_item, 5); + rb_define_method(gToolbar, "append_item", tbar_append_item, 5); + rb_define_method(gToolbar, "prepend_item", tbar_prepend_item, 5); + rb_define_method(gToolbar, "insert_item", tbar_insert_item, 6); rb_define_method(gToolbar, "append_space", tbar_append_space, 0); rb_define_method(gToolbar, "prepend_space", tbar_prepend_space, 0); rb_define_method(gToolbar, "insert_space", tbar_insert_space, 1); @@ -6793,7 +6369,6 @@ Init_gtk() /* constants */ rb_define_const(mGtk, "VISIBLE", INT2FIX(GTK_VISIBLE)); rb_define_const(mGtk, "MAPPED", INT2FIX(GTK_MAPPED)); - rb_define_const(mGtk, "UNMAPPED", INT2FIX(GTK_UNMAPPED)); rb_define_const(mGtk, "REALIZED", INT2FIX(GTK_REALIZED)); rb_define_const(mGtk, "SENSITIVE", INT2FIX(GTK_SENSITIVE)); rb_define_const(mGtk, "PARENT_SENSITIVE", INT2FIX(GTK_PARENT_SENSITIVE)); @@ -6802,14 +6377,7 @@ Init_gtk() rb_define_const(mGtk, "CAN_FOCUS", INT2FIX(GTK_CAN_FOCUS)); rb_define_const(mGtk, "HAS_DEFAULT", INT2FIX(GTK_HAS_DEFAULT)); rb_define_const(mGtk, "CAN_DEFAULT", INT2FIX(GTK_CAN_DEFAULT)); - rb_define_const(mGtk, "PROPAGATE_STATE", INT2FIX(GTK_PROPAGATE_STATE)); - rb_define_const(mGtk, "ANCHORED", INT2FIX(GTK_ANCHORED)); rb_define_const(mGtk, "BASIC", INT2FIX(GTK_BASIC)); - rb_define_const(mGtk, "USER_STYLE", INT2FIX(GTK_USER_STYLE)); - rb_define_const(mGtk, "REDRAW_PENDING", INT2FIX(GTK_REDRAW_PENDING)); - rb_define_const(mGtk, "RESIZE_PENDING", INT2FIX(GTK_RESIZE_PENDING)); - rb_define_const(mGtk, "RESIZE_NEEDED", INT2FIX(GTK_RESIZE_NEEDED)); - rb_define_const(mGtk, "HAS_SHAPE_MASK", INT2FIX(GTK_HAS_SHAPE_MASK)); /* GtkWindowType */ rb_define_const(mGtk, "WINDOW_TOPLEVEL", INT2FIX(GTK_WINDOW_TOPLEVEL)); @@ -6945,7 +6513,6 @@ Init_gtk() id_call = rb_intern("call"); id_gtkdata = rb_intern("gtkdata"); id_relatives = rb_intern("relatives"); - id_init = rb_intern("initialize"); gtk_idle_add((GtkFunction)idle, 0); g_set_error_handler(gtkerr); diff --git a/ext/gtk/testa.rb b/ext/gtk/testa.rb index 00a6603dfd..4bfa924b64 100644 --- a/ext/gtk/testa.rb +++ b/ext/gtk/testa.rb @@ -13,59 +13,59 @@ window.border_width(0) window.realize toolbar = Gtk::Toolbar::new(Gtk::ORIENTATION_HORIZONTAL, Gtk::TOOLBAR_BOTH) -toolbar.append_item "Horizontal", "Horizontal toolbar layout", +toolbar.append_item "Horizontal", "Horizontal toolbar layout", "Toolbar/Horizontal", Gtk::Pixmap::new(*Gdk::Pixmap::create_from_xpm(window.window, nil, #window.style.bg[Gtk::STATE_NORMAL], "test.xpm")), nil do toolbar.set_orientation Gtk::ORIENTATION_HORIZONTAL end -toolbar.append_item "Vertival", "Vertical toolbar layout", +toolbar.append_item "Vertival", "Vertical toolbar layout", "Toolbar/Vertical", Gtk::Pixmap::new(*Gdk::Pixmap::create_from_xpm(window.window, nil, #window.style.bg[Gtk::STATE_NORMAL], "test.xpm")), nil do toolbar.set_orientation Gtk::ORIENTATION_VERTICAL end toolbar.append_space -toolbar.append_item "Icons", "Only show toolbar icons", +toolbar.append_item "Icons", "Only show toolbar icons", "Toolbar/IconsOnly", Gtk::Pixmap::new(*Gdk::Pixmap::create_from_xpm(window.window, nil, #window.style.bg[Gtk::STATE_NORMAL], "test.xpm")), nil do toolbar.set_style Gtk::TOOLBAR_ICONS end -toolbar.append_item "Text", "Only show toolbar text", +toolbar.append_item "Text", "Only show toolbar text", "Toolbar/TextOnly", Gtk::Pixmap::new(*Gdk::Pixmap::create_from_xpm(window.window, nil,#window.style.bg[Gtk::STATE_NORMAL], "test.xpm")), nil do toolbar.set_style Gtk::TOOLBAR_TEXT end -toolbar.append_item "Both", "Show toolbar icons and text", +toolbar.append_item "Both", "Show toolbar icons and text", "Toolbar/Both", Gtk::Pixmap::new(*Gdk::Pixmap::create_from_xpm(window.window, nil, #window.style.bg[Gtk::STATE_NORMAL], "test.xpm")), nil do toolbar.set_style Gtk::TOOLBAR_BOTH end toolbar.append_space -toolbar.append_item "Small", "User small spaces", +toolbar.append_item "Small", "User small spaces", "Toolbar/Small", Gtk::Pixmap::new(*Gdk::Pixmap::create_from_xpm(window.window, nil,#window.style.bg[Gtk::STATE_NORMAL], "test.xpm")), nil do toolbar.set_space_size 5 end -toolbar.append_item "Big", "User big spaces", +toolbar.append_item "Big", "User big spaces", "Toolbar/Big", Gtk::Pixmap::new(*Gdk::Pixmap::create_from_xpm(window.window, nil,#window.style.bg[Gtk::STATE_NORMAL], "test.xpm")), nil do toolbar.set_space_size 10 end toolbar.append_space -toolbar.append_item "Enable", "Enable tooltips", +toolbar.append_item "Enable", "Enable tooltips",nil, Gtk::Pixmap::new(*Gdk::Pixmap::create_from_xpm(window.window, nil,#window.style.bg[Gtk::STATE_NORMAL], "test.xpm")), nil do toolbar.set_tooltips TRUE end -toolbar.append_item "Disable", "Disable tooltips", +toolbar.append_item "Disable", "Disable tooltips",nil, Gtk::Pixmap::new(*Gdk::Pixmap::create_from_xpm(window.window, nil,#window.style.bg[Gtk::STATE_NORMAL], "test.xpm")), nil do diff --git a/ext/gtk/testd.rb b/ext/gtk/testd.rb index 52ce5db7e0..487c5c505c 100644 --- a/ext/gtk/testd.rb +++ b/ext/gtk/testd.rb @@ -17,11 +17,8 @@ def create_menu(depth) end menu.append menuitem menuitem.show - if depth > 0 - unless submenu - submenu = create_menu(depth - 1) - end - menuitem.set_submenu submenu + if depth > 1 + menuitem.set_submenu create_menu(depth - 1) end end return menu @@ -52,12 +49,12 @@ menubar.append menuitem menuitem.show menuitem = Gtk::MenuItem::new("foo") -menuitem.set_submenu menu +menuitem.set_submenu create_menu(3) menubar.append menuitem menuitem.show menuitem = Gtk::MenuItem::new("bar") -menuitem.set_submenu menu +menuitem.set_submenu create_menu(4) menubar.append menuitem menuitem.show @@ -186,7 +186,6 @@ file_tell(obj) long pos; GetOpenFile(obj, fptr); - io_check_closed(fptr); pos = ftell(fptr->f); if (ferror(fptr->f) != 0) rb_sys_fail(0); @@ -201,7 +200,6 @@ file_seek(obj, offset, ptrname) long pos; GetOpenFile(obj, fptr); - io_check_closed(fptr); pos = fseek(fptr->f, NUM2INT(offset), NUM2INT(ptrname)); if (pos != 0) rb_sys_fail(0); clearerr(fptr->f); @@ -217,7 +215,6 @@ file_set_pos(obj, offset) long pos; GetOpenFile(obj, fptr); - io_check_closed(fptr); pos = fseek(fptr->f, NUM2INT(offset), 0); if (pos != 0) rb_sys_fail(0); clearerr(fptr->f); @@ -232,7 +229,6 @@ file_rewind(obj) OpenFile *fptr; GetOpenFile(obj, fptr); - io_check_closed(fptr); if (fseek(fptr->f, 0L, 0) != 0) rb_sys_fail(0); clearerr(fptr->f); @@ -246,7 +242,6 @@ file_eof(obj) OpenFile *fptr; GetOpenFile(obj, fptr); - io_check_closed(fptr); if (feof(fptr->f) == 0) return FALSE; return TRUE; } @@ -376,7 +371,6 @@ file_lstat(obj) struct stat st; GetOpenFile(obj, fptr); - io_check_closed(fptr); if (lstat(fptr->path, &st) == -1) { rb_sys_fail(fptr->path); } @@ -936,7 +930,6 @@ file_chmod(obj, vmode) GetOpenFile(obj, fptr); #if defined(DJGPP) || defined(__CYGWIN32__) || defined(NT) - io_check_closed(fptr); if (chmod(fptr->path, mode) == -1) rb_sys_fail(fptr->path); #else @@ -996,7 +989,6 @@ file_chown(obj, owner, group) rb_secure(2); GetOpenFile(obj, fptr); #if defined(DJGPP) || defined(__CYGWIN32__) || defined(NT) - io_check_closed(fptr); if (chown(fptr->path, NUM2INT(owner), NUM2INT(group)) == -1) rb_sys_fail(fptr->path); #else @@ -1399,9 +1391,8 @@ file_truncate(obj, len) { OpenFile *fptr; - GetOpenFile(obj, fptr); - rb_secure(2); + GetOpenFile(obj, fptr); if (!(fptr->mode & FMODE_WRITABLE)) { Fail("not opened for writing"); } @@ -1426,9 +1417,9 @@ file_flock(obj, operation) { OpenFile *fptr; + rb_secure(2); GetOpenFile(obj, fptr); - rb_secure(2); if (flock(fileno(fptr->f), NUM2INT(operation)) < 0) { #ifdef EWOULDBLOCK if (errno == EWOULDBLOCK) { @@ -261,9 +261,6 @@ data_object_alloc(klass, datap, dmark, dfree) data->dfree = dfree; data->dmark = dmark; - /* turn on premitive flag for the class */ - FL_SET(klass, FL_PRIMITIVE); - return (VALUE)data; } @@ -1172,7 +1172,4 @@ Init_Hash() rb_define_singleton_method(envtbl,"value?", env_has_value, 1); rb_define_global_const("ENV", envtbl); - - /* turn on premitive flag for the class */ - FL_SET(cHash, FL_PRIMITIVE); } @@ -93,6 +93,9 @@ void IndexError(); void LoadError(); #endif /* eval.c */ +void rb_remove_method _((VALUE, char *)); +void rb_disable_super _((VALUE, char *)); +void rb_enable_super _((VALUE, char *)); void rb_clear_cache _((void)); void rb_alias _((VALUE, ID, ID)); int rb_method_boundp _((VALUE, ID, int)); @@ -119,7 +119,6 @@ void io_readable(fptr) OpenFile *fptr; { - io_check_closed(fptr); if (!(fptr->mode & FMODE_READABLE)) { Raise(eIOError, "not opened for reading"); } @@ -129,7 +128,6 @@ void io_writable(fptr) OpenFile *fptr; { - io_check_closed(fptr); if (!(fptr->mode & FMODE_WRITABLE)) { Raise(eIOError, "not opened for writing"); } @@ -370,16 +368,14 @@ io_gets_method(argc, argv, io) int rslen, rspara = 0; VALUE rs; - if (argc == 0) rs = RS; + if (argc == 0) { + return io_gets(io); + } else { rb_scan_args(argc, argv, "1", &rs); if (!NIL_P(rs)) Check_Type(rs, T_STRING); } - GetOpenFile(io, fptr); - io_readable(fptr); - f = fptr->f; - if (!NIL_P(rs)) { rslen = RSTRING(rs)->len; if (rslen == 0) { @@ -387,6 +383,9 @@ io_gets_method(argc, argv, io) rslen = 2; rspara = 1; } + else if (rslen == 1 && RSTRING(rs)->ptr[0] == '\n') { + return io_gets(io); + } else { rsptr = RSTRING(rs)->ptr; } @@ -397,6 +396,10 @@ io_gets_method(argc, argv, io) } newline = rslen ? rsptr[rslen - 1] : 0777; + GetOpenFile(io, fptr); + io_readable(fptr); + f = fptr->f; + if (rspara) { do { READ_CHECK(f); @@ -488,7 +491,58 @@ VALUE io_gets(io) VALUE io; { - return io_gets_method(0, 0, io); + OpenFile *fptr; + FILE *f; + VALUE str = Qnil; + int c; + char buf[8192]; + char *bp, *bpe = buf + sizeof buf - 3; + int cnt; + int append = 0; + + GetOpenFile(io, fptr); + io_readable(fptr); + f = fptr->f; + + again: + bp = buf; + for (;;) { + READ_CHECK(f); + TRAP_BEG; + c = getc(f); + TRAP_END; + if (c == EOF) break; + if ((*bp++ = c) == '\n') break; + if (bp == bpe) break; + } + cnt = bp - buf; + + if (c == EOF) { + if (!append && cnt == 0) { + str = Qnil; + goto return_gets; + } + } + + if (append) + str_cat(str, buf, cnt); + else + str = str_new(buf, cnt); + + if (c != EOF && RSTRING(str)->ptr[RSTRING(str)->len-1] != '\n') { + append = 1; + goto again; + } + + return_gets: + if (!NIL_P(str)) { + fptr->lineno++; + lineno = INT2FIX(fptr->lineno); + str_taint(str); + } + lastline_set(str); + + return str; } static VALUE @@ -616,7 +670,6 @@ io_isatty(io) OpenFile *fptr; GetOpenFile(io, fptr); - io_check_closed(fptr); if (isatty(fileno(fptr->f)) == 0) return FALSE; return TRUE; @@ -1746,7 +1799,6 @@ f_select(argc, argv, obj) for (i=0; i<RARRAY(read)->len; i++) { Check_Type(RARRAY(read)->ptr[i], T_FILE); GetOpenFile(RARRAY(read)->ptr[i], fptr); - io_check_closed(fptr); FD_SET(fileno(fptr->f), rp); if (READ_DATA_PENDING(fptr->f)) { /* check for buffered data */ pending++; @@ -1769,7 +1821,6 @@ f_select(argc, argv, obj) for (i=0; i<RARRAY(write)->len; i++) { Check_Type(RARRAY(write)->ptr[i], T_FILE); GetOpenFile(RARRAY(write)->ptr[i], fptr); - io_check_closed(fptr); FD_SET(fileno(fptr->f), wp); if (max > fileno(fptr->f)) max = fileno(fptr->f); if (fptr->f2) { @@ -1788,7 +1839,6 @@ f_select(argc, argv, obj) for (i=0; i<RARRAY(except)->len; i++) { Check_Type(RARRAY(except)->ptr[i], T_FILE); GetOpenFile(RARRAY(except)->ptr[i], fptr); - io_check_closed(fptr); FD_SET(fileno(fptr->f), ep); if (max < fileno(fptr->f)) max = fileno(fptr->f); if (fptr->f2) { @@ -2458,7 +2508,5 @@ Init_IO() atexit(pipe_atexit); #endif - /* turn on premitive flag for the class */ - FL_SET(cIO, FL_PRIMITIVE); Init_File(); } @@ -34,7 +34,7 @@ typedef struct OpenFile { #define FMODE_BINMODE 4 #define FMODE_SYNC 8 -#define GetOpenFile(obj,fp) ((fp) = RFILE(obj)->fptr) +#define GetOpenFile(obj,fp) io_check_closed((fp) = RFILE(obj)->fptr) #define MakeOpenFile(obj, fp) do {\ fp = RFILE(obj)->fptr = ALLOC(OpenFile);\ diff --git a/lib/date2.rb b/lib/date2.rb index ffd74fac1b..939e633fe0 100644 --- a/lib/date2.rb +++ b/lib/date2.rb @@ -192,52 +192,3 @@ class Date end end -[3 goodfriday.rb <text/plain; us-ascii (7bit)>] -#! /usr/local/bin/ruby - -# goodfriday.rb: Written by Tadayoshi Funaba 1998 -# $Id: goodfriday.rb,v 1.1 1998/03/08 09:44:44 tadf Exp $ - -require 'date' - -def easter(y) - g = (y % 19) + 1 - c = (y / 100) + 1 - x = (3 * c / 4) - 12 - z = ((8 * c + 5) / 25) - 5 - d = (5 * y / 4) - x - 10 - e = (11 * g + 20 + z - x) % 30 - e += 1 if e == 25 and g > 11 or e == 24 - n = 44 - e - n += 30 if n < 21 - n = n + 7 - ((d + n) % 7) - if n <= 31 then [y, 3, n] else [y, 4, n - 31] end -end - -es = Date.new3(*easter(Time.now.year)) -[[-9*7, 'Septuagesima Sunday'], - [-8*7, 'Sexagesima Sunday'], - [-7*7, 'Quinquagesima Sunday (Shrove Sunday)'], - [-48, 'Shrove Monday'], - [-47, 'Shrove Tuesday'], - [-46, 'Ash Wednesday'], - [-6*7, 'Quadragesima Sunday'], - [-3*7, 'Mothering Sunday'], - [-2*7, 'Passion Sunday'], - [-7, 'Palm Sunday'], - [-3, 'Maunday Thursday'], - [-2, 'Good Friday'], - [-1, 'Easter Eve'], - [0, 'Easter Day'], - [1, 'Easter Monday'], - [7, 'Low Sunday'], - [5*7, 'Rogation Sunday'], - [39, 'Ascension Day (Holy Thursday)'], - [42, 'Sunday after Ascension Day'], - [7*7, 'Pentecost (Whitsunday)'], - [50, 'Whitmonday'], - [8*7, 'Trinity Sunday'], - [60, 'Corpus Christi (Thursday after Trinity)']]. -each do |xs| - puts ((es + xs.shift).to_s + ' ' + xs.shift) -end diff --git a/lib/mkmf.rb b/lib/mkmf.rb index 2bf3684920..eb56585871 100644 --- a/lib/mkmf.rb +++ b/lib/mkmf.rb @@ -222,7 +222,7 @@ def create_makefile(target) end $libs = "" unless $libs - if !$objs then + unless $objs then $objs = Dir["*.c"] for f in $objs f.sub!(/\.(c|cc)$/, ".o") diff --git a/lib/tempfile.rb b/lib/tempfile.rb index 9d986e7691..9f23075147 100644 --- a/lib/tempfile.rb +++ b/lib/tempfile.rb @@ -81,7 +81,6 @@ if __FILE__ == $0 f = Tempfile.new("foo") f.print("foo\n") f.close - f = nil f.open p f.gets # => "foo\n" f.close(true) diff --git a/missing/strchr.c b/missing/strchr.c new file mode 100644 index 0000000000..50714c9942 --- /dev/null +++ b/missing/strchr.c @@ -0,0 +1,45 @@ +/* + * strchr --- search a string for a character + * + * We supply this routine for those systems that aren't standard yet. + */ + +#include <stdio.h> + +char * +strchr(str, c) +register const char *str, c; +{ + if (c == '\0') { + /* thanks to Mike Brennan ... */ + do { + if (*str == c) + return (char *) str; + } while (*str++); + } else { + for (; *str; str++) + if (*str == c) + return (char *) str; + } + + return NULL; +} + +/* + * strrchr --- find the last occurrence of a character in a string + * + * We supply this routine for those systems that aren't standard yet. + */ + +char * +strrchr(str, c) +register const char *str, c; +{ + register const char *save = NULL; + + for (; *str; str++) + if (*str == c) + save = str; + + return (char *) save; +} @@ -307,12 +307,13 @@ VALUE rb_method_booundp(); #define NOEX_PUBLIC 0 #define NOEX_PRIVATE 1 +#define NOEX_UNDEF 2 +#define NOEX_CFUNC 2 NODE *compile_string _((char *, char *, int)); NODE *compile_file _((char *, VALUE, int)); void rb_add_method _((VALUE, ID, NODE *, int)); -void rb_remove_method _((VALUE, ID)); NODE *node_newnode(); enum node_type nodetype _((NODE *)); @@ -1145,7 +1145,6 @@ Init_Numeric() rb_define_method(cFixnum, "downto", fix_downto, 1); rb_define_method(cFixnum, "step", fix_step, 2); rb_define_method(cFixnum, "times", fix_dotimes, 0); - FL_SET(cFixnum, FL_PRIMITIVE); cFloat = rb_define_class("Float", cNumeric); @@ -1167,5 +1166,4 @@ Init_Numeric() rb_define_method(cFloat, "to_i", flo_to_i, 0); rb_define_method(cFloat, "to_f", flo_to_f, 0); rb_define_method(cFloat, "abs", flo_abs, 0); - FL_SET(cFloat, FL_PRIMITIVE); } @@ -369,16 +369,11 @@ VALUE obj_alloc(klass) VALUE klass; { - if (FL_TEST(klass, FL_PRIMITIVE)) { - TypeError("allocating normal object for primitive class"); - } - else { - NEWOBJ(obj, struct RObject); - OBJSETUP(obj, klass, T_OBJECT); - obj->iv_tbl = 0; + NEWOBJ(obj, struct RObject); + OBJSETUP(obj, klass, T_OBJECT); + obj->iv_tbl = 0; - return (VALUE)obj; - } + return (VALUE)obj; } static VALUE @@ -825,9 +820,6 @@ Init_Object() rb_include_module(cObject, mKernel); rb_define_private_method(cClass, "inherited", obj_dummy, 1); - FL_SET(cModule, FL_PRIMITIVE); - FL_SET(cClass, FL_PRIMITIVE); - /* * Ruby's Class Hierarchy Chart * @@ -899,7 +891,6 @@ Init_Object() rb_define_method(cNilClass, "nil?", rb_true, 0); rb_undef_method(CLASS_OF(cNilClass), "new"); rb_define_global_const("NIL", Qnil); - FL_SET(cNilClass, FL_PRIMITIVE); /* default addition */ rb_define_method(cNilClass, "+", nil_plus, 1); @@ -955,7 +946,6 @@ Init_Object() rb_define_method(cTrueClass, "type", true_type, 0); rb_undef_method(CLASS_OF(cTrueClass), "new"); rb_define_global_const("TRUE", TRUE); - FL_SET(cTrueClass, FL_PRIMITIVE); cFalseClass = rb_define_class("FalseClass", cObject); rb_define_method(cFalseClass, "to_s", false_to_s, 0); @@ -963,7 +953,6 @@ Init_Object() rb_define_method(cFalseClass, "type", false_type, 0); rb_undef_method(CLASS_OF(cFalseClass), "new"); rb_define_global_const("FALSE", FALSE); - FL_SET(cFalseClass, FL_PRIMITIVE); eq = rb_intern("=="); eql = rb_intern("eql?"); @@ -329,7 +329,6 @@ make_regexp(s, len, flag) return rp; } -extern VALUE cData; static VALUE cMatch; static VALUE @@ -1055,6 +1054,7 @@ Init_Regexp() | RE_INTERVALS | RE_NO_BK_BRACES | RE_CONTEXTUAL_INVALID_OPS + | RE_CHAR_CLASSES | RE_BACKSLASH_ESCAPE_IN_LISTS); rb_define_virtual_variable("$~", match_getter, match_setter); @@ -1085,9 +1085,6 @@ Init_Regexp() rb_global_variable(®_cache); rb_global_variable(&matchcache); - /* turn on premitive flag for the class */ - FL_SET(cRegexp, FL_PRIMITIVE); - cMatch = rb_define_class("MatchingData", cData); rb_define_method(cMatch, "to_a", match_to_a, 0); rb_define_method(cMatch, "[]", match_aref, -1); @@ -452,6 +452,17 @@ long re_syntax_options = 0; } \ } +#define STREQ(s1, s2) ((strcmp (s1, s2) == 0)) + +#define CHAR_CLASS_MAX_LENGTH 6 /* Namely, `xdigit'. */ + +#define IS_CHAR_CLASS(string) \ + (STREQ (string, "alpha") || STREQ (string, "upper") \ + || STREQ (string, "lower") || STREQ (string, "digit") \ + || STREQ (string, "alnum") || STREQ (string, "xdigit") \ + || STREQ (string, "space") || STREQ (string, "print") \ + || STREQ (string, "punct") || STREQ (string, "graph") \ + || STREQ (string, "cntrl") || STREQ (string, "blank")) #define STORE_MBC(p, c) \ ((p)[0] = (unsigned char)(c >> 8), (p)[1] = (unsigned char)(c)) @@ -993,7 +1004,9 @@ re_compile_pattern(pattern, size, bufp) command. */ int regnum = 1; + int range = 0; + int had_char_class = 0; /* How to translate the characters in the pattern. */ char *translate = bufp->translate; @@ -1191,7 +1204,7 @@ re_compile_pattern(pattern, size, bufp) if ((re_syntax_options & RE_HAT_NOT_NEWLINE) && b[-2] == charset_not) SET_LIST_BIT('\n'); - + had_char_class = 0; /* Read in characters and ranges, setting map bits. */ for (;;) { @@ -1221,6 +1234,10 @@ re_compile_pattern(pattern, size, bufp) expression. */ break; } + /* Look ahead to see if it's a range when the last thing + was a character class. */ + if (had_char_class && c == '-' && *p != ']') + goto invalid_pattern; if (ismbchar(c)) { PATFETCH(c1); c = c << BYTEWIDTH | c1; @@ -1329,7 +1346,84 @@ re_compile_pattern(pattern, size, bufp) range = 1; goto range_retry; } - else if (c < 1 << BYTEWIDTH) + else if ((re_syntax_options & RE_CHAR_CLASSES) + && c == '[' && *p == ':') { + /* Leave room for the null. */ + char str[CHAR_CLASS_MAX_LENGTH + 1]; + + PATFETCH_RAW (c); + c1 = 0; + + /* If pattern is `[[:'. */ + if (p == pend) + goto invalid_pattern; + + for (;;) { + PATFETCH (c); + if (c == ':' || c == ']' || p == pend + || c1 == CHAR_CLASS_MAX_LENGTH) + break; + str[c1++] = c; + } + str[c1] = '\0'; + + /* If isn't a word bracketed by `[:' and:`]': + undo the ending character, the letters, and leave + the leading `:' and `[' (but set bits for them). */ + if (c == ':' && *p == ']') { + int ch; + char is_alnum = STREQ (str, "alnum"); + char is_alpha = STREQ (str, "alpha"); + char is_blank = STREQ (str, "blank"); + char is_cntrl = STREQ (str, "cntrl"); + char is_digit = STREQ (str, "digit"); + char is_graph = STREQ (str, "graph"); + char is_lower = STREQ (str, "lower"); + char is_print = STREQ (str, "print"); + char is_punct = STREQ (str, "punct"); + char is_space = STREQ (str, "space"); + char is_upper = STREQ (str, "upper"); + char is_xdigit = STREQ (str, "xdigit"); + + if (!IS_CHAR_CLASS (str)) + goto invalid_pattern; + + /* Throw away the ] at the end of the character + class. */ + PATFETCH (c); + + if (p == pend) + goto invalid_pattern; + + + for (ch = 0; ch < 1 << BYTEWIDTH; ch++) { + if ( (is_alnum && ISALNUM (ch)) + || (is_alpha && ISALPHA (ch)) + || (is_blank && ISBLANK (ch)) + || (is_cntrl && ISCNTRL (ch)) + || (is_digit && ISDIGIT (ch)) + || (is_graph && ISGRAPH (ch)) + || (is_lower && ISLOWER (ch)) + || (is_print && ISPRINT (ch)) + || (is_punct && ISPUNCT (ch)) + || (is_space && ISSPACE (ch)) + || (is_upper && ISUPPER (ch)) + || (is_xdigit && ISXDIGIT (ch))) + SET_LIST_BIT (ch); + } + had_char_class = 1; + } + else { + c1++; + while (c1--) + PATUNFETCH; + SET_LIST_BIT(translate?translate['[']:'['); + SET_LIST_BIT(translate?translate[':']:':'); + had_char_class = 0; + last = ':'; + } + } + else if (c < 1 << BYTEWIDTH) SET_LIST_BIT(c); else set_list_bits(c, c, (unsigned char*)b); @@ -422,6 +422,7 @@ proc_options(argcp, argvp) else { rb_gvar_set2(argv[0], TRUE); } + argv[0][0] = '-'; } *argcp = argc; *argvp = argv; } @@ -448,6 +449,7 @@ load_file(fname, script) VALUE c; VALUE line; VALUE rs = RS; + char *p; RS = RS_default; if (xflag) { @@ -458,7 +460,7 @@ load_file(fname, script) if (RSTRING(line)->len > 2 && RSTRING(line)->ptr[0] == '#' && RSTRING(line)->ptr[1] == '!') { - if (strstr(RSTRING(line)->ptr, "ruby")) { + if (p = strstr(RSTRING(line)->ptr, "ruby")) { goto start_read; } } @@ -475,8 +477,6 @@ load_file(fname, script) if (RSTRING(line)->len > 2 && RSTRING(line)->ptr[0] == '!') { - char *p; - if ((p = strstr(RSTRING(line)->ptr, "ruby")) == 0) { /* not ruby script, kick the program */ char **argv; @@ -509,19 +509,25 @@ load_file(fname, script) } start_read: - if (p = strstr(RSTRING(line)->ptr, "ruby -")) { + p += 4; + RSTRING(line)->ptr[RSTRING(line)->len-1] = '\0'; + if (RSTRING(line)->ptr[RSTRING(line)->len-2] == '\r') + RSTRING(line)->ptr[RSTRING(line)->len-2] = '\0'; + if (p = strstr(p, " -")) { int argc; char *argv[2]; char **argvp = argv; - UCHAR *s; - - s = RSTRING(line)->ptr; - while (isspace(*s)) - s++; - *s = '\0'; - RSTRING(line)->ptr[RSTRING(line)->len-1] = '\0'; - if (RSTRING(line)->ptr[RSTRING(line)->len-2] == '\r') - RSTRING(line)->ptr[RSTRING(line)->len-2] = '\0'; - argc = 2; argv[0] = 0; argv[1] = p + 5; - proc_options(&argc, &argvp); + UCHAR *s = ++p; + + argc = 2; argv[0] = 0; + while (*p == '-') { + while (*s && !isspace(*s)) + s++; + *s = '\0'; + argv[1] = p; + proc_options(&argc, &argvp); + p = ++s; + while (*p && isspace(*p)) + p++; + } } } } @@ -250,6 +250,8 @@ struct RData { void *data; }; +extern VALUE cData; + #define DATA_PTR(dta) (RDATA(dta)->data) VALUE data_object_alloc _((VALUE,void*,void (*)(),void (*)())); @@ -319,8 +321,6 @@ struct RBignum { #define FL_UNSET(x,f) if(FL_ABLE(x)){RBASIC(x)->flags &= ~(f);} #define FL_REVERSE(x,f) if(FL_ABLE(x)){RBASIC(x)->flags ^= f;} -#define FL_PRIMITIVE FL_USER1 - #if defined(__GNUC__) && __GNUC__ >= 2 && !defined(RUBY_NO_INLINE) extern __inline__ int rb_type(VALUE obj) diff --git a/sample/goodfriday.rb b/sample/goodfriday.rb new file mode 100644 index 0000000000..f0027ec5dd --- /dev/null +++ b/sample/goodfriday.rb @@ -0,0 +1,48 @@ +#! /usr/local/bin/ruby + +# goodfriday.rb: Written by Tadayoshi Funaba 1998 +# $Id: goodfriday.rb,v 1.1 1998/03/08 09:44:44 tadf Exp $ + +require 'date2' + +def easter(y) + g = (y % 19) + 1 + c = (y / 100) + 1 + x = (3 * c / 4) - 12 + z = ((8 * c + 5) / 25) - 5 + d = (5 * y / 4) - x - 10 + e = (11 * g + 20 + z - x) % 30 + e += 1 if e == 25 and g > 11 or e == 24 + n = 44 - e + n += 30 if n < 21 + n = n + 7 - ((d + n) % 7) + if n <= 31 then [y, 3, n] else [y, 4, n - 31] end +end + +es = Date.new3(*easter(Time.now.year)) +[[-9*7, 'Septuagesima Sunday'], + [-8*7, 'Sexagesima Sunday'], + [-7*7, 'Quinquagesima Sunday (Shrove Sunday)'], + [-48, 'Shrove Monday'], + [-47, 'Shrove Tuesday'], + [-46, 'Ash Wednesday'], + [-6*7, 'Quadragesima Sunday'], + [-3*7, 'Mothering Sunday'], + [-2*7, 'Passion Sunday'], + [-7, 'Palm Sunday'], + [-3, 'Maunday Thursday'], + [-2, 'Good Friday'], + [-1, 'Easter Eve'], + [0, 'Easter Day'], + [1, 'Easter Monday'], + [7, 'Low Sunday'], + [5*7, 'Rogation Sunday'], + [39, 'Ascension Day (Holy Thursday)'], + [42, 'Sunday after Ascension Day'], + [7*7, 'Pentecost (Whitsunday)'], + [50, 'Whitmonday'], + [8*7, 'Trinity Sunday'], + [60, 'Corpus Christi (Thursday after Trinity)']]. +each do |xs| + puts ((es + xs.shift).to_s + ' ' + xs.shift) +end @@ -2516,7 +2516,4 @@ Init_String() rb_define_global_function("split", f_split, -1); pr_str = rb_intern("to_s"); - - /* turn on premitive flag for the class */ - FL_SET(cString, FL_PRIMITIVE); } |