Reworked the call system.
[ruby-edje.git] / src / rb_part.c
index 245df55b845d9a8fc7d950c20215500c0aa93df7..381d04962b2b07d07954c4b85c98295ed071bfe3 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: rb_part.c 47 2004-07-26 13:24:50Z tilman $
+ * $Id: rb_part.c 48 2004-07-31 13:46:07Z tilman $
  *
  * Copyright (C) 2004 Tilman Sauerbeck (tilman at code-monkey de)
  *
@@ -173,6 +173,33 @@ static VALUE c_text_set (VALUE self, VALUE text)
        return Qnil;
 }
 
+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;
+}
+
 void Init_Part (void)
 {
        cPart = rb_define_class_under (mEdje, "Part", rb_cObject);
@@ -190,4 +217,6 @@ void Init_Part (void)
                          c_swallowed_object_get, 0);
        rb_define_method (cPart, "text", c_text_get, 0);
        rb_define_method (cPart, "text=", c_text_set, 1);
+       rb_define_method (cPart, "get_drag_value", c_get_drag_value, 2);
+       rb_define_method (cPart, "set_drag_value", c_set_drag_value, 2);
 }