10 #define FN(EGO_FUNC, E_FUNC) \
12 EGO_FUNC (lua_State *L) \
14 luaobj_Object *obj = lua_touserdata (L, 1); \
23 #define GET_BOOL(EGO_FUNC, E_FUNC) \
25 EGO_FUNC (lua_State *L) \
27 luaobj_Object *obj = lua_touserdata (L, 1); \
28 lua_pushboolean (L, E_FUNC (obj->data)); \
32 #define SET_BOOL(EGO_FUNC, E_FUNC) \
34 EGO_FUNC (lua_State *L) \
36 luaobj_Object *obj = lua_touserdata (L, 1); \
37 E_FUNC (obj->data, lua_toboolean (L, 2)); \
45 #define GET_INTEGER(EGO_FUNC, E_FUNC) \
47 EGO_FUNC (lua_State *L) \
49 luaobj_Object *obj = lua_touserdata (L, 1); \
50 lua_pushnumber (L, E_FUNC (obj->data)); \
54 #define SET_INTEGER(EGO_FUNC, E_FUNC) \
56 EGO_FUNC (lua_State *L) \
58 luaobj_Object *obj = lua_touserdata (L, 1); \
59 E_FUNC (obj->data, luaL_checkinteger (L, 2)); \
67 #define GET_FLOAT(EGO_FUNC, E_FUNC) \
69 EGO_FUNC (lua_State *L) \
71 luaobj_Object *obj = lua_touserdata (L, 1); \
72 lua_pushnumber (L, E_FUNC (obj->data)); \
76 #define SET_FLOAT(EGO_FUNC, E_FUNC) \
78 EGO_FUNC (lua_State *L) \
80 luaobj_Object *obj = lua_touserdata (L, 1); \
81 E_FUNC (obj->data, luaL_checknumber (L, 2)); \
89 #define GET_STRING(EGO_FUNC, E_FUNC) \
91 EGO_FUNC (lua_State *L) \
93 luaobj_Object *obj = lua_touserdata (L, 1); \
94 lua_pushstring (L, (const char *) E_FUNC (obj->data)); \
98 #define SET_STRING(EGO_FUNC, E_FUNC) \
100 EGO_FUNC (lua_State *L) \
102 luaobj_Object *obj = lua_touserdata (L, 1); \
103 E_FUNC (obj->data, luaL_checkstring (L, 2)); \
111 #define GET_OBJ(EGO_FUNC, E_FUNC) \
113 EGO_FUNC (lua_State *L) \
115 luaobj_Object *obj = lua_touserdata (L, 1); \
116 Evas_Object *tar = E_FUNC (obj->data); \
119 luaobj_Ref *ref = evas_object_data_get (tar, "luaobj"); \
120 luaobj_get_ref (L, ref); \
127 #define SET_OBJ(EGO_FUNC, E_FUNC) \
129 EGO_FUNC (lua_State *L) \
131 luaobj_Object *obj = lua_touserdata (L, 1); \
132 luaobj_Object *tar = lua_touserdata (L, 2); \
133 E_FUNC (obj->data, tar->data); \
137 #define FN_BOOL(EGO_FUNC, E_FUNC) \
139 EGO_FUNC (lua_State *L) \
141 luaobj_Object *obj = lua_touserdata (L, 1); \
142 E_FUNC (obj->data, lua_toboolean (L, 2)); \
146 #define FN_INTEGER(EGO_FUNC, E_FUNC) \
148 EGO_FUNC (lua_State *L) \
150 luaobj_Object *obj = lua_touserdata (L, 1); \
151 E_FUNC (obj->data, luaL_checkint (L, 2)); \
155 #define FN_STRING(EGO_FUNC, E_FUNC) \
157 EGO_FUNC (lua_State *L) \
159 luaobj_Object *obj = lua_touserdata (L, 1); \
160 E_FUNC (obj->data, luaL_checkstring (L, 2)); \
164 #define FN_2STRING(EGO_FUNC, E_FUNC) \
166 EGO_FUNC (lua_State *L) \
168 luaobj_Object *obj = lua_touserdata (L, 1); \
171 luaL_checkstring (L, 2), \
172 luaL_checkstring (L, 3)); \
176 #define FN_OBJ(EGO_FUNC, E_FUNC) \
178 EGO_FUNC (lua_State *L) \
180 luaobj_Object *obj = lua_touserdata (L, 1); \
181 luaobj_Object *tar = lua_touserdata (L, 2); \
182 E_FUNC (obj->data, tar->data); \
186 #define FN_2OBJ(EGO_FUNC, E_FUNC) \
188 EGO_FUNC (lua_State *L) \
190 luaobj_Object *obj = lua_touserdata (L, 1); \
191 luaobj_Object *tar1 = lua_touserdata (L, 2); \
192 luaobj_Object *tar2 = lua_touserdata (L, 3); \
193 E_FUNC (obj->data, tar1->data, tar2->data); \
201 #define GET_TAB2BOOL(EGO_FUNC, E_FUNC) \
203 EGO_FUNC (lua_State *L) \
205 luaobj_Object *obj = lua_touserdata (L, 1); \
207 E_FUNC (obj->data, &p1, &p2); \
209 lua_pushboolean (L, p1); lua_rawseti (L, -2, 1); \
210 lua_pushboolean (L, p2); lua_rawseti (L, -2, 2); \
214 #define SET_TAB2BOOL(EGO_FUNC, E_FUNC) \
216 EGO_FUNC (lua_State *L) \
218 luaobj_Object *obj = lua_touserdata (L, 1); \
219 lua_rawgeti (L, 2, 1); \
220 lua_rawgeti (L, 2, 2); \
223 lua_toboolean (L, -2),\
224 lua_toboolean (L, -1)); \
232 #define GET_TAB2INTEGER(EGO_FUNC, E_FUNC) \
234 EGO_FUNC (lua_State *L) \
236 luaobj_Object *obj = lua_touserdata (L, 1); \
238 E_FUNC (obj->data, &p1, &p2); \
240 lua_pushnumber (L, p1); lua_rawseti (L, -2, 1); \
241 lua_pushnumber (L, p2); lua_rawseti (L, -2, 2); \
245 #define SET_TAB2INTEGER(EGO_FUNC, E_FUNC) \
247 EGO_FUNC (lua_State *L) \
249 luaobj_Object *obj = lua_touserdata (L, 1); \
250 lua_rawgeti (L, 2, 1); \
251 lua_rawgeti (L, 2, 2); \
254 luaL_checkinteger (L, -2),\
255 luaL_checkinteger (L, -1)); \
263 #define GET_TAB2FLOAT(EGO_FUNC, E_FUNC) \
265 EGO_FUNC (lua_State *L) \
267 luaobj_Object *obj = lua_touserdata (L, 1); \
269 E_FUNC (obj->data, &p1, &p2); \
271 lua_pushnumber (L, p1); lua_rawseti (L, -2, 1); \
272 lua_pushnumber (L, p2); lua_rawseti (L, -2, 2); \
276 #define SET_TAB2FLOAT(EGO_FUNC, E_FUNC) \
278 EGO_FUNC (lua_State *L) \
280 luaobj_Object *obj = lua_touserdata (L, 1); \
281 lua_rawgeti (L, 2, 1); \
282 lua_rawgeti (L, 2, 2); \
285 luaL_checknumber (L, -2),\
286 luaL_checknumber (L, -1)); \
294 #define GET_TAB2STRING(EGO_FUNC, E_FUNC) \
296 EGO_FUNC (lua_State *L) \
298 luaobj_Object *obj = lua_touserdata (L, 1); \
300 E_FUNC (obj->data, &p1, &p2); \
302 lua_pushstring (L, p1); lua_rawseti (L, -2, 1); \
303 lua_pushstring (L, p2); lua_rawseti (L, -2, 2); \
307 #define SET_TAB2STRING(EGO_FUNC, E_FUNC) \
309 EGO_FUNC (lua_State *L) \
311 luaobj_Object *obj = lua_touserdata (L, 1); \
312 lua_rawgeti (L, 2, 1); \
313 lua_rawgeti (L, 2, 2); \
316 luaL_checkstring (L, -2),\
317 luaL_checkstring (L, -1)); \
325 #define GET_TAB3INTEGER(EGO_FUNC, E_FUNC) \
327 EGO_FUNC (lua_State *L) \
329 luaobj_Object *obj = lua_touserdata (L, 1); \
331 E_FUNC (obj->data, &p1, &p2, &p3); \
333 lua_pushnumber (L, p1); lua_rawseti (L, -2, 1); \
334 lua_pushnumber (L, p2); lua_rawseti (L, -2, 2); \
335 lua_pushnumber (L, p3); lua_rawseti (L, -2, 3); \
339 #define SET_TAB3INTEGER(EGO_FUNC, E_FUNC) \
341 EGO_FUNC (lua_State *L) \
343 luaobj_Object *obj = lua_touserdata (L, 1); \
344 lua_rawgeti (L, 2, 1); \
345 lua_rawgeti (L, 2, 2); \
346 lua_rawgeti (L, 2, 3); \
349 luaL_checkinteger (L, -3),\
350 luaL_checkinteger (L, -2),\
351 luaL_checkinteger (L, -1)); \
359 #define GET_TAB4INTEGER(EGO_FUNC, E_FUNC) \
361 EGO_FUNC (lua_State *L) \
363 luaobj_Object *obj = lua_touserdata (L, 1); \
364 int p1, p2, p3, p4; \
365 E_FUNC (obj->data, &p1, &p2, &p3, &p4); \
367 lua_pushnumber (L, p1); lua_rawseti (L, -2, 1); \
368 lua_pushnumber (L, p2); lua_rawseti (L, -2, 2); \
369 lua_pushnumber (L, p3); lua_rawseti (L, -2, 3); \
370 lua_pushnumber (L, p4); lua_rawseti (L, -2, 4); \
374 #define SET_TAB4INTEGER(EGO_FUNC, E_FUNC) \
376 EGO_FUNC (lua_State *L) \
378 luaobj_Object *obj = lua_touserdata (L, 1); \
379 lua_rawgeti (L, 2, 1); \
380 lua_rawgeti (L, 2, 2); \
381 lua_rawgeti (L, 2, 3); \
382 lua_rawgeti (L, 2, 4); \
385 luaL_checkinteger (L, -4),\
386 luaL_checkinteger (L, -3),\
387 luaL_checkinteger (L, -2),\
388 luaL_checkinteger (L, -1)); \
396 #define GET_TAB4FLOAT(EGO_FUNC, E_FUNC) \
398 EGO_FUNC (lua_State *L) \
400 luaobj_Object *obj = lua_touserdata (L, 1); \
401 double p1, p2, p3, p4; \
402 E_FUNC (obj->data, &p1, &p2, &p3, &p4); \
404 lua_pushnumber (L, p1); lua_rawseti (L, -2, 1); \
405 lua_pushnumber (L, p2); lua_rawseti (L, -2, 2); \
406 lua_pushnumber (L, p3); lua_rawseti (L, -2, 3); \
407 lua_pushnumber (L, p4); lua_rawseti (L, -2, 4); \
411 #define SET_TAB4FLOAT(EGO_FUNC, E_FUNC) \
413 EGO_FUNC (lua_State *L) \
415 luaobj_Object *obj = lua_touserdata (L, 1); \
416 lua_rawgeti (L, 2, 1); \
417 lua_rawgeti (L, 2, 2); \
418 lua_rawgeti (L, 2, 3); \
419 lua_rawgeti (L, 2, 4); \
422 luaL_checknumber (L, -4),\
423 luaL_checknumber (L, -3),\
424 luaL_checknumber (L, -2),\
425 luaL_checknumber (L, -1)); \