Skip to content

Commit 2452f73

Browse files
committed
Minor refactor changes
1 parent ee7031c commit 2452f73

File tree

1 file changed

+23
-30
lines changed

1 file changed

+23
-30
lines changed

Assets/Editor Toolbox/Editor/ToolboxEditorToolbar.cs

Lines changed: 23 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,10 @@
1515
using UnityEngine.Experimental.UIElements;
1616
#endif
1717

18-
//NOTE: since everything in this class is reflection-based it is a little bit "hacky"
18+
//NOTE: since everything in this class is reflection-based it is a little bit "hacky"; supporting each version makes it very hard to maintain -
19+
// consider implementing different 'drawers' for each Toolbar iteration
20+
21+
//NOTE: unfortunately latest (6.3) official API is very limited and can't be used to port this implementation
1922

2023
namespace Toolbox.Editor
2124
{
@@ -78,36 +81,27 @@ private static IEnumerator Initialize()
7881
var states = builder.Build();
7982

8083
var toolbarLeftZone = states.AtIndex(0);
81-
var leftElement = new VisualElement();
82-
leftElement.name = "Editor Toolbox Left Area";
83-
leftElement.StretchToParentSize();
84-
leftElement.style.left = 10;
85-
leftElement.style.right = 10;
86-
leftElement.style.flexGrow = 1;
87-
leftElement.style.flexDirection = FlexDirection.Row;
88-
89-
var leftContainer = new IMGUIContainer();
90-
leftContainer.style.flexGrow = 1;
91-
leftContainer.onGUIHandler = OnGuiLeft;
92-
leftElement.Add(leftContainer);
93-
toolbarLeftZone.Add(leftElement);
94-
84+
AddIMGUIContainer(toolbarLeftZone, OnGuiLeft, "Editor Toolbox Left Area");
85+
9586
var toolbarRightZone = states.AtIndex(1);
96-
var rightElement = new VisualElement();
97-
rightElement.name = "Editor Toolbox Right Area";
98-
rightElement.StretchToParentSize();
99-
rightElement.style.left = 10;
100-
rightElement.style.right = 10;
101-
rightElement.style.flexGrow = 1;
102-
rightElement.style.flexDirection = FlexDirection.Row;
103-
104-
var rightContainer = new IMGUIContainer();
105-
rightContainer.style.flexGrow = 1;
106-
rightContainer.onGUIHandler = OnGuiRight;
107-
108-
rightElement.Add(rightContainer);
109-
toolbarRightZone.Add(rightElement);
87+
AddIMGUIContainer(toolbarRightZone, OnGuiRight, "Editor Toolbox Right Area");
11088

89+
void AddIMGUIContainer(VisualElement parentElement, Action guiCallback, string name)
90+
{
91+
var element = new VisualElement();
92+
element.name = name;
93+
element.StretchToParentSize();
94+
element.style.left = 10;
95+
element.style.right = 10;
96+
element.style.flexGrow = 1;
97+
element.style.flexDirection = FlexDirection.Row;
98+
99+
var guiContainer = new IMGUIContainer();
100+
guiContainer.style.flexGrow = 1;
101+
guiContainer.onGUIHandler = guiCallback;
102+
element.Add(guiContainer);
103+
parentElement.Add(element);
104+
}
111105
#else
112106
#if UNITY_2021_1_OR_NEWER
113107
var rootField = toolbar.GetType().GetField("m_Root", BindingFlags.NonPublic | BindingFlags.Instance);
@@ -151,7 +145,6 @@ private static IEnumerator Initialize()
151145
#else
152146
var elements = visualTree.GetValue(toolbar, null) as VisualElement;
153147
#endif
154-
155148
#if UNITY_2019_1_OR_NEWER
156149
var container = elements[0];
157150
#else

0 commit comments

Comments
 (0)