151 lines
5.0 KiB
C#
151 lines
5.0 KiB
C#
using System;
|
|
using System.Reflection;
|
|
using UnityEditor;
|
|
|
|
namespace WoLfulus.LineEnding
|
|
{
|
|
[InitializeOnLoad]
|
|
public static class LogEntries
|
|
{
|
|
private static Type _type;
|
|
|
|
private static PropertyInfo _consoleFlags;
|
|
private static MethodInfo _SetConsoleFlag;
|
|
private static MethodInfo _RowGotDoubleClicked;
|
|
private static MethodInfo _GetStatusText;
|
|
private static MethodInfo _GetStatusMask;
|
|
private static MethodInfo _StartGettingEntries;
|
|
private static MethodInfo _EndGettingEntries;
|
|
private static MethodInfo _GetFirstTwoLinesEntryTextAndModeInternal;
|
|
private static MethodInfo _GetEntryCount;
|
|
private static MethodInfo _GetEntryInternal;
|
|
private static MethodInfo _GetCount;
|
|
private static MethodInfo _GetCountsByType;
|
|
private static MethodInfo _GetStatusViewErrorIndex;
|
|
private static MethodInfo _ClickStatusBar;
|
|
private static MethodInfo _Clear;
|
|
|
|
|
|
static LogEntries()
|
|
{
|
|
var flags = BindingFlags.Static | BindingFlags.Public;
|
|
|
|
if (_type == null)
|
|
{
|
|
Assembly assembly = Assembly.GetAssembly(typeof(Editor));
|
|
_type = assembly.GetType("UnityEditorInternal.LogEntries");
|
|
if (_type == null) // 2017 Fix
|
|
{
|
|
_type = assembly.GetType("UnityEditor.LogEntries");
|
|
}
|
|
|
|
_consoleFlags = _type.GetProperty("consoleFlags", flags);
|
|
_SetConsoleFlag = _type.GetMethod("SetConsoleFlag", flags);
|
|
|
|
_RowGotDoubleClicked = _type.GetMethod("RowGotDoubleClicked", flags);
|
|
|
|
_GetStatusText = _type.GetMethod("GetStatusText", flags);
|
|
_GetStatusMask = _type.GetMethod("GetStatusMask", flags);
|
|
|
|
_StartGettingEntries = _type.GetMethod("StartGettingEntries", flags);
|
|
_EndGettingEntries = _type.GetMethod("EndGettingEntries", flags);
|
|
|
|
_GetFirstTwoLinesEntryTextAndModeInternal = _type.GetMethod("GetFirstTwoLinesEntryTextAndModeInternal", flags);
|
|
|
|
_GetEntryCount = _type.GetMethod("GetEntryCount", flags);
|
|
_GetEntryInternal = _type.GetMethod("GetEntryInternal", flags);
|
|
|
|
_GetCount = _type.GetMethod("GetCount", flags);
|
|
_GetCountsByType = _type.GetMethod("GetCountsByType", flags);
|
|
|
|
_GetStatusViewErrorIndex = _type.GetMethod("GetStatusViewErrorIndex", flags);
|
|
_ClickStatusBar = _type.GetMethod("ClickStatusBar", flags);
|
|
|
|
_Clear = _type.GetMethod("Clear", flags);
|
|
}
|
|
}
|
|
|
|
public static int consoleFlags
|
|
{
|
|
get
|
|
{
|
|
return (int)_consoleFlags.GetValue(null, null);
|
|
}
|
|
set
|
|
{
|
|
_consoleFlags.SetValue(null, value, null);
|
|
}
|
|
}
|
|
|
|
public static void RowGotDoubleClicked(int index)
|
|
{
|
|
_RowGotDoubleClicked.Invoke(null, new object[1] { index });
|
|
}
|
|
|
|
public static string GetStatusText()
|
|
{
|
|
return (string)_GetStatusText.Invoke(null, new object[0]);
|
|
}
|
|
|
|
public static int GetStatusMask()
|
|
{
|
|
return (int)_GetStatusMask.Invoke(null, new object[0]);
|
|
}
|
|
|
|
public static int StartGettingEntries()
|
|
{
|
|
return (int)_StartGettingEntries.Invoke(null, new object[0]);
|
|
}
|
|
|
|
public static void SetConsoleFlag(int bit, bool value)
|
|
{
|
|
_SetConsoleFlag.Invoke(null, new object[2] { bit, value });
|
|
}
|
|
|
|
public static void EndGettingEntries()
|
|
{
|
|
_EndGettingEntries.Invoke(null, new object[0]);
|
|
}
|
|
|
|
public static int GetCount()
|
|
{
|
|
return (int)_GetCount.Invoke(null, new object[0]);
|
|
}
|
|
|
|
public static void GetCountsByType(ref int errorCount, ref int warningCount, ref int logCount)
|
|
{
|
|
_GetCountsByType.Invoke(null, new object[3] { errorCount, warningCount, logCount });
|
|
}
|
|
|
|
public static void GetFirstTwoLinesEntryTextAndModeInternal(int row, ref int mask, ref string outString)
|
|
{
|
|
_GetFirstTwoLinesEntryTextAndModeInternal.Invoke(null, new object[3] { row, mask, outString });
|
|
}
|
|
|
|
public static bool GetEntryInternal(int row, object outputEntry)
|
|
{
|
|
return (bool)_GetEntryInternal.Invoke(null, new object[2] { row, outputEntry });
|
|
}
|
|
|
|
public static int GetEntryCount(int row)
|
|
{
|
|
return (int)_GetEntryCount.Invoke(null, new object[1] { row });
|
|
}
|
|
|
|
public static void Clear()
|
|
{
|
|
_Clear.Invoke(null, new object[0]);
|
|
}
|
|
|
|
public static int GetStatusViewErrorIndex()
|
|
{
|
|
return (int)_GetStatusViewErrorIndex.Invoke(null, new object[0]);
|
|
}
|
|
|
|
public static void ClickStatusBar(int count)
|
|
{
|
|
_ClickStatusBar.Invoke(null, new object[1] { count });
|
|
}
|
|
}
|
|
}
|