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