Index: gtk/src/rbgtkcellview.c
===================================================================
--- gtk/src/rbgtkcellview.c	(revision 3312)
+++ gtk/src/rbgtkcellview.c	(working copy)
@@ -70,7 +70,7 @@
 {
     gtk_cell_view_set_displayed_row(_SELF(self),  
                                     NIL_P(path) ? (GtkTreePath*)NULL :
-                                    (GtkTreePath*)RVAL2BOXED(path, GTK_TYPE_TREE_PATH));
+                                    RVAL2GTKTREEPATH(path));
     return self;
 }
 
@@ -78,8 +78,7 @@
 cview_get_displayed_row(self)
     VALUE self;
 {
-    return BOXED2RVAL(gtk_cell_view_get_displayed_row(_SELF(self)), 
-                      GTK_TYPE_TREE_PATH);
+    return GTKTREEPATH2RVAL(gtk_cell_view_get_displayed_row(_SELF(self)));
 }
 
 static VALUE
@@ -88,7 +87,7 @@
 {
     GtkRequisition req;
     gboolean ret = gtk_cell_view_get_size_of_row(_SELF(self),  
-                                                 RVAL2BOXED(path, GTK_TYPE_TREE_PATH),
+                                                 RVAL2GTKTREEPATH(path),
                                                  &req);
     if (! ret)
         rb_raise(rb_eRuntimeError, "Can't get the value");
Index: gtk/src/rbgtktreesortable.c
===================================================================
--- gtk/src/rbgtktreesortable.c	(revision 3312)
+++ gtk/src/rbgtktreesortable.c	(working copy)
@@ -13,7 +13,6 @@
 #include "global.h"
 
 #define _SELF(s)	(GTK_TREE_SORTABLE(RVAL2GOBJ(s)))
-#define ITR2RVAL(i) 	(BOXED2RVAL(i, GTK_TYPE_TREE_ITER))
 
 static VALUE
 treesortable_sort_column_changed(self)
@@ -72,8 +71,8 @@
 {
     a->user_data3 = model;
     b->user_data3 = model;
-    return NUM2INT(rb_funcall((VALUE)func, id_call, 2, ITR2RVAL(a),
-			      ITR2RVAL(b)));
+    return NUM2INT(rb_funcall((VALUE)func, id_call, 2, GTKTREEITER2RVAL(a),
+			      GTKTREEITER2RVAL(b)));
 }
 
 static VALUE
Index: gtk/src/rbgtktreerowreference.c
===================================================================
--- gtk/src/rbgtktreerowreference.c	(revision 3312)
+++ gtk/src/rbgtktreerowreference.c	(working copy)
@@ -43,9 +43,6 @@
 /*****************************************/
 
 #define _SELF(s) RVAL2TREEROWREFERENCE(s)
-#define TREEPATH2RVAL(t) (BOXED2RVAL(t, GTK_TYPE_TREE_PATH))
-#define RVAL2TREEPATH(p) ((GtkTreePath*)RVAL2BOXED(p, GTK_TYPE_TREE_PATH))
-#define RVAL2ITR(i) ((GtkTreeIter*)RVAL2BOXED(i, GTK_TYPE_TREE_ITER))
 
 /*****************************************/
 
@@ -67,11 +64,11 @@
     G_CHILD_SET(self, id_proxy, proxy);
     ref = gtk_tree_row_reference_new_proxy(RVAL2GOBJ(proxy),
                                            GTK_TREE_MODEL(RVAL2GOBJ(model)), 
-                                           RVAL2TREEPATH(path));
+                                           RVAL2GTKTREEPATH(path));
   } else {
     rb_scan_args(argc, argv, "2", &model, &path);
     ref = gtk_tree_row_reference_new(GTK_TREE_MODEL(RVAL2GOBJ(model)), 
-                                     RVAL2TREEPATH(path));
+                                     RVAL2GTKTREEPATH(path));
   }
   if (ref == NULL)
       rb_raise(rb_eArgError, "Invalid arguments were passed.");
@@ -88,7 +85,7 @@
 treerowref_get_path(self)
     VALUE self;
 {
-    VALUE ret = TREEPATH2RVAL(gtk_tree_row_reference_get_path(_SELF(self)));
+    VALUE ret = GTKTREEPATH2RVAL(gtk_tree_row_reference_get_path(_SELF(self)));
     G_CHILD_SET(self, id_path, ret);
     return ret;
 }
@@ -115,7 +112,7 @@
 treerowref_s_inserted(self, proxy, path)
     VALUE self, proxy, path;
 {
-    gtk_tree_row_reference_inserted(RVAL2GOBJ(proxy), RVAL2TREEPATH(path));
+    gtk_tree_row_reference_inserted(RVAL2GOBJ(proxy), RVAL2GTKTREEPATH(path));
     return self;
 }
 
@@ -123,7 +120,7 @@
 treerowref_s_deleted(self, proxy, path)
     VALUE self, proxy, path;
 {
-    gtk_tree_row_reference_deleted(RVAL2GOBJ(proxy), RVAL2TREEPATH(path));
+    gtk_tree_row_reference_deleted(RVAL2GOBJ(proxy), RVAL2GTKTREEPATH(path));
     return self;
 }
 
@@ -143,8 +140,8 @@
         orders[i] = RARRAY(new_orders)->ptr[i];
     }
   
-    gtk_tree_row_reference_reordered(RVAL2GOBJ(proxy), RVAL2TREEPATH(path), 
-                                     RVAL2ITR(iter), orders);
+    gtk_tree_row_reference_reordered(RVAL2GOBJ(proxy), RVAL2GTKTREEPATH(path), 
+                                     RVAL2GTKTREEITER(iter), orders);
     return self;
 }
 
Index: gtk/src/rbgtktreemodelfilter.c
===================================================================
--- gtk/src/rbgtktreemodelfilter.c	(revision 3312)
+++ gtk/src/rbgtktreemodelfilter.c	(working copy)
@@ -13,10 +13,6 @@
                                                                                 
 #if GTK_CHECK_VERSION(2,4,0)
 #define _SELF(s) (GTK_TREE_MODEL_FILTER(RVAL2GOBJ(s)))
-#define RVAL2TREEPATH(s) ((GtkTreePath*)RVAL2BOXED(s, GTK_TYPE_TREE_PATH))
-#define TREEPATH2RVAL(s) (BOXED2RVAL(s, GTK_TYPE_TREE_PATH))
-#define RVAL2ITR(i) ((GtkTreeIter*)RVAL2BOXED(i, GTK_TYPE_TREE_ITER))
-#define ITR2RVAL(i) (BOXED2RVAL(i, GTK_TYPE_TREE_ITER))
 
 static ID id_child_model;
 static ID id_root;
@@ -39,7 +35,7 @@
     } else {
         G_CHILD_SET(self, id_root, root);
         widget = gtk_tree_model_filter_new(GTK_TREE_MODEL(RVAL2GOBJ(child_model)), 
-                                           (GtkTreePath*)RVAL2TREEPATH(root));
+                                           (GtkTreePath*)RVAL2GTKTREEPATH(root));
     }
 
     G_INITIALIZE(self, widget);
@@ -55,7 +51,7 @@
     VALUE ret;
 
     iter->user_data3 = model;
-    ret = rb_funcall((VALUE)func, id_call, 2, GOBJ2RVAL(model), ITR2RVAL(iter));
+    ret = rb_funcall((VALUE)func, id_call, 2, GOBJ2RVAL(model), GTKTREEITER2RVAL(iter));
     return RVAL2CBOOL(ret);
 }
 
@@ -81,7 +77,7 @@
 {
     VALUE ret;
     iter->user_data3 = model;
-    ret = rb_funcall((VALUE)func, id_call, 3, GOBJ2RVAL(model), ITR2RVAL(iter),
+    ret = rb_funcall((VALUE)func, id_call, 3, GOBJ2RVAL(model), GTKTREEITER2RVAL(iter),
                      INT2NUM(column));
     rbgobj_rvalue_to_gvalue(ret, value);
 }
@@ -142,9 +138,9 @@
     GtkTreeIter filter_iter;
     GtkTreeModelFilter* modelfilter = _SELF(self);
     gtk_tree_model_filter_convert_child_iter_to_iter(modelfilter, &filter_iter,
-                                                   RVAL2ITR(child_iter));
+                                                     RVAL2GTKTREEITER(child_iter));
     filter_iter.user_data3 = gtk_tree_model_filter_get_model(modelfilter);
