static int RemoveCallback(IntPtr L) { try { int count = LuaDLL.lua_gettop(L); if (count == 2 && TypeChecker.CheckTypes <LuaEventCallback>(L, 2)) { QKEvent obj = (QKEvent)ToLua.CheckObject <QKEvent>(L, 1); LuaEventCallback arg0 = (LuaEventCallback)ToLua.ToObject(L, 2); obj.RemoveCallback(arg0); return(0); } else if (count == 2 && TypeChecker.CheckTypes <IEventCallback>(L, 2)) { QKEvent obj = (QKEvent)ToLua.CheckObject <QKEvent>(L, 1); IEventCallback arg0 = (IEventCallback)ToLua.ToObject(L, 2); obj.RemoveCallback(arg0); return(0); } else { return(LuaDLL.luaL_throw(L, "invalid arguments to method: QKEvent.RemoveCallback")); } } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }
static int AddCallback(IntPtr L) { try { int count = LuaDLL.lua_gettop(L); if (count == 2) { QKEvent obj = (QKEvent)ToLua.CheckObject <QKEvent>(L, 1); IEventCallback arg0 = (IEventCallback)ToLua.CheckObject <IEventCallback>(L, 2); obj.AddCallback(arg0); return(0); } else if (count == 3) { QKEvent obj = (QKEvent)ToLua.CheckObject <QKEvent>(L, 1); object arg0 = ToLua.ToVarObject(L, 2); LuaFunction arg1 = ToLua.CheckLuaFunction(L, 3); LuaEventCallback o = obj.AddCallback(arg0, arg1); ToLua.PushObject(L, o); return(1); } else { return(LuaDLL.luaL_throw(L, "invalid arguments to method: QKEvent.AddCallback")); } } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }
static int Call(IntPtr L) { try { int count = LuaDLL.lua_gettop(L); if (count == 2 && TypeChecker.CheckTypes <object[]>(L, 2)) { QKEvent obj = (QKEvent)ToLua.CheckObject <QKEvent>(L, 1); object[] arg0 = ToLua.ToObjectArray(L, 2); obj.Call(arg0); return(0); } else if (count == 2 && TypeChecker.CheckTypes <object>(L, 2)) { QKEvent obj = (QKEvent)ToLua.CheckObject <QKEvent>(L, 1); object arg0 = ToLua.ToVarObject(L, 2); obj.Call(arg0); return(0); } else { return(LuaDLL.luaL_throw(L, "invalid arguments to method: QKEvent.Call")); } } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }
static int Dispose(IntPtr L) { try { ToLua.CheckArgsCount(L, 1); QKEvent obj = (QKEvent)ToLua.CheckObject <QKEvent>(L, 1); obj.Dispose(); return(0); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }
static int set_OnWndOpen(IntPtr L) { object o = null; try { o = ToLua.ToObject(L, 1); WndManage obj = (WndManage)o; QKEvent arg0 = (QKEvent)ToLua.CheckObject(L, 2, typeof(QKEvent)); obj.OnWndOpen = arg0; return(0); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e, o == null ? "attempt to index OnWndOpen on a nil value" : e.Message)); } }
static int get_OnWndOpen(IntPtr L) { object o = null; try { o = ToLua.ToObject(L, 1); WndManage obj = (WndManage)o; QKEvent ret = obj.OnWndOpen; ToLua.PushObject(L, ret); return(1); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e, o == null ? "attempt to index OnWndOpen on a nil value" : e.Message)); } }
static int set_HandleDisConnect(IntPtr L) { object o = null; try { o = ToLua.ToObject(L, 1); NetworkManager obj = (NetworkManager)o; QKEvent arg0 = (QKEvent)ToLua.CheckObject <QKEvent>(L, 2); obj.HandleDisConnect = arg0; return(0); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e, o, "attempt to index HandleDisConnect on a nil value")); } }
static int get_HandleDisConnect(IntPtr L) { object o = null; try { o = ToLua.ToObject(L, 1); NetworkManager obj = (NetworkManager)o; QKEvent ret = obj.HandleDisConnect; ToLua.PushObject(L, ret); return(1); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e, o, "attempt to index HandleDisConnect on a nil value")); } }
static int get_HasCallback(IntPtr L) { object o = null; try { o = ToLua.ToObject(L, 1); QKEvent obj = (QKEvent)o; bool ret = obj.HasCallback; LuaDLL.lua_pushboolean(L, ret); return(1); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e, o, "attempt to index HasCallback on a nil value")); } }
static int _CreateQKEvent(IntPtr L) { try { int count = LuaDLL.lua_gettop(L); if (count == 0) { QKEvent obj = new QKEvent(); ToLua.PushObject(L, obj); return(1); } else { return(LuaDLL.luaL_throw(L, "invalid arguments to ctor method: QKEvent.New")); } } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }
internal void PostEvent(SyncObj obj, string attrName) { //精确绑定的事件 { QKEvent evt = GetValueChangedEvent(obj.sid, obj.Path, attrName); if (evt != null) { evt.Call(attrName); } } //模糊绑定的事件 { var evts = GetValueChangedEvents(obj.sid, obj.Path); if (evts != null) { foreach (var evtkv in evts) { var kvAttrName = evtkv.Key; var evt = evtkv.Value; if (kvAttrName == "" && evt != null) { evt.Call(attrName); } } } } //同时监听子对象的事件 { var fullPath = obj.Path + "@" + attrName; var path = obj.Path; do { var evts = GetValueChangedEvents(obj.sid, path); if (evts != null) { foreach (var evtkv in evts) { var kvAttrName = evtkv.Key; var evt = evtkv.Value; if (kvAttrName == "*" && evt != null) { evt.Call(fullPath); } } } if (path == "") { path = null; } else { int idx = path.LastIndexOf('/'); if (idx < 0) { path = ""; } else { path = path.Substring(0, idx); } } } while(path != null); } }