public override void OnDropUpdated(ToolControl control)
        {
            DragAndDrop.visualMode = DragAndDropVisualMode.Link;

            if (!dropActivated && (DateTime.UtcNow - dropEnterTime).TotalSeconds > PeekPlugin.Configuration.dropActivationDelay)
            {
                DragAndDrop.AcceptDrag();
                control.toolbarControl.CloseAllTransientTools();

                if (!isActive)
                {
                    Open(control);
                }

                dropActivated = true;
            }
        }
        public override void Open(ToolControl control)
        {
            PopupWatcher.Release(window);

            activatorControl = control;
            var activatorPosition = control.activatorGuiPosition;

            activatorPosition.width = 330;
            UnityEditorDynamic.AddComponentWindow.Show(activatorPosition, targets);

#if UNITY_2019_1_OR_NEWER
            window = EditorWindow.focusedWindow;
#else
            window = UnityEditorDynamic.AddComponentWindow.s_AddComponentWindow;
#endif

            PopupWatcher.Watch(window);
        }
        public override void Close(ToolControl control)
        {
            if (!isActive)
            {
                return;
            }

            try
            {
                PeekPlugin.Configuration.tabsData[tabKey] = EditorJsonUtility.ToJson(tab, true);
                PeekPlugin.Configuration.Save();
                SaveSceneHierarchyExpansion();
            }
            catch (Exception ex)
            {
                Debug.LogError($"Failed to close tab tool: \n{ex}");
            }

            tab.Close();
        }
 public override void Close(ToolControl control)
 {
     window?.Close();
 }
 public virtual void OnDropExited(ToolControl control)
 {
 }
 public virtual bool OnDropEntered(ToolControl control)
 {
     return(false);
 }
 public virtual void OnDropUpdated(ToolControl control)
 {
 }
 public virtual void OnMove(ToolControl control)
 {
 }
 public virtual void OnGUI(ToolControl control)
 {
 }
 public virtual void Close(ToolControl control)
 {
 }
 public virtual void OpenContextual(ToolControl control) => Open(control);
 public abstract void Open(ToolControl control);
 public override void Close(ToolControl control)
 {
 }
 public override void Open(ToolControl control)
 {
     PopupWatcher.Release(window);
     window = WarningWindow.Show(control.activatorScreenPosition);
     PopupWatcher.Watch(window);
 }