/************************************************/ /* */ /* Copyright (c) 2018 - 2021 monitor1394 */ /* https://github.com/monitor1394 */ /* */ /************************************************/ using UnityEngine; using UnityEngine.UI; namespace XCharts { public static class LegendHelper { public static Color GetContentColor(int legendIndex, Legend legend, ChartTheme theme, bool active) { var textStyle = legend.textStyle; if (active) { if (legend.textAutoColor) return theme.GetColor(legendIndex); else return !ChartHelper.IsClearColor(textStyle.color) ? textStyle.color : theme.legend.textColor; } else return theme.legend.unableColor; } public static Color GetIconColor(BaseChart chart, int readIndex, string legendName, bool active) { if (active) { var legend = chart.legend; if (legend.itemAutoColor || legend.GetIcon(readIndex) == null) { return SeriesHelper.GetNameColor(chart, readIndex, legendName); } else return Color.white; } else return chart.theme.legend.unableColor; } public static LegendItem AddLegendItem(Legend legend, int i, string legendName, Transform parent, ChartTheme 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.textStyle; var contentColor = GetContentColor(legendIndex, 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 contentObj = ChartHelper.AddObject("content", btnObj.transform, anchorMin, anchorMax, pivot, sizeDelta); var img = ChartHelper.GetOrAddComponent(btnObj); img.color = Color.clear; ChartHelper.GetOrAddComponent