diff --git a/BizHawk.MultiClient/LuaImplementation.cs b/BizHawk.MultiClient/LuaImplementation.cs
index ea1cd7bd47..c636ab7b01 100644
--- a/BizHawk.MultiClient/LuaImplementation.cs
+++ b/BizHawk.MultiClient/LuaImplementation.cs
@@ -513,6 +513,8 @@ namespace BizHawk.MultiClient
"addclick",
"clearclicks",
"gettext",
+ "setproperty",
+ "getproperty",
};
public static string[] BitwiseFunctions = new string[]
@@ -2283,7 +2285,7 @@ namespace BizHawk.MultiClient
{
if (form.Handle == ptr)
{
- form.GetType().GetProperty(property.ToString()).SetValue(form, value, null);
+ form.GetType().GetProperty(property.ToString()).SetValue(form, Convert.ChangeType(value, form.GetType().GetProperty(property.ToString()).PropertyType), null);
}
else
{
@@ -2291,7 +2293,7 @@ namespace BizHawk.MultiClient
{
if (control.Handle == ptr)
{
- control.GetType().GetProperty(property.ToString()).SetValue(control, value, null);
+ control.GetType().GetProperty(property.ToString()).SetValue(control, Convert.ChangeType(value, form.GetType().GetProperty(property.ToString()).PropertyType), null);
}
}
}
@@ -2334,48 +2336,62 @@ namespace BizHawk.MultiClient
public string forms_gettext(object handle)
{
- IntPtr ptr = new IntPtr(LuaInt(handle));
- foreach (LuaWinform form in LuaForms)
+ try
{
- if (form.Handle == ptr)
+ IntPtr ptr = new IntPtr(LuaInt(handle));
+ foreach (LuaWinform form in LuaForms)
{
- return form.Text;
- }
- else
- {
- foreach (Control control in form.Controls)
+ if (form.Handle == ptr)
{
- if (control.Handle == ptr)
+ return form.Text;
+ }
+ else
+ {
+ foreach (Control control in form.Controls)
{
- return control.Text;
+ if (control.Handle == ptr)
+ {
+ return control.Text;
+ }
}
}
}
}
+ catch (Exception ex)
+ {
+ console_output(ex.Message);
+ }
return "";
}
public string forms_getproperty(object handle, object property)
{
- IntPtr ptr = new IntPtr(LuaInt(handle));
- foreach (LuaWinform form in LuaForms)
+ try
{
- if (form.Handle == ptr)
+ IntPtr ptr = new IntPtr(LuaInt(handle));
+ foreach (LuaWinform form in LuaForms)
{
- return form.GetType().GetProperty(property.ToString()).GetValue(form, null).ToString();
- }
- else
- {
- foreach (Control control in form.Controls)
+ if (form.Handle == ptr)
{
- if (control.Handle == ptr)
+ return form.GetType().GetProperty(property.ToString()).GetValue(form, null).ToString();
+ }
+ else
+ {
+ foreach (Control control in form.Controls)
{
- return control.GetType().GetProperty(property.ToString()).GetValue(control, null).ToString();
+ if (control.Handle == ptr)
+ {
+ return control.GetType().GetProperty(property.ToString()).GetValue(control, null).ToString();
+ }
}
}
}
}
+ catch (Exception ex)
+ {
+ console_output(ex.Message);
+ }
return "";
}
diff --git a/BizHawk.MultiClient/tools/LuaConsole.resx b/BizHawk.MultiClient/tools/LuaConsole.resx
index 501625a321..814a1793ef 100644
--- a/BizHawk.MultiClient/tools/LuaConsole.resx
+++ b/BizHawk.MultiClient/tools/LuaConsole.resx
@@ -133,17 +133,18 @@
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJQSURBVDhPlZNdSNNRGMb/F110ZZEVhVBgeeHNICiiuggp
- olAUyyxI0oSaH1QYC3N+tKnp5ubm1JUua5uuqdPKMgr7kApFItTUkWZqVhSVYmao5Nev/xyoQ4k88Nyc
- 8z6/93nP4QjCfy6lwc4ltZVso4P/tMyXRcmMHqZ0EeY6jZQVInzuf0e1Tb9Ina3P/tkpLD6XkNg8BJe5
- u93C+HDVrP4M2ZkcMOOw5tLZ9nxJyJE4HSExBoKkBQhVpTrGhso9zNPfiph0JlB+U01ZcRbmwnRMeWlc
- 08opUCV6QissGsZ+WOY6z4hmuuXglC6pRYBbJSp+fzXNxnaZ66o1s3rkyKHWruJuWRYOcwZ2kxKr8TI3
- DCkU6+QYNUnuNGWmLEY+5uOK3degoKZcx3SfEvozPfVB3OtNhi4ZvI2nrTIc23U9gtmYwa8eNXzScq8i
- l6bHWnfRwhHeREJzGFONgYw/CeB9qQSZNNR9FyUGBT87lfQ3plJj1zLTq4COGDegLVo0HmeqKZjx+gOM
- PNzDYPU2lLF+4jhyN6BIl8pgexK3bRpaXopJuhJEwGloiWDmVSgTLw4xWreXoZrtfK/wp/nKak4E+s6/
- hDFHTkd9GndsOdCTBq1i3NdHmWgIYvRpAMO1OxlwSPhi2YpT641CuoWzsSfnAfnZiVRZ1Tjvx9GsF+bU
- pF1BvWolD9JXUZmyDnOiD1cvbCZiYXfXCPrMi+gVZ8hOiiL53DHORwdzKnw/hw/uYt9uCTskfvj7+rBp
- 41rWr/Fig7fX8j/Tsn/fcgx/ARfG3ml6M3rzAAAAAElFTkSuQmCC
+ YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAlpJREFUOE+tk21I
+ k1EYhif0oyA0sqIQCix/+GcQFFH9CCmiUBTLLEjShJofVBgL2fxoU9Pp5ubUlS5rU9f8rCyjsA+pUCRC
+ TR1ppmVFUSlmhq78unrnQF1KGHTg/nEOz30993PO+7qJFrmUeiv2n+Mij+XLRLLYULdF2pxlEVIDcw0p
+ AsyxD5fmI/rQ94pqi26eOlsfuZj+7BgSm01QdA4ih7m73Yx9qGpavwatjPebqCzOprPt8YKQgzFagqL0
+ BEjyEFWVaBkdLHMxT34uYNwWR9nVTEoL0zHlp2DMSeaSRk6eKt4VWm5WM/rVPNN5SjDTLQebZEHNA1wr
+ UvHjk3E6tsNcV62e1r3KLGqtKm6WplNpSsVqVFJsOM8VfSKFWjkGtcyZptSYzvC7XByx3zQoqCnTMvlG
+ CX1prnornPUmQJcUXsbSVhGK5bIOkcmQyveeTHiv4VZ5Nk33Nc6iuSO8CIfmECYa/bE/8ON1iRipJNh5
+ F0V6Bd86lfQ1JlFj1TDVq4COKCegLVIwHmGiKRB7/V6G7+5koHozymgfYRy5E1CgTWKgXcZ1i5qWp0KS
+ rjgBcAJawph6FszYk/2M1O1isGYLX8p9ab6wgqP+3rMvYciS01GfzA1LFvQkQ6sQ9/khxhoCGHnox1Dt
+ NvorxXw0b8Km8UQh2cip6GOzgNyMeKqKM7HdjqFZJ5pRk2YJ9aql3EnxoCJxNaZ4Ly6e3UDY3O6OEXRp
+ 59ApTpIhiyDh9GHORAZyPHQPB/ZtZ/cOMVvFPvh6e7F+3SrWrHRnraf7Xz/xf/rJ/kvxb84I3U1y+9/W
+ AAAAAElFTkSuQmCC