private static void ManageHierarchyCore(IToolboxHierarchySettings settings)
        {
            if (settings == null)
            {
                ToolboxEditorHierarchy.IsOverlayAllowed = false;
                ToolboxEditorHierarchy.RepaintHierarchyOverlay();
                return;
            }

            //enable/disable the core GUI function
            ToolboxEditorHierarchy.IsOverlayAllowed = settings.UseToolboxHierarchy;

            ToolboxEditorHierarchy.DrawHorizontalLines = settings.DrawHorizontalLines;
            ToolboxEditorHierarchy.ShowSelectionsCount = settings.ShowSelectionsCount;
            ToolboxEditorHierarchy.DrawSeparationLines = true;

            ToolboxEditorHierarchy.RemoveAllowedHierarchyContentCallbacks();

            //create custom drawers using stored data
            for (var i = 0; i < settings.RowDataTypes.Count; i++)
            {
                ToolboxEditorHierarchy.CreateAllowedHierarchyContentCallbacks(settings.RowDataTypes[i]);
            }

            ToolboxEditorHierarchy.RepaintHierarchyOverlay();
        }
        internal static void PerformData(IToolboxHierarchySettings settings)
        {
            ToolboxHierarchyUtility.settings = settings;

            ToolboxHierarchyAllowed = settings.UseToolboxHierarchy;
        }