18 #ifndef _LUA_METHOD_H_ 19 #define _LUA_METHOD_H_ 106 lua_pushstring(L, r->_name);
107 lua_pushlightuserdata(L, r);
115 lua_pushvalue(L, -(upvalues+1));
118 lua_pushstring(L, r->_name);
119 lua_pushlightuserdata(L, r);
121 for(
int i = 0; i<upvalues; i++)
122 lua_pushvalue(L, -(3+upvalues));
145 #ifdef LUAUTILS_CANCEL 147 if(LuaEnv::cancelRequested(L))
148 return luaL_error(L,
"%s", luaPrintable(
QObject::tr(
"Script canceled.")));
155 T* proxy = LuaProxy::toObjectOfClass<T>(L, 1);
157 return luaL_error(L,
"%s", luaPrintable(
QObject::tr(
"Redirector for method %1 called on incorrect object type.").arg(reg->
_name)));
161 return (proxy->*method)(L);
208 lua_pushstring(L, r->_name);
209 lua_pushlightuserdata(L, r);
210 lua_pushlightuserdata(L, obj);
229 #ifdef LUAUTILS_CANCEL 231 if(LuaEnv::cancelRequested(L))
232 return luaL_error(L,
"%s", luaPrintable(
QObject::tr(
"Script canceled.")));
239 T* obj = (T*)lua_touserdata(L, lua_upvalueindex(2));
243 return (obj->*method)(L);
static void registerMethods(lua_State *L, struct MethodRegistry *methods, int upvalues=0)
Registra na tabela contida na pilha as funções contidas em methods. Permite que sejam associados upva...
Definition: luaMethod.h:97
#define LUA_SAVE_TOPL(L)
Macro utilizada para salvar a posiçao do topo da pilha. Recebe um lua_State.
Definition: luaStackBalancer.h:50
MethodType _method
Ponteiro para o método a ser chamado.
Definition: luaMethod.h:79
Classe similar a LuaMethod porém com algumas diferenças fundamentais:
Definition: luaMethod.h:176
const char * _name
Nome do método exportado.
Definition: luaMethod.h:185
QString tr(const char *sourceText, const char *disambiguation, int n)
const char * _name
Nome do método exportado.
Definition: luaMethod.h:78
static int methodRedirector(lua_State *L)
Stub utilizado para chamada dos métodos da classe T.
Definition: luaMethod.h:143
Definicao das classes LuaEnv e AutoLuaEnv.
MethodType _method
Ponteiro para o método a ser chamado.
Definition: luaMethod.h:186
Definicao da classe LuaStackBalancer.
Classe auxiliar para registro dos nomes e métodos a serem chamados.
Definition: luaMethod.h:77
Classe auxiliar para registro dos nomes e métodos a serem chamados.
Definition: luaMethod.h:184
static int methodRedirector(lua_State *L)
Stub utilizado para chamada dos métodos da classe T.
Definition: luaMethod.h:227
Declaration of usefull configuration definitions and some compatibility options fro compiling with se...
static void registerMethods(lua_State *L, struct MethodRegistry *methods, T *obj)
Registra na tabela contida na pilha as funções contidas em methods. Obj deve conter ponteiro par o ob...
Definition: luaMethod.h:200
int(T::* MethodType)(lua_State *)
Typedef para método de T com assinatura de uma função chamada por Lua.
Definition: luaMethod.h:74
Definicao das classes LuaProxy e LuaSimpleProxy.
int(T::* MethodType)(lua_State *)
Typedef para método de T com assinatura de uma função chamada por Lua.
Definition: luaMethod.h:181
Classe auxiliar para facilitar o cadastro de métodos a serem chamados por Lua.
Definition: luaMethod.h:69
#define LUA_CHECK_TOPL(L)
Macro utilizada para verificar se o topo atual da pilha é igual ao valor salvo. Recebe um lua_State.
Definition: luaStackBalancer.h:53