Пример #1
0
 public static void Hide()
 {
     if (mainWindow)
     {
         mainWindow.Close();
         mainWindow = null;
     }
 }
Пример #2
0
        private void OnHoveredClipboardChanged(int hoveredClipboardIndex)
        {
            this.hoveredClipboardIndex = hoveredClipboardIndex;
            if (hoveredClipboardIndex < 0 || !clipboard[hoveredClipboardIndex].HasTooltip)
            {
                PasteBinTooltip.Hide();
            }
            else
            {
                PasteBinTooltip.Show(position, clipboard[hoveredClipboardIndex].LabelContent.tooltip);
            }

            Repaint();
        }
Пример #3
0
        public static void Show(Rect sourcePosition, string tooltip)
        {
            Vector2 preferredSize = Style.CalcSize(new GUIContent(tooltip)) + Style.contentOffset + new Vector2(Style.padding.horizontal + Style.margin.horizontal, Style.padding.vertical + Style.margin.vertical);
            Rect    preferredPosition;

            Rect positionLeft             = new Rect(sourcePosition.position - new Vector2(preferredSize.x, 0f), preferredSize);
            Rect screenFittedPositionLeft = Utilities.GetScreenFittedRect(positionLeft);

            Vector2 positionOffset = positionLeft.position - screenFittedPositionLeft.position;
            Vector2 sizeOffset     = positionLeft.size - screenFittedPositionLeft.size;

            if (positionOffset.sqrMagnitude <= 400f && sizeOffset.sqrMagnitude <= 400f)
            {
                preferredPosition = screenFittedPositionLeft;
            }
            else
            {
                Rect positionRight             = new Rect(sourcePosition.position + new Vector2(sourcePosition.width, 0f), preferredSize);
                Rect screenFittedPositionRight = Utilities.GetScreenFittedRect(positionRight);

                Vector2 positionOffset2 = positionRight.position - screenFittedPositionRight.position;
                Vector2 sizeOffset2     = positionRight.size - screenFittedPositionRight.size;
                if (positionOffset2.magnitude + sizeOffset2.magnitude < positionOffset.magnitude + sizeOffset.magnitude)
                {
                    preferredPosition = screenFittedPositionRight;
                }
                else
                {
                    preferredPosition = screenFittedPositionLeft;
                }
            }

            // Don't lose focus to the previous window (in this case, PasteBinContextWindow which automatically closes when it loses focus)
            EditorWindow prevFocusedWindow = focusedWindow;

            if (!mainWindow)
            {
                mainWindow = CreateInstance <PasteBinTooltip>();
                mainWindow.ShowPopup();
            }

            PasteBinTooltip.tooltip = tooltip;
            mainWindow.position     = preferredPosition;
            mainWindow.Repaint();

            prevFocusedWindow.Focus();
        }
Пример #4
0
        private void RemoveClipboard(object obj)
        {
            int index = (int)obj;

            if (index >= clipboard.Count)
            {
                return;
            }

            PasteBinWindow.RemoveClipboard(clipboard[index]);

            clipboard.RemoveAt(index);
            clipboardValues.RemoveAt(index);

            hoveredClipboardIndex = -1;
            PasteBinTooltip.Hide();

            shouldResizeSelf = true;
            Repaint();
        }
Пример #5
0
 private void OnDisable()
 {
     EditorApplication.update -= CheckWindowFocusRegularly;
     PasteBinTooltip.Hide();
 }