diff options
| author | Avi Levkovich <avi@twine-s.com> | 2018-02-20 16:45:00 +0200 |
|---|---|---|
| committer | Avi Levkovich <avi@twine-s.com> | 2018-02-20 16:45:00 +0200 |
| commit | 6c208c90bc45aff4a7fa214356a42fe7757c5e6f (patch) | |
| tree | 0d77bc6a0ecfbb53cf42c5462ee19212197ee1bd /Software/Visual_Studio/SideChains/RealTimeGraphEx/Controllers/GraphControllerBase.cs | |
| parent | b0823127f152fe97a6e8fce29e427c7f3db9cf5a (diff) | |
| parent | 1a573aaa346ec4b8bd58a0e35ab9df571a09b855 (diff) | |
| download | Tango-6c208c90bc45aff4a7fa214356a42fe7757c5e6f.tar.gz Tango-6c208c90bc45aff4a7fa214356a42fe7757c5e6f.zip | |
MERGE
Diffstat (limited to 'Software/Visual_Studio/SideChains/RealTimeGraphEx/Controllers/GraphControllerBase.cs')
| -rw-r--r-- | Software/Visual_Studio/SideChains/RealTimeGraphEx/Controllers/GraphControllerBase.cs | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/Software/Visual_Studio/SideChains/RealTimeGraphEx/Controllers/GraphControllerBase.cs b/Software/Visual_Studio/SideChains/RealTimeGraphEx/Controllers/GraphControllerBase.cs new file mode 100644 index 000000000..c045ca03a --- /dev/null +++ b/Software/Visual_Studio/SideChains/RealTimeGraphEx/Controllers/GraphControllerBase.cs @@ -0,0 +1,62 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; + +namespace RealTimeGraphEx.Controllers +{ + public abstract class GraphControllerBase : DependencyObject + { + protected Action clearMethod; + protected Action startThreadMethod; + protected Action<bool> pausedMethod; + protected Action<bool> changeRenderModeMethod; + protected Action pushMarkerMethod; + + public bool IsPaused + { + get { return (bool)GetValue(IsPausedProperty); } + set { SetValue(IsPausedProperty, value); } + } + public static readonly DependencyProperty IsPausedProperty = + DependencyProperty.Register("IsPaused", typeof(bool), typeof(GraphControllerBase), new PropertyMetadata(false, new PropertyChangedCallback(PausedChanged))); + + private static void PausedChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + var control = d as GraphControllerBase; + if (control.pausedMethod != null) + { + control.pausedMethod(control.IsPaused); + } + } + + + internal void RegisterMethods(Action clear, Action startThread, Action<bool> paused, Action<bool> renderMode, Action pushMarker) + { + changeRenderModeMethod = renderMode; + pausedMethod = paused; + clearMethod = clear; + startThreadMethod = startThread; + pushMarkerMethod = pushMarker; + } + + public abstract void Clear(); + + public virtual void ChangeRenderMode(bool enabled) + { + changeRenderModeMethod(enabled); + } + + internal abstract void ClearPoints(); + + public void PushMarkerLine() + { + if (pushMarkerMethod != null) + { + pushMarkerMethod(); + } + } + } +} |
