コード例 #1
0
ファイル: TooltipHelper.cs プロジェクト: Hengle/clapotis
        public static void      Custom(Rect r, Action <Rect> gui, float width, float height)
        {
            if (Event.current.rawType == EventType.Repaint)
            {
                EditorGUIUtility.AddCursorRect(r, MouseCursor.Zoom);
            }
            else if (Event.current.rawType == EventType.MouseMove)
            {
                if (r.Contains(Event.current.mousePosition) == true)
                {
                    if (TooltipHelper.hashCode != gui.GetHashCode())
                    {
                        Rect tooltipR = r;
                        tooltipR.x     += TooltipHelper.XOffset;
                        tooltipR.y     += TooltipHelper.YOffset;
                        tooltipR.width  = width;
                        tooltipR.height = height;
                        TooltipHelper.Set(r, tooltipR, gui);
                        if (EditorWindow.mouseOverWindow != null)
                        {
                            EditorWindow.mouseOverWindow.Repaint();
                        }
                    }
                }
                else if (TooltipHelper.hashCode != 0 && TooltipHelper.hashCode == gui.GetHashCode())
                {
                    TooltipHelper.hashCode = 0;

                    if (EditorWindow.mouseOverWindow != null)
                    {
                        EditorWindow.mouseOverWindow.Repaint();
                    }
                }
            }
        }
コード例 #2
0
ファイル: TooltipHelper.cs プロジェクト: Hengle/clapotis
        private static void     InternalLabel(Rect r, string tooltip, DrawType drawType, MessageType messageType)
        {
            if (Event.current.rawType == EventType.Repaint)
            {
                EditorGUIUtility.AddCursorRect(r, MouseCursor.Link);

                Color shapeColor;

                if (messageType == MessageType.Warning)
                {
                    shapeColor = Color.yellow;
                }
                else if (messageType == MessageType.Error)
                {
                    shapeColor = Color.red;
                }
                else
                {
                    shapeColor = Color.cyan;
                }

                TooltipHelper.DrawWitness(r, shapeColor);
            }
            else if (Event.current.rawType == EventType.MouseMove)
            {
                if (r.Contains(Event.current.mousePosition) == true)
                {
                    if (TooltipHelper.hashCode != tooltip.GetHashCode())
                    {
                        Rect tooltipR = r;
                        tooltipR.x += TooltipHelper.XOffset;
                        tooltipR.y += TooltipHelper.YOffset;
                        TooltipHelper.messageType = messageType;
                        TooltipHelper.Set(r, tooltipR, tooltip, drawType);

                        if (EditorWindow.mouseOverWindow != null)
                        {
                            EditorWindow.mouseOverWindow.Repaint();
                        }
                    }
                }
                else if (TooltipHelper.hashCode != 0 && TooltipHelper.hashCode == tooltip.GetHashCode())
                {
                    TooltipHelper.hashCode = 0;

                    if (EditorWindow.mouseOverWindow != null)
                    {
                        EditorWindow.mouseOverWindow.Repaint();
                    }
                }
            }
        }