aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/Views/RemoteDesktopView.xaml.cs
blob: be7c280c869bc9fac7262ae8af0d19bcd829552d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using Tango.FSE.PPCConsole.ViewModels;

namespace Tango.FSE.PPCConsole.Views
{
    /// <summary>
    /// Interaction logic for RemoteDesktopView.xaml
    /// </summary>
    public partial class RemoteDesktopView : UserControl
    {
        private RemoteDesktopViewVM _vm;

        public RemoteDesktopView()
        {
            InitializeComponent();
            Loaded += (_, __) => _vm = DataContext as RemoteDesktopViewVM;

            img.PreviewMouseDown += Img_PreviewMouseDown;
            img.PreviewMouseUp += Img_PreviewMouseUp;
            img.PreviewMouseMove += Img_PreviewMouseMove;
            img.PreviewKeyDown += Img_PreviewKeyDown;
            img.PreviewKeyUp += Img_PreviewKeyUp;
        }

        private void Img_PreviewKeyDown(object sender, KeyEventArgs e)
        {
            _vm.OnKeyboardDown(e.Key, Keyboard.IsKeyDown(Key.LeftCtrl), Keyboard.IsKeyDown(Key.LeftShift), Keyboard.IsKeyDown(Key.LeftAlt));
        }

        private void Img_PreviewKeyUp(object sender, KeyEventArgs e)
        {
            _vm.OnKeyboardUp(e.Key, Keyboard.IsKeyDown(Key.LeftCtrl), Keyboard.IsKeyDown(Key.LeftShift), Keyboard.IsKeyDown(Key.LeftAlt));
        }

        private void Img_PreviewMouseDown(object sender, MouseButtonEventArgs e)
        {
            if (e.ClickCount == 2)
            {
                _vm.OnMouseDoubleClick(e.ChangedButton, e.GetPosition(img), new Size(img.ActualWidth, img.ActualHeight));
            }
            else
            {
                _vm.OnMouseDown(e.ChangedButton, e.GetPosition(img), new Size(img.ActualWidth, img.ActualHeight));
            }
        }

        private void Img_PreviewMouseUp(object sender, MouseButtonEventArgs e)
        {
            _vm.OnMouseUp(e.ChangedButton, e.GetPosition(img), new Size(img.ActualWidth, img.ActualHeight));
        }

        private void Img_PreviewMouseMove(object sender, MouseEventArgs e)
        {
            _vm.OnMouseMove(e.GetPosition(img), new Size(img.ActualWidth, img.ActualHeight));
        }
    }
}