public static TDrawerWindow Create <TDrawerWindow>(DrawerGroup drawer, Action doOnClosed = null) where TDrawerWindow : DrawerToWindow { var result = CreateInstance <TDrawerWindow>(); result.drawer = drawer; result.onClosed = doOnClosed; return(result); }
public static TDrawerWindow Create <TDrawerWindow>([NotNull] Component[] targets, [NotNull] IInspector inspector, Action doOnClosed = null) where TDrawerWindow : DrawerToWindow { var drawers = DrawerGroup.Create(inspector); var members = drawers.Members; DrawerArrayPool.InsertAt(ref members, 0, inspector.DrawerProvider.GetForComponents(inspector, targets, drawers), false); drawers.SetMembers(members); return(Create <TDrawerWindow>(drawers, doOnClosed)); }
public static TDrawerWindow Create <TDrawerWindow>([NotNull] GameObject[] targets, [NotNull] IInspector inspector, Action doOnClosed = null) where TDrawerWindow : DrawerToWindow { var drawers = DrawerGroup.Create(inspector); var members = drawers.Members; DrawerArrayPool.InsertAt(ref members, 0, GameObjectDrawer.Create(targets, drawers, inspector), false); drawers.SetMembers(members); return(Create <TDrawerWindow>(drawers, doOnClosed)); }
public void Setup(IInspector inspector, Vector2 setScrollPos, bool setViewIsLocked, Action doOnLockedStateChanged = null) { #if DEV_MODE Debug.Assert(Screen.width > 0f, "! InspectorState.Setup called with Screen.width==0f! This should only be called from OnGUI! \nEvent was " + StringUtils.ToString(Event.current) + ", contentRect.width was " + contentRect.width); #endif if (drawers == null) { drawers = DrawerGroup.Create(inspector, null, new GUIContent("Inspected")); } if (!TryRecoverAnyNullUnityObjects()) { #if DEV_MODE if (setViewIsLocked) { Debug.LogWarning("InspectorState.Setup - changing setViewIsLocked to " + StringUtils.False + " because TryRecoverNullUnityObjects returned " + StringUtils.False); } #endif setViewIsLocked = false; } scrollPos = setScrollPos; #if DEV_MODE && DEBUG_VIEW_IS_LOCKED Debug.Log("viewIsLocked = " + StringUtils.ToColorizedString(setViewIsLocked)); #endif viewIsLocked = setViewIsLocked; // new test if (OnLockedStateChanged != null) { OnLockedStateChanged -= doOnLockedStateChanged; OnLockedStateChanged += doOnLockedStateChanged; } if (contentRect.width <= 0f) { if (Screen.width > 0f) { windowRect.width = Screen.width - 4f; contentRect.width = windowRect.width; } else { InspectorUtility.ActiveInspector.OnNextLayout(() => { if (contentRect.width <= 0f) { windowRect.width = Screen.width - 4f; contentRect.width = windowRect.width; } }); } } }
protected virtual void Dispose() { if (onClosed != null) { var action = onClosed; onClosed = null; action(); } drawer.Dispose(); drawer = null; }
public static DrawerGroup Create(IInspector inspector, IParentDrawer parent = null, GUIContent label = null) { DrawerGroup result; if (!DrawerPool.TryGet(out result)) { result = new DrawerGroup(); } result.Setup(inspector, parent, label); result.LateSetup(); return(result); }
public static TDrawerWindow Create <TDrawerWindow>(IInspector inspector, Action doOnClosed = null) where TDrawerWindow : DrawerToWindow { return(Create <TDrawerWindow>(DrawerGroup.Create(inspector), doOnClosed)); }
private void OnInspectedTargetsChanged(Object[] inspected, DrawerGroup drawers) { UpdateVisibleItems(); }