151 lines
3.5 KiB
C#
151 lines
3.5 KiB
C#
using System;
|
|
using System.CodeDom.Compiler;
|
|
using System.ComponentModel;
|
|
using System.Diagnostics;
|
|
using System.Runtime.InteropServices;
|
|
using System.Windows;
|
|
using System.Windows.Controls;
|
|
using System.Windows.Input;
|
|
using System.Windows.Interop;
|
|
using System.Windows.Markup;
|
|
using AxCopilot.ViewModels;
|
|
|
|
namespace AxCopilot.Views;
|
|
|
|
public class StatisticsWindow : Window, IComponentConnector
|
|
{
|
|
private const int WM_NCLBUTTONDOWN = 161;
|
|
|
|
private const int HTBOTTOMRIGHT = 17;
|
|
|
|
private readonly StatisticsViewModel _vm;
|
|
|
|
internal RadioButton StatsTabMain;
|
|
|
|
internal RadioButton StatsTabCommander;
|
|
|
|
internal RadioButton StatsTabAgent;
|
|
|
|
internal ScrollViewer PanelMain;
|
|
|
|
internal ScrollViewer PanelCommander;
|
|
|
|
internal ScrollViewer PanelAgent;
|
|
|
|
private bool _contentLoaded;
|
|
|
|
[DllImport("user32.dll")]
|
|
private static extern void ReleaseCapture();
|
|
|
|
[DllImport("user32.dll")]
|
|
private static extern nint SendMessage(nint hWnd, int msg, nint wParam, nint lParam);
|
|
|
|
public StatisticsWindow()
|
|
{
|
|
InitializeComponent();
|
|
_vm = new StatisticsViewModel();
|
|
base.DataContext = _vm;
|
|
}
|
|
|
|
private void Window_MouseDown(object sender, MouseButtonEventArgs e)
|
|
{
|
|
if (e.ChangedButton == MouseButton.Left && e.LeftButton == MouseButtonState.Pressed)
|
|
{
|
|
try
|
|
{
|
|
DragMove();
|
|
}
|
|
catch
|
|
{
|
|
}
|
|
}
|
|
}
|
|
|
|
private void ResizeGrip_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
|
|
{
|
|
if (e.ButtonState == MouseButtonState.Pressed)
|
|
{
|
|
ReleaseCapture();
|
|
SendMessage(new WindowInteropHelper(this).Handle, 161, 17, IntPtr.Zero);
|
|
}
|
|
}
|
|
|
|
private void Close_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
Close();
|
|
}
|
|
|
|
private void Refresh_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
_vm.Refresh();
|
|
}
|
|
|
|
private void StatsTab_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
if (PanelMain != null && PanelCommander != null && PanelAgent != null)
|
|
{
|
|
PanelMain.Visibility = ((StatsTabMain.IsChecked != true) ? Visibility.Collapsed : Visibility.Visible);
|
|
PanelCommander.Visibility = ((StatsTabCommander.IsChecked != true) ? Visibility.Collapsed : Visibility.Visible);
|
|
PanelAgent.Visibility = ((StatsTabAgent.IsChecked != true) ? Visibility.Collapsed : Visibility.Visible);
|
|
}
|
|
}
|
|
|
|
[DebuggerNonUserCode]
|
|
[GeneratedCode("PresentationBuildTasks", "10.0.5.0")]
|
|
public void InitializeComponent()
|
|
{
|
|
if (!_contentLoaded)
|
|
{
|
|
_contentLoaded = true;
|
|
Uri resourceLocator = new Uri("/AxCopilot;component/views/statisticswindow.xaml", UriKind.Relative);
|
|
Application.LoadComponent(this, resourceLocator);
|
|
}
|
|
}
|
|
|
|
[DebuggerNonUserCode]
|
|
[GeneratedCode("PresentationBuildTasks", "10.0.5.0")]
|
|
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
void IComponentConnector.Connect(int connectionId, object target)
|
|
{
|
|
switch (connectionId)
|
|
{
|
|
case 1:
|
|
((StatisticsWindow)target).MouseDown += Window_MouseDown;
|
|
break;
|
|
case 2:
|
|
((Button)target).Click += Refresh_Click;
|
|
break;
|
|
case 3:
|
|
((Button)target).Click += Close_Click;
|
|
break;
|
|
case 4:
|
|
StatsTabMain = (RadioButton)target;
|
|
StatsTabMain.Click += StatsTab_Click;
|
|
break;
|
|
case 5:
|
|
StatsTabCommander = (RadioButton)target;
|
|
StatsTabCommander.Click += StatsTab_Click;
|
|
break;
|
|
case 6:
|
|
StatsTabAgent = (RadioButton)target;
|
|
StatsTabAgent.Click += StatsTab_Click;
|
|
break;
|
|
case 7:
|
|
PanelMain = (ScrollViewer)target;
|
|
break;
|
|
case 8:
|
|
PanelCommander = (ScrollViewer)target;
|
|
break;
|
|
case 9:
|
|
PanelAgent = (ScrollViewer)target;
|
|
break;
|
|
case 10:
|
|
((Border)target).MouseLeftButtonDown += ResizeGrip_MouseLeftButtonDown;
|
|
break;
|
|
default:
|
|
_contentLoaded = true;
|
|
break;
|
|
}
|
|
}
|
|
}
|