X-Git-Url: http://git.code-monkey.de/?p=ruby-ecore.git;a=blobdiff_plain;f=src%2Fecore_evas%2Frb_ecore_evas.c;h=e51a4f42b79f5a7cce78ce4847aec0ba8249b369;hp=1e08533fca5997fc91968cd94f2bee81a0a4f42f;hb=45f545180849ddf721711df2469ea12f2ff9990a;hpb=878d2b91169e80b9d437a04d9a013d00313df261
diff --git a/src/ecore_evas/rb_ecore_evas.c b/src/ecore_evas/rb_ecore_evas.c
index 1e08533..e51a4f4 100644
--- a/src/ecore_evas/rb_ecore_evas.c
+++ b/src/ecore_evas/rb_ecore_evas.c
@@ -1,5 +1,5 @@
/*
- * $Id: rb_ecore_evas.c 353 2006-02-10 17:00:24Z tilman $
+ * $Id: rb_ecore_evas.c 385 2006-08-20 15:21:14Z tilman $
*
* Copyright (C) 2004 ruby-ecore team (see AUTHORS)
*
@@ -35,14 +35,14 @@
#define CALLBACK_DEFINE_HANDLER(name) \
static void on_##name (Ecore_Evas *real) \
{ \
- VALUE self; \
- VALUE cb; \
+ VALUE self, cb; \
\
self = (VALUE) ecore_evas_data_get (real, \
RUBY_ECORE_EVAS_KEY); \
GET_OBJ (self, RbEcoreEvas, ee); \
\
- cb = rb_hash_aref (ee->callbacks, rb_str_new2 (#name)); \
+ cb = rb_hash_aref (ee->callbacks, \
+ LONG2NUM ((long) ecore_evas_callback_##name##_set)); \
rb_funcall (cb, rb_intern ("call"), 0); \
} \
@@ -55,7 +55,8 @@
if (NIL_P (ee->callbacks)) \
ee->callbacks = rb_hash_new (); \
\
- rb_hash_aset (ee->callbacks, rb_str_new2 (#name), \
+ rb_hash_aset (ee->callbacks, \
+ LONG2NUM ((long) ecore_evas_callback_##name##_set), \
rb_block_proc ()); \
\
ecore_evas_callback_##name##_set (ee->real, on_##name); \
@@ -554,6 +555,37 @@ static VALUE c_name_class_set (VALUE self, VALUE ary)
return Qnil;
}
+/*
+ * call-seq:
+ * ee.iconified? => true or false
+ *
+ * Returns true if ee is iconified, else returns false.
+ */
+static VALUE c_iconified_get (VALUE self)
+{
+ GET_OBJ (self, RbEcoreEvas, ee);
+
+ return ecore_evas_iconified_get (ee->real) ? Qtrue : Qfalse;
+}
+
+/*
+ * call-seq:
+ * ee.iconified(true or false)
+ *
+ * Sets whether ee is iconified or not.
+ */
+static VALUE c_iconified_set (VALUE self, VALUE val)
+{
+ GET_OBJ (self, RbEcoreEvas, ee);
+
+ CHECK_BOOL (val);
+
+ ecore_evas_iconified_set (ee->real, val == Qtrue);
+
+ return Qnil;
+}
+
+
/* FIXME: this is unsafe!
* :nodoc:
*/
@@ -749,6 +781,8 @@ void Init_EcoreEvas (void)
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, "iconified?", c_iconified_get, 0);
+ rb_define_method (cEcoreEvas, "iconified=", c_iconified_set, 1);
rb_define_method (cEcoreEvas, "on_resize", c_on_resize, 0);
rb_define_method (cEcoreEvas, "on_move", c_on_move, 0);