private void WriteContextMenuItems(StreamWriter writer, List<object> items, int depth = 1)
{
if (items == null)
return;
for (int i = 0; i < items.Count; i++)
{
writer.Write(VariableAmountOfStrings(depth, "\t"));
if (items[i] is string)
{
// Submenu
writer.Write((items[i] as string) + Environment.NewLine + VariableAmountOfStrings(depth, "\t") + "{" + Environment.NewLine);
i++;
WriteContextMenuItems(writer, items[i] as List<object>, depth + 1);
writer.Write(VariableAmountOfStrings(depth, "\t") + "}" + Environment.NewLine);
}
else
{
// Item
string itemName = (items[i] as dynamic).name as string;
string itemFunc = MenuFuncs.WithSpaces((items[i] as dynamic).func as string);
if (itemFunc.Equals("-"))
writer.Write("-" + Environment.NewLine);
else if (itemName.Equals(""))
writer.Write(": " + itemFunc + Environment.NewLine);
else
writer.Write(itemName + " : " + itemFunc + Environment.NewLine);
}
}
}