Phase 5-UI: Launcher auf Toolstrip-Modell + SettingsView (Designer-first)

- LauncherForm: lstView-Ansatz entfernt (lstViews/colName/pnlBottom/btnOpen raus).
  Fenster werden ueber toolstrip_windows-Buttons geoeffnet/fokussiert:
  btn_settings -> Settings, btn_terminal -> Terminal (Bindung per stabiler View-ID).
- statusStrip_info: Live-Status (Trading, Modul-Anzahl, API WSS/Polling) via 1s-Timer.
- toolstrip_quickbar bleibt fuer Schnellaktionen (Trading an/aus) reserviert.
- Neue SettingsView (UserControl + Designer): ServerSettings-PropertyGrid +
  Speichern/Neu laden; Verhalten wie bisheriger Settings-Tab. In Program.cs registriert.
- Build 0 Fehler.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Richard
2026-07-02 11:44:47 +02:00
co-authored by Claude Opus 4.8
parent 1781d71983
commit f112668147
9 changed files with 378 additions and 147 deletions
+119 -77
View File
@@ -17,102 +17,140 @@ namespace PolyTraderSharp.Ui
private void InitializeComponent()
{
this.menuStrip = new System.Windows.Forms.MenuStrip();
this.miDatei = new System.Windows.Forms.ToolStripMenuItem();
this.miLegacy = new System.Windows.Forms.ToolStripMenuItem();
this.miBeenden = new System.Windows.Forms.ToolStripMenuItem();
this.lstViews = new System.Windows.Forms.ListView();
this.colName = new System.Windows.Forms.ColumnHeader();
this.pnlBottom = new System.Windows.Forms.Panel();
this.btnOpen = new System.Windows.Forms.Button();
this.menuStrip.SuspendLayout();
this.pnlBottom.SuspendLayout();
this.SuspendLayout();
menuStrip = new MenuStrip();
miDatei = new ToolStripMenuItem();
miLegacy = new ToolStripMenuItem();
miBeenden = new ToolStripMenuItem();
toolstrip_windows = new ToolStrip();
btn_settings = new ToolStripButton();
btn_terminal = new ToolStripButton();
toolstrip_quickbar = new ToolStrip();
statusStrip_info = new StatusStrip();
lbl_trading = new ToolStripStatusLabel();
lbl_modules = new ToolStripStatusLabel();
lbl_ratelimit = new ToolStripStatusLabel();
menuStrip.SuspendLayout();
toolstrip_windows.SuspendLayout();
statusStrip_info.SuspendLayout();
SuspendLayout();
//
// menuStrip
//
this.menuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.miDatei});
this.menuStrip.Location = new System.Drawing.Point(0, 0);
this.menuStrip.Name = "menuStrip";
this.menuStrip.Size = new System.Drawing.Size(360, 24);
this.menuStrip.TabIndex = 0;
menuStrip.ImageScalingSize = new Size(24, 24);
menuStrip.Items.AddRange(new ToolStripItem[] { miDatei });
menuStrip.Location = new Point(0, 0);
menuStrip.Name = "menuStrip";
menuStrip.Padding = new Padding(9, 3, 0, 3);
menuStrip.Size = new Size(2599, 35);
menuStrip.TabIndex = 0;
//
// miDatei
//
this.miDatei.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.miLegacy,
this.miBeenden});
this.miDatei.Name = "miDatei";
this.miDatei.Text = "Datei";
miDatei.DropDownItems.AddRange(new ToolStripItem[] { miLegacy, miBeenden });
miDatei.Name = "miDatei";
miDatei.Size = new Size(69, 29);
miDatei.Text = "Datei";
//
// miLegacy
//
this.miLegacy.Name = "miLegacy";
this.miLegacy.Text = "Legacy-UI (alte Tabs)";
miLegacy.Name = "miLegacy";
miLegacy.Size = new Size(275, 34);
miLegacy.Text = "Legacy-UI (alte Tabs)";
//
// miBeenden
//
this.miBeenden.Name = "miBeenden";
this.miBeenden.Text = "Beenden";
miBeenden.Name = "miBeenden";
miBeenden.Size = new Size(275, 34);
miBeenden.Text = "Beenden";
//
// lstViews
// toolstrip_windows
//
this.lstViews.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
this.colName});
this.lstViews.Dock = System.Windows.Forms.DockStyle.Fill;
this.lstViews.FullRowSelect = true;
this.lstViews.HideSelection = false;
this.lstViews.Location = new System.Drawing.Point(0, 24);
this.lstViews.MultiSelect = false;
this.lstViews.Name = "lstViews";
this.lstViews.Size = new System.Drawing.Size(360, 420);
this.lstViews.TabIndex = 1;
this.lstViews.UseCompatibleStateImageBehavior = false;
this.lstViews.View = System.Windows.Forms.View.Details;
toolstrip_windows.AutoSize = false;
toolstrip_windows.ImageScalingSize = new Size(64, 64);
toolstrip_windows.Items.AddRange(new ToolStripItem[] { btn_settings, btn_terminal });
toolstrip_windows.Location = new Point(0, 35);
toolstrip_windows.Name = "toolstrip_windows";
toolstrip_windows.Size = new Size(2599, 70);
toolstrip_windows.TabIndex = 3;
toolstrip_windows.Text = "toolStrip1";
//
// colName
// btn_settings
//
this.colName.Text = "Ansicht";
this.colName.Width = 330;
btn_settings.BackColor = SystemColors.Control;
btn_settings.Image = Properties.Resources.setting_tools;
btn_settings.ImageScaling = ToolStripItemImageScaling.None;
btn_settings.ImageTransparentColor = Color.Magenta;
btn_settings.Name = "btn_settings";
btn_settings.Size = new Size(112, 65);
btn_settings.Text = "Settings";
btn_settings.TextImageRelation = TextImageRelation.ImageAboveText;
//
// pnlBottom
// btn_terminal
//
this.pnlBottom.Controls.Add(this.btnOpen);
this.pnlBottom.Dock = System.Windows.Forms.DockStyle.Bottom;
this.pnlBottom.Location = new System.Drawing.Point(0, 444);
this.pnlBottom.Name = "pnlBottom";
this.pnlBottom.Size = new System.Drawing.Size(360, 44);
this.pnlBottom.TabIndex = 2;
btn_terminal.DisplayStyle = ToolStripItemDisplayStyle.Text;
btn_terminal.Name = "btn_terminal";
btn_terminal.Size = new Size(112, 65);
btn_terminal.Text = "Terminal";
//
// btnOpen
// toolstrip_quickbar
//
this.btnOpen.Location = new System.Drawing.Point(12, 8);
this.btnOpen.Name = "btnOpen";
this.btnOpen.Size = new System.Drawing.Size(336, 30);
this.btnOpen.TabIndex = 0;
this.btnOpen.Text = "Öffnen";
this.btnOpen.UseVisualStyleBackColor = true;
toolstrip_quickbar.ImageScalingSize = new Size(24, 24);
toolstrip_quickbar.Location = new Point(0, 105);
toolstrip_quickbar.Name = "toolstrip_quickbar";
toolstrip_quickbar.Size = new Size(2599, 25);
toolstrip_quickbar.TabIndex = 4;
toolstrip_quickbar.Text = "toolStrip2";
//
// statusStrip_info
//
statusStrip_info.ImageScalingSize = new Size(24, 24);
statusStrip_info.Items.AddRange(new ToolStripItem[] { lbl_trading, lbl_modules, lbl_ratelimit });
statusStrip_info.Location = new Point(0, 924);
statusStrip_info.Name = "statusStrip_info";
statusStrip_info.Size = new Size(2599, 22);
statusStrip_info.TabIndex = 5;
statusStrip_info.Text = "statusStrip1";
//
// lbl_trading
//
lbl_trading.Name = "lbl_trading";
lbl_trading.Size = new Size(100, 16);
lbl_trading.Text = "Trading: —";
//
// lbl_modules
//
lbl_modules.Name = "lbl_modules";
lbl_modules.Size = new Size(90, 16);
lbl_modules.Text = "Module: —";
//
// lbl_ratelimit
//
lbl_ratelimit.Name = "lbl_ratelimit";
lbl_ratelimit.Size = new Size(80, 16);
lbl_ratelimit.Text = "API: —";
//
// LauncherForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(360, 488);
this.Controls.Add(this.lstViews);
this.Controls.Add(this.pnlBottom);
this.Controls.Add(this.menuStrip);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.MainMenuStrip = this.menuStrip;
this.MaximizeBox = false;
this.Name = "LauncherForm";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "PolyTrader";
this.menuStrip.ResumeLayout(false);
this.menuStrip.PerformLayout();
this.pnlBottom.ResumeLayout(false);
this.ResumeLayout(false);
this.PerformLayout();
AutoScaleDimensions = new SizeF(10F, 25F);
AutoScaleMode = AutoScaleMode.Font;
ClientSize = new Size(2599, 946);
Controls.Add(statusStrip_info);
Controls.Add(toolstrip_quickbar);
Controls.Add(toolstrip_windows);
Controls.Add(menuStrip);
MainMenuStrip = menuStrip;
Margin = new Padding(4, 5, 4, 5);
Name = "LauncherForm";
StartPosition = FormStartPosition.CenterScreen;
Text = "PolyTrader";
menuStrip.ResumeLayout(false);
menuStrip.PerformLayout();
toolstrip_windows.ResumeLayout(false);
toolstrip_windows.PerformLayout();
statusStrip_info.ResumeLayout(false);
statusStrip_info.PerformLayout();
ResumeLayout(false);
PerformLayout();
}
#endregion
@@ -121,9 +159,13 @@ namespace PolyTraderSharp.Ui
private System.Windows.Forms.ToolStripMenuItem miDatei;
private System.Windows.Forms.ToolStripMenuItem miLegacy;
private System.Windows.Forms.ToolStripMenuItem miBeenden;
private System.Windows.Forms.ListView lstViews;
private System.Windows.Forms.ColumnHeader colName;
private System.Windows.Forms.Panel pnlBottom;
private System.Windows.Forms.Button btnOpen;
private ToolStrip toolstrip_windows;
private ToolStripButton btn_settings;
private ToolStripButton btn_terminal;
private ToolStrip toolstrip_quickbar;
private StatusStrip statusStrip_info;
private ToolStripStatusLabel lbl_trading;
private ToolStripStatusLabel lbl_modules;
private ToolStripStatusLabel lbl_ratelimit;
}
}