public QueryListMarkerBlock(IQuerySource source, string id, string name, string op, QueryMarker value) : base(source, id, op, value.value as string) { m_Marker = value; this.name = name ?? id; ExtractArguments(m_Marker); }
void ExtractArguments(QueryMarker marker) { var args = m_Marker.EvaluateArgsNoSpread().ToList(); if (args.Count < 2) { m_Choices = new string[] {}; return; } m_Choices = ExtractChoices(args[1]).ToArray(); foreach (var arg in args.Skip(2)) { if (!(arg is IEnumerable <object> enumerable)) { continue; } var array = enumerable.ToArray(); if (array.Length == 0) { continue; } var argStr = (string)array[0]; if (argStr.StartsWith("#")) { m_BackgroundColor = ExtractBackgroundColor(argStr); } else { icon = ExtractIcon(argStr); if (icon) { m_IconName = argStr; } } } }
public QueryListMarkerBlock(IQuerySource source, string id, QueryMarker value, QueryListBlockAttribute attr) : base(source, id, value.value as string, attr) { m_Marker = value; }