using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace XCharts.Runtime { public static class LegendHelper { public static Color GetContentColor(BaseChart chart, int legendIndex, string legendName, Legend legend, ThemeStyle theme, bool active) { var textStyle = legend.labelStyle.textStyle; if (active) { if (legend.labelStyle.textStyle.autoColor) return SeriesHelper.GetNameColor(chart, legendIndex, legendName); else return !ChartHelper.IsClearColor(textStyle.color) ? textStyle.color : theme.legend.textColor; } else return theme.legend.unableColor; } public static Color GetIconColor(BaseChart chart, Legend legend, int readIndex, string legendName, bool active) { if (active) { if (legend.itemAutoColor) { return SeriesHelper.GetNameColor(chart, readIndex, legendName); } else return legend.GetColor(readIndex); } else return chart.theme.legend.unableColor; } public static LegendItem AddLegendItem(BaseChart chart, Legend legend, int i, string legendName, Transform parent, ThemeStyle theme, string content, Color itemColor, bool active, int legendIndex) { var objName = i + "_" + legendName; var anchorMin = new Vector2(0, 0.5f); var anchorMax = new Vector2(0, 0.5f); var pivot = new Vector2(0, 0.5f); var sizeDelta = new Vector2(100, 30); var iconSizeDelta = new Vector2(legend.itemWidth, legend.itemHeight); var textStyle = legend.labelStyle.textStyle; var contentColor = GetContentColor(chart, legendIndex, legendName, legend, theme, active); var objAnchorMin = new Vector2(0, 1); var objAnchorMax = new Vector2(0, 1); var objPivot = new Vector2(0, 1); var btnObj = ChartHelper.AddObject(objName, parent, objAnchorMin, objAnchorMax, objPivot, sizeDelta, i); var iconObj = ChartHelper.AddObject("icon", btnObj.transform, anchorMin, anchorMax, pivot, iconSizeDelta); var img = ChartHelper.GetOrAddComponent(btnObj); img.color = Color.clear; ChartHelper.GetOrAddComponent