Unbreak Window#resize.
[ruby-ecore.git] / src / ecore_x / rb_cursor.c
1 /*
2  * $Id: rb_cursor.c 98 2004-08-26 13:12:55Z tilman $
3  *
4  * Copyright (C) 2004 ruby-ecore team (see AUTHORS)
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 #include <ruby.h>
22
23 #include <Ecore_X.h>
24 #include <Ecore_X_Cursor.h>
25
26 #define __RB_CURSOR_C
27 #include "rb_ecore_x.h"
28 #include "rb_cursor.h"
29
30 VALUE cCursor;
31
32 static void c_free (RbCursor *c)
33 {
34         if (c->real && c->need_free)
35                 ecore_x_cursor_free (c->real);
36
37         free (c);
38 }
39
40 static VALUE c_new_from_shape (VALUE klass, VALUE shape)
41 {
42         VALUE self;
43         RbCursor *cursor = NULL;
44
45         self = Data_Make_Struct (klass, RbCursor, NULL, c_free, cursor);
46
47         cursor->real = ecore_x_cursor_shape_get (FIX2INT (shape));
48         cursor->need_free = false;
49
50         rb_obj_call_init (self, 0, NULL);
51
52         return self;
53 }
54
55 void Init_Cursor (void)
56 {
57         cCursor = rb_define_class_under (mX, "Cursor", rb_cObject);
58
59         rb_define_singleton_method (cCursor, "new_from_shape",
60                                     c_new_from_shape, 1);
61
62         /* shape constants */
63         DEF_CONST (cCursor, ECORE_X_CURSOR_, X);
64         DEF_CONST (cCursor, ECORE_X_CURSOR_, ARROW);
65         DEF_CONST (cCursor, ECORE_X_CURSOR_, BASED_ARROW_DOWN);
66         DEF_CONST (cCursor, ECORE_X_CURSOR_, UP);
67         DEF_CONST (cCursor, ECORE_X_CURSOR_, BOAT);
68         DEF_CONST (cCursor, ECORE_X_CURSOR_, BOTTOM_LEFT_CORNER);
69         DEF_CONST (cCursor, ECORE_X_CURSOR_, BOTTOM_RIGHT_CORNER);
70         DEF_CONST (cCursor, ECORE_X_CURSOR_, BOTTOM_SIDE);
71         DEF_CONST (cCursor, ECORE_X_CURSOR_, BOTTOM_TEE);
72         DEF_CONST (cCursor, ECORE_X_CURSOR_, BOX_SPIRAL);
73         DEF_CONST (cCursor, ECORE_X_CURSOR_, CENTER_PTR);
74         DEF_CONST (cCursor, ECORE_X_CURSOR_, CIRCLE);
75         DEF_CONST (cCursor, ECORE_X_CURSOR_, CLOCK);
76         DEF_CONST (cCursor, ECORE_X_CURSOR_, COFFEE_MUG);
77         DEF_CONST (cCursor, ECORE_X_CURSOR_, CROSS);
78         DEF_CONST (cCursor, ECORE_X_CURSOR_, CROSS_REVERSE);
79         DEF_CONST (cCursor, ECORE_X_CURSOR_, CROSSHAIR);
80         DEF_CONST (cCursor, ECORE_X_CURSOR_, DIAMOND_CROSS);
81         DEF_CONST (cCursor, ECORE_X_CURSOR_, DOT);
82         DEF_CONST (cCursor, ECORE_X_CURSOR_, DOT_BOX_MASK);
83         DEF_CONST (cCursor, ECORE_X_CURSOR_, DOUBLE_ARROW);
84         DEF_CONST (cCursor, ECORE_X_CURSOR_, DRAFT_LARGE);
85         DEF_CONST (cCursor, ECORE_X_CURSOR_, DRAFT_SMALL);
86         DEF_CONST (cCursor, ECORE_X_CURSOR_, DRAPED_BOX);
87         DEF_CONST (cCursor, ECORE_X_CURSOR_, EXCHANGE);
88         DEF_CONST (cCursor, ECORE_X_CURSOR_, FLEUR);
89         DEF_CONST (cCursor, ECORE_X_CURSOR_, GOBBLER);
90         DEF_CONST (cCursor, ECORE_X_CURSOR_, GUMBY);
91         DEF_CONST (cCursor, ECORE_X_CURSOR_, HAND1);
92         DEF_CONST (cCursor, ECORE_X_CURSOR_, HAND2);
93         DEF_CONST (cCursor, ECORE_X_CURSOR_, HEART);
94         DEF_CONST (cCursor, ECORE_X_CURSOR_, ICON);
95         DEF_CONST (cCursor, ECORE_X_CURSOR_, IRON_CROSS);
96         DEF_CONST (cCursor, ECORE_X_CURSOR_, LEFT_PTR);
97         DEF_CONST (cCursor, ECORE_X_CURSOR_, LEFT_SIDE);
98         DEF_CONST (cCursor, ECORE_X_CURSOR_, LEFT_TEE);
99         DEF_CONST (cCursor, ECORE_X_CURSOR_, LEFTBUTTON);
100         DEF_CONST (cCursor, ECORE_X_CURSOR_, LL_ANGLE);
101         DEF_CONST (cCursor, ECORE_X_CURSOR_, LR_ANGLE);
102         DEF_CONST (cCursor, ECORE_X_CURSOR_, MAN);
103         DEF_CONST (cCursor, ECORE_X_CURSOR_, MIDDLEBUTTON);
104         DEF_CONST (cCursor, ECORE_X_CURSOR_, MOUSE);
105         DEF_CONST (cCursor, ECORE_X_CURSOR_, PENCIL);
106         DEF_CONST (cCursor, ECORE_X_CURSOR_, PIRATE);
107         DEF_CONST (cCursor, ECORE_X_CURSOR_, PLUS);
108         DEF_CONST (cCursor, ECORE_X_CURSOR_, QUESTION_ARROW);
109         DEF_CONST (cCursor, ECORE_X_CURSOR_, RIGHT_PTR);
110         DEF_CONST (cCursor, ECORE_X_CURSOR_, RIGHT_SIDE);
111         DEF_CONST (cCursor, ECORE_X_CURSOR_, RIGHT_TEE);
112         DEF_CONST (cCursor, ECORE_X_CURSOR_, RIGHTBUTTON);
113         DEF_CONST (cCursor, ECORE_X_CURSOR_, RTL_LOGO);
114         DEF_CONST (cCursor, ECORE_X_CURSOR_, SAILBOAT);
115         DEF_CONST (cCursor, ECORE_X_CURSOR_, SB_DOWN_ARROW);
116         DEF_CONST (cCursor, ECORE_X_CURSOR_, SB_H_DOUBLE_ARROW);
117         DEF_CONST (cCursor, ECORE_X_CURSOR_, SB_LEFT_ARROW);
118         DEF_CONST (cCursor, ECORE_X_CURSOR_, SB_RIGHT_ARROW);
119         DEF_CONST (cCursor, ECORE_X_CURSOR_, SB_UP_ARROW);
120         DEF_CONST (cCursor, ECORE_X_CURSOR_, SB_V_DOUBLE_ARROW);
121         DEF_CONST (cCursor, ECORE_X_CURSOR_, SHUTTLE);
122         DEF_CONST (cCursor, ECORE_X_CURSOR_, SIZING);
123         DEF_CONST (cCursor, ECORE_X_CURSOR_, SPIDER);
124         DEF_CONST (cCursor, ECORE_X_CURSOR_, SPRAYCAN);
125         DEF_CONST (cCursor, ECORE_X_CURSOR_, STAR);
126         DEF_CONST (cCursor, ECORE_X_CURSOR_, TARGET);
127         DEF_CONST (cCursor, ECORE_X_CURSOR_, TCROSS);
128         DEF_CONST (cCursor, ECORE_X_CURSOR_, TOP_LEFT_ARROW);
129         DEF_CONST (cCursor, ECORE_X_CURSOR_, TOP_LEFT_CORNER);
130         DEF_CONST (cCursor, ECORE_X_CURSOR_, TOP_RIGHT_CORNER);
131         DEF_CONST (cCursor, ECORE_X_CURSOR_, TOP_SIDE);
132         DEF_CONST (cCursor, ECORE_X_CURSOR_, TOP_TEE);
133         DEF_CONST (cCursor, ECORE_X_CURSOR_, TREK);
134         DEF_CONST (cCursor, ECORE_X_CURSOR_, UL_ANGLE);
135         DEF_CONST (cCursor, ECORE_X_CURSOR_, UMBRELLA);
136         DEF_CONST (cCursor, ECORE_X_CURSOR_, UR_ANGLE);
137         DEF_CONST (cCursor, ECORE_X_CURSOR_, WATCH);
138         DEF_CONST (cCursor, ECORE_X_CURSOR_, XTERM);
139 }