I am really hoping someone could help me with this question please as I am totally stuck on it for now.
I am trying to implement a userdata via the C API, to give me this type of functionality
btn1 = graphics.newButton(x,y,width,ht, "pressMe")
That's OK I think I have got that figured out and largely working, but the next thing I want to do is call a user defined Lua action function on the button instance. For example
print("ouch someone just poked btn1")
How can I call that Lua button instance function from C when I have detected the key is pressed ?
I have done something vaguely similar in the past when I have created a custom timer on the Lua side, but the difference was I had a timer create function in Lua such as
myNewTimer = createTimer( period, luaFunctionCallback)
So I was passed the callback function into the C code which meant I could stash it away in the registry and then when the timer elapsed on the C side, I did this
// push function indexed by registryRef from the registry back onto the stack
// the lua callback function in this case
lua_rawgeti(local_L, LUA_REGISTRYINDEX, registryRef);
/* the first function argument is the timerID */
/* call the function with 1 argument, return 0 result */
pcallResult = lua_pcall(local_L,1,0,0); // pops 2 params from stack
I am guessing the solution is somewhat similar but cant figure it out.
Many thanks for any assistance