Skip to content
This repository was archived by the owner on May 9, 2023. It is now read-only.

Commit 5de7713

Browse files
committed
1.5.3
* Added exception handling for scrollview when unstripping fails * Added some better logging in some places
1 parent 51cfbe5 commit 5de7713

File tree

6 files changed

+56
-25
lines changed

6 files changed

+56
-25
lines changed

src/CppExplorer.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ namespace Explorer
1212
public class CppExplorer : MelonMod
1313
{
1414
public const string GUID = "com.sinai.cppexplorer";
15-
public const string VERSION = "1.5.2";
15+
public const string VERSION = "1.5.3";
1616
public const string AUTHOR = "Sinai";
1717

1818
public const string NAME = "CppExplorer"
@@ -99,6 +99,8 @@ public override void OnUpdate()
9999

100100
public override void OnGUI()
101101
{
102+
if (!ShowMenu) return;
103+
102104
MainMenu.Instance.OnGUI();
103105
WindowManager.Instance.OnGUI();
104106
InspectUnderMouse.OnGUI();

src/Helpers/UIHelpers.cs

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,35 @@ namespace Explorer
1010
{
1111
public class UIHelpers
1212
{
13+
private static bool ScrollUnstrippingFailed = false;
14+
15+
public static Vector2 BeginScrollView(Vector2 scroll) => BeginScrollView(scroll, null);
16+
17+
public static Vector2 BeginScrollView(Vector2 scroll, GUIStyle style, params GUILayoutOption[] layoutOptions)
18+
{
19+
if (ScrollUnstrippingFailed) return scroll;
20+
21+
try
22+
{
23+
if (style != null)
24+
return GUILayout.BeginScrollView(scroll, style, layoutOptions);
25+
else
26+
return GUILayout.BeginScrollView(scroll, layoutOptions);
27+
}
28+
catch
29+
{
30+
ScrollUnstrippingFailed = true;
31+
return scroll;
32+
}
33+
}
34+
35+
public static void EndScrollView()
36+
{
37+
if (ScrollUnstrippingFailed) return;
38+
39+
GUILayout.EndScrollView();
40+
}
41+
1342
// helper for "Instantiate" button on UnityEngine.Objects
1443
public static void InstantiateButton(Object obj, float width = 100)
1544
{

src/MainMenu/MainMenu.cs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -51,15 +51,12 @@ public void Update()
5151

5252
public void OnGUI()
5353
{
54-
if (CppExplorer.ShowMenu)
55-
{
56-
var origSkin = GUI.skin;
57-
GUI.skin = UIStyles.WindowSkin;
54+
var origSkin = GUI.skin;
55+
GUI.skin = UIStyles.WindowSkin;
5856

59-
MainRect = GUI.Window(MainWindowID, MainRect, (GUI.WindowFunction)MainWindow, CppExplorer.NAME);
57+
MainRect = GUI.Window(MainWindowID, MainRect, (GUI.WindowFunction)MainWindow, CppExplorer.NAME);
6058

61-
GUI.skin = origSkin;
62-
}
59+
GUI.skin = origSkin;
6360
}
6461

6562
private void MainWindow(int id)
@@ -77,9 +74,12 @@ private void MainWindow(int id)
7774
MainHeader();
7875

7976
var page = Pages[m_currentPage];
80-
page.scroll = GUILayout.BeginScrollView(page.scroll, GUI.skin.scrollView);
77+
78+
page.scroll = UIHelpers.BeginScrollView(page.scroll);
79+
8180
page.DrawWindow();
82-
GUILayout.EndScrollView();
81+
82+
UIHelpers.EndScrollView();
8383

8484
MainRect = ResizeDrag.ResizeWindow(MainRect, MainWindowID);
8585

src/MainMenu/Pages/SearchPage.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ public override void DrawWindow()
132132

133133
GUILayout.EndHorizontal();
134134

135-
resultsScroll = GUILayout.BeginScrollView(resultsScroll, GUI.skin.scrollView);
135+
resultsScroll = UIHelpers.BeginScrollView(resultsScroll);
136136

137137
var _temprect = new Rect(MainMenu.MainRect.x, MainMenu.MainRect.y, MainMenu.MainRect.width + 160, MainMenu.MainRect.height);
138138

@@ -153,7 +153,7 @@ public override void DrawWindow()
153153
GUILayout.Label("<color=red><i>No results found!</i></color>", null);
154154
}
155155

156-
GUILayout.EndScrollView();
156+
UIHelpers.EndScrollView();
157157
GUILayout.EndVertical();
158158
}
159159
catch

src/Windows/GameObjectWindow.cs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,8 @@ public override void Init()
7373

7474
m_name = m_object.name;
7575
m_scene = string.IsNullOrEmpty(m_object.scene.name)
76-
? "None"
77-
: m_object.scene.name;
76+
? "None"
77+
: m_object.scene.name;
7878

7979
Update();
8080
}
@@ -121,7 +121,7 @@ public override void Update()
121121

122122
private void DestroyOnException(Exception e)
123123
{
124-
MelonLogger.Log($"{e.GetType()}, {e.Message}");
124+
MelonLogger.Log($"Exception drawing GameObject Window: {e.GetType()}, {e.Message}");
125125
DestroyWindow();
126126
}
127127

@@ -169,7 +169,7 @@ public override void WindowFunction(int windowID)
169169
GUILayout.BeginArea(new Rect(5, 25, rect.width - 10, rect.height - 35), GUI.skin.box);
170170
}
171171

172-
scroll = GUILayout.BeginScrollView(scroll, GUI.skin.scrollView);
172+
scroll = UIHelpers.BeginScrollView(scroll);
173173

174174
GUILayout.BeginHorizontal(null);
175175
GUILayout.Label("Scene: <color=cyan>" + (m_scene == "" ? "n/a" : m_scene) + "</color>", null);
@@ -220,7 +220,7 @@ public override void WindowFunction(int windowID)
220220

221221
GameObjectControls();
222222

223-
GUILayout.EndScrollView();
223+
UIHelpers.EndScrollView();
224224

225225
if (!WindowManager.TabView)
226226
{
@@ -237,8 +237,8 @@ public override void WindowFunction(int windowID)
237237

238238
private void TransformList(Rect m_rect)
239239
{
240-
GUILayout.BeginVertical(GUI.skin.box, null); // new GUILayoutOption[] { GUILayout.Height(250) });
241-
m_transformScroll = GUILayout.BeginScrollView(m_transformScroll, GUI.skin.scrollView);
240+
GUILayout.BeginVertical(GUI.skin.box, null);
241+
m_transformScroll = UIHelpers.BeginScrollView(m_transformScroll);
242242

243243
GUILayout.Label("<b><size=15>Children</size></b>", null);
244244

@@ -287,14 +287,14 @@ private void TransformList(Rect m_rect)
287287
GUILayout.Label("<i>None</i>", null);
288288
}
289289

290-
GUILayout.EndScrollView();
290+
UIHelpers.EndScrollView();
291291
GUILayout.EndVertical();
292292
}
293293

294294
private void ComponentList(Rect m_rect)
295295
{
296-
GUILayout.BeginVertical(GUI.skin.box, null); // new GUILayoutOption[] { GUILayout.Height(250) });
297-
m_compScroll = GUILayout.BeginScrollView(m_compScroll, GUI.skin.scrollView);
296+
GUILayout.BeginVertical(GUI.skin.box, null);
297+
m_compScroll = UIHelpers.BeginScrollView(m_compScroll);
298298
GUILayout.Label("<b><size=15>Components</size></b>", null);
299299

300300
GUILayout.BeginHorizontal(null);
@@ -369,7 +369,7 @@ private void ComponentList(Rect m_rect)
369369
}
370370
}
371371

372-
GUILayout.EndScrollView();
372+
UIHelpers.EndScrollView();
373373

374374
GUILayout.EndVertical();
375375
}

src/Windows/ReflectionWindow.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -283,7 +283,7 @@ public override void WindowFunction(int windowID)
283283

284284
// ====== BODY ======
285285

286-
scroll = GUILayout.BeginScrollView(scroll, GUI.skin.scrollView);
286+
scroll = UIHelpers.BeginScrollView(scroll);
287287

288288
GUILayout.Space(10);
289289

@@ -316,7 +316,7 @@ public override void WindowFunction(int windowID)
316316
}
317317

318318
GUILayout.EndVertical();
319-
GUILayout.EndScrollView();
319+
UIHelpers.EndScrollView();
320320

321321
if (!WindowManager.TabView)
322322
{

0 commit comments

Comments
 (0)