private void DeleteElement(HookElement el) { if (BackgroundIndicators.Contains(el)) { BackgroundIndicators.Remove(el); BackgroundIndLayer.RemoveVisual(el.IndicatorVisual); } if (ForegroundIndicators.Contains(el)) { ForegroundIndicators.Remove(el); ForegroundIndLayer.RemoveVisual(el.IndicatorVisual); } ResetPricesTimes(); ResetHooks(); }
public void AddElement(HookElement el) { el.SetChart(Chart); el.SetDeleteAction(DeleteElement); el.Moving += MoveIndicator; ForegroundIndicators.Add(el); ForegroundIndLayer.AddVisual(el.IndicatorVisual); if (el is Painting) { PricesCanvas.AddVisual(el.PriceVisual); TimesCanvas.AddVisual(el.TimeVisual); } ResetHooks(); el.Rendering(); }
private void MoveIndicator(HookElement element, int i) { if (ForegroundIndicators.Contains(element)) { switch (i) { case 2: { i = ForegroundIndicators.IndexOf(element); if (i == ForegroundIndicators.Count - 1) return; ForegroundIndicators.Remove(element); ForegroundIndicators.Add(element); ResetVisualsForeground(); } break; case 1: { i = ForegroundIndicators.IndexOf(element); if (i == ForegroundIndicators.Count - 1) return; ForegroundIndicators.Remove(element); ForegroundIndicators.Insert(i + 1, element); ResetVisualsForeground(); } break; case -1: { i = ForegroundIndicators.IndexOf(element); if (i == 0) { ForegroundIndicators.Remove(element); BackgroundIndicators.Add(element); ResetVisuals(); } else { ForegroundIndicators.Remove(element); ForegroundIndicators.Insert(i - 1, element); ResetVisualsForeground(); } } break; case -2: { ForegroundIndicators.Remove(element); BackgroundIndicators.Insert(0, element); ResetVisuals(); } break; } } else { switch (i) { case 2: { BackgroundIndicators.Remove(element); ForegroundIndicators.Add(element); ResetVisuals(); } break; case 1: { i = BackgroundIndicators.IndexOf(element); if (i == BackgroundIndicators.Count - 1) { BackgroundIndicators.Remove(element); ForegroundIndicators.Insert(0, element); ResetVisuals(); } else { BackgroundIndicators.Remove(element); BackgroundIndicators.Insert(i + 1, element); ResetVisualsBackground(); } } break; case -1: { i = BackgroundIndicators.IndexOf(element); if (i == 0) return; BackgroundIndicators.Remove(element); BackgroundIndicators.Insert(i - 1, element); ResetVisualsBackground(); } break; case -2: { i = BackgroundIndicators.IndexOf(element); if (i == 0) return; BackgroundIndicators.Remove(element); BackgroundIndicators.Insert(0, element); ResetVisualsBackground(); } break; } } }