/************************************************/ /* */ /* Copyright (c) 2018 - 2021 monitor1394 */ /* https://github.com/monitor1394 */ /* */ /************************************************/ using UnityEngine; using UnityEngine.UI; namespace XCharts { public static class LegendHelper { public static Color GetContentColor(Legend legend, ChartTheme theme, bool active) { var textStyle = legend.textStyle; if (active) return !ChartHelper.IsClearColor(textStyle.color) ? textStyle.color : theme.legend.textColor; else return theme.legend.unableColor; } public static Color GetIconColor(Legend legend, int readIndex, ChartTheme theme, Series series, string legendName, bool active) { if (active) { if (legend.itemAutoColor || legend.GetIcon(readIndex) == null) { return SeriesHelper.GetNameColor(series, readIndex, legendName, theme); } else return Color.white; } else return theme.legend.unableColor; } public static LegendItem AddLegendItem(Legend legend, int i, string legendName, Transform parent, ChartTheme theme, string content, Color itemColor, bool active) { 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(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