*** rbgtk.c.orig Fri Dec 10 06:58:48 1999 --- rbgtk.c Fri Dec 24 10:26:24 1999 *************** *** 529,534 **** --- 529,584 ---- return; } } + if (rb_obj_is_kind_of(obj, gEditable)) { + if (strcmp(signame, "insert_text") == 0) { + rb_ary_push(args, rb_str_new(GTK_VALUE_STRING(params[0]), GTK_VALUE_INT(params[1]))); + rb_ary_push(args, rb_ary_new3(1, INT2NUM(*GTK_RETLOC_INT(params[2])))); + return; + } + if (strcmp(signame, "delete_text") == 0) { + rb_ary_push(args, INT2NUM(GTK_VALUE_INT(params[0]))); + rb_ary_push(args, INT2NUM(GTK_VALUE_INT(params[1]))); + return; + } + if (strcmp(signame, "set_editable") == 0) { + rb_ary_push(args, GTK_VALUE_BOOL(params[0])? Qtrue: Qfalse); + return; + } + if (strcmp(signame, "move_cursor") == 0) { + rb_ary_push(args, INT2NUM(GTK_VALUE_INT(params[0]))); + rb_ary_push(args, INT2NUM(GTK_VALUE_INT(params[1]))); + return; + } + if (strcmp(signame, "move_word") == 0) { + rb_ary_push(args, INT2NUM(GTK_VALUE_INT(params[0]))); + return; + } + if (strcmp(signame, "move_page") == 0) { + rb_ary_push(args, INT2NUM(GTK_VALUE_INT(params[0]))); + rb_ary_push(args, INT2NUM(GTK_VALUE_INT(params[1]))); + return; + } + if (strcmp(signame, "move_to_row") == 0) { + rb_ary_push(args, INT2NUM(GTK_VALUE_INT(params[1]))); + return; + } + if (strcmp(signame, "move_to_column") == 0) { + rb_ary_push(args, INT2NUM(GTK_VALUE_INT(params[1]))); + return; + } + if (strcmp(signame, "kill_char") == 0) { + rb_ary_push(args, INT2NUM(GTK_VALUE_INT(params[1]))); + return; + } + if (strcmp(signame, "kill_word") == 0) { + rb_ary_push(args, INT2NUM(GTK_VALUE_INT(params[1]))); + return; + } + if (strcmp(signame, "kill_line") == 0) { + rb_ary_push(args, INT2NUM(GTK_VALUE_INT(params[1]))); + return; + } + } if (rb_obj_is_kind_of(obj, gEntry)) { if (strcmp(signame, "insert_position") == 0) { rb_ary_push(args, INT2NUM(*GTK_RETLOC_INT(params[0]))); *************** *** 576,581 **** --- 626,640 ---- if (strcmp(signame, "size_request") == 0) { memcpy(GTK_VALUE_POINTER(params[0]), get_grequisition(rb_ary_pop(args)), sizeof(GtkRequisition)); + return; + } + } + if (rb_obj_is_kind_of(obj, gEditable)) { + if (strcmp(signame, "insert_text") == 0) { + VALUE x = RARRAY(rb_ary_pop(args))->ptr[0]; + VALUE str = rb_ary_pop(args); + *GTK_RETLOC_INT(params[2]) = NUM2INT(x); + strncpy(GTK_VALUE_STRING(params[0]), RSTRING(str)->ptr, RSTRING(str)->len); return; } }