Initial commit: SpdUp Windows Gaming Booster v1.0.0
- .NET 8 WPF app with full MVVM architecture - One-click boost: CPU, RAM, GPU, network, services, timer resolution - Real-time system monitor (LibreHardwareMonitor) - Auto game detection (30+ games) - RAM optimizer with kernel-level cleanup - Network optimizer (TCP registry tweaks) - Service manager, process manager, shader cache cleaner - Desktop widget overlay - Debug log viewer - Custom dark gaming theme with trans pride colors - 84 unit tests (xUnit) - Inno Setup installer script - Landing page website
This commit is contained in:
@@ -0,0 +1,81 @@
|
||||
using System.ComponentModel;
|
||||
using System.Windows;
|
||||
using SpdUp.ViewModels;
|
||||
using SpdUp.Views;
|
||||
|
||||
namespace SpdUp;
|
||||
|
||||
/// <summary>
|
||||
/// Interaction logic for MainWindow.xaml
|
||||
/// </summary>
|
||||
public partial class MainWindow : Window
|
||||
{
|
||||
private readonly MainViewModel _vm;
|
||||
private WidgetWindow? _widgetWindow;
|
||||
|
||||
public MainWindow()
|
||||
{
|
||||
InitializeComponent();
|
||||
_vm = new MainViewModel();
|
||||
DataContext = _vm;
|
||||
|
||||
_vm.PropertyChanged += OnVmPropertyChanged;
|
||||
StateChanged += MainWindow_StateChanged;
|
||||
|
||||
if (_vm.IsWidgetVisible)
|
||||
ShowWidget();
|
||||
}
|
||||
|
||||
// ── Custom title-bar handlers ─────────────────────────────
|
||||
private void Minimize_Click(object sender, RoutedEventArgs e)
|
||||
=> WindowState = WindowState.Minimized;
|
||||
|
||||
private void MaximizeRestore_Click(object sender, RoutedEventArgs e)
|
||||
=> WindowState = WindowState == WindowState.Maximized
|
||||
? WindowState.Normal
|
||||
: WindowState.Maximized;
|
||||
|
||||
private void Close_Click(object sender, RoutedEventArgs e)
|
||||
=> Close();
|
||||
|
||||
private void MainWindow_StateChanged(object? sender, System.EventArgs e)
|
||||
{
|
||||
// Update the maximize/restore glyph
|
||||
if (MaxRestoreBtn is not null)
|
||||
MaxRestoreBtn.Content = WindowState == WindowState.Maximized ? "❐" : "☐";
|
||||
}
|
||||
|
||||
private void OnVmPropertyChanged(object? sender, PropertyChangedEventArgs e)
|
||||
{
|
||||
if (e.PropertyName == nameof(MainViewModel.IsWidgetVisible))
|
||||
{
|
||||
if (_vm.IsWidgetVisible)
|
||||
ShowWidget();
|
||||
else
|
||||
HideWidget();
|
||||
}
|
||||
}
|
||||
|
||||
private void ShowWidget()
|
||||
{
|
||||
if (_widgetWindow is null || !_widgetWindow.IsLoaded)
|
||||
{
|
||||
_widgetWindow = new WidgetWindow(_vm);
|
||||
_widgetWindow.Closed += (_, _) => _vm.IsWidgetVisible = false;
|
||||
_widgetWindow.Show();
|
||||
}
|
||||
}
|
||||
|
||||
private void HideWidget()
|
||||
{
|
||||
_widgetWindow?.Close();
|
||||
_widgetWindow = null;
|
||||
}
|
||||
|
||||
private void Window_Closing(object sender, CancelEventArgs e)
|
||||
{
|
||||
HideWidget();
|
||||
_vm.SaveSettings();
|
||||
_vm.Dispose();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user