restructure

This commit is contained in:
NinjaPug
2025-04-14 12:46:10 -04:00
parent 1cf596b379
commit 21b6ad3d75
22 changed files with 1257 additions and 990 deletions

View File

@@ -0,0 +1,44 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;
using PCPalConfigurator.Rendering;
namespace PCPalConfigurator.UI
{
/// <summary>
/// Custom panel for displaying OLED preview
/// </summary>
public class OledPreviewPanel : Panel
{
private List<PreviewElement> previewElements = new List<PreviewElement>();
private readonly OledRenderer renderer = new OledRenderer();
public OledPreviewPanel()
{
this.BackColor = Color.Black;
this.BorderStyle = BorderStyle.FixedSingle;
this.DoubleBuffered = true; // Reduces flicker during repaints
}
/// <summary>
/// Updates the preview elements to be rendered
/// </summary>
public void SetPreviewElements(List<PreviewElement> elements)
{
previewElements = elements ?? new List<PreviewElement>();
this.Invalidate(); // Trigger a repaint
}
/// <summary>
/// Handles the paint event to render the OLED preview
/// </summary>
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
// Render the preview elements
renderer.RenderPreview(e.Graphics, previewElements, this.Width, this.Height);
}
}
}