Exemple #1
0
        protected override void RefreshTooltip()
        {
            base.RefreshTooltip();
            int  index    = m_Tooltip.dataIndex - 1;
            Axis tempAxis = m_XAxis.type == Axis.AxisType.Value ? (Axis)m_YAxis : (Axis)m_XAxis;

            if (index < 0)
            {
                m_Tooltip.SetActive(false);
                return;
            }
            m_Tooltip.SetActive(true);
            if (m_Series.Count == 1)
            {
                string txt = tempAxis.GetData(index) + ": " + m_Series.GetData(0, index);
                m_Tooltip.UpdateTooltipText(txt);
            }
            else
            {
                StringBuilder sb = new StringBuilder(tempAxis.GetData(index));
                for (int i = 0; i < m_Series.Count; i++)
                {
                    if (m_Series.series[i].show)
                    {
                        string strColor = ColorUtility.ToHtmlStringRGBA(m_ThemeInfo.GetColor(i));
                        string key      = m_Series.series[i].name;
                        float  value    = m_Series.series[i].data[index];
                        sb.Append("\n");
                        sb.AppendFormat("<color=#{0}>● </color>", strColor);
                        sb.AppendFormat("{0}: {1}", key, value);
                    }
                }
                m_Tooltip.UpdateTooltipText(sb.ToString());
            }
            var pos = m_Tooltip.GetPos();

            if (pos.x + m_Tooltip.width > chartWidth)
            {
                pos.x = chartWidth - m_Tooltip.width;
            }
            if (pos.y - m_Tooltip.height < 0)
            {
                pos.y = m_Tooltip.height;
            }
            m_Tooltip.UpdatePos(pos);
        }
        protected override void RefreshTooltip()
        {
            base.RefreshTooltip();
            int  index    = m_Tooltip.dataIndex - 1;
            Axis tempAxis = m_XAxis.type == Axis.AxisType.Value ? (Axis)m_YAxis : (Axis)m_XAxis;

            if (index < 0)
            {
                m_Tooltip.SetActive(false);
                return;
            }
            m_Tooltip.SetActive(true);
            if (m_Series.Count == 1)
            {
                float  value = m_Series.GetData(0, index);
                string txt   = tempAxis.GetData(index) + ": " + value;
                m_Tooltip.UpdateContentText(txt);
            }
            else
            {
                StringBuilder sb = new StringBuilder(tempAxis.GetData(index));
                for (int i = 0; i < m_Series.Count; i++)
                {
                    if (m_Series.series[i].show)
                    {
                        string strColor = ColorUtility.ToHtmlStringRGBA(m_ThemeInfo.GetColor(i));
                        string key      = m_Series.series[i].name;
                        float  value    = m_Series.series[i].data[index];
                        sb.Append("\n");
                        sb.AppendFormat("<color=#{0}>● </color>", strColor);
                        sb.AppendFormat("{0}: {1}", key, value);
                    }
                }
                m_Tooltip.UpdateContentText(sb.ToString());
            }
            if (m_XAxis.type == Axis.AxisType.Value)
            {
                float hig = (maxValue - minValue) * (m_Tooltip.pointerPos.x - zeroX) / coordinateWid;
                m_Tooltip.UpdateLabelText(hig.ToString("f2"), tempAxis.GetData(index));
                float splitWidth = m_YAxis.GetSplitWidth(coordinateHig);
                float py         = zeroY + (m_Tooltip.dataIndex - 1) * splitWidth
                                   + (m_YAxis.boundaryGap ? splitWidth / 2 : 0);
                Vector2 xLabelPos = new Vector2(m_Tooltip.pointerPos.x, coordinateY - 4 * m_Coordinate.tickness);
                Vector2 yLabelPos = new Vector2(coordinateX - 6 * m_Coordinate.tickness, py);
                m_Tooltip.UpdateLabelPos(xLabelPos, yLabelPos);
            }
            else
            {
                float hig = (maxValue - minValue) * (m_Tooltip.pointerPos.y - zeroY) / coordinateHig;
                m_Tooltip.UpdateLabelText(tempAxis.GetData(index), hig.ToString("f2"));
                float splitWidth = m_XAxis.GetSplitWidth(coordinateWid);
                float px         = zeroX + (m_Tooltip.dataIndex - 1) * splitWidth
                                   + (m_XAxis.boundaryGap ? splitWidth / 2 : 0);
                Vector2 xLabelPos = new Vector2(px, coordinateY - 6 * m_Coordinate.tickness);
                Vector2 yLabelPos = new Vector2(coordinateX - 4 * m_Coordinate.tickness, m_Tooltip.pointerPos.y);
                m_Tooltip.UpdateLabelPos(xLabelPos, yLabelPos);
            }


            var pos = m_Tooltip.GetContentPos();

            if (pos.x + m_Tooltip.width > chartWidth)
            {
                pos.x = chartWidth - m_Tooltip.width;
            }
            if (pos.y - m_Tooltip.height < 0)
            {
                pos.y = m_Tooltip.height;
            }
            m_Tooltip.UpdateContentPos(pos);
        }