public static Delegate MyFrameWork_StateChangedEvent(LuaFunction func) { if (func == null) { MyFrameWork.StateChangedEvent fn = delegate { }; return(fn); } MyFrameWork.StateChangedEvent d = (new MyFrameWork_StateChangedEvent_Event(func)).Call; return(d); }
static int set_StateChanged(IntPtr L) { MyFrameWork.BaseUI obj = (MyFrameWork.BaseUI)ToLua.CheckObject(L, 1, typeof(MyFrameWork.BaseUI)); EventObject arg0 = null; if (LuaDLL.lua_isuserdata(L, 2) != 0) { arg0 = (EventObject)ToLua.ToObject(L, 2); } else { return(LuaDLL.luaL_error(L, "The event 'MyFrameWork.BaseUI.StateChanged' can only appear on the left hand side of += or -= when used outside of the type 'MyFrameWork.BaseUI'")); } if (arg0.op == EventOp.Add) { MyFrameWork.StateChangedEvent ev = (MyFrameWork.StateChangedEvent)DelegateFactory.CreateDelegate(typeof(MyFrameWork.StateChangedEvent), arg0.func); obj.StateChanged += ev; } else if (arg0.op == EventOp.Sub) { MyFrameWork.StateChangedEvent ev = (MyFrameWork.StateChangedEvent)LuaMisc.GetEventHandler(obj, typeof(MyFrameWork.BaseUI), "StateChanged"); Delegate[] ds = ev.GetInvocationList(); LuaState state = LuaState.Get(L); for (int i = 0; i < ds.Length; i++) { ev = (MyFrameWork.StateChangedEvent)ds[i]; LuaDelegate ld = ev.Target as LuaDelegate; if (ld != null && ld.func == arg0.func) { obj.StateChanged -= ev; state.DelayDispose(ld.func); break; } } arg0.func.Dispose(); } return(0); }