You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
1.5 KiB
63 lines
1.5 KiB
using System; |
|
using System.Runtime.InteropServices; |
|
using System.Text; |
|
|
|
namespace ZenFulcrum.EmbeddedBrowser { |
|
|
|
public static class Util { |
|
|
|
/** |
|
* Sometimes creating a culture in a different thread causes Mono to crash |
|
* with mono_class_vtable_full. |
|
* |
|
* This variant of StartsWith won't try to use a culture. |
|
*/ |
|
public static bool SafeStartsWith(this string check, string starter) { |
|
if (check == null || starter == null) return false; |
|
|
|
if (check.Length < starter.Length) return false; |
|
|
|
for (int i = 0; i < starter.Length; ++i) { |
|
if (check[i] != starter[i]) return false; |
|
} |
|
|
|
return true; |
|
} |
|
|
|
/// <summary> |
|
/// Converts a UTF8-encoded null-terminated string to a CLR string. |
|
/// </summary> |
|
/// <param name="strIn"></param> |
|
/// <returns></returns> |
|
public static string PtrToStringUTF8(IntPtr strIn) { |
|
if (strIn == IntPtr.Zero) return null; |
|
int strLen = 0; |
|
while (Marshal.ReadByte(strIn, strLen) != 0) ++strLen; |
|
var buffer = new byte[strLen]; |
|
Marshal.Copy(strIn, buffer, 0, strLen); |
|
return Encoding.UTF8.GetString(buffer); |
|
} |
|
} |
|
|
|
public class JSException : Exception { |
|
public JSException(string what) : base(what) {} |
|
} |
|
|
|
public enum KeyAction { |
|
Press, Release, PressAndRelease |
|
} |
|
|
|
public class BrowserFocusState { |
|
public bool hasKeyboardFocus; |
|
public bool hasMouseFocus; |
|
|
|
public string focusedTagName; |
|
public bool focusedNodeEditable; |
|
} |
|
|
|
public class BrowserNavState { |
|
public bool canGoForward, canGoBack, loading; |
|
public string url = ""; |
|
} |
|
|
|
}
|
|
|