-    return ITR2RVAL(&filter_iter);
+    return GTKTREEITER2RVAL(&filter_iter);
 }
 
 static VALUE
@@ -154,26 +150,26 @@
     GtkTreeIter child_iter;
     GtkTreeModelFilter* modelfilter = _SELF(self);
     gtk_tree_model_filter_convert_iter_to_child_iter(modelfilter, &child_iter,
-                                                   RVAL2ITR(filtered_iter));
+                                                     RVAL2GTKTREEITER(filtered_iter));
     child_iter.user_data3 = gtk_tree_model_filter_get_model(modelfilter);
-    return ITR2RVAL(&child_iter);
+    return GTKTREEITER2RVAL(&child_iter);
 } 
 
 static VALUE
 treemodelfilter_convert_child_path_to_path(self, child_path)
     VALUE self, child_path;
 {
-    return TREEPATH2RVAL(gtk_tree_model_filter_convert_child_path_to_path(
+    return GTKTREEPATH2RVAL(gtk_tree_model_filter_convert_child_path_to_path(
                              _SELF(self),
-                             RVAL2TREEPATH(child_path)));
+                             RVAL2GTKTREEPATH(child_path)));
 }
 static VALUE
 treemodelfilter_convert_path_to_child_path(self, filter_path)
     VALUE self, filter_path;
 {
-    return TREEPATH2RVAL(gtk_tree_model_filter_convert_path_to_child_path(
+    return GTKTREEPATH2RVAL(gtk_tree_model_filter_convert_path_to_child_path(
                              _SELF(self),
-                             RVAL2TREEPATH(filter_path)));
+                             RVAL2GTKTREEPATH(filter_path)));
 }
 
 static VALUE
Index: gtk/src/rbgtktreeselection.c
===================================================================
--- gtk/src/rbgtktreeselection.c	(revision 3312)
+++ gtk/src/rbgtktreeselection.c	(working copy)
@@ -13,10 +13,6 @@
 
 #define _SELF(s) (GTK_TREE_SELECTION(RVAL2GOBJ(s)))
 #define RVAL2TREEMODEL(s) (GTK_TREE_MODEL(RVAL2GOBJ(s)))
-#define RVAL2TREEPATH(p) ((GtkTreePath*)RVAL2BOXED(p, GTK_TYPE_TREE_PATH))
-#define TREEPATH2RVAL(t) (BOXED2RVAL(t, GTK_TYPE_TREE_PATH))
-#define ITR2RVAL(i) (BOXED2RVAL(i, GTK_TYPE_TREE_ITER))
-#define RVAL2ITR(i) ((GtkTreeIter*)RVAL2BOXED(i, GTK_TYPE_TREE_ITER))
 
 static VALUE
 treeselection_set_mode(self, type)
@@ -44,7 +40,7 @@
     return RVAL2CBOOL(rb_funcall((VALUE)func, id_call, 4, 
                             GOBJ2RVAL(selection),
                             GOBJ2RVAL(model),
-                            TREEPATH2RVAL(path),
+                            GTKTREEPATH2RVAL(path),
                             CBOOL2RVAL(path_currently_selected)));
 }
 
@@ -80,7 +76,7 @@
     GtkTreeModel* model;
     gboolean ret = gtk_tree_selection_get_selected(_SELF(self), &model, &iter);
     iter.user_data3 = model;
-    return ret ? ITR2RVAL(&iter) : Qnil;
+    return ret ? GTKTREEITER2RVAL(&iter) : Qnil;
 }
 
 static void
@@ -92,7 +88,7 @@
 {
     iter->user_data3 = model;
     rb_funcall((VALUE)data, id_call, 3, GOBJ2RVAL(model), 
-               TREEPATH2RVAL(path), ITR2RVAL(iter));
+               GTKTREEPATH2RVAL(path), GTKTREEITER2RVAL(iter));
 }
 
 static VALUE
@@ -110,7 +106,7 @@
 treeselection_select_path(self, path)
     VALUE self, path;
 {
-    gtk_tree_selection_select_path(_SELF(self), RVAL2TREEPATH(path));
+    gtk_tree_selection_select_path(_SELF(self), RVAL2GTKTREEPATH(path));
     return self;
 }
 
@@ -118,7 +114,7 @@
 treeselection_unselect_path(self, path)
     VALUE self, path;
 {
-    gtk_tree_selection_unselect_path(_SELF(self), RVAL2TREEPATH(path));
+    gtk_tree_selection_unselect_path(_SELF(self), RVAL2GTKTREEPATH(path));
     return self;
 }
 
@@ -126,14 +122,14 @@
 treeselection_path_is_selected(self, path)
     VALUE self, path;
 {
-    return CBOOL2RVAL(gtk_tree_selection_path_is_selected(_SELF(self), RVAL2TREEPATH(path)));
+    return CBOOL2RVAL(gtk_tree_selection_path_is_selected(_SELF(self), RVAL2GTKTREEPATH(path)));
 }
 
 static VALUE
 treeselection_select_iter(self, iter)
     VALUE self, iter;
 {
-    gtk_tree_selection_select_iter(_SELF(self), RVAL2ITR(iter));
+    gtk_tree_selection_select_iter(_SELF(self), RVAL2GTKTREEITER(iter));
     return self;
 }
 
@@ -141,7 +137,7 @@
 treeselection_unselect_iter(self, iter)
     VALUE self, iter;
 {
-    gtk_tree_selection_unselect_iter(_SELF(self), RVAL2ITR(iter));
+    gtk_tree_selection_unselect_iter(_SELF(self), RVAL2GTKTREEITER(iter));
     return self;
 }
 
@@ -149,7 +145,7 @@
 treeselection_iter_is_selected(self, iter)
     VALUE self, iter;
 {
-    return CBOOL2RVAL(gtk_tree_selection_iter_is_selected(_SELF(self), RVAL2ITR(iter)));
+    return CBOOL2RVAL(gtk_tree_selection_iter_is_selected(_SELF(self), RVAL2GTKTREEITER(iter)));
 }
 
 static VALUE
@@ -172,8 +168,8 @@
 treeselection_select_range(self, start_path, end_path)
     VALUE self, start_path, end_path;
 {
-    gtk_tree_selection_select_range(_SELF(self), RVAL2TREEPATH(start_path), 
-                                    RVAL2TREEPATH(end_path));
+    gtk_tree_selection_select_range(_SELF(self), RVAL2GTKTREEPATH(start_path), 
+                                    RVAL2GTKTREEPATH(end_path));
     return self;
 }
 
@@ -201,8 +197,8 @@
 treeselection_unselect_range(self, start_path, end_path)
     VALUE self, start_path, end_path;
 {
-    gtk_tree_selection_unselect_range(_SELF(self), RVAL2TREEPATH(start_path), 
-                                      RVAL2TREEPATH(end_path));
+    gtk_tree_selection_unselect_range(_SELF(self), RVAL2GTKTREEPATH(start_path), 
+                                      RVAL2GTKTREEPATH(end_path));
     return self;
 }
 #endif
Index: gtk/src/rbgtktreeviewcolumn.c
===================================================================
--- gtk/src/rbgtktreeviewcolumn.c	(revision 3312)
+++ gtk/src/rbgtktreeviewcolumn.c	(working copy)
@@ -146,7 +146,7 @@
     iter->user_data3 = model;
     rb_funcall((VALUE)func, id_call, 4, GOBJ2RVAL(tree_column),
                GOBJ2RVAL(cell), GOBJ2RVAL(model), 
-               BOXED2RVAL(iter, GTK_TYPE_TREE_ITER));
+               GTKTREEITER2RVAL(iter));
 }
 
 
@@ -215,7 +215,7 @@
 {
     gtk_tree_view_column_cell_set_cell_data(_SELF(self), 
                                             GTK_TREE_MODEL(RVAL2GOBJ(model)),
-                                            (GtkTreeIter*)RVAL2BOXED(iter, GTK_TYPE_TREE_ITER), 
+                                            RVAL2GTKTREEITER(iter), 
                                             RVAL2CBOOL(is_expander), 
                                             RVAL2CBOOL(is_expanded));
     return self;
Index: gtk/src/rbgtkcombobox.c
===================================================================
--- gtk/src/rbgtkcombobox.c	(revision 3312)
+++ gtk/src/rbgtkcombobox.c	(working copy)
@@ -74,7 +74,7 @@
 combobox_set_active_iter(self, iter)
     VALUE self, iter;
 {
-    gtk_combo_box_set_active_iter(_SELF(self), RVAL2BOXED(iter, GTK_TYPE_TREE_ITER));
+    gtk_combo_box_set_active_iter(_SELF(self), RVAL2GTKTREEITER(iter));
     return self;
 }
 
@@ -176,7 +176,7 @@
 {  
     iter->user_data3 = model;
     return RVAL2CBOOL(rb_funcall((VALUE)func, id_call, 2, GOBJ2RVAL(model),
-                            BOXED2RVAL(iter, GTK_TYPE_TREE_ITER)));
+                      GTKTREEITER2RVAL(iter)));
 }
 
 static VALUE
Index: gtk/src/rbgtktreemodel.c
===================================================================
--- gtk/src/rbgtktreemodel.c	(revision 3312)
+++ gtk/src/rbgtktreemodel.c	(working copy)
@@ -12,10 +12,6 @@
 #include "global.h"
 
 #define _SELF(s) (GTK_TREE_MODEL(RVAL2GOBJ(s)))
-#define TREEPATH2RVAL(t) (BOXED2RVAL(t, GTK_TYPE_TREE_PATH))
-#define RVAL2TREEPATH(p) ((GtkTreePath*)RVAL2BOXED(p, GTK_TYPE_TREE_PATH))
-#define ITR2RVAL(i) (BOXED2RVAL(i, GTK_TYPE_TREE_ITER))
-#define RVAL2ITR(i) ((GtkTreeIter*)RVAL2BOXED(i, GTK_TYPE_TREE_ITER))
 
 static VALUE
 treemodel_get_flags(self)
@@ -50,7 +46,7 @@
     iter.user_data3 = model;
 
     if (ret) {
-        val = ITR2RVAL(&iter);
+        val = GTKTREEITER2RVAL(&iter);
         G_CHILD_ADD(self, val);
     }
     
@@ -71,12 +67,12 @@
                                                   RVAL2CSTR(path));
     } else {
         ret = gtk_tree_model_get_iter(model, &iter, 
-                                      RVAL2TREEPATH(path));
+                                      RVAL2GTKTREEPATH(path));
     } 
     iter.user_data3 = model;
 
     if (ret) {
-        val = ITR2RVAL(&iter);
+        val = GTKTREEITER2RVAL(&iter);
         G_CHILD_ADD(self, val);
     }
     
@@ -89,7 +85,7 @@
 {
     GValue value = {0, };
     VALUE ret = Qnil;
-    gtk_tree_model_get_value(_SELF(self), RVAL2ITR(iter), NUM2INT(column), &value);
+    gtk_tree_model_get_value(_SELF(self), RVAL2GTKTREEITER(iter), NUM2INT(column), &value);
     if (G_VALUE_TYPE(&value) != G_TYPE_INVALID){
         ret = GVAL2RVAL(&value);
         g_value_unset(&value);
@@ -118,7 +114,7 @@
     gpointer func;
 {
     iter->user_data3 = model;
-    rb_yield(rb_ary_new3(3, GOBJ2RVAL(model), TREEPATH2RVAL(path), ITR2RVAL(iter)));
+    rb_yield(rb_ary_new3(3, GOBJ2RVAL(model), GTKTREEPATH2RVAL(path), GTKTREEITER2RVAL(iter)));
     return FALSE;
 }
 
@@ -136,7 +132,7 @@
 treemodel_row_changed(self, path, iter)
     VALUE self, path, iter;
 {
-    gtk_tree_model_row_changed(_SELF(self), RVAL2TREEPATH(path), RVAL2ITR(iter));
+    gtk_tree_model_row_changed(_SELF(self), RVAL2GTKTREEPATH(path), RVAL2GTKTREEITER(iter));
     return self;
 }
 
@@ -144,7 +140,7 @@
 treemodel_row_inserted(self, path, iter)
     VALUE self, path, iter;
 {
-    gtk_tree_model_row_inserted(_SELF(self), RVAL2TREEPATH(path), RVAL2ITR(iter));
+    gtk_tree_model_row_inserted(_SELF(self), RVAL2GTKTREEPATH(path), RVAL2GTKTREEITER(iter));
     return self;
 }
 
@@ -152,7 +148,7 @@
 treemodel_row_has_child_toggled(self, path, iter)
     VALUE self, path, iter;
 {
-    gtk_tree_model_row_has_child_toggled(_SELF(self), RVAL2TREEPATH(path), RVAL2ITR(iter));
+    gtk_tree_model_row_has_child_toggled(_SELF(self), RVAL2GTKTREEPATH(path), RVAL2GTKTREEITER(iter));
     return self;
 }
 
@@ -160,7 +156,7 @@
 treemodel_row_deleted(self, path)
     VALUE self, path;
 {
-    gtk_tree_model_row_deleted(_SELF(self), RVAL2TREEPATH(path));
+    gtk_tree_model_row_deleted(_SELF(self), RVAL2GTKTREEPATH(path));
     return self;
 }
 
@@ -180,7 +176,7 @@
         orders[i] = RARRAY(new_orders)->ptr[i];
     }
   
-    gtk_tree_model_rows_reordered(_SELF(self), RVAL2TREEPATH(path), RVAL2ITR(iter), orders);
+    gtk_tree_model_rows_reordered(_SELF(self), RVAL2GTKTREEPATH(path), RVAL2GTKTREEITER(iter), orders);
     return self;
 }
 
@@ -201,7 +197,7 @@
     GtkTreeIter* iter = g_value_get_boxed(&values[2]);
     iter->user_data3 = model;
     
-    return rb_ary_new3(3, GOBJ2RVAL(model), TREEPATH2RVAL(path), ITR2RVAL(iter));
+    return rb_ary_new3(3, GOBJ2RVAL(model), GTKTREEPATH2RVAL(path), GTKTREEITER2RVAL(iter));
 }
 
 static VALUE
@@ -223,7 +219,7 @@
     for (i = 0; i < len; i++, new_orders++) {
         rb_ary_push(orders, INT2NUM(*new_orders));
     }
-    return rb_ary_new3(4, GOBJ2RVAL(model), TREEPATH2RVAL(path), ITR2RVAL(iter), orders);
+    return rb_ary_new3(4, GOBJ2RVAL(model), GTKTREEPATH2RVAL(path), GTKTREEITER2RVAL(iter), orders);
 }
 
 void 
Index: gtk/src/rbgtkcelllayout.c
===================================================================
--- gtk/src/rbgtkcelllayout.c	(revision 3312)
+++ gtk/src/rbgtkcelllayout.c	(working copy)
@@ -78,7 +78,7 @@
 {
     iter->user_data3 = tree_model;
     rb_funcall((VALUE)func, id_call, 4, GOBJ2RVAL(layout), GOBJ2RVAL(cell),
-               GOBJ2RVAL(tree_model), BOXED2RVAL(iter, GTK_TYPE_TREE_ITER));
+               GOBJ2RVAL(tree_model), GTKTREEITER2RVAL(iter));
 }
 
 static VALUE
Index: gtk/src/rbgtktreeview.c
===================================================================
--- gtk/src/rbgtktreeview.c	(revision 3312)
+++ gtk/src/rbgtktreeview.c	(working copy)
@@ -13,10 +13,6 @@
 
 #define _SELF(s) (GTK_TREE_VIEW(RVAL2GOBJ(s)))
 #define TREEVIEW_COL(c) (GTK_TREE_VIEW_COLUMN(RVAL2GOBJ(c)))
-#define TREEPATH2RVAL(t) (BOXED2RVAL(t, GTK_TYPE_TREE_PATH))
-#define RVAL2TREEPATH(p) ((GtkTreePath*)RVAL2BOXED(p, GTK_TYPE_TREE_PATH))
-#define ITR2RVAL(i) (BOXED2RVAL(i, GTK_TYPE_TREE_ITER))
-#define RVAL2ITR(i) ((GtkTreeIter*)RVAL2BOXED(i, GTK_TYPE_TREE_ITER))
 #define RVAL2CELLRENDERER(c) (GTK_CELL_RENDERER(RVAL2GOBJ(c)))
 
 static ID id_model;
@@ -89,7 +85,7 @@
     iter->user_data3 = model;
     rb_funcall((VALUE)func, id_call, 4, GOBJ2RVAL(column),
                GOBJ2RVAL(cell), GOBJ2RVAL(model), 
-               BOXED2RVAL(iter, GTK_TYPE_TREE_ITER));
+               GTKTREEITER2RVAL(iter));
 }
 
 static VALUE
@@ -225,7 +221,7 @@
     VALUE self, path, column, use_align, row_align, col_align;
 {
     gtk_tree_view_scroll_to_cell(_SELF(self),
-                                 NIL_P(path) ? NULL : RVAL2TREEPATH(path),
+                                 NIL_P(path) ? NULL : RVAL2GTKTREEPATH(path),
                                  NIL_P(column) ? NULL : TREEVIEW_COL(column), 
                                  RVAL2CBOOL(use_align),
                                  NUM2DBL(row_align), NUM2DBL(col_align));
@@ -236,7 +232,7 @@
 treeview_set_cursor(self, path, focus_column, start_editing)
     VALUE self, path, focus_column, start_editing;
 {
-    gtk_tree_view_set_cursor(_SELF(self), RVAL2TREEPATH(path),
+    gtk_tree_view_set_cursor(_SELF(self), RVAL2GTKTREEPATH(path),
                              NIL_P(focus_column) ? NULL : TREEVIEW_COL(focus_column), 
                              RVAL2CBOOL(start_editing));
     return self;
@@ -250,7 +246,7 @@
     GtkTreeViewColumn* focus_column;
 
     gtk_tree_view_get_cursor(_SELF(self), &path, &focus_column);
-    return rb_ary_new3(2, path ? TREEPATH2RVAL(path) : Qnil,
+    return rb_ary_new3(2, path ? GTKTREEPATH2RVAL(path) : Qnil,
                        GOBJ2RVAL(focus_column));
 }
 
@@ -258,7 +254,7 @@
 treeview_row_activated(self, path, column)
     VALUE self, path, column;
 {
-    gtk_tree_view_row_activated(_SELF(self), RVAL2TREEPATH(path),
+    gtk_tree_view_row_activated(_SELF(self), RVAL2GTKTREEPATH(path),
                                 TREEVIEW_COL(column));
     return self;
 }
@@ -284,7 +280,7 @@
     VALUE self, path, open_all;
 {
     return CBOOL2RVAL(gtk_tree_view_expand_row(_SELF(self), 
-                                               RVAL2TREEPATH(path),
+                                               RVAL2GTKTREEPATH(path),
                                                RVAL2CBOOL(open_all)));
 }
 
@@ -293,7 +289,7 @@
 treeview_expand_to_path(self, path)
     VALUE self, path;
 {
-    gtk_tree_view_expand_to_path(_SELF(self), RVAL2TREEPATH(path));
+    gtk_tree_view_expand_to_path(_SELF(self), RVAL2GTKTREEPATH(path));
     return self;
 }
 #endif
@@ -303,7 +299,7 @@
     VALUE self, path;
 {
     return CBOOL2RVAL(gtk_tree_view_collapse_row(_SELF(self), 
-                                                 RVAL2TREEPATH(path)));
+                                                 RVAL2GTKTREEPATH(path)));
 }
 
 static void
@@ -313,7 +309,7 @@
     gpointer func;
 {
     rb_funcall((VALUE)func, id_call, 2, GOBJ2RVAL(treeview),
-               TREEPATH2RVAL(path));
+               GTKTREEPATH2RVAL(path));
 }
 
 static VALUE
@@ -333,7 +329,7 @@
     VALUE self, path;
 {
     return CBOOL2RVAL(gtk_tree_view_row_expanded(_SELF(self), 
-                                                 RVAL2TREEPATH(path)));
+                                                 RVAL2GTKTREEPATH(path)));
 }
 
 static VALUE
@@ -349,7 +345,7 @@
                                         NUM2INT(x), NUM2INT(y),
                                         &path, &column, &cell_x, &cell_y);
     return ret ? rb_ary_new3(4, 
-                             path ? TREEPATH2RVAL(path) : Qnil,
+                             path ? GTKTREEPATH2RVAL(path) : Qnil,
                              column ? GOBJ2RVAL(column) : Qnil,
                              INT2NUM(cell_x), INT2NUM(cell_y)) : Qnil;
 }
@@ -360,7 +356,7 @@
 {
     GdkRectangle rect;
     gtk_tree_view_get_cell_area(_SELF(self), 
-                                NIL_P(path) ? NULL : RVAL2TREEPATH(path),
+                                NIL_P(path) ? NULL : RVAL2GTKTREEPATH(path),
                                 NIL_P(column) ? NULL : TREEVIEW_COL(column), 
                                 &rect);
     return BOXED2RVAL(&rect, GDK_TYPE_RECTANGLE);
@@ -372,7 +368,7 @@
 {
     GdkRectangle rect;
     gtk_tree_view_get_background_area(_SELF(self), 
-                                      NIL_P(path) ? NULL : RVAL2TREEPATH(path),
+                                      NIL_P(path) ? NULL : RVAL2GTKTREEPATH(path),
                                       NIL_P(column) ? NULL : TREEVIEW_COL(column), 
                                       &rect);
     return BOXED2RVAL(&rect, GDK_TYPE_RECTANGLE);
@@ -397,8 +393,8 @@
 
     gboolean valid_paths = gtk_tree_view_get_visible_range(_SELF(self), &start_path, &end_path);
 
-    return valid_paths ? rb_assoc_new(TREEPATH2RVAL(start_path),
-                                      TREEPATH2RVAL(end_path)) : Qnil;
+    return valid_paths ? rb_assoc_new(GTKTREEPATH2RVAL(start_path),
+                                      GTKTREEPATH2RVAL(end_path)) : Qnil;
 }
 #endif
 
@@ -545,7 +541,7 @@
     VALUE self, path, pos;
 {
     gtk_tree_view_set_drag_dest_row(_SELF(self), 
-                                    NIL_P(path)?NULL:RVAL2TREEPATH(path),
+                                    NIL_P(path)?NULL:RVAL2GTKTREEPATH(path),
                                     RVAL2GENUM(pos, GTK_TYPE_TREE_VIEW_DROP_POSITION));
     return self;
 }
@@ -557,7 +553,7 @@
     GtkTreePath* path = NULL;
     GtkTreeViewDropPosition pos;
     gtk_tree_view_get_drag_dest_row(_SELF(self), &path, &pos);
-    return rb_ary_new3(2, path ? TREEPATH2RVAL(path) : Qnil, 
+    return rb_ary_new3(2, path ? GTKTREEPATH2RVAL(path) : Qnil, 
                        GENUM2RVAL(pos, GTK_TYPE_TREE_VIEW_DROP_POSITION));
 }
 
@@ -572,7 +568,7 @@
     ret = gtk_tree_view_get_dest_row_at_pos(_SELF(self), 
                                             NUM2INT(drag_x), NUM2INT(drag_y),
                                             &path, &pos);
-    return ret ? rb_ary_new3(2, path ? TREEPATH2RVAL(path) : Qnil, 
+    return ret ? rb_ary_new3(2, path ? GTKTREEPATH2RVAL(path) : Qnil, 
                              GENUM2RVAL(pos, GTK_TYPE_TREE_VIEW_DROP_POSITION)) : Qnil;
 }
 
@@ -581,7 +577,7 @@
     VALUE self, path;
 {
     return GOBJ2RVAL(gtk_tree_view_create_row_drag_icon(_SELF(self),
-                                                        RVAL2TREEPATH(path)));
+                                                        RVAL2GTKTREEPATH(path)));
 }
 
 /*
@@ -601,7 +597,7 @@
     iter->user_data3 = model;
     return RVAL2CBOOL(rb_funcall((VALUE)func, id_call, 4, 
                             GOBJ2RVAL(model), INT2NUM(column),
-                            CSTR2RVAL(key), ITR2RVAL(iter)));
+                            CSTR2RVAL(key), GTKTREEITER2RVAL(iter)));
 }
 
 static VALUE
@@ -630,7 +626,7 @@
     GtkTreeIter* iter = g_value_get_boxed(&values[1]);
     iter->user_data3 = gtk_tree_view_get_model(view);
 
-    return rb_ary_new3(3, GOBJ2RVAL(view), ITR2RVAL(iter), GVAL2RVAL(&values[2]));
+    return rb_ary_new3(3, GOBJ2RVAL(view), GTKTREEITER2RVAL(iter), GVAL2RVAL(&values[2]));
 }
 
 #if GTK_CHECK_VERSION(2,2,0)
@@ -638,7 +634,7 @@
 treeview_set_cursor_on_cell(self, path, focus_column, focus_cell, start_editing)
     VALUE self, path, focus_column, focus_cell, start_editing;
 {
-    gtk_tree_view_set_cursor_on_cell(_SELF(self), RVAL2TREEPATH(path),
+    gtk_tree_view_set_cursor_on_cell(_SELF(self), RVAL2GTKTREEPATH(path),
                                      NIL_P(focus_column) ? NULL : TREEVIEW_COL(focus_column), 
                                      NIL_P(focus_cell) ? NULL : GTK_CELL_RENDERER(RVAL2GOBJ(focus_cell)), 
                                      RVAL2CBOOL(start_editing));
@@ -677,7 +673,7 @@
     VALUE ret;
     iter->user_data3 = model;
     ret = rb_funcall((VALUE)func, id_call, 2, GOBJ2RVAL(model), 
-                     BOXED2RVAL(iter, GTK_TYPE_TREE_ITER));
+                     GTKTREEITER2RVAL(iter));
     return CBOOL2RVAL(ret);
 }
 
Index: gtk/src/rbgtktreestore.c
===================================================================
--- gtk/src/rbgtktreestore.c	(revision 3312)
+++ gtk/src/rbgtktreestore.c	(working copy)
@@ -12,8 +12,6 @@
 #include "global.h"
 
 #define _SELF(s) (GTK_TREE_STORE(RVAL2GOBJ(s)))
-#define ITR2RVAL(i) (BOXED2RVAL(i, GTK_TYPE_TREE_ITER))
-#define RVAL2ITR(i) ((GtkTreeIter*)RVAL2BOXED(i, GTK_TYPE_TREE_ITER))
 
 static VALUE
 tstore_initialize(argc, argv, self)
@@ -72,7 +70,7 @@
     G_CHILD_ADD(self, iter);
     G_CHILD_ADD(iter, value);
 
-    gtk_tree_store_set_value(_SELF(self), RVAL2ITR(iter), NUM2INT(column), &gval);
+    gtk_tree_store_set_value(_SELF(self), RVAL2GTKTREEITER(iter), NUM2INT(column), &gval);
 
     g_value_unset(&gval);
     return self;
@@ -94,9 +92,9 @@
 {
     G_CHILD_REMOVE(self, iter);
 #if GTK_CHECK_VERSION(2,2,0)
-    return CBOOL2RVAL(gtk_tree_store_remove(_SELF(self), RVAL2ITR(iter)));
+    return CBOOL2RVAL(gtk_tree_store_remove(_SELF(self), RVAL2GTKTREEITER(iter)));
 #else
-    gtk_tree_store_remove(_SELF(self), RVAL2ITR(iter));
+    gtk_tree_store_remove(_SELF(self), RVAL2GTKTREEITER(iter));
     return Qtrue;
 #endif
 }
@@ -115,10 +113,10 @@
 
     if (NIL_P(values)){
         gtk_tree_store_insert(model, &iter, 
-                              NIL_P(parent) ? NULL : RVAL2ITR(parent), 
+                              NIL_P(parent) ? NULL : RVAL2GTKTREEITER(parent), 
                               NUM2INT(position));
         iter.user_data3 = model;
-        ret = ITR2RVAL(&iter);
+        ret = GTKTREEITER2RVAL(&iter);
         G_CHILD_ADD(self, ret);
     } else {
 #if GTK_CHECK_VERSION(2,10,0)
@@ -161,14 +159,14 @@
         }
 
         gtk_tree_store_insert_with_valuesv(model, &iter,
-                                           NIL_P(parent) ? NULL : RVAL2ITR(parent),
+                                           NIL_P(parent) ? NULL : RVAL2GTKTREEITER(parent),
                                            NUM2INT(position),
                                            c_columns,
                                            c_values,
                                            size);
         iter.user_data3 = model;
 
-        ret = ITR2RVAL(&iter);
+        ret = GTKTREEITER2RVAL(&iter);
         G_CHILD_ADD(self, ret);
 
         for(i=0; i<size; i++) {
@@ -178,10 +176,10 @@
 #else
         rb_warn("Gtk::TreeStore#insert(parent, position, values) requires GTK+-2.10.0 or later");
         gtk_tree_store_insert(model, &iter, 
-                              NIL_P(parent) ? NULL : RVAL2ITR(parent), 
+                              NIL_P(parent) ? NULL : RVAL2GTKTREEITER(parent), 
                               NUM2INT(position));
         iter.user_data3 = model;
-        ret = ITR2RVAL(&iter);
+        ret = GTKTREEITER2RVAL(&iter);
         G_CHILD_ADD(self, ret);
 #endif
     }
@@ -198,10 +196,10 @@
     GtkTreeIter iter;
     GtkTreeStore* model = _SELF(self);
     gtk_tree_store_insert_before(model, &iter, 
-                                 NIL_P(parent) ? NULL : RVAL2ITR(parent), 
-                                 NIL_P(sibling) ? NULL : RVAL2ITR(sibling));
+                                 NIL_P(parent) ? NULL : RVAL2GTKTREEITER(parent), 
+                                 NIL_P(sibling) ? NULL : RVAL2GTKTREEITER(sibling));
     iter.user_data3 = model;
-    ret = ITR2RVAL(&iter);
+    ret = GTKTREEITER2RVAL(&iter);
     G_CHILD_ADD(self, ret);
     return ret;
 }
@@ -214,11 +212,11 @@
     GtkTreeIter iter;
     GtkTreeStore* model = _SELF(self);
     gtk_tree_store_insert_after(model, &iter, 
-                                NIL_P(parent) ? NULL : RVAL2ITR(parent), 
-                                NIL_P(sibling) ? NULL : RVAL2ITR(sibling));
+                                NIL_P(parent) ? NULL : RVAL2GTKTREEITER(parent), 
+                                NIL_P(sibling) ? NULL : RVAL2GTKTREEITER(sibling));
     iter.user_data3 = model;
 
-    ret = ITR2RVAL(&iter);
+    ret = GTKTREEITER2RVAL(&iter);
     G_CHILD_ADD(self, ret);
     return ret;
 }
@@ -252,10 +250,10 @@
     GtkTreeIter iter;
     GtkTreeStore* model = _SELF(self);
     gtk_tree_store_prepend(model, &iter, 
-                           NIL_P(parent)?NULL:RVAL2ITR(parent));
+                           NIL_P(parent)?NULL:RVAL2GTKTREEITER(parent));
     iter.user_data3 = model;
 
-    ret = ITR2RVAL(&iter);
+    ret = GTKTREEITER2RVAL(&iter);
     G_CHILD_ADD(self, ret);
     return ret;
 }
@@ -268,10 +266,10 @@
     GtkTreeIter iter;
     GtkTreeStore* model = _SELF(self);
     gtk_tree_store_append(model, &iter, 
-                          NIL_P(parent)?NULL:RVAL2ITR(parent));
+                          NIL_P(parent)?NULL:RVAL2GTKTREEITER(parent));
     iter.user_data3 = model;
 
-    ret = ITR2RVAL(&iter);
+    ret = GTKTREEITER2RVAL(&iter);
     G_CHILD_ADD(self, ret);
     return ret;
 }
@@ -280,15 +278,15 @@
 tstore_is_ancestor(self, iter, descendant)
     VALUE self, iter, descendant;
 {
-    return gtk_tree_store_is_ancestor(_SELF(self), RVAL2ITR(iter), 
-                                      RVAL2ITR(descendant));
+    return gtk_tree_store_is_ancestor(_SELF(self), RVAL2GTKTREEITER(iter), 
+                                      RVAL2GTKTREEITER(descendant));
 }
 
 static VALUE
 tstore_iter_depth(self, iter)
     VALUE self, iter;
 {
-    return INT2NUM(gtk_tree_store_iter_depth(_SELF(self), RVAL2ITR(iter)));
+    return INT2NUM(gtk_tree_store_iter_depth(_SELF(self), RVAL2GTKTREEITER(iter)));
 }
 
 static VALUE
@@ -305,7 +303,7 @@
     VALUE self, iter;
 {
     return (NIL_P(iter)) ? Qfalse : 
-        CBOOL2RVAL(gtk_tree_store_iter_is_valid(_SELF(self), RVAL2ITR(iter)));
+        CBOOL2RVAL(gtk_tree_store_iter_is_valid(_SELF(self), RVAL2GTKTREEITER(iter)));
 }
 static VALUE
 tstore_reorder(self, parent, new_order)
@@ -319,7 +317,7 @@
         gnew_order[i] = NUM2INT(RARRAY(new_order)->ptr[i]);
     }
 
-    gtk_tree_store_reorder(_SELF(self), RVAL2ITR(parent), gnew_order);
+    gtk_tree_store_reorder(_SELF(self), RVAL2GTKTREEITER(parent), gnew_order);
     g_free(gnew_order);
     return self;
 }
@@ -327,23 +325,23 @@
 tstore_swap(self, iter1, iter2)
     VALUE self, iter1, iter2;
 {
-    gtk_tree_store_swap(_SELF(self), RVAL2ITR(iter1), RVAL2ITR(iter2));
+    gtk_tree_store_swap(_SELF(self), RVAL2GTKTREEITER(iter1), RVAL2GTKTREEITER(iter2));
     return self;
 }
 static VALUE
 tstore_move_before(self, iter, position)
     VALUE self, iter, position;
 {
-    gtk_tree_store_move_before(_SELF(self), RVAL2ITR(iter), 
-                               NIL_P(position) ? NULL : RVAL2ITR(position));
+    gtk_tree_store_move_before(_SELF(self), RVAL2GTKTREEITER(iter), 
+                               NIL_P(position) ? NULL : RVAL2GTKTREEITER(position));
     return self;
 }
 static VALUE
 tstore_move_after(self, iter, position)
     VALUE self, iter, position;
 {
-    gtk_tree_store_move_after(_SELF(self), RVAL2ITR(iter), 
-                               NIL_P(position) ? NULL : RVAL2ITR(position));
+    gtk_tree_store_move_after(_SELF(self), RVAL2GTKTREEITER(iter), 
+                               NIL_P(position) ? NULL : RVAL2GTKTREEITER(position));
     return self;
 }
 #endif
Index: gtk/src/rbgtkconversions.h
===================================================================
--- gtk/src/rbgtkconversions.h	(revision 0)
+++ gtk/src/rbgtkconversions.h	(revision 0)
@@ -0,0 +1,26 @@
+/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
+/************************************************
+
+  rbgtkconversions.h -
+
+  $Author$
+  $Date$
+
+  Copyright (C) 2003-2006 Ruby-GNOME2 Project Team
+  Copyright (C) 1998-2000 Yukihiro Matsumoto,
+                          Daisuke Kanda,
+                          Hiroshi Igarashi
+************************************************/
+
+#ifndef _RBGTKCONVERSIONS_H
+#define _RBGTKCONVERSIONS_H
+
+#include "rbgobject.h"
+#include <gtk/gtk.h>
+
+#define GTKTREEPATH2RVAL(t) (BOXED2RVAL(t, GTK_TYPE_TREE_PATH))
+#define RVAL2GTKTREEPATH(t) ((GtkTreePath*)RVAL2BOXED(t, GTK_TYPE_TREE_PATH))
+#define GTKTREEITER2RVAL(i) (BOXED2RVAL(i, GTK_TYPE_TREE_ITER))
+#define RVAL2GTKTREEITER(i) ((GtkTreeIter*)RVAL2BOXED(i, GTK_TYPE_TREE_ITER))
+
+#endif /* _RBGTKCONVERSIONS_H */

Property changes on: gtk/src/rbgtkconversions.h
___________________________________________________________________
Name: svn:eol-style
   + native

Index: gtk/src/rbgtkiconview.c
===================================================================
--- gtk/src/rbgtkiconview.c	(revision 3312)
+++ gtk/src/rbgtkiconview.c	(working copy)
@@ -54,9 +54,7 @@
 static VALUE
 iview_get_path_at_pos(VALUE self, VALUE x, VALUE y)
 {
-    GtkTreePath* path = gtk_icon_view_get_path_at_pos(_SELF(self),
-                                                      NUM2INT(x), NUM2INT(y));
-    return BOXED2RVAL(path, GTK_TYPE_TREE_PATH);
+    return GTKTREEPATH2RVAL(gtk_icon_view_get_path_at_pos(_SELF(self), NUM2INT(x), NUM2INT(y)));
 }
 
 static void
@@ -65,8 +63,7 @@
     GtkTreePath* path;
     gpointer* func;
 {
-    rb_funcall((VALUE)func, id_call, 2, GOBJ2RVAL(iview),
-               BOXED2RVAL(path, GTK_TYPE_TREE_PATH)); 
+    rb_funcall((VALUE)func, id_call, 2, GOBJ2RVAL(iview), GTKTREEPATH2RVAL(path));
 }
 
 static VALUE
@@ -121,7 +118,7 @@
     VALUE self, path;
 {
     G_CHILD_SET(self, id_select_path, path);
-    gtk_icon_view_select_path(_SELF(self), RVAL2BOXED(path, GTK_TYPE_TREE_PATH));
+    gtk_icon_view_select_path(_SELF(self), RVAL2GTKTREEPATH(path));
     return self;
 }
 
@@ -130,7 +127,7 @@
        VALUE self, path;
 {
     G_CHILD_UNSET(self, id_select_path);
-    gtk_icon_view_unselect_path(_SELF(self), RVAL2BOXED(path, GTK_TYPE_TREE_PATH));
+    gtk_icon_view_unselect_path(_SELF(self), RVAL2GTKTREEPATH(path));
     return self;
 }
  
@@ -138,9 +135,7 @@
 iview_path_is_selected(self, path)
        VALUE self, path;
 {
-    return CBOOL2RVAL(gtk_icon_view_path_is_selected(_SELF(self), 
-                                                     RVAL2BOXED(path, GTK_TYPE_TREE_PATH)));
-    return self;
+    return CBOOL2RVAL(gtk_icon_view_path_is_selected(_SELF(self), RVAL2GTKTREEPATH(path)));
 }
 
 static VALUE
@@ -174,8 +169,7 @@
 iview_item_activated(self, path)
        VALUE self, path;
 {
-    gtk_icon_view_item_activated(_SELF(self), 
-                                 RVAL2BOXED(path, GTK_TYPE_TREE_PATH));
+    gtk_icon_view_item_activated(_SELF(self), RVAL2GTKTREEPATH(path));
     return self;
 }
 #endif
@@ -185,7 +179,7 @@
 iview_create_drag_icon(self, path)
        VALUE self, path;
 {
-    return GOBJ2RVAL(gtk_icon_view_create_drag_icon(_SELF(self), RVAL2BOXED(path, GTK_TYPE_TREE_PATH)));
+    return GOBJ2RVAL(gtk_icon_view_create_drag_icon(_SELF(self), RVAL2GTKTREEPATH(path)));
 }
 
 static VALUE
@@ -218,7 +212,7 @@
     GtkTreePath* path;
     GtkCellRenderer* cell;
     gboolean cursor_set = gtk_icon_view_get_cursor(_SELF(self), &path, &cell);
-    return cursor_set ? rb_assoc_new(BOXED2RVAL(path, GTK_TYPE_TREE_PATH), GOBJ2RVAL(cell)) : Qnil;
+    return cursor_set ? rb_assoc_new(GTKTREEPATH2RVAL(path), GOBJ2RVAL(cell)) : Qnil;
 }
 
 static VALUE
@@ -228,7 +222,7 @@
     GtkTreePath* path;
     GtkIconViewDropPosition pos;
     gboolean item_at_pos = gtk_icon_view_get_dest_item_at_pos(_SELF(self), NUM2INT(drag_x), NUM2INT(drag_y), &path, &pos);
-    return item_at_pos ? rb_assoc_new(BOXED2RVAL(path, GTK_TYPE_TREE_PATH),
+    return item_at_pos ? rb_assoc_new(GTKTREEPATH2RVAL(path),
                                       GENUM2RVAL(pos, GTK_TYPE_ICON_VIEW_DROP_POSITION)) : Qnil;
 }
 
@@ -239,7 +233,7 @@
     GtkTreePath* path;
     GtkIconViewDropPosition pos;
     gtk_icon_view_get_drag_dest_item(_SELF(self), &path, &pos);
-    return rb_assoc_new(BOXED2RVAL(path, GTK_TYPE_TREE_PATH),
+    return rb_assoc_new(GTKTREEPATH2RVAL(path),
                         GENUM2RVAL(pos, GTK_TYPE_ICON_VIEW_DROP_POSITION));
 }
 
@@ -250,7 +244,7 @@
     GtkTreePath* path;
     GtkCellRenderer* cell;
     gboolean item_at_pos = gtk_icon_view_get_item_at_pos(_SELF(self), NUM2INT(x), NUM2INT(y), &path, &cell);
-    return item_at_pos ? rb_assoc_new(BOXED2RVAL(path, GTK_TYPE_TREE_PATH), GOBJ2RVAL(cell)) : Qnil;
+    return item_at_pos ? rb_assoc_new(GTKTREEPATH2RVAL(path), GOBJ2RVAL(cell)) : Qnil;
 }
 
 static VALUE
@@ -262,8 +256,8 @@
 
     gboolean valid_paths = gtk_icon_view_get_visible_range(_SELF(self), &start_path, &end_path);
 
-    return valid_paths ? rb_assoc_new(BOXED2RVAL(start_path, GTK_TYPE_TREE_PATH),
-                                      BOXED2RVAL(end_path, GTK_TYPE_TREE_PATH)) : Qnil;
+    return valid_paths ? rb_assoc_new(GTKTREEPATH2RVAL(start_path),
+                                      GTKTREEPATH2RVAL(end_path)) : Qnil;
 }
 
 static VALUE
@@ -271,7 +265,7 @@
     VALUE self, path, use_align, row_align, col_align;
 {
     gtk_icon_view_scroll_to_path(_SELF(self),
-                                 RVAL2BOXED(path, GTK_TYPE_TREE_PATH),
+                                 RVAL2GTKTREEPATH(path),
                                  RVAL2CBOOL(use_align),
                                  NUM2DBL(row_align),
                                  NUM2DBL(col_align));
@@ -282,7 +276,7 @@
 iview_set_cursor(self, path, cell, start_editing)
     VALUE self, path, cell, start_editing;
 {
-    gtk_icon_view_set_cursor(_SELF(self), RVAL2BOXED(path, GTK_TYPE_TREE_PATH), 
+    gtk_icon_view_set_cursor(_SELF(self), RVAL2GTKTREEPATH(path),
                              NIL_P(cell) ? NULL : RVAL2GOBJ(cell), RVAL2CBOOL(start_editing));
     return self;
 }
@@ -292,7 +286,7 @@
     VALUE self, path, pos;
 {
     gtk_icon_view_set_drag_dest_item(_SELF(self),
-                                     NIL_P(path) ? NULL : RVAL2BOXED(path, GTK_TYPE_TREE_PATH),
+                                     NIL_P(path) ? NULL : RVAL2GTKTREEPATH(path),
                                      RVAL2GENUM(pos, GTK_TYPE_ICON_VIEW_DROP_POSITION));
     return self;
 }
Index: gtk/src/rbgtktreeiter.c
===================================================================
--- gtk/src/rbgtktreeiter.c	(revision 3312)
+++ gtk/src/rbgtktreeiter.c	(working copy)
@@ -13,8 +13,6 @@
 #include "global.h"
 
 #define _SELF(i) ((GtkTreeIter*)RVAL2BOXED(i, GTK_TYPE_TREE_ITER))
-#define ITR2RVAL(i) (BOXED2RVAL(i, GTK_TYPE_TREE_ITER))
-#define TREEPATH2RVAL(t) (BOXED2RVAL(t, GTK_TYPE_TREE_PATH))
 
 void
 rbgtk_register_treeiter_set_value_func(gtype, func)
@@ -77,7 +75,7 @@
     GtkTreeModel* model = (GtkTreeModel*)iter->user_data3;
     gboolean ret = gtk_tree_model_iter_children(model, &child, iter);
     child.user_data3 = model;
-    return ret ? ITR2RVAL(&child) : Qnil;
+    return ret ? GTKTREEITER2RVAL(&child) : Qnil;
 }
 
 static VALUE
@@ -88,7 +86,7 @@
     GtkTreeIter* iter = _SELF(self);
     GtkTreeModel* model = (GtkTreeModel*)iter->user_data3;
     GtkTreePath* path = gtk_tree_model_get_path(model, iter);
-    retval= TREEPATH2RVAL(path);
+    retval= GTKTREEPATH2RVAL(path);
     gtk_tree_path_free(path);
     return retval;
 }
@@ -120,7 +118,7 @@
     GtkTreeModel* model = (GtkTreeModel*)iter->user_data3;
     gboolean ret = gtk_tree_model_iter_nth_child(model, &child, iter, NUM2INT(n));
     child.user_data3 = model;
-    return ret ? ITR2RVAL(&child) : Qnil;
+    return ret ? GTKTREEITER2RVAL(&child) : Qnil;
 }
 
 static VALUE
@@ -132,7 +130,7 @@
     GtkTreeModel* model = (GtkTreeModel*)iter->user_data3;
     gboolean ret = gtk_tree_model_iter_parent(model, &parent, iter);
     parent.user_data3 = model;
-    return ret ? ITR2RVAL(&parent) : Qnil;
+    return ret ? GTKTREEITER2RVAL(&parent) : Qnil;
 }
 
 static VALUE
Index: gtk/src/rbgtk.h
===================================================================
--- gtk/src/rbgtk.h	(revision 3312)
+++ gtk/src/rbgtk.h	(working copy)
@@ -19,6 +19,7 @@
 #include "rubysig.h"
 #include "rbgobject.h"
 #include <gtk/gtk.h>
+#include "rbgtkconversions.h"
 
 #ifdef GDK_WINDOWING_X11
 #include <gdk/gdkx.h>
Index: gtk/src/rbgtkliststore.c
===================================================================
--- gtk/src/rbgtkliststore.c	(revision 3312)
+++ gtk/src/rbgtkliststore.c	(working copy)
@@ -12,8 +12,6 @@
 #include "global.h"
 
 #define _SELF(s) (GTK_LIST_STORE(RVAL2GOBJ(s)))
-#define ITR2RVAL(i) (BOXED2RVAL(i, GTK_TYPE_TREE_ITER))
-#define RVAL2ITR(i) ((GtkTreeIter*)RVAL2BOXED(i, GTK_TYPE_TREE_ITER))
 
 static ID id_to_a, id_size;
 
@@ -74,7 +72,7 @@
     G_CHILD_ADD(self, iter);
     G_CHILD_ADD(iter, value);
     
-    gtk_list_store_set_value(_SELF(self), RVAL2ITR(iter), NUM2INT(column), &gval);
+    gtk_list_store_set_value(_SELF(self), RVAL2GTKTREEITER(iter), NUM2INT(column), &gval);
 
     g_value_unset(&gval);
     return self;
@@ -169,7 +167,7 @@
 	rb_raise(rb_eArgError, "must be array or hash of values");
     }
 
-    gtk_list_store_set_valuesv(store, RVAL2ITR(iter),
+    gtk_list_store_set_valuesv(store, RVAL2GTKTREEITER(iter),
 			       g_columns, g_values, length);
 
     for (i = 0; i < length; i++)
@@ -195,9 +193,9 @@
 {
     G_CHILD_REMOVE(self, iter);
 #if GTK_CHECK_VERSION(2,2,0)
-    return CBOOL2RVAL(gtk_list_store_remove(_SELF(self), RVAL2ITR(iter)));
+    return CBOOL2RVAL(gtk_list_store_remove(_SELF(self), RVAL2GTKTREEITER(iter)));
 #else
-    gtk_list_store_remove(_SELF(self), RVAL2ITR(iter));
+    gtk_list_store_remove(_SELF(self), RVAL2GTKTREEITER(iter));
     return Qtrue;
 #endif
 }
@@ -256,7 +254,7 @@
     }
     iter.user_data3 = store;
 
-    ret = ITR2RVAL(&iter);
+    ret = GTKTREEITER2RVAL(&iter);
     G_CHILD_ADD(self, ret);
     return ret;
 }
@@ -268,10 +266,10 @@
     VALUE ret;
     GtkTreeIter iter;
     GtkListStore* model = _SELF(self);
-    gtk_list_store_insert_before(model, &iter, NIL_P(sibling) ? NULL : RVAL2ITR(sibling));
+    gtk_list_store_insert_before(model, &iter, NIL_P(sibling) ? NULL : RVAL2GTKTREEITER(sibling));
     iter.user_data3 = model;
 
-    ret = ITR2RVAL(&iter);
+    ret = GTKTREEITER2RVAL(&iter);
     G_CHILD_ADD(self, ret);
     return ret;
 }
@@ -283,10 +281,10 @@
     VALUE ret;
     GtkTreeIter iter;
     GtkListStore* model = _SELF(self);
-    gtk_list_store_insert_after(model, &iter, NIL_P(sibling) ? NULL : RVAL2ITR(sibling));
+    gtk_list_store_insert_after(model, &iter, NIL_P(sibling) ? NULL : RVAL2GTKTREEITER(sibling));
     iter.user_data3 = model;
 
-    ret = ITR2RVAL(&iter);
+    ret = GTKTREEITER2RVAL(&iter);
     G_CHILD_ADD(self, ret);
     return ret;
 }
@@ -301,7 +299,7 @@
     gtk_list_store_prepend(model, &iter);
     iter.user_data3 = model;
 
-    ret = ITR2RVAL(&iter);
+    ret = GTKTREEITER2RVAL(&iter);
     G_CHILD_ADD(self, ret);
     return ret;
 }
@@ -316,7 +314,7 @@
     gtk_list_store_append(model, &iter);
     iter.user_data3 = model;
     
-    ret = ITR2RVAL(&iter);
+    ret = GTKTREEITER2RVAL(&iter);
     G_CHILD_ADD(self, ret);
     return ret;
 }
@@ -336,7 +334,7 @@
     VALUE self, iter;
 {
     return (NIL_P(iter)) ? Qfalse :
-        CBOOL2RVAL(gtk_list_store_iter_is_valid(_SELF(self), RVAL2ITR(iter)));
+        CBOOL2RVAL(gtk_list_store_iter_is_valid(_SELF(self), RVAL2GTKTREEITER(iter)));
 }
 
 static VALUE
@@ -359,23 +357,23 @@
 lstore_swap(self, iter1, iter2)
     VALUE self, iter1, iter2;
 {
-    gtk_list_store_swap(_SELF(self), RVAL2ITR(iter1), RVAL2ITR(iter2));
+    gtk_list_store_swap(_SELF(self), RVAL2GTKTREEITER(iter1), RVAL2GTKTREEITER(iter2));
     return self;
 }
 static VALUE
 lstore_move_before(self, iter, position)
     VALUE self, iter, position;
 {
-    gtk_list_store_move_before(_SELF(self), RVAL2ITR(iter), 
-                               NIL_P(position) ? NULL : RVAL2ITR(position));
+    gtk_list_store_move_before(_SELF(self), RVAL2GTKTREEITER(iter), 
+                               NIL_P(position) ? NULL : RVAL2GTKTREEITER(position));
     return self;
 }
 static VALUE
 lstore_move_after(self, iter, position)
     VALUE self, iter, position;
 {
-    gtk_list_store_move_after(_SELF(self), RVAL2ITR(iter), 
-                               NIL_P(position) ? NULL : RVAL2ITR(position));
+    gtk_list_store_move_after(_SELF(self), RVAL2GTKTREEITER(iter), 
+                               NIL_P(position) ? NULL : RVAL2GTKTREEITER(position));
     return self;
 }
 #endif
Index: gtk/src/rbgtktreemodelsort.c
===================================================================
--- gtk/src/rbgtktreemodelsort.c	(revision 3312)
+++ gtk/src/rbgtktreemodelsort.c	(working copy)
@@ -12,10 +12,6 @@
 #include "global.h"
 
 #define _SELF(s) (GTK_TREE_MODEL_SORT(RVAL2GOBJ(s)))
-#define RVAL2TREEPATH(s) ((GtkTreePath*)RVAL2BOXED(s, GTK_TYPE_TREE_PATH))
-#define TREEPATH2RVAL(s) (BOXED2RVAL(s, GTK_TYPE_TREE_PATH))
-#define RVAL2ITR(i) ((GtkTreeIter*)RVAL2BOXED(i, GTK_TYPE_TREE_ITER))
-#define ITR2RVAL(i) (BOXED2RVAL(i, GTK_TYPE_TREE_ITER))
 
 static ID id_model;
 
@@ -33,9 +29,9 @@
 tmodelsort_convert_child_path_to_path(self, child_path)
     VALUE self, child_path;
 {
-    return TREEPATH2RVAL(gtk_tree_model_sort_convert_child_path_to_path(
+    return GTKTREEPATH2RVAL(gtk_tree_model_sort_convert_child_path_to_path(
                              _SELF(self),
-                             RVAL2TREEPATH(child_path)));
+                             RVAL2GTKTREEPATH(child_path)));
 }
 
 static VALUE
@@ -45,18 +41,18 @@
     GtkTreeIter sort_iter;
     GtkTreeModelSort* modelsort = _SELF(self);
     gtk_tree_model_sort_convert_child_iter_to_iter(modelsort, &sort_iter,
-                                                   RVAL2ITR(child_iter));
+                                                   RVAL2GTKTREEITER(child_iter));
     sort_iter.user_data3 = gtk_tree_model_sort_get_model(modelsort);
-    return ITR2RVAL(&sort_iter);
+    return GTKTREEITER2RVAL(&sort_iter);
 }
 
 static VALUE
 tmodelsort_convert_path_to_child_path(self, sorted_path)
     VALUE self, sorted_path;
 {
-    return TREEPATH2RVAL(gtk_tree_model_sort_convert_path_to_child_path(
+    return GTKTREEPATH2RVAL(gtk_tree_model_sort_convert_path_to_child_path(
                              _SELF(self),
-                             RVAL2TREEPATH(sorted_path)));
+                             RVAL2GTKTREEPATH(sorted_path)));
 }
 
 static VALUE
@@ -66,9 +62,9 @@
     GtkTreeIter child_iter;
     GtkTreeModelSort* modelsort = _SELF(self);
     gtk_tree_model_sort_convert_iter_to_child_iter(modelsort, &child_iter,
-                                                   RVAL2ITR(sorted_iter));
+                                                   RVAL2GTKTREEITER(sorted_iter));
     child_iter.user_data3 = gtk_tree_model_sort_get_model(modelsort);
-    return ITR2RVAL(&child_iter);
+    return GTKTREEITER2RVAL(&child_iter);
 } 
 
 static VALUE
@@ -92,7 +88,7 @@
 tmodelsort_iter_is_valid(self, iter)
     VALUE self, iter;
 {
-    return CBOOL2RVAL(gtk_tree_model_sort_iter_is_valid(_SELF(self), RVAL2ITR(iter)));
+    return CBOOL2RVAL(gtk_tree_model_sort_iter_is_valid(_SELF(self), RVAL2GTKTREEITER(iter)));
 }
 #endif
 
Index: gtk/src/rbgtkentrycompletion.c
===================================================================
--- gtk/src/rbgtkentrycompletion.c	(revision 3312)
+++ gtk/src/rbgtkentrycompletion.c	(working copy)
@@ -38,7 +38,7 @@
 {
     iter->user_data3 = gtk_entry_completion_get_model(completion);
     return RVAL2CBOOL(rb_funcall((VALUE)func, id_call, 3, GOBJ2RVAL(completion),
-                            CSTR2RVAL(key), BOXED2RVAL(iter, GTK_TYPE_TREE_ITER)));
+                            CSTR2RVAL(key), GTKTREEITER2RVAL(iter)));
 }
 
 static VALUE

