public bool AddLayer(TouchLayer layer, int index = -1, bool addIfExists = true)
{
if (layer == null) return false;
var i = layers.IndexOf(layer);
if (i != -1)
{
if (!addIfExists) return false;
layers.RemoveAt(i);
layerCount--;
}
if (index == 0)
{
layers.Insert(0, layer);
layerCount++;
return i == -1;
}
if (index == -1 || index >= layerCount)
{
layers.Add(layer);
layerCount++;
return i == -1;
}
if (i != -1)
{
if (index < i) layers.Insert(index, layer);
else layers.Insert(index - 1, layer);
layerCount++;
return false;
}
layers.Insert(index, layer);
layerCount++;
return true;
}