forked from enlightenment/efl
Add some FIXME's, and more lua stack review.
No functoinal change. SVN revision: 65429
This commit is contained in:
parent
e2ed022a0c
commit
141c3da2b6
|
@ -1,3 +1,10 @@
|
||||||
|
// FIXME: Review of raw accesses, make sure we are not bypassing the metatable when we should not.
|
||||||
|
|
||||||
|
// FIXME: Review error behaviour when lua throws errors.
|
||||||
|
|
||||||
|
// FIXME: Some error checking would be nice.
|
||||||
|
|
||||||
|
|
||||||
#include "edje_private.h"
|
#include "edje_private.h"
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
|
|
||||||
|
@ -500,6 +507,7 @@ _elua_scan_params(lua_State *L, int i, Eina_Bool tr, char *params, ...) // Stac
|
||||||
if (tr)
|
if (tr)
|
||||||
{
|
{
|
||||||
if (table)
|
if (table)
|
||||||
|
// FIXME: Check this, it might screw up the stack if there are more arguments to check.
|
||||||
lua_settop(L, i); // Stack usage [-?, +?, -]
|
lua_settop(L, i); // Stack usage [-?, +?, -]
|
||||||
else
|
else
|
||||||
lua_newtable(L); // Stack usage [-0, +1, m]
|
lua_newtable(L); // Stack usage [-0, +1, m]
|
||||||
|
@ -920,11 +928,11 @@ The type can be one of:
|
||||||
For the array types, the lua caller passes a table.
|
For the array types, the lua caller passes a table.
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
_elua_messagesend(lua_State *L) // Stack usage [-?, +?, ?]
|
_elua_messagesend(lua_State *L) // Stack usage [-2, +2, ev] plus [+1] for every element if it's an array message.
|
||||||
{
|
{
|
||||||
Edje *ed = (Edje *)_elua_table_ptr_get(L, _elua_key); // Stack usage [-2, +2, e]
|
Edje *ed = (Edje *)_elua_table_ptr_get(L, _elua_key); // Stack usage [-2, +2, e]
|
||||||
int id = luaL_checkinteger(L, 1);
|
int id = luaL_checkinteger(L, 1); // Stack usage [-0, +0, v]
|
||||||
const char *type = luaL_checkstring(L, 2);
|
const char *type = luaL_checkstring(L, 2); // Stack usage [-0, +0, v]
|
||||||
if (!type) return 0;
|
if (!type) return 0;
|
||||||
if (!strcmp(type, "none"))
|
if (!strcmp(type, "none"))
|
||||||
{
|
{
|
||||||
|
@ -932,14 +940,14 @@ _elua_messagesend(lua_State *L) // Stack usage [-?, +?, ?]
|
||||||
}
|
}
|
||||||
else if (!strcmp(type, "sig"))
|
else if (!strcmp(type, "sig"))
|
||||||
{
|
{
|
||||||
const char *sig = luaL_checkstring(L, 3);
|
const char *sig = luaL_checkstring(L, 3); // Stack usage [-0, +0, v]
|
||||||
const char *src = luaL_checkstring(L, 4);
|
const char *src = luaL_checkstring(L, 4); // Stack usage [-0, +0, v]
|
||||||
_edje_emit(ed, sig, src);
|
_edje_emit(ed, sig, src);
|
||||||
}
|
}
|
||||||
else if (!strcmp(type, "str"))
|
else if (!strcmp(type, "str"))
|
||||||
{
|
{
|
||||||
Edje_Message_String *emsg;
|
Edje_Message_String *emsg;
|
||||||
const char *str = luaL_checkstring(L, 3);
|
const char *str = luaL_checkstring(L, 3); // Stack usage [-0, +0, v]
|
||||||
emsg = alloca(sizeof(Edje_Message_String));
|
emsg = alloca(sizeof(Edje_Message_String));
|
||||||
emsg->str = (char *)str;
|
emsg->str = (char *)str;
|
||||||
_edje_message_send(ed, EDJE_QUEUE_APP, EDJE_MESSAGE_STRING, id, emsg);
|
_edje_message_send(ed, EDJE_QUEUE_APP, EDJE_MESSAGE_STRING, id, emsg);
|
||||||
|
@ -947,7 +955,7 @@ _elua_messagesend(lua_State *L) // Stack usage [-?, +?, ?]
|
||||||
else if (!strcmp(type, "int"))
|
else if (!strcmp(type, "int"))
|
||||||
{
|
{
|
||||||
Edje_Message_Int *emsg;
|
Edje_Message_Int *emsg;
|
||||||
int val = luaL_checkinteger(L, 3);
|
int val = luaL_checkinteger(L, 3); // Stack usage [-0, +0, v]
|
||||||
emsg = alloca(sizeof(Edje_Message_Int));
|
emsg = alloca(sizeof(Edje_Message_Int));
|
||||||
emsg->val = val;
|
emsg->val = val;
|
||||||
_edje_message_send(ed, EDJE_QUEUE_APP, EDJE_MESSAGE_INT, id, emsg);
|
_edje_message_send(ed, EDJE_QUEUE_APP, EDJE_MESSAGE_INT, id, emsg);
|
||||||
|
@ -955,7 +963,7 @@ _elua_messagesend(lua_State *L) // Stack usage [-?, +?, ?]
|
||||||
else if (!strcmp(type, "float"))
|
else if (!strcmp(type, "float"))
|
||||||
{
|
{
|
||||||
Edje_Message_Float *emsg;
|
Edje_Message_Float *emsg;
|
||||||
float val = luaL_checknumber(L, 3);
|
float val = luaL_checknumber(L, 3); // Stack usage [-0, +0, v]
|
||||||
emsg = alloca(sizeof(Edje_Message_Float));
|
emsg = alloca(sizeof(Edje_Message_Float));
|
||||||
emsg->val = val;
|
emsg->val = val;
|
||||||
_edje_message_send(ed, EDJE_QUEUE_APP, EDJE_MESSAGE_FLOAT, id, emsg);
|
_edje_message_send(ed, EDJE_QUEUE_APP, EDJE_MESSAGE_FLOAT, id, emsg);
|
||||||
|
@ -965,14 +973,17 @@ _elua_messagesend(lua_State *L) // Stack usage [-?, +?, ?]
|
||||||
Edje_Message_String_Set *emsg;
|
Edje_Message_String_Set *emsg;
|
||||||
int i, n;
|
int i, n;
|
||||||
const char *str;
|
const char *str;
|
||||||
luaL_checktype(L, 3, LUA_TTABLE);
|
luaL_checktype(L, 3, LUA_TTABLE); // Stack usage [-0, +0, v]
|
||||||
n = lua_objlen(L, 3);
|
n = lua_objlen(L, 3); // Stack usage [-0, +0, -]
|
||||||
emsg = alloca(sizeof(Edje_Message_String_Set) + ((n - 1) * sizeof(char *)));
|
emsg = alloca(sizeof(Edje_Message_String_Set) + ((n - 1) * sizeof(char *)));
|
||||||
emsg->count = n;
|
emsg->count = n;
|
||||||
for (i = 1; i <= n; i ++)
|
for (i = 1; i <= n; i ++)
|
||||||
{
|
{
|
||||||
lua_rawgeti(L, 3, i);
|
// FIXME: The problem with this is that it bypasses metatables, which we don't really want.
|
||||||
str = lua_tostring(L, -1);
|
// Better to use lua_pushinteger(L, i); lua_gettable(L, 3); instead. [-0, +1, -] [-1, +1, e]
|
||||||
|
lua_rawgeti(L, 3, i); // Stack usage [-0, +1, -]
|
||||||
|
str = lua_tostring(L, -1); // Stack usage [-0, +0, m]
|
||||||
|
// FIXME: Should pop the stack, not leave a mess, or have an ever growing stack.
|
||||||
emsg->str[i - 1] = (char *)str;
|
emsg->str[i - 1] = (char *)str;
|
||||||
}
|
}
|
||||||
_edje_message_send(ed, EDJE_QUEUE_APP, EDJE_MESSAGE_STRING_SET, id, emsg);
|
_edje_message_send(ed, EDJE_QUEUE_APP, EDJE_MESSAGE_STRING_SET, id, emsg);
|
||||||
|
@ -981,14 +992,14 @@ _elua_messagesend(lua_State *L) // Stack usage [-?, +?, ?]
|
||||||
{
|
{
|
||||||
Edje_Message_Int_Set *emsg;
|
Edje_Message_Int_Set *emsg;
|
||||||
int i, n;
|
int i, n;
|
||||||
luaL_checktype(L, 3, LUA_TTABLE);
|
luaL_checktype(L, 3, LUA_TTABLE); // Stack usage [-0, +0, v]
|
||||||
n = lua_objlen(L, 3);
|
n = lua_objlen(L, 3); // Stack usage [-0, +0, -]
|
||||||
emsg = alloca(sizeof(Edje_Message_Int_Set) + ((n - 1) * sizeof(int)));
|
emsg = alloca(sizeof(Edje_Message_Int_Set) + ((n - 1) * sizeof(int)));
|
||||||
emsg->count = n;
|
emsg->count = n;
|
||||||
for (i = 1; i <= n; i ++)
|
for (i = 1; i <= n; i ++)
|
||||||
{
|
{
|
||||||
lua_rawgeti(L, 3, i);
|
lua_rawgeti(L, 3, i); // Stack usage [-0, +1, -]
|
||||||
emsg->val[i - 1] = lua_tointeger(L, -1);
|
emsg->val[i - 1] = lua_tointeger(L, -1); // Stack usage [-0, +0, -]
|
||||||
}
|
}
|
||||||
_edje_message_send(ed, EDJE_QUEUE_APP, EDJE_MESSAGE_INT_SET, id, emsg);
|
_edje_message_send(ed, EDJE_QUEUE_APP, EDJE_MESSAGE_INT_SET, id, emsg);
|
||||||
}
|
}
|
||||||
|
@ -996,50 +1007,50 @@ _elua_messagesend(lua_State *L) // Stack usage [-?, +?, ?]
|
||||||
{
|
{
|
||||||
Edje_Message_Float_Set *emsg;
|
Edje_Message_Float_Set *emsg;
|
||||||
int i, n;
|
int i, n;
|
||||||
luaL_checktype(L, 3, LUA_TTABLE);
|
luaL_checktype(L, 3, LUA_TTABLE); // Stack usage [-0, +0, v]
|
||||||
n = lua_objlen(L, 3);
|
n = lua_objlen(L, 3); // Stack usage [-0, +0, -]
|
||||||
emsg = alloca(sizeof(Edje_Message_Float_Set) + ((n - 1) * sizeof(double)));
|
emsg = alloca(sizeof(Edje_Message_Float_Set) + ((n - 1) * sizeof(double)));
|
||||||
emsg->count = n;
|
emsg->count = n;
|
||||||
for (i = 1; i <= n; i ++)
|
for (i = 1; i <= n; i ++)
|
||||||
{
|
{
|
||||||
lua_rawgeti(L, 3, i);
|
lua_rawgeti(L, 3, i); // Stack usage [-0, +1, -]
|
||||||
emsg->val[i - 1] = lua_tonumber(L, -1);
|
emsg->val[i - 1] = lua_tonumber(L, -1); // Stack usage [-0, +0, -]
|
||||||
}
|
}
|
||||||
_edje_message_send(ed, EDJE_QUEUE_APP, EDJE_MESSAGE_FLOAT_SET, id, emsg);
|
_edje_message_send(ed, EDJE_QUEUE_APP, EDJE_MESSAGE_FLOAT_SET, id, emsg);
|
||||||
}
|
}
|
||||||
else if (!strcmp(type, "strint"))
|
else if (!strcmp(type, "strint"))
|
||||||
{
|
{
|
||||||
Edje_Message_String_Int *emsg;
|
Edje_Message_String_Int *emsg;
|
||||||
const char *str = luaL_checkstring(L, 3);
|
const char *str = luaL_checkstring(L, 3); // Stack usage [-0, +0, v]
|
||||||
emsg = alloca(sizeof(Edje_Message_String_Int));
|
emsg = alloca(sizeof(Edje_Message_String_Int));
|
||||||
emsg->str = (char *)str;
|
emsg->str = (char *)str;
|
||||||
emsg->val = luaL_checkinteger(L, 4);
|
emsg->val = luaL_checkinteger(L, 4); // Stack usage [-0, +0, v]
|
||||||
_edje_message_send(ed, EDJE_QUEUE_APP, EDJE_MESSAGE_STRING_INT, id, emsg);
|
_edje_message_send(ed, EDJE_QUEUE_APP, EDJE_MESSAGE_STRING_INT, id, emsg);
|
||||||
}
|
}
|
||||||
else if (!strcmp(type, "strfloat"))
|
else if (!strcmp(type, "strfloat"))
|
||||||
{
|
{
|
||||||
Edje_Message_String_Float *emsg;
|
Edje_Message_String_Float *emsg;
|
||||||
const char *str = luaL_checkstring(L, 3);
|
const char *str = luaL_checkstring(L, 3); // Stack usage [-0, +0, v]
|
||||||
emsg = alloca(sizeof(Edje_Message_String_Float));
|
emsg = alloca(sizeof(Edje_Message_String_Float));
|
||||||
emsg->str = (char *)str;
|
emsg->str = (char *)str;
|
||||||
emsg->val = luaL_checknumber(L, 4);
|
emsg->val = luaL_checknumber(L, 4); // Stack usage [-0, +0, v]
|
||||||
_edje_message_send(ed, EDJE_QUEUE_APP, EDJE_MESSAGE_STRING_FLOAT, id, emsg);
|
_edje_message_send(ed, EDJE_QUEUE_APP, EDJE_MESSAGE_STRING_FLOAT, id, emsg);
|
||||||
}
|
}
|
||||||
else if (!strcmp(type, "strintset"))
|
else if (!strcmp(type, "strintset"))
|
||||||
{
|
{
|
||||||
Edje_Message_String_Int_Set *emsg;
|
Edje_Message_String_Int_Set *emsg;
|
||||||
int i, n;
|
int i, n;
|
||||||
const char *str = luaL_checkstring(L, 3);
|
const char *str = luaL_checkstring(L, 3); // Stack usage [-0, +0, v]
|
||||||
if (!str) return 0;
|
if (!str) return 0;
|
||||||
luaL_checktype(L, 4, LUA_TTABLE);
|
luaL_checktype(L, 4, LUA_TTABLE); // Stack usage [-0, +0, v]
|
||||||
n = lua_objlen(L, 4);
|
n = lua_objlen(L, 4); // Stack usage [-0, +0, -]
|
||||||
emsg = alloca(sizeof(Edje_Message_String_Int_Set) + ((n - 1) * sizeof(int)));
|
emsg = alloca(sizeof(Edje_Message_String_Int_Set) + ((n - 1) * sizeof(int)));
|
||||||
emsg->str = (char *)str;
|
emsg->str = (char *)str;
|
||||||
emsg->count = n;
|
emsg->count = n;
|
||||||
for (i = 1; i <= n; i ++)
|
for (i = 1; i <= n; i ++)
|
||||||
{
|
{
|
||||||
lua_rawgeti(L, 4, i);
|
lua_rawgeti(L, 4, i); // Stack usage [-0, +1, -]
|
||||||
emsg->val[i - 1] = lua_tointeger(L, -1);
|
emsg->val[i - 1] = lua_tointeger(L, -1); // Stack usage [-0, +0, -]
|
||||||
}
|
}
|
||||||
_edje_message_send(ed, EDJE_QUEUE_APP, EDJE_MESSAGE_STRING_INT_SET, id, emsg);
|
_edje_message_send(ed, EDJE_QUEUE_APP, EDJE_MESSAGE_STRING_INT_SET, id, emsg);
|
||||||
}
|
}
|
||||||
|
@ -1047,17 +1058,17 @@ _elua_messagesend(lua_State *L) // Stack usage [-?, +?, ?]
|
||||||
{
|
{
|
||||||
Edje_Message_String_Float_Set *emsg;
|
Edje_Message_String_Float_Set *emsg;
|
||||||
int i, n;
|
int i, n;
|
||||||
const char *str = luaL_checkstring(L, 3);
|
const char *str = luaL_checkstring(L, 3); // Stack usage [-0, +0, v]
|
||||||
if (!str) return 0;
|
if (!str) return 0;
|
||||||
luaL_checktype(L, 4, LUA_TTABLE);
|
luaL_checktype(L, 4, LUA_TTABLE); // Stack usage [-0, +0, v]
|
||||||
n = lua_objlen(L, 4);
|
n = lua_objlen(L, 4);
|
||||||
emsg = alloca(sizeof(Edje_Message_String_Float_Set) + ((n - 1) * sizeof(double)));
|
emsg = alloca(sizeof(Edje_Message_String_Float_Set) + ((n - 1) * sizeof(double)));
|
||||||
emsg->str = (char *)str;
|
emsg->str = (char *)str;
|
||||||
emsg->count = n;
|
emsg->count = n;
|
||||||
for (i = 1; i <= n; i ++)
|
for (i = 1; i <= n; i ++)
|
||||||
{
|
{
|
||||||
lua_rawgeti(L, 4, i);
|
lua_rawgeti(L, 4, i); // Stack usage [-0, +1, -]
|
||||||
emsg->val[i - 1] = lua_tonumber(L, -1);
|
emsg->val[i - 1] = lua_tonumber(L, -1); // Stack usage [-0, +0, -]
|
||||||
}
|
}
|
||||||
_edje_message_send(ed, EDJE_QUEUE_APP, EDJE_MESSAGE_STRING_FLOAT_SET, id, emsg);
|
_edje_message_send(ed, EDJE_QUEUE_APP, EDJE_MESSAGE_STRING_FLOAT_SET, id, emsg);
|
||||||
}
|
}
|
||||||
|
@ -1066,7 +1077,7 @@ _elua_messagesend(lua_State *L) // Stack usage [-?, +?, ?]
|
||||||
|
|
||||||
//-------------
|
//-------------
|
||||||
static Eina_Bool
|
static Eina_Bool
|
||||||
_elua_animator_cb(void *data) // Stack usage [-?, +?, ?]
|
_elua_animator_cb(void *data) // Stack usage [-2, +2, e]
|
||||||
{
|
{
|
||||||
Edje_Lua_Animator *ela = data;
|
Edje_Lua_Animator *ela = data;
|
||||||
lua_State *L;
|
lua_State *L;
|
||||||
|
@ -1075,37 +1086,38 @@ _elua_animator_cb(void *data) // Stack usage [-?, +?, ?]
|
||||||
if (!ela->obj.ed) return 0;
|
if (!ela->obj.ed) return 0;
|
||||||
L = ela->obj.ed->L;
|
L = ela->obj.ed->L;
|
||||||
if (!L) return 0;
|
if (!L) return 0;
|
||||||
lua_rawgeti(L, LUA_REGISTRYINDEX, ela->fn_ref);
|
// FIXME: Perhaps move this to after the setjump, to be neater.
|
||||||
|
lua_rawgeti(L, LUA_REGISTRYINDEX, ela->fn_ref); // Stack usage [-0, +1, -]
|
||||||
if (setjmp(panic_jmp) == 1)
|
if (setjmp(panic_jmp) == 1)
|
||||||
{
|
{
|
||||||
LE("Animator callback panic");
|
LE("Animator callback panic");
|
||||||
_edje_lua2_error(L, err);
|
_edje_lua2_error(L, err);
|
||||||
_elua_obj_free(L, (Edje_Lua_Obj *)ela);
|
_elua_obj_free(L, (Edje_Lua_Obj *)ela);
|
||||||
_elua_gc(L);
|
_elua_gc(L); // Stack usage [-0, +0, e]
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
if ((err = lua_pcall(L, 0, 1, 0)))
|
if ((err = lua_pcall(L, 0, 1, 0))) // Stack usage [-1, +1, -]
|
||||||
{
|
{
|
||||||
_edje_lua2_error(L, err);
|
_edje_lua2_error(L, err);
|
||||||
_elua_obj_free(L, (Edje_Lua_Obj *)ela);
|
_elua_obj_free(L, (Edje_Lua_Obj *)ela);
|
||||||
_elua_gc(L);
|
_elua_gc(L); // Stack usage [-0, +0, e]
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
ret = lua_toboolean(L, -1);
|
ret = lua_toboolean(L, -1); // Stack usage [-0, +0, -]
|
||||||
lua_pop(L, 1);
|
lua_pop(L, 1); // Stack usage [-n, +0, -]
|
||||||
if (ret == 0) _elua_obj_free(L, (Edje_Lua_Obj *)ela);
|
if (ret == 0) _elua_obj_free(L, (Edje_Lua_Obj *)ela);
|
||||||
_elua_gc(L);
|
_elua_gc(L); // Stack usage [-0, +0, e]
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_elua_animator_free(void *obj) // Stack usage [-?, +?, ?]
|
_elua_animator_free(void *obj) // Stack usage [-0, +0, -]
|
||||||
{
|
{
|
||||||
Edje_Lua_Animator *ela = obj;
|
Edje_Lua_Animator *ela = obj;
|
||||||
lua_State *L;
|
lua_State *L;
|
||||||
if (!ela->obj.ed) return;
|
if (!ela->obj.ed) return;
|
||||||
L = ela->obj.ed->L;
|
L = ela->obj.ed->L;
|
||||||
luaL_unref(L, LUA_REGISTRYINDEX, ela->fn_ref);
|
luaL_unref(L, LUA_REGISTRYINDEX, ela->fn_ref); // Stack usage [-0, +0, -]
|
||||||
ela->fn_ref = 0;
|
ela->fn_ref = 0;
|
||||||
ecore_animator_del(ela->animator);
|
ecore_animator_del(ela->animator);
|
||||||
ela->animator = NULL;
|
ela->animator = NULL;
|
||||||
|
@ -1132,25 +1144,26 @@ Wraps ecore_animator_add().
|
||||||
@returns A userdata that is an ecore animator.
|
@returns A userdata that is an ecore animator.
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
_elua_animator(lua_State *L) // Stack usage [-?, +?, ?]
|
_elua_animator(lua_State *L) // Stack usage [-8, +9, emv]
|
||||||
{
|
{
|
||||||
Edje *ed = (Edje *)_elua_table_ptr_get(L, _elua_key); // Stack usage [-2, +2, e]
|
Edje *ed = (Edje *)_elua_table_ptr_get(L, _elua_key); // Stack usage [-2, +2, e]
|
||||||
Edje_Lua_Animator *ela;
|
Edje_Lua_Animator *ela;
|
||||||
|
|
||||||
luaL_checkany(L, 1);
|
luaL_checkany(L, 1); // Stack usage [-0, +0, v]
|
||||||
|
|
||||||
// FIXME: Allow lua to set a data to be sent back with the callback.
|
// FIXME: Allow lua to set a data to be sent back with the callback.
|
||||||
ela = (Edje_Lua_Animator *)_elua_obj_new(L, ed, sizeof(Edje_Lua_Animator), _elua_ecore_animator_meta);
|
ela = (Edje_Lua_Animator *)_elua_obj_new(L, ed, sizeof(Edje_Lua_Animator), _elua_ecore_animator_meta);
|
||||||
|
// Stack usage [-5, +6, m]
|
||||||
ela->obj.free_func = _elua_animator_free;
|
ela->obj.free_func = _elua_animator_free;
|
||||||
ela->animator = ecore_animator_add(_elua_animator_cb, ela);
|
ela->animator = ecore_animator_add(_elua_animator_cb, ela);
|
||||||
lua_pushvalue(L, 1);
|
lua_pushvalue(L, 1); // Stack usage [-0, +1, -]
|
||||||
ela->fn_ref = luaL_ref(L, LUA_REGISTRYINDEX);
|
ela->fn_ref = luaL_ref(L, LUA_REGISTRYINDEX); // Stack usage [-1, +0, m]
|
||||||
_elua_gc(L);
|
_elua_gc(L); // Stack usage [-0, +0, e]
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static Eina_Bool
|
static Eina_Bool
|
||||||
_elua_timer_cb(void *data) // Stack usage [-?, +?, ?]
|
_elua_timer_cb(void *data) // Stack usage [-2, +2, e]
|
||||||
{
|
{
|
||||||
Edje_Lua_Timer *elt = data;
|
Edje_Lua_Timer *elt = data;
|
||||||
lua_State *L;
|
lua_State *L;
|
||||||
|
@ -1159,37 +1172,37 @@ _elua_timer_cb(void *data) // Stack usage [-?, +?, ?]
|
||||||
if (!elt->obj.ed) return 0;
|
if (!elt->obj.ed) return 0;
|
||||||
L = elt->obj.ed->L;
|
L = elt->obj.ed->L;
|
||||||
if (!L) return 0;
|
if (!L) return 0;
|
||||||
lua_rawgeti(L, LUA_REGISTRYINDEX, elt->fn_ref);
|
lua_rawgeti(L, LUA_REGISTRYINDEX, elt->fn_ref); // Stack usage [-0, +1, -]
|
||||||
if (setjmp(panic_jmp) == 1)
|
if (setjmp(panic_jmp) == 1)
|
||||||
{
|
{
|
||||||
LE("Timer callback panic");
|
LE("Timer callback panic");
|
||||||
_edje_lua2_error(L, err);
|
_edje_lua2_error(L, err);
|
||||||
_elua_obj_free(L, (Edje_Lua_Obj *)elt);
|
_elua_obj_free(L, (Edje_Lua_Obj *)elt);
|
||||||
_elua_gc(L);
|
_elua_gc(L); // Stack usage [-0, +0, e]
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
if ((err = lua_pcall(L, 0, 1, 0)))
|
if ((err = lua_pcall(L, 0, 1, 0))) // Stack usage [-1, +1, -]
|
||||||
{
|
{
|
||||||
_edje_lua2_error(L, err);
|
_edje_lua2_error(L, err);
|
||||||
_elua_obj_free(L, (Edje_Lua_Obj *)elt);
|
_elua_obj_free(L, (Edje_Lua_Obj *)elt);
|
||||||
_elua_gc(L);
|
_elua_gc(L); // Stack usage [-0, +0, e]
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
ret = lua_toboolean(L, -1);
|
ret = lua_toboolean(L, -1); // Stack usage [-0, +0, -]
|
||||||
lua_pop(L, 1);
|
lua_pop(L, 1); // Stack usage [-n, +0, -]
|
||||||
if (ret == 0) _elua_obj_free(L, (Edje_Lua_Obj *)elt);
|
if (ret == 0) _elua_obj_free(L, (Edje_Lua_Obj *)elt);
|
||||||
_elua_gc(L);
|
_elua_gc(L); // Stack usage [-0, +0, e]
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_elua_timer_free(void *obj) // Stack usage [-?, +?, ?]
|
_elua_timer_free(void *obj) // Stack usage [-0, +0, -]
|
||||||
{
|
{
|
||||||
Edje_Lua_Timer *elt = obj;
|
Edje_Lua_Timer *elt = obj;
|
||||||
lua_State *L;
|
lua_State *L;
|
||||||
if (!elt->obj.ed) return;
|
if (!elt->obj.ed) return;
|
||||||
L = elt->obj.ed->L;
|
L = elt->obj.ed->L;
|
||||||
luaL_unref(L, LUA_REGISTRYINDEX, elt->fn_ref); //0
|
luaL_unref(L, LUA_REGISTRYINDEX, elt->fn_ref); // Stack usage [-0, +0, -]
|
||||||
elt->fn_ref = 0;
|
elt->fn_ref = 0;
|
||||||
ecore_timer_del(elt->timer);
|
ecore_timer_del(elt->timer);
|
||||||
elt->timer = NULL;
|
elt->timer = NULL;
|
||||||
|
@ -1215,26 +1228,27 @@ Wraps ecore_timer_add().
|
||||||
@returns A userdata that is an ecore timer.
|
@returns A userdata that is an ecore timer.
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
_elua_timer(lua_State *L) // Stack usage [-?, +?, ?]
|
_elua_timer(lua_State *L) // Stack usage [-8, +9, emv]
|
||||||
{
|
{
|
||||||
Edje *ed = (Edje *)_elua_table_ptr_get(L, _elua_key); // Stack usage [-2, +2, e]
|
Edje *ed = (Edje *)_elua_table_ptr_get(L, _elua_key); // Stack usage [-2, +2, e]
|
||||||
Edje_Lua_Timer *elt;
|
Edje_Lua_Timer *elt;
|
||||||
double val;
|
double val;
|
||||||
|
|
||||||
val = luaL_checknumber(L, 1);
|
val = luaL_checknumber(L, 1); // Stack usage [-0, +0, v]
|
||||||
luaL_checkany(L, 2);
|
luaL_checkany(L, 2); // Stack usage [-0, +0, v]
|
||||||
|
|
||||||
elt = (Edje_Lua_Timer *)_elua_obj_new(L, ed, sizeof(Edje_Lua_Timer), _elua_ecore_timer_meta);
|
elt = (Edje_Lua_Timer *)_elua_obj_new(L, ed, sizeof(Edje_Lua_Timer), _elua_ecore_timer_meta);
|
||||||
|
// Stack usage [-5, +6, m]
|
||||||
elt->obj.free_func = _elua_timer_free;
|
elt->obj.free_func = _elua_timer_free;
|
||||||
elt->timer = ecore_timer_add(val, _elua_timer_cb, elt);
|
elt->timer = ecore_timer_add(val, _elua_timer_cb, elt);
|
||||||
lua_pushvalue(L, 2);
|
lua_pushvalue(L, 2); // Stack usage [-0, +1, -]
|
||||||
elt->fn_ref = luaL_ref(L, LUA_REGISTRYINDEX);
|
elt->fn_ref = luaL_ref(L, LUA_REGISTRYINDEX); // Stack usage [-1, +0, m]
|
||||||
_elua_gc(L);
|
_elua_gc(L); // Stack usage [-0, +0, e]
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static Eina_Bool
|
static Eina_Bool
|
||||||
_elua_transition_cb(void *data) // Stack usage [-?, +?, ?]
|
_elua_transition_cb(void *data) // Stack usage [-3, +3, e]
|
||||||
{
|
{
|
||||||
Edje_Lua_Transition *elt = data;
|
Edje_Lua_Transition *elt = data;
|
||||||
lua_State *L;
|
lua_State *L;
|
||||||
|
@ -1246,39 +1260,39 @@ _elua_transition_cb(void *data) // Stack usage [-?, +?, ?]
|
||||||
if (!L) return 0;
|
if (!L) return 0;
|
||||||
t = (ecore_loop_time_get() - elt->start) / elt->transition;
|
t = (ecore_loop_time_get() - elt->start) / elt->transition;
|
||||||
if (t > 1.0) t = 1.0;
|
if (t > 1.0) t = 1.0;
|
||||||
lua_rawgeti(L, LUA_REGISTRYINDEX, elt->fn_ref);
|
lua_rawgeti(L, LUA_REGISTRYINDEX, elt->fn_ref); // Stack usage [-0, +1, -]
|
||||||
lua_pushnumber(L, t);
|
lua_pushnumber(L, t); // Stack usage [-0, +1, -]
|
||||||
if (setjmp(panic_jmp) == 1)
|
if (setjmp(panic_jmp) == 1)
|
||||||
{
|
{
|
||||||
LE("Transition callback panic");
|
LE("Transition callback panic");
|
||||||
_edje_lua2_error(L, err);
|
_edje_lua2_error(L, err);
|
||||||
_elua_obj_free(L, (Edje_Lua_Obj *)elt);
|
_elua_obj_free(L, (Edje_Lua_Obj *)elt);
|
||||||
_elua_gc(L);
|
_elua_gc(L); // Stack usage [-0, +0, e]
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
if ((err = lua_pcall(L, 1, 1, 0)))
|
if ((err = lua_pcall(L, 1, 1, 0))) // Stack usage [-2, +1, -]
|
||||||
{
|
{
|
||||||
_edje_lua2_error(L, err);
|
_edje_lua2_error(L, err);
|
||||||
_elua_obj_free(L, (Edje_Lua_Obj *)elt);
|
_elua_obj_free(L, (Edje_Lua_Obj *)elt);
|
||||||
_elua_gc(L);
|
_elua_gc(L); // Stack usage [-0, +0, e]
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
ret = lua_toboolean(L, -1);
|
ret = lua_toboolean(L, -1); // Stack usage [-0, +0, -]
|
||||||
lua_pop(L, 1);
|
lua_pop(L, 1); // Stack usage [-n, +0, -]
|
||||||
if (t >= 1.0) ret = 0;
|
if (t >= 1.0) ret = 0;
|
||||||
if (ret == 0) _elua_obj_free(L, (Edje_Lua_Obj *)elt);
|
if (ret == 0) _elua_obj_free(L, (Edje_Lua_Obj *)elt);
|
||||||
_elua_gc(L);
|
_elua_gc(L); // Stack usage [-0, +0, e]
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_elua_transition_free(void *obj) // Stack usage [-?, +?, ?]
|
_elua_transition_free(void *obj) // Stack usage [-0, +0, -]
|
||||||
{
|
{
|
||||||
Edje_Lua_Transition *elt = obj;
|
Edje_Lua_Transition *elt = obj;
|
||||||
lua_State *L;
|
lua_State *L;
|
||||||
if (!elt->obj.ed) return;
|
if (!elt->obj.ed) return;
|
||||||
L = elt->obj.ed->L;
|
L = elt->obj.ed->L;
|
||||||
luaL_unref(L, LUA_REGISTRYINDEX, elt->fn_ref); //0
|
luaL_unref(L, LUA_REGISTRYINDEX, elt->fn_ref); // Stack usage [-0, +0, -]
|
||||||
elt->fn_ref = 0;
|
elt->fn_ref = 0;
|
||||||
ecore_animator_del(elt->animator);
|
ecore_animator_del(elt->animator);
|
||||||
elt->animator = NULL;
|
elt->animator = NULL;
|
||||||
|
@ -1298,24 +1312,25 @@ divided by the div parameter.
|
||||||
@returns A userdata that is a transition (ecore animator, plus other info).
|
@returns A userdata that is a transition (ecore animator, plus other info).
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
_elua_transition(lua_State *L) // Stack usage [-?, +?, ?]
|
_elua_transition(lua_State *L) // Stack usage [-8, +9, emv]
|
||||||
{
|
{
|
||||||
Edje *ed = (Edje *)_elua_table_ptr_get(L, _elua_key); // Stack usage [-2, +2, e]
|
Edje *ed = (Edje *)_elua_table_ptr_get(L, _elua_key); // Stack usage [-2, +2, e]
|
||||||
Edje_Lua_Transition *elt;
|
Edje_Lua_Transition *elt;
|
||||||
double val;
|
double val;
|
||||||
|
|
||||||
val = luaL_checknumber(L, 1);
|
val = luaL_checknumber(L, 1); // Stack usage [-0, +0, v]
|
||||||
luaL_checkany(L, 2);
|
luaL_checkany(L, 2); // Stack usage [-0, +0, v]
|
||||||
|
|
||||||
elt = (Edje_Lua_Transition *)_elua_obj_new(L, ed, sizeof(Edje_Lua_Transition), _elua_ecore_animator_meta);
|
elt = (Edje_Lua_Transition *)_elua_obj_new(L, ed, sizeof(Edje_Lua_Transition), _elua_ecore_animator_meta);
|
||||||
|
// Stack usage [-5, +6, m]
|
||||||
elt->obj.free_func = _elua_transition_free;
|
elt->obj.free_func = _elua_transition_free;
|
||||||
elt->animator = ecore_animator_add(_elua_transition_cb, elt);
|
elt->animator = ecore_animator_add(_elua_transition_cb, elt);
|
||||||
if (val < 0.0000001) val = 0.0000001;
|
if (val < 0.0000001) val = 0.0000001;
|
||||||
elt->transition = val;
|
elt->transition = val;
|
||||||
elt->start = ecore_loop_time_get();
|
elt->start = ecore_loop_time_get();
|
||||||
lua_pushvalue(L, 2);
|
lua_pushvalue(L, 2); // Stack usage [-0, +1, -]
|
||||||
elt->fn_ref = luaL_ref(L, LUA_REGISTRYINDEX);
|
elt->fn_ref = luaL_ref(L, LUA_REGISTRYINDEX); // Stack usage [-1, +0, m]
|
||||||
_elua_gc(L);
|
_elua_gc(L); // Stack usage [-0, +0, e]
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1328,17 +1343,17 @@ _elua_transition(lua_State *L) // Stack usage [-?, +?, ?]
|
||||||
@since 1.1.0
|
@since 1.1.0
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
_elua_color_class(lua_State *L) // Stack usage [-?, +?, ?]
|
_elua_color_class(lua_State *L) // Stack usage [-?, +?, ?]
|
||||||
{
|
{
|
||||||
Edje *ed = (Edje *)_elua_table_ptr_get(L, _elua_key); // Stack usage [-2, +2, e]
|
Edje *ed = (Edje *)_elua_table_ptr_get(L, _elua_key); // Stack usage [-2, +2, e]
|
||||||
Edje_Color_Class *c_class;
|
Edje_Color_Class *c_class;
|
||||||
const char *class = luaL_checkstring(L, 1);
|
const char *class = luaL_checkstring(L, 1); // Stack usage [-0, +0, v]
|
||||||
int r, g, b, a;
|
int r, g, b, a;
|
||||||
|
|
||||||
if (!class) return 0;
|
if (!class) return 0;
|
||||||
|
|
||||||
if (_elua_scan_params(L, 2, EINA_TRUE, "%r %g %b %a", &r, &g, &b, &a) > 0)
|
if (_elua_scan_params(L, 2, EINA_TRUE, "%r %g %b %a", &r, &g, &b, &a) > 0)
|
||||||
{
|
{ // Stack usage [-0, +1, m] unless it's in a table [+4, -4, e] reset stack to 2
|
||||||
_elua_color_fix(&r, &g, &b, &a);
|
_elua_color_fix(&r, &g, &b, &a);
|
||||||
// This is the way that embryo does it -
|
// This is the way that embryo does it -
|
||||||
//edje_object_color_class_set(ed->obj, class, r, g, b, a, r, g, b, a, r, g, b, a);
|
//edje_object_color_class_set(ed->obj, class, r, g, b, a, r, g, b, a, r, g, b, a);
|
||||||
|
@ -1353,6 +1368,7 @@ _elua_color_class(lua_State *L) // Stack usage [-?, +?, ?]
|
||||||
if (!c_class) return 0;
|
if (!c_class) return 0;
|
||||||
|
|
||||||
_elua_ret(L, "%r %g %b %a", c_class->r, c_class->g, c_class->b, c_class->a);
|
_elua_ret(L, "%r %g %b %a", c_class->r, c_class->g, c_class->b, c_class->a);
|
||||||
|
// Stack usage [-8, +8, em]
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1364,11 +1380,11 @@ _elua_color_class(lua_State *L) // Stack usage [-?, +?, ?]
|
||||||
@since 1.1.0
|
@since 1.1.0
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
_elua_text_class(lua_State *L) // Stack usage [-?, +?, ?]
|
_elua_text_class(lua_State *L) // Stack usage [-?, +?, ?]
|
||||||
{
|
{
|
||||||
Edje *ed = (Edje *)_elua_table_ptr_get(L, _elua_key); // Stack usage [-2, +2, e]
|
Edje *ed = (Edje *)_elua_table_ptr_get(L, _elua_key); // Stack usage [-2, +2, e]
|
||||||
Edje_Text_Class *t_class;
|
Edje_Text_Class *t_class;
|
||||||
const char *class = luaL_checkstring(L, 1);
|
const char *class = luaL_checkstring(L, 1); // Stack usage [-0, +0, v]
|
||||||
char *font = NULL;
|
char *font = NULL;
|
||||||
Evas_Font_Size size = 0;
|
Evas_Font_Size size = 0;
|
||||||
|
|
||||||
|
@ -1377,12 +1393,14 @@ _elua_text_class(lua_State *L) // Stack usage [-?, +?, ?]
|
||||||
// Just like color_class above, this does things differently from embryo,
|
// Just like color_class above, this does things differently from embryo,
|
||||||
// for the same reason.
|
// for the same reason.
|
||||||
if (_elua_scan_params(L, 2, EINA_TRUE, "$font %size", &font, &size) > 0)
|
if (_elua_scan_params(L, 2, EINA_TRUE, "$font %size", &font, &size) > 0)
|
||||||
|
// Stack usage [-0, +1, m] unless it's in a table [+2, -2, e] reset stack to 2
|
||||||
edje_text_class_set(class, font, size);
|
edje_text_class_set(class, font, size);
|
||||||
|
|
||||||
t_class = _edje_text_class_find(ed, class);
|
t_class = _edje_text_class_find(ed, class);
|
||||||
if (!t_class) return 0;
|
if (!t_class) return 0;
|
||||||
|
|
||||||
_elua_ret(L, "$font %size", t_class->font, t_class->size);
|
_elua_ret(L, "$font %size", t_class->font, t_class->size);
|
||||||
|
// Stack usage [-4, +4, em]
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1397,11 +1415,14 @@ _elua_evas_obj_free(void *obj)
|
||||||
elo->evas_obj = NULL;
|
elo->evas_obj = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Stack usage [-7, +8, em]
|
||||||
#define _ELUA_PLANT_EVAS_OBJECT(type, meta, free) \
|
#define _ELUA_PLANT_EVAS_OBJECT(type, meta, free) \
|
||||||
Edje *ed = (Edje *)_elua_table_ptr_get(L, _elua_key); \
|
Edje *ed = (Edje *)_elua_table_ptr_get(L, _elua_key); \
|
||||||
type *elo; \
|
type *elo; \
|
||||||
elo = (type *)_elua_obj_new(L, ed, sizeof(type), meta); \
|
elo = (type *)_elua_obj_new(L, ed, sizeof(type), meta); \
|
||||||
elo->obj.free_func = free;
|
elo->obj.free_func = free;
|
||||||
|
// Stack usage [-2, +2, e]
|
||||||
|
// Stack usage [-5, +6, m]
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_elua_polish_evas_object(Edje *ed, Edje_Lua_Evas_Object *elo)
|
_elua_polish_evas_object(Edje *ed, Edje_Lua_Evas_Object *elo)
|
||||||
|
@ -1421,9 +1442,10 @@ _elua_polish_evas_object(Edje *ed, Edje_Lua_Evas_Object *elo)
|
||||||
@since 1.1.0
|
@since 1.1.0
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
_elua_edje(lua_State *L) // Stack usage [-?, +?, ?]
|
_elua_edje(lua_State *L) // Stack usage [-7, +8, em]
|
||||||
{
|
{
|
||||||
_ELUA_PLANT_EVAS_OBJECT(Edje_Lua_Evas_Object, _elua_evas_edje_meta, _elua_evas_obj_free)
|
_ELUA_PLANT_EVAS_OBJECT(Edje_Lua_Evas_Object, _elua_evas_edje_meta, _elua_evas_obj_free)
|
||||||
|
// Stack usage [-7, +8, em]
|
||||||
elo->evas_obj = edje_object_add(evas_object_evas_get(ed->obj));
|
elo->evas_obj = edje_object_add(evas_object_evas_get(ed->obj));
|
||||||
_edje_subobj_register(ed, elo->evas_obj);
|
_edje_subobj_register(ed, elo->evas_obj);
|
||||||
_elua_polish_evas_object(ed, elo);
|
_elua_polish_evas_object(ed, elo);
|
||||||
|
@ -1438,9 +1460,10 @@ _elua_edje(lua_State *L) // Stack usage [-?, +?, ?]
|
||||||
@since 1.1.0
|
@since 1.1.0
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
_elua_image(lua_State *L) // Stack usage [-?, +?, ?]
|
_elua_image(lua_State *L) // Stack usage [-7, +8, em]
|
||||||
{
|
{
|
||||||
_ELUA_PLANT_EVAS_OBJECT(Edje_Lua_Evas_Object, _elua_evas_image_meta, _elua_evas_obj_free)
|
_ELUA_PLANT_EVAS_OBJECT(Edje_Lua_Evas_Object, _elua_evas_image_meta, _elua_evas_obj_free)
|
||||||
|
// Stack usage [-7, +8, em]
|
||||||
elo->evas_obj = evas_object_image_filled_add(evas_object_evas_get(ed->obj));
|
elo->evas_obj = evas_object_image_filled_add(evas_object_evas_get(ed->obj));
|
||||||
_elua_polish_evas_object(ed, elo);
|
_elua_polish_evas_object(ed, elo);
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -1454,9 +1477,10 @@ _elua_image(lua_State *L) // Stack usage [-?, +?, ?]
|
||||||
@since 1.1.0
|
@since 1.1.0
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
_elua_line(lua_State *L) // Stack usage [-?, +?, ?]
|
_elua_line(lua_State *L) // Stack usage [-7, +8, em]
|
||||||
{
|
{
|
||||||
_ELUA_PLANT_EVAS_OBJECT(Edje_Lua_Evas_Object, _elua_evas_line_meta, _elua_evas_obj_free)
|
_ELUA_PLANT_EVAS_OBJECT(Edje_Lua_Evas_Object, _elua_evas_line_meta, _elua_evas_obj_free)
|
||||||
|
// Stack usage [-7, +8, em]
|
||||||
elo->evas_obj = evas_object_line_add(evas_object_evas_get(ed->obj));
|
elo->evas_obj = evas_object_line_add(evas_object_evas_get(ed->obj));
|
||||||
_elua_polish_evas_object(ed, elo);
|
_elua_polish_evas_object(ed, elo);
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -1479,19 +1503,20 @@ _elua_map_free(void *obj)
|
||||||
@since 1.1.0
|
@since 1.1.0
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
_elua_map(lua_State *L) // Stack usage [-?, +?, ?]
|
_elua_map(lua_State *L) // Stack usage [-7, +9, emv]
|
||||||
{
|
{
|
||||||
Edje *ed = (Edje *)_elua_table_ptr_get(L, _elua_key); // Stack usage [-2, +2, e]
|
Edje *ed = (Edje *)_elua_table_ptr_get(L, _elua_key); // Stack usage [-2, +2, e]
|
||||||
Edje_Lua_Map *elm;
|
Edje_Lua_Map *elm;
|
||||||
int count;
|
int count;
|
||||||
|
|
||||||
count = luaL_checkinteger(L, 1);
|
count = luaL_checkinteger(L, 1); // Stack usage [-0, +0, v]
|
||||||
|
|
||||||
elm = (Edje_Lua_Map *)_elua_obj_new(L, ed, sizeof(Edje_Lua_Map), _elua_evas_map_meta);
|
elm = (Edje_Lua_Map *)_elua_obj_new(L, ed, sizeof(Edje_Lua_Map), _elua_evas_map_meta);
|
||||||
|
// Stack usage [-5, +6, m]
|
||||||
elm->obj.free_func = _elua_map_free;
|
elm->obj.free_func = _elua_map_free;
|
||||||
elm->map = evas_map_new(count);
|
elm->map = evas_map_new(count);
|
||||||
lua_pushvalue(L, 2);
|
lua_pushvalue(L, 2); // Stack usage [-0, +1, -]
|
||||||
_elua_gc(L);
|
_elua_gc(L); // Stack usage [-0, +0, e]
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1506,6 +1531,7 @@ static int
|
||||||
_elua_polygon(lua_State *L) // Stack usage [-?, +?, ?]
|
_elua_polygon(lua_State *L) // Stack usage [-?, +?, ?]
|
||||||
{
|
{
|
||||||
_ELUA_PLANT_EVAS_OBJECT(Edje_Lua_Evas_Object, _elua_evas_polygon_meta, _elua_evas_obj_free)
|
_ELUA_PLANT_EVAS_OBJECT(Edje_Lua_Evas_Object, _elua_evas_polygon_meta, _elua_evas_obj_free)
|
||||||
|
// Stack usage [-7, +8, em]
|
||||||
elo->evas_obj = evas_object_polygon_add(evas_object_evas_get(ed->obj));
|
elo->evas_obj = evas_object_polygon_add(evas_object_evas_get(ed->obj));
|
||||||
_elua_polish_evas_object(ed, elo);
|
_elua_polish_evas_object(ed, elo);
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -1523,6 +1549,7 @@ static int
|
||||||
_elua_rect(lua_State *L) // Stack usage [-?, +?, ?]
|
_elua_rect(lua_State *L) // Stack usage [-?, +?, ?]
|
||||||
{
|
{
|
||||||
_ELUA_PLANT_EVAS_OBJECT(Edje_Lua_Evas_Object, _elua_evas_meta, _elua_evas_obj_free)
|
_ELUA_PLANT_EVAS_OBJECT(Edje_Lua_Evas_Object, _elua_evas_meta, _elua_evas_obj_free)
|
||||||
|
// Stack usage [-7, +8, em]
|
||||||
elo->evas_obj = evas_object_rectangle_add(evas_object_evas_get(ed->obj));
|
elo->evas_obj = evas_object_rectangle_add(evas_object_evas_get(ed->obj));
|
||||||
_elua_polish_evas_object(ed, elo);
|
_elua_polish_evas_object(ed, elo);
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -1539,6 +1566,7 @@ static int
|
||||||
_elua_text(lua_State *L) // Stack usage [-?, +?, ?]
|
_elua_text(lua_State *L) // Stack usage [-?, +?, ?]
|
||||||
{
|
{
|
||||||
_ELUA_PLANT_EVAS_OBJECT(Edje_Lua_Evas_Object, _elua_evas_text_meta, _elua_evas_obj_free)
|
_ELUA_PLANT_EVAS_OBJECT(Edje_Lua_Evas_Object, _elua_evas_text_meta, _elua_evas_obj_free)
|
||||||
|
// Stack usage [-7, +8, em]
|
||||||
elo->evas_obj = evas_object_text_add(evas_object_evas_get(ed->obj));
|
elo->evas_obj = evas_object_text_add(evas_object_evas_get(ed->obj));
|
||||||
_elua_polish_evas_object(ed, elo);
|
_elua_polish_evas_object(ed, elo);
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -1548,6 +1576,7 @@ _elua_text(lua_State *L) // Stack usage [-?, +?, ?]
|
||||||
_elua_textblock(lua_State *L) // Stack usage [-?, +?, ?]
|
_elua_textblock(lua_State *L) // Stack usage [-?, +?, ?]
|
||||||
{
|
{
|
||||||
_ELUA_PLANT_EVAS_OBJECT(Edje_Lua_Evas_Object, _elua_evas_textblock_meta, _elua_evas_obj_free)
|
_ELUA_PLANT_EVAS_OBJECT(Edje_Lua_Evas_Object, _elua_evas_textblock_meta, _elua_evas_obj_free)
|
||||||
|
// Stack usage [-7, +8, em]
|
||||||
elo->evas_obj = evas_object_textblock_add(evas_object_evas_get(ed->obj));
|
elo->evas_obj = evas_object_textblock_add(evas_object_evas_get(ed->obj));
|
||||||
_elua_polish_evas_object(ed, elo);
|
_elua_polish_evas_object(ed, elo);
|
||||||
return 1;
|
return 1;
|
||||||
|
|
Loading…
Reference in New Issue