Made EcoreEvas.new public for now.
[ruby-ecore.git] / src / ecore_evas / rb_ecore_evas.c
index 3ded59d92230d678f149cb601179cbf53755c00b..1e08533fca5997fc91968cd94f2bee81a0a4f42f 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: rb_ecore_evas.c 303 2005-03-22 17:42:04Z tilman $
+ * $Id: rb_ecore_evas.c 353 2006-02-10 17:00:24Z tilman $
  *
  * Copyright (C) 2004 ruby-ecore team (see AUTHORS)
  *
@@ -522,6 +522,38 @@ static VALUE c_rotation_set (VALUE self, VALUE val)
        return Qnil;
 }
 
+static VALUE c_name_class_get (VALUE self)
+{
+       const char *name = NULL, *klass = NULL;
+
+       GET_OBJ (self, RbEcoreEvas, ee);
+
+       ecore_evas_name_class_get (ee->real, &name, &klass);
+
+       return rb_ary_new3 (2, name ? rb_str_new2 (name) : Qnil,
+                           klass ? rb_str_new2 (klass) : Qnil);
+}
+
+static VALUE c_name_class_set (VALUE self, VALUE ary)
+{
+       VALUE s1, s2;
+
+       GET_OBJ (self, RbEcoreEvas, ee);
+
+       Check_Type (ary, T_ARRAY);
+
+       s1 = rb_ary_shift (ary);
+       s2 = rb_ary_shift (ary);
+
+       StringValue (s1);
+       StringValue (s2);
+
+       ecore_evas_name_class_set (ee->real, StringValuePtr (s1),
+                                  StringValuePtr (s2));
+
+       return Qnil;
+}
+
 /* FIXME: this is unsafe!
  * :nodoc:
  */
@@ -687,8 +719,6 @@ void Init_EcoreEvas (void)
 {
        cEcoreEvas = rb_define_class_under (mEvas, "EcoreEvas", rb_cObject);
 
-       rb_define_private_method (rb_singleton_class (cEcoreEvas),
-                                 "new", NULL, 0);
        rb_define_method (cEcoreEvas, "initialize", c_init, -1);
        rb_define_method (cEcoreEvas, "inspect", c_inspect, 0);
        rb_define_method (cEcoreEvas, "delete", c_delete, 0);
@@ -717,6 +747,8 @@ void Init_EcoreEvas (void)
        rb_define_method (cEcoreEvas, "sticky=", c_sticky_set, 1);
        rb_define_method (cEcoreEvas, "rotation", c_rotation_get, 0);
        rb_define_method (cEcoreEvas, "rotation=", c_rotation_set, 1);
+       rb_define_method (cEcoreEvas, "name_class", c_name_class_get, 0);
+       rb_define_method (cEcoreEvas, "name_class=", c_name_class_set, 1);
 
        rb_define_method (cEcoreEvas, "on_resize", c_on_resize, 0);
        rb_define_method (cEcoreEvas, "on_move", c_on_move, 0);