From aff00af76242117e3991b0ee526df905a63debce Mon Sep 17 00:00:00 2001 From: Roy Ben Shabat Date: Mon, 1 Jun 2020 02:06:40 +0300 Subject: Remote Cursor. Cursor Visibility. Mouse Scroll. PPC notification bar workaround. --- .../Controls/RemoteDesktopControl.xaml | 4 ++-- .../Controls/RemoteDesktopControl.xaml.cs | 6 +++++ .../ViewModels/RemoteDesktopViewVM.cs | 26 ++++++++++++++++++++++ 3 files changed, 34 insertions(+), 2 deletions(-) (limited to 'Software/Visual_Studio/FSE/Modules') diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/Controls/RemoteDesktopControl.xaml b/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/Controls/RemoteDesktopControl.xaml index a630dbac6..b3c3dbbc9 100644 --- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/Controls/RemoteDesktopControl.xaml +++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/Controls/RemoteDesktopControl.xaml @@ -43,8 +43,8 @@ - - + + diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/Controls/RemoteDesktopControl.xaml.cs b/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/Controls/RemoteDesktopControl.xaml.cs index c32ab3048..617c3ec44 100644 --- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/Controls/RemoteDesktopControl.xaml.cs +++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/Controls/RemoteDesktopControl.xaml.cs @@ -34,6 +34,7 @@ namespace Tango.FSE.PPCConsole.Controls img.PreviewMouseMove += Img_PreviewMouseMove; img.PreviewKeyDown += Img_PreviewKeyDown; img.PreviewKeyUp += Img_PreviewKeyUp; + img.PreviewMouseWheel += Img_PreviewMouseWheel; } private void Img_PreviewKeyDown(object sender, KeyEventArgs e) @@ -73,6 +74,11 @@ namespace Tango.FSE.PPCConsole.Controls _vm.OnMouseMove(e.GetPosition(img), new Size(img.ActualWidth, img.ActualHeight)); } + private void Img_PreviewMouseWheel(object sender, MouseWheelEventArgs e) + { + _vm.OnMouseScroll(e.Delta, e.GetPosition(img), new Size(img.ActualWidth, img.ActualHeight)); + } + private void BtnSnapshot_Click(object sender, RoutedEventArgs e) { rectSnapshot.StartDoubleAnimation(Rectangle.OpacityProperty, TimeSpan.FromSeconds(0.2), 1, 0, null, null, null, true); diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/ViewModels/RemoteDesktopViewVM.cs b/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/ViewModels/RemoteDesktopViewVM.cs index b4a0b07ea..bedcf9b7a 100644 --- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/ViewModels/RemoteDesktopViewVM.cs +++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/ViewModels/RemoteDesktopViewVM.cs @@ -57,6 +57,13 @@ namespace Tango.FSE.PPCConsole.ViewModels set { _recordingTime = value; RaisePropertyChangedAuto(); } } + private bool _cursorVisible; + public bool CursorVisible + { + get { return _cursorVisible; } + set { _cursorVisible = value; RaisePropertyChangedAuto(); SetCursorVisibility(); } + } + #endregion #region Commands @@ -127,6 +134,7 @@ namespace Tango.FSE.PPCConsole.ViewModels base.OnApplicationStarted(); RemoteDesktopProvider.FrameReceived += RemoteDesktopProvider_FrameReceived; + RemoteDesktopProvider.SessionStopped += RemoteDesktopProvider_SessionStopped; MachineProvider.MachineConnected += MachineProvider_MachineConnected; } @@ -162,6 +170,14 @@ namespace Tango.FSE.PPCConsole.ViewModels private void RemoteDesktopProvider_FrameReceived(object sender, DesktopFrameReceivedEventArgs e) { Source = e.Source; + _cursorVisible = e.CursorVisible; + RaisePropertyChanged(nameof(CursorVisible)); + } + + private void RemoteDesktopProvider_SessionStopped(object sender, EventArgs e) + { + _cursorVisible = false; + RaisePropertyChanged(nameof(CursorVisible)); } #endregion @@ -216,6 +232,11 @@ namespace Tango.FSE.PPCConsole.ViewModels RemoteDesktopProvider.MouseDoubleClick(changedButton, point, size); } + public void OnMouseScroll(int delta, System.Windows.Point point, System.Windows.Size size) + { + RemoteDesktopProvider.MouseScroll(delta, point, size); + } + public void OnKeyboardDown(Key key, bool ctrlDown, bool shitDown, bool altDown) { RemoteDesktopProvider.KeyboardDown(key, ctrlDown, shitDown, altDown); @@ -226,6 +247,11 @@ namespace Tango.FSE.PPCConsole.ViewModels RemoteDesktopProvider.KeyboardUp(key, ctrlDown, shitDown, altDown); } + private void SetCursorVisibility() + { + RemoteDesktopProvider.SetRemoteCursorVisibility(CursorVisible); + } + #endregion #region Snapshot -- cgit v1.3.1