140 lines
5.0 KiB
C#
140 lines
5.0 KiB
C#
using System;
|
||
using System.Drawing;
|
||
using System.Windows.Forms;
|
||
|
||
namespace Flyby11
|
||
{
|
||
public partial class CompatibilityForm : Form
|
||
{
|
||
|
||
public CompatibilityForm(bool hasPopcnt, bool hasSse42)
|
||
{
|
||
InitializeComponent();
|
||
InitLayout(hasPopcnt, hasSse42);
|
||
}
|
||
|
||
private void InitLayout(bool hasPopcnt, bool hasSse42)
|
||
{
|
||
this.Text = "Flyby11 - Windows 11 Compatibility Check via CpuCheckNative.dll";
|
||
this.StartPosition = FormStartPosition.CenterScreen;
|
||
this.Font = new Font("Segoe UI", 10);
|
||
|
||
// icon font for check marks
|
||
var iconFont = new Font("Segoe MDL2 Assets", 18);
|
||
|
||
// Label for CPU POPCNT Support
|
||
var lblPopcnt = new Label { Text = "CPU POPCNT:", Location = new Point(30, 30), AutoSize = true };
|
||
var iconPopcnt = new Label
|
||
{
|
||
Text = hasPopcnt ? "\uE73D" : "\uE10A", // ✔ or ❌
|
||
Font = iconFont,
|
||
ForeColor = hasPopcnt ? Color.ForestGreen : Color.Crimson,
|
||
Location = new Point(280, 30),
|
||
AutoSize = true
|
||
};
|
||
|
||
// Label for SSE4.2 Support
|
||
var lblSse42 = new Label { Text = "SSE4.2:", Location = new Point(30, 70), AutoSize = true };
|
||
var iconSse42 = new Label
|
||
{
|
||
Text = hasSse42 ? "\uE73D" : "\uE10A",
|
||
Font = iconFont,
|
||
ForeColor = hasSse42 ? Color.ForestGreen : Color.Crimson,
|
||
Location = new Point(280, 70),
|
||
AutoSize = true
|
||
};
|
||
|
||
// Label for Upgrade Probability
|
||
var lblProb = new Label
|
||
{
|
||
Text = "Upgrade Probability:",
|
||
Location = new Point(30, 120),
|
||
AutoSize = true,
|
||
Font = new Font("Segoe UI", 10, FontStyle.Bold)
|
||
};
|
||
|
||
var result = new Label
|
||
{
|
||
Text = (hasPopcnt && hasSse42) ? "Very High" : "Low",
|
||
Location = new Point(250, 120),
|
||
ForeColor = (hasPopcnt && hasSse42) ? Color.ForestGreen : Color.Crimson,
|
||
AutoSize = true
|
||
};
|
||
|
||
// Adding the info about upgrade status
|
||
var infoLabel = new Label
|
||
{
|
||
Text = "Note: If both POPCNT and SSE4.2 are supported, your upgrade chances are very high.\n" +
|
||
"Otherwise, you may face issues while upgrading.",
|
||
Location = new Point(30, 160),
|
||
AutoSize = true,
|
||
Font = new Font("Segoe UI", 9, FontStyle.Italic),
|
||
ForeColor = Color.Gray
|
||
};
|
||
|
||
// additional info
|
||
var additionalInfoLabel = new Label
|
||
{
|
||
Text = "This app successfully helped upgrade over half a million PCs to Windows 11!\n" +
|
||
"Fewer e-waste, lower costs, and no need for a new setup. " +
|
||
"Stay updated. Best wishes, Belim. ",
|
||
Dock = DockStyle.Bottom,
|
||
AutoSize = true,
|
||
Font = new Font("Segoe UI", 9, FontStyle.Italic),
|
||
ForeColor = Color.DimGray
|
||
};
|
||
|
||
// W10 support-end countdown
|
||
var supportEndDate = new DateTime(2025, 10, 14);
|
||
var daysLeft = (supportEndDate - DateTime.Today).Days;
|
||
|
||
var countdownLabel = new Label
|
||
{
|
||
Text = $"⚠️ Windows 10 support ends in {daysLeft} days – on October 14, 2025!",
|
||
Dock = DockStyle.Bottom,
|
||
AutoSize = true,
|
||
Font = new Font("Segoe UI", 9.5f, FontStyle.Bold),
|
||
ForeColor = Color.Red,
|
||
};
|
||
|
||
|
||
// Button Upgrade
|
||
var upgradeButton = new Button
|
||
{
|
||
Text = "Start Upgrade Now!",
|
||
Dock = DockStyle.Bottom,
|
||
AutoSize = true,
|
||
Size = new Size(180, 40),
|
||
BackColor = Color.ForestGreen,
|
||
ForeColor = Color.White,
|
||
Font = new Font("Segoe UI", 12, FontStyle.Bold),
|
||
FlatStyle = FlatStyle.Flat
|
||
};
|
||
upgradeButton.FlatAppearance.BorderSize = 0;
|
||
upgradeButton.Click += UpgradeButton_Click;
|
||
|
||
|
||
this.Controls.Add(lblPopcnt);
|
||
this.Controls.Add(iconPopcnt);
|
||
this.Controls.Add(lblSse42);
|
||
this.Controls.Add(iconSse42);
|
||
this.Controls.Add(lblProb);
|
||
this.Controls.Add(result);
|
||
this.Controls.Add(infoLabel);
|
||
|
||
this.Controls.Add(upgradeButton);
|
||
this.Controls.Add(countdownLabel);
|
||
// this.Controls.Add(additionalInfoLabel);
|
||
|
||
}
|
||
|
||
|
||
private void UpgradeButton_Click(object sender, EventArgs e)
|
||
{
|
||
//MessageBox.Show("You are good to go! Proceeding with the upgrade...", "Upgrade Started", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||
this.Close();
|
||
|
||
}
|
||
}
|
||
}
|