2 * $Id: rb_cursor.c 351 2006-02-10 15:25:40Z tilman $
4 * Copyright (C) 2004 ruby-ecore team (see AUTHORS)
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.
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.
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
24 #include <Ecore_X_Cursor.h>
27 #include "../ecore/rb_ecore.h"
28 #include "rb_ecore_x.h"
29 #include "rb_cursor.h"
33 static void c_free (RbCursor *c)
35 if (c->real && c->need_free)
36 ecore_x_cursor_free (c->real);
41 static VALUE c_alloc (VALUE klass)
43 RbCursor *cursor = NULL;
45 return Data_Make_Struct (klass, RbCursor, NULL, c_free, cursor);
48 static VALUE c_new_from_shape (VALUE klass, VALUE shape)
51 RbCursor *cursor = NULL;
53 self = rb_class_new_instance (1, &shape, klass);
55 Data_Get_Struct (self, RbCursor, cursor);
57 cursor->real = ecore_x_cursor_shape_get (FIX2INT (shape));
58 cursor->need_free = false;
63 void Init_Cursor (void)
65 cCursor = rb_define_class_under (mX, "Cursor", rb_cObject);
67 rb_define_alloc_func (cCursor, c_alloc);
68 rb_define_singleton_method (cCursor, "new_from_shape",
72 DEF_CONST (cCursor, ECORE_X_CURSOR_, X);
73 DEF_CONST (cCursor, ECORE_X_CURSOR_, ARROW);
74 DEF_CONST (cCursor, ECORE_X_CURSOR_, BASED_ARROW_DOWN);
75 DEF_CONST (cCursor, ECORE_X_CURSOR_, UP);
76 DEF_CONST (cCursor, ECORE_X_CURSOR_, BOAT);
77 DEF_CONST (cCursor, ECORE_X_CURSOR_, BOTTOM_LEFT_CORNER);
78 DEF_CONST (cCursor, ECORE_X_CURSOR_, BOTTOM_RIGHT_CORNER);
79 DEF_CONST (cCursor, ECORE_X_CURSOR_, BOTTOM_SIDE);
80 DEF_CONST (cCursor, ECORE_X_CURSOR_, BOTTOM_TEE);
81 DEF_CONST (cCursor, ECORE_X_CURSOR_, BOX_SPIRAL);
82 DEF_CONST (cCursor, ECORE_X_CURSOR_, CENTER_PTR);
83 DEF_CONST (cCursor, ECORE_X_CURSOR_, CIRCLE);
84 DEF_CONST (cCursor, ECORE_X_CURSOR_, CLOCK);
85 DEF_CONST (cCursor, ECORE_X_CURSOR_, COFFEE_MUG);
86 DEF_CONST (cCursor, ECORE_X_CURSOR_, CROSS);
87 DEF_CONST (cCursor, ECORE_X_CURSOR_, CROSS_REVERSE);
88 DEF_CONST (cCursor, ECORE_X_CURSOR_, CROSSHAIR);
89 DEF_CONST (cCursor, ECORE_X_CURSOR_, DIAMOND_CROSS);
90 DEF_CONST (cCursor, ECORE_X_CURSOR_, DOT);
91 DEF_CONST (cCursor, ECORE_X_CURSOR_, DOT_BOX_MASK);
92 DEF_CONST (cCursor, ECORE_X_CURSOR_, DOUBLE_ARROW);
93 DEF_CONST (cCursor, ECORE_X_CURSOR_, DRAFT_LARGE);
94 DEF_CONST (cCursor, ECORE_X_CURSOR_, DRAFT_SMALL);
95 DEF_CONST (cCursor, ECORE_X_CURSOR_, DRAPED_BOX);
96 DEF_CONST (cCursor, ECORE_X_CURSOR_, EXCHANGE);
97 DEF_CONST (cCursor, ECORE_X_CURSOR_, FLEUR);
98 DEF_CONST (cCursor, ECORE_X_CURSOR_, GOBBLER);
99 DEF_CONST (cCursor, ECORE_X_CURSOR_, GUMBY);
100 DEF_CONST (cCursor, ECORE_X_CURSOR_, HAND1);
101 DEF_CONST (cCursor, ECORE_X_CURSOR_, HAND2);
102 DEF_CONST (cCursor, ECORE_X_CURSOR_, HEART);
103 DEF_CONST (cCursor, ECORE_X_CURSOR_, ICON);
104 DEF_CONST (cCursor, ECORE_X_CURSOR_, IRON_CROSS);
105 DEF_CONST (cCursor, ECORE_X_CURSOR_, LEFT_PTR);
106 DEF_CONST (cCursor, ECORE_X_CURSOR_, LEFT_SIDE);
107 DEF_CONST (cCursor, ECORE_X_CURSOR_, LEFT_TEE);
108 DEF_CONST (cCursor, ECORE_X_CURSOR_, LEFTBUTTON);
109 DEF_CONST (cCursor, ECORE_X_CURSOR_, LL_ANGLE);
110 DEF_CONST (cCursor, ECORE_X_CURSOR_, LR_ANGLE);
111 DEF_CONST (cCursor, ECORE_X_CURSOR_, MAN);
112 DEF_CONST (cCursor, ECORE_X_CURSOR_, MIDDLEBUTTON);
113 DEF_CONST (cCursor, ECORE_X_CURSOR_, MOUSE);
114 DEF_CONST (cCursor, ECORE_X_CURSOR_, PENCIL);
115 DEF_CONST (cCursor, ECORE_X_CURSOR_, PIRATE);
116 DEF_CONST (cCursor, ECORE_X_CURSOR_, PLUS);
117 DEF_CONST (cCursor, ECORE_X_CURSOR_, QUESTION_ARROW);
118 DEF_CONST (cCursor, ECORE_X_CURSOR_, RIGHT_PTR);
119 DEF_CONST (cCursor, ECORE_X_CURSOR_, RIGHT_SIDE);
120 DEF_CONST (cCursor, ECORE_X_CURSOR_, RIGHT_TEE);
121 DEF_CONST (cCursor, ECORE_X_CURSOR_, RIGHTBUTTON);
122 DEF_CONST (cCursor, ECORE_X_CURSOR_, RTL_LOGO);
123 DEF_CONST (cCursor, ECORE_X_CURSOR_, SAILBOAT);
124 DEF_CONST (cCursor, ECORE_X_CURSOR_, SB_DOWN_ARROW);
125 DEF_CONST (cCursor, ECORE_X_CURSOR_, SB_H_DOUBLE_ARROW);
126 DEF_CONST (cCursor, ECORE_X_CURSOR_, SB_LEFT_ARROW);
127 DEF_CONST (cCursor, ECORE_X_CURSOR_, SB_RIGHT_ARROW);
128 DEF_CONST (cCursor, ECORE_X_CURSOR_, SB_UP_ARROW);
129 DEF_CONST (cCursor, ECORE_X_CURSOR_, SB_V_DOUBLE_ARROW);
130 DEF_CONST (cCursor, ECORE_X_CURSOR_, SHUTTLE);
131 DEF_CONST (cCursor, ECORE_X_CURSOR_, SIZING);
132 DEF_CONST (cCursor, ECORE_X_CURSOR_, SPIDER);
133 DEF_CONST (cCursor, ECORE_X_CURSOR_, SPRAYCAN);
134 DEF_CONST (cCursor, ECORE_X_CURSOR_, STAR);
135 DEF_CONST (cCursor, ECORE_X_CURSOR_, TARGET);
136 DEF_CONST (cCursor, ECORE_X_CURSOR_, TCROSS);
137 DEF_CONST (cCursor, ECORE_X_CURSOR_, TOP_LEFT_ARROW);
138 DEF_CONST (cCursor, ECORE_X_CURSOR_, TOP_LEFT_CORNER);
139 DEF_CONST (cCursor, ECORE_X_CURSOR_, TOP_RIGHT_CORNER);
140 DEF_CONST (cCursor, ECORE_X_CURSOR_, TOP_SIDE);
141 DEF_CONST (cCursor, ECORE_X_CURSOR_, TOP_TEE);
142 DEF_CONST (cCursor, ECORE_X_CURSOR_, TREK);
143 DEF_CONST (cCursor, ECORE_X_CURSOR_, UL_ANGLE);
144 DEF_CONST (cCursor, ECORE_X_CURSOR_, UMBRELLA);
145 DEF_CONST (cCursor, ECORE_X_CURSOR_, UR_ANGLE);
146 DEF_CONST (cCursor, ECORE_X_CURSOR_, WATCH);
147 DEF_CONST (cCursor, ECORE_X_CURSOR_, XTERM);