+static VALUE c_get_drag_value (VALUE self)
+{
+ double dx = 0, dy = 0;
+
+ GET_OBJ (GET_EDJE (self), Evas_Object *, e);
+
+ edje_object_part_drag_value_get (*e, GET_NAME (self), &dx, &dy);
+
+ return rb_ary_new3 (2, rb_float_new (dx), rb_float_new (dy));
+}
+
+static VALUE c_set_drag_value (VALUE self, VALUE dx, VALUE dy)
+{
+ GET_OBJ (GET_EDJE (self), Evas_Object *, e);
+
+ if (!FIXNUM_P (dx))
+ Check_Type (dx, T_FLOAT);
+
+ if (!FIXNUM_P (dy))
+ Check_Type (dy, T_FLOAT);
+
+ edje_object_part_drag_value_set (*e, GET_NAME (self),
+ NUM2DBL (dx), NUM2DBL (dy));
+
+ return Qnil;
+}
+