Added EvasObject#userdata.
[ruby-evas.git] / src / rb_evas_object.h
1 /*
2  * $Id: rb_evas_object.h 304 2005-03-22 17:51:51Z tilman $
3  *
4  * Copyright (C) 2004 Tilman Sauerbeck (tilman at code-monkey de)
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this library; if not, write to the Free Software
18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19  */
20
21 #ifndef __RB_EVAS_OBJECT_H
22 #define __RB_EVAS_OBJECT_H
23
24 #include <stdbool.h>
25
26 #define RUBY_EVAS_OBJECT_KEY "__RB_EVAS_OBJECT_OBJECT"
27
28 typedef struct {
29         Evas_Object *real;
30         VALUE parent;
31         VALUE callbacks;
32         VALUE userdata;
33 } RbEvasObject;
34
35 void Init_EvasObject (void);
36
37 void c_evas_object_free (RbEvasObject *e, bool free_mem);
38 void c_evas_object_mark (RbEvasObject *e);
39
40 VALUE TO_EVAS_OBJECT (Evas_Object *o);
41
42 #ifndef __RB_EVAS_OBJECT_C
43 extern VALUE cEvasObject;
44 #endif
45
46 #endif