From 6c05361cdac93d45319f7ba18b5371cfc36201f3 Mon Sep 17 00:00:00 2001 From: YoshiRulz Date: Wed, 25 Nov 2020 19:11:06 +1000 Subject: [PATCH] Move GuiLuaLibrary to Client.Common --- .../lua/CommonLibs}/GuiLuaLibrary.cs | 15 ++++++--------- .../tools/Lua/Win32LuaLibraries.cs | 9 +++++++++ 2 files changed, 15 insertions(+), 9 deletions(-) rename src/{BizHawk.Client.EmuHawk/tools/Lua/Libraries => BizHawk.Client.Common/lua/CommonLibs}/GuiLuaLibrary.cs (96%) diff --git a/src/BizHawk.Client.EmuHawk/tools/Lua/Libraries/GuiLuaLibrary.cs b/src/BizHawk.Client.Common/lua/CommonLibs/GuiLuaLibrary.cs similarity index 96% rename from src/BizHawk.Client.EmuHawk/tools/Lua/Libraries/GuiLuaLibrary.cs rename to src/BizHawk.Client.Common/lua/CommonLibs/GuiLuaLibrary.cs index 553ba29336..2f14fffec3 100644 --- a/src/BizHawk.Client.EmuHawk/tools/Lua/Libraries/GuiLuaLibrary.cs +++ b/src/BizHawk.Client.Common/lua/CommonLibs/GuiLuaLibrary.cs @@ -1,12 +1,14 @@ using System; using System.Drawing; -using NLua; -using BizHawk.Client.Common; -namespace BizHawk.Client.EmuHawk +using NLua; + +namespace BizHawk.Client.Common { public sealed class GuiLuaLibrary : DelegatingLuaLibrary, IDisposable { + public Func CreateLuaCanvasCallback { get; set; } + public GuiLuaLibrary(Lua lua) : base(lua) { } @@ -176,12 +178,7 @@ namespace BizHawk.Client.EmuHawk [LuaMethodExample("local nlguicre = gui.createcanvas( 77, 99, 2, 48 );")] [LuaMethod("createcanvas", "Creates a canvas of the given size and, if specified, the given coordinates.")] - public LuaTable Text(int width, int height, int? x = null, int? y = null) - { - var canvas = new LuaCanvas(width, height, x, y); - canvas.Show(); - return Lua.TableFromObject(canvas); - } + public LuaTable Text(int width, int height, int? x = null, int? y = null) => CreateLuaCanvasCallback(width, height, x, y); public void Dispose() => APIs.Gui.Dispose(); } diff --git a/src/BizHawk.Client.EmuHawk/tools/Lua/Win32LuaLibraries.cs b/src/BizHawk.Client.EmuHawk/tools/Lua/Win32LuaLibraries.cs index b69ce2ad55..fc568c5120 100644 --- a/src/BizHawk.Client.EmuHawk/tools/Lua/Win32LuaLibraries.cs +++ b/src/BizHawk.Client.EmuHawk/tools/Lua/Win32LuaLibraries.cs @@ -67,6 +67,15 @@ namespace BizHawk.Client.EmuHawk { clientLib.MainForm = mainForm; } + else if (instance is GuiLuaLibrary guiLib) + { + guiLib.CreateLuaCanvasCallback = (width, height, x, y) => + { + var canvas = new LuaCanvas(width, height, x, y); + canvas.Show(); + return _lua.TableFromObject(canvas); + }; + } if (instance is DelegatingLuaLibrary dlgInstance) dlgInstance.APIs = apiContainer;