using MuchInfo.Chart.Data; using MuchInfo.Chart.Data.EnumTypes; using MuchInfo.Chart.Infrastructure.Utilities; using System; using System.Collections.Generic; using System.Windows; using System.Windows.Input; using System.Windows.Media; namespace MuchInfo.Chart.WPF.Primitives.Interfaces { public interface IDrawingTool : IXmlSavable { Chart Chart { get; set; } Point this[int aIndex] { get; set; } IDrawingToolSpec OwnerSpec { get; set; } bool PlotOnAllSymbols { get; set; } DrawingToolType ToolType(); void InitPoint(DateTime aDate, float aVal, ScaleLayer aScale, Rect aRect, Point p); void MoveSecondPoint(DateTime aDate, float aVal, Point p); void InitDone(MouseEventArgs e); IDrawingTool Clone(); List GetPlots(Chart owner, ScaleLayer aScale, Rect aRect, bool drawHandles); bool IsTooSmallToShow(Chart owner, ScaleLayer aScale); bool IsTooSmallToShow(Chart owner, ScaleLayer aScale, DrawingToolInfo info); void ShowEditor(MouseEventArgs mouseargs); void PrepareToMove(); void MovePlot(Point initialPosition, Point currentPosition); void MovePlot(Point initialPosition, Point currentPosition, Point maxPoint); string MenuDescription(); string Description(); string Abbreviation(); List GetPropertyEditors(); bool CanPlotOnAllSymbols(); void PropertyChanged(); void Delete(); string GetXmlForDefault(); ImageSource Icon(); void GetDrawingInfo(DrawingToolInfo info); void FromInfo(DrawingToolInfo info); double GetChartFontSize(); } }