aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/SideChains/RealTimeGraphX/IGraphSurface.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Visual_Studio/SideChains/RealTimeGraphX/IGraphSurface.cs')
-rw-r--r--Software/Visual_Studio/SideChains/RealTimeGraphX/IGraphSurface.cs61
1 files changed, 61 insertions, 0 deletions
diff --git a/Software/Visual_Studio/SideChains/RealTimeGraphX/IGraphSurface.cs b/Software/Visual_Studio/SideChains/RealTimeGraphX/IGraphSurface.cs
new file mode 100644
index 000000000..07785cc1a
--- /dev/null
+++ b/Software/Visual_Studio/SideChains/RealTimeGraphX/IGraphSurface.cs
@@ -0,0 +1,61 @@
+using RealTimeGraphX.EventArguments;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+
+namespace RealTimeGraphX
+{
+ /// <summary>
+ /// Represents a visual surface for display the output of an <see cref="IGraphPainter"/>
+ /// </summary>
+ /// <seealso cref="RealTimeGraphX.IGraphInputComponent{RealTimeGraphX.IGraphPainter}" />
+ public interface IGraphSurface : IGraphInputComponent<IGraphPainter>
+ {
+ #region Events
+
+ /// <summary>
+ /// Occurs when the surface size has changed.
+ /// </summary>
+ event EventHandler<SurfaceSizeChangedEventArgs> SurfaceSizeChanged;
+
+ #endregion
+
+ #region Properties
+
+ /// <summary>
+ /// Gets the width of the surface.
+ /// </summary>
+ double SurfaceWidth { get; }
+
+ /// <summary>
+ /// Gets the height of the surface.
+ /// </summary>
+ double SurfaceHeight { get; }
+
+ #endregion
+
+ #region Methods
+
+ /// <summary>
+ /// Invokes a method on the surface thread.
+ /// </summary>
+ /// <param name="action">The method to invoke.</param>
+ void InvokeOnSurface(Action action);
+
+ #endregion
+ }
+
+ /// <summary>
+ /// Represents a visual surface for display the output of an <see cref="IGraphPainter{TImage}"/>
+ /// </summary>
+ /// <typeparam name="TImage">The type of the rendered graph image.</typeparam>
+ /// <typeparam name="TDataSeries">The type of the graph data series.</typeparam>
+ /// <seealso cref="RealTimeGraphX.IGraphInputComponent{RealTimeGraphX.IGraphPainter}" />
+ public interface IGraphSurface<TDataSeries, TImage> : IGraphSurface, IGraphInputComponent<IGraphPainter<TDataSeries,TImage>> where TDataSeries : IGraphDataSeries
+ {
+
+ }
+}