public static void RegisterNLuaBox(Lua context) { context.RegisterLuaDelegateType (typeof (EventHandler<EventArgs>), typeof (LuaEventArgsHandler)); context.RegisterLuaDelegateType (typeof (EventHandler), typeof (LuaEventArgsHandler)); context.RegisterLuaDelegateType (typeof (EventHandler<UIButtonEventArgs>), typeof (LuaButtonEventArgsHandler)); context.RegisterLuaDelegateType (typeof(NSAction), typeof(LuaNSActionHandler)); context.RegisterLuaClassType (typeof (UIViewController), typeof (NLuaBoxUIViewControllerBinder)); context.RegisterLuaClassType (typeof (UITableViewSource), typeof (NLuaBoxUITableViewSourceBinder)); context.RegisterLuaClassType (typeof (JLTextViewController), typeof (NLuaBoxDetailLuaViewController)); context.RegisterLuaClassType (typeof (DialogViewController), typeof (NLuaBoxDialogViewControllerBinder)); context.RegisterLuaClassType (typeof (UITableViewController), typeof (NLuaBoxUITableViewControllerBinder)); context.RegisterFunction ("CreateListString", typeof (NLuaBoxBinder).GetMethod ("CreateListString")); }
public static void RegisterNLuaBox(Lua context) { context.RegisterLuaDelegateType (typeof (EventHandler<EventArgs>), typeof (LuaEventArgsHandler)); context.RegisterLuaDelegateType (typeof (EventHandler), typeof (LuaEventArgsHandler)); context.RegisterLuaDelegateType (typeof (EventHandler<UIButtonEventArgs>), typeof (LuaButtonEventArgsHandler)); context.RegisterLuaClassType (typeof (UIViewController), typeof (NLuaBoxUIViewControllerBinder)); }
public void LuaTableBaseMethod () { using (Lua lua = new Lua ()) { lua.RegisterLuaClassType (typeof(TestClass), typeof(LuaTestClassHandler)); lua.DoString ("luanet.load_assembly('NLuaTest')"); lua.DoString ("TestClass=luanet.import_type('NLuaTest.Mock.TestClass')"); lua.DoString ("test={}"); lua.DoString ("function test:overridableMethod(x,y) print(self[base]); return 6 end"); lua.DoString ("luanet.make_object(test,'NLuaTest.Mock.TestClass')"); lua.DoString ("a=TestClass.callOverridable(test,2,3)"); int a = (int)lua.GetNumber ("a"); lua.DoString ("luanet.free_object(test)"); Assert.AreEqual (6, a); // lua.DoString("luanet.load_assembly('NLuaTest')"); // lua.DoString("TestClass=luanet.import_type('NLuaTest.Mock.TestClass')"); // lua.DoString("test={}"); // // lua.DoString("luanet.make_object(test,'NLuaTest.Mock.TestClass')"); // lua.DoString ("function test.overridableMethod(test,x,y) return 2*test.base.overridableMethod(test,x,y); end"); // lua.DoString("a=TestClass.callOverridable(test,2,3)"); // int a = (int)lua.GetNumber("a"); // lua.DoString("luanet.free_object(test)"); // Assert.AreEqual(10, a); //Console.WriteLine("interface returned: "+a); } }
public void NLuaAAValueTypes () { using (Lua lua = new Lua ()) { lua.RegisterLuaClassType (typeof(ITest), typeof(LuaITestClassHandler)); lua.DoString ("luanet.load_assembly('NLuaTest')"); lua.DoString ("TestClass=luanet.import_type('NLuaTest.Mock.TestClass')"); lua.DoString ("test=TestClass()"); lua.DoString ("itest={}"); lua.DoString ("function itest:test1(x,y) return x+y; end"); lua.DoString ("test=TestClass()"); lua.DoString ("a=test:callInterface1(itest)"); int a = (int)lua.GetNumber ("a"); Assert.AreEqual (5, a); //Console.WriteLine("interface returned: "+a); } }