public static void Hide() { if (mainWindow) { mainWindow.Close(); mainWindow = null; } }
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(); }
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(); }
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(); }
private void OnDisable() { EditorApplication.update -= CheckWindowFocusRegularly; PasteBinTooltip.Hide(); }