Files
TeslaSuite/Console/TeslaConsole/PlasmaFontTool.cs
T
CydandClaude Opus 4.8 548550b312 Initial commit: TeslaSuite monorepo (TeslaConsole + TeslaLauncher)
Co-locate the two cockpit-pod projects into a single repository:

- Console/  : TeslaConsole, the net48 WinForms operator console (decompiled
              reconstruction) plus its differential + catalog test suite.
- Launcher/ : TeslaLauncher, the net6 pod-side Service + Agent rewrite.

Adds a combined TeslaSuite.sln, root README documenting the shared wire
contract (and its current duplication, the main follow-up), and a root
.gitignore. Histories were not preserved per request; this is a fresh start
from the current working state of both projects.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-29 14:43:28 -05:00

158 lines
6.7 KiB
C#

using System;
using System.ComponentModel;
using System.Drawing;
using System.Drawing.Text;
using System.Windows.Forms;
namespace TeslaConsole;
public class PlasmaFontTool : Form
{
private IContainer components;
private TableLayoutPanel tableLayoutPanel1;
private PlasmaView mLargePlasma;
private PlasmaView mSmallPlasma;
private TableLayoutPanel tableLayoutPanel2;
private TextBox mText;
private Label mTextLabel;
private Label mFontLabel;
private ComboBox mFont;
protected override void Dispose(bool disposing)
{
if (disposing && components != null)
{
components.Dispose();
}
base.Dispose(disposing);
}
private void InitializeComponent()
{
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
this.mLargePlasma = new TeslaConsole.PlasmaView();
this.mSmallPlasma = new TeslaConsole.PlasmaView();
this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel();
this.mText = new System.Windows.Forms.TextBox();
this.mTextLabel = new System.Windows.Forms.Label();
this.mFontLabel = new System.Windows.Forms.Label();
this.mFont = new System.Windows.Forms.ComboBox();
this.tableLayoutPanel1.SuspendLayout();
this.tableLayoutPanel2.SuspendLayout();
base.SuspendLayout();
this.tableLayoutPanel1.ColumnCount = 2;
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 66.66666f));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33334f));
this.tableLayoutPanel1.Controls.Add(this.mLargePlasma, 0, 0);
this.tableLayoutPanel1.Controls.Add(this.mSmallPlasma, 1, 1);
this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel2, 1, 0);
this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0);
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
this.tableLayoutPanel1.RowCount = 3;
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25f));
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50f));
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25f));
this.tableLayoutPanel1.Size = new System.Drawing.Size(1035, 425);
this.tableLayoutPanel1.TabIndex = 0;
this.mLargePlasma.BackColor = System.Drawing.Color.Black;
this.mLargePlasma.Dock = System.Windows.Forms.DockStyle.Fill;
this.mLargePlasma.Enabled = false;
this.mLargePlasma.ForeColor = System.Drawing.Color.DarkOrange;
this.mLargePlasma.Location = new System.Drawing.Point(3, 3);
this.mLargePlasma.Name = "mLargePlasma";
this.tableLayoutPanel1.SetRowSpan(this.mLargePlasma, 3);
this.mLargePlasma.Size = new System.Drawing.Size(683, 419);
this.mLargePlasma.TabIndex = 0;
this.mSmallPlasma.BackColor = System.Drawing.Color.Black;
this.mSmallPlasma.Dock = System.Windows.Forms.DockStyle.Fill;
this.mSmallPlasma.Enabled = false;
this.mSmallPlasma.ForeColor = System.Drawing.Color.DarkOrange;
this.mSmallPlasma.Location = new System.Drawing.Point(692, 109);
this.mSmallPlasma.Name = "mSmallPlasma";
this.mSmallPlasma.Size = new System.Drawing.Size(340, 206);
this.mSmallPlasma.TabIndex = 1;
this.tableLayoutPanel2.ColumnCount = 2;
this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100f));
this.tableLayoutPanel2.Controls.Add(this.mText, 1, 1);
this.tableLayoutPanel2.Controls.Add(this.mTextLabel, 0, 1);
this.tableLayoutPanel2.Controls.Add(this.mFontLabel, 0, 0);
this.tableLayoutPanel2.Controls.Add(this.mFont, 1, 0);
this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill;
this.tableLayoutPanel2.Location = new System.Drawing.Point(692, 3);
this.tableLayoutPanel2.Name = "tableLayoutPanel2";
this.tableLayoutPanel2.RowCount = 3;
this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle());
this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle());
this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100f));
this.tableLayoutPanel2.Size = new System.Drawing.Size(340, 100);
this.tableLayoutPanel2.TabIndex = 2;
this.mText.Anchor = System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
this.mText.Location = new System.Drawing.Point(40, 30);
this.mText.Name = "mText";
this.mText.Size = new System.Drawing.Size(297, 20);
this.mText.TabIndex = 0;
this.mText.TextChanged += new System.EventHandler(RebuildImages);
this.mTextLabel.Anchor = System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
this.mTextLabel.AutoSize = true;
this.mTextLabel.Location = new System.Drawing.Point(3, 33);
this.mTextLabel.Name = "mTextLabel";
this.mTextLabel.Size = new System.Drawing.Size(31, 13);
this.mTextLabel.TabIndex = 1;
this.mTextLabel.Text = "Text:";
this.mFontLabel.Anchor = System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
this.mFontLabel.AutoSize = true;
this.mFontLabel.Location = new System.Drawing.Point(3, 7);
this.mFontLabel.Name = "mFontLabel";
this.mFontLabel.Size = new System.Drawing.Size(31, 13);
this.mFontLabel.TabIndex = 2;
this.mFontLabel.Text = "Font:";
this.mFont.Anchor = System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
this.mFont.FormattingEnabled = true;
this.mFont.Location = new System.Drawing.Point(40, 3);
this.mFont.Name = "mFont";
this.mFont.Size = new System.Drawing.Size(297, 21);
this.mFont.TabIndex = 3;
this.mFont.SelectedIndexChanged += new System.EventHandler(RebuildImages);
base.AutoScaleDimensions = new System.Drawing.SizeF(6f, 13f);
base.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
base.ClientSize = new System.Drawing.Size(1035, 425);
base.Controls.Add(this.tableLayoutPanel1);
base.Name = "PlasmaFontTool";
this.Text = "Plasma Font Tool";
this.tableLayoutPanel1.ResumeLayout(false);
this.tableLayoutPanel2.ResumeLayout(false);
this.tableLayoutPanel2.PerformLayout();
base.ResumeLayout(false);
}
public PlasmaFontTool()
{
InitializeComponent();
FontFamily[] families = new InstalledFontCollection().Families;
foreach (FontFamily fontFamily in families)
{
mFont.Items.Add(fontFamily.Name);
}
mFont.SelectedItem = "Microsoft Sans Serif";
}
private void RebuildImages(object sender, EventArgs e)
{
PlasmaBitmaps.GenerateBitmaps(out var large, out var small, mFont.Text, mText.Text);
mLargePlasma.SetBitmap(large);
mSmallPlasma.SetBitmap(small);
large.Dispose();
small.Dispose();
}
}