Files
HawkeyeVision/VisionBuilder.UI.Windows.Test/Form1.cs
2025-09-05 11:11:23 +02:00

81 lines
2.7 KiB
C#

using System.Runtime.InteropServices;
using MaterialSkin;
using MaterialSkin.Controls;
using Microsoft.VisualBasic.Logging;
using OpenCvSharp;
using VisionBuilder.UI.Common;
using VisionBuilder.UI.Common.Services;
using VisionBuilder.UI.Common.ViewModel;
namespace VisionBuilder.UI.Windows.Test
{
public partial class Form1 : MaterialForm
{
private readonly MainWindowVM _mainWindowVm;
private readonly IPasswordInputService _passwordInputService;
private readonly UIConfiguration _uiConfiguration;
public Form1(MainWindowVM mainWindowVm, IPasswordInputService passwordInputService, UIConfiguration uiConfiguration)
{
_mainWindowVm = mainWindowVm;
_passwordInputService = passwordInputService;
_uiConfiguration = uiConfiguration;
MaterialSkin.MaterialSkinManager.ConfigureForInspectron();
InitializeComponent();
singleCameraControl1.SetViewModel(mainWindowVm.SingleCameraVms[0]);
Load += Form1_Load;
_mainWindowVm.PropertyChanged += _mainWindowVm_PropertyChanged;
}
private void _mainWindowVm_PropertyChanged(object? sender, System.ComponentModel.PropertyChangedEventArgs e)
{
if (e.PropertyName == nameof(_mainWindowVm.TestMode))
{
if (_mainWindowVm.TestMode)
{
MaterialSkinManager.Instance.ColorScheme = new ColorScheme(Primary.Green800, Primary.Green800,
Primary.Green400, Accent.Green200, TextShade.WHITE);
}
else
{
MaterialSkinManager.ConfigureForInspectron();
}
Refresh();
}
}
private void Form1_Load(object sender, EventArgs e)
{
_mainWindowVm.OnProgramStarted();
BringToFront();
}
private void btnExit_Click(object sender, EventArgs e)
{
_mainWindowVm.OnProgramClosed();
Environment.Exit(0);
}
private void btnMinimize_Click(object sender, EventArgs e)
{
WindowState = FormWindowState.Minimized;
}
private void btnSettings_Click(object sender, EventArgs e)
{
if (_uiConfiguration.ProtectSettingsWithPassword)
{
var passwordOk = _passwordInputService.GetPassword() == _uiConfiguration.AdminPassword;
if (!passwordOk)
return;
}
_mainWindowVm.SettingsCommand.Execute(null);
}
private void btnTestMode_Click(object sender, EventArgs e)
{
_mainWindowVm.ToggleTestModeCommand.Execute(null);
}
}
}