Phase 5-UI: JobsView extrahiert + Trading-Toggle in die Quickbar

- Neue JobsView (UserControl + Designer): DataGridView an JobManager.Jobs,
  Run-Now/Aktiv-Verhalten wie bisheriger Jobs-Tab. btn_jobs in toolstrip_windows,
  als View "core.jobs" registriert.
- Trading-Toggle aus frm_main uebernommen: btn_liveTrading + btn_demoTrading in
  toolstrip_quickbar; Zyklus Inactive->SellOnly->Active mit Farb-/Textstatus,
  synchron zum TradingState (auch bei externen Aenderungen via 1s-Timer).
- Build 0 Fehler.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Richard
2026-07-02 11:58:15 +02:00
co-authored by Claude Opus 4.8
parent f112668147
commit 8e2a92ad2e
8 changed files with 313 additions and 20 deletions
+46 -12
View File
@@ -24,13 +24,17 @@ namespace PolyTraderSharp.Ui
toolstrip_windows = new ToolStrip();
btn_settings = new ToolStripButton();
btn_terminal = new ToolStripButton();
btn_jobs = new ToolStripButton();
toolstrip_quickbar = new ToolStrip();
btn_liveTrading = new ToolStripButton();
btn_demoTrading = new ToolStripButton();
statusStrip_info = new StatusStrip();
lbl_trading = new ToolStripStatusLabel();
lbl_modules = new ToolStripStatusLabel();
lbl_ratelimit = new ToolStripStatusLabel();
menuStrip.SuspendLayout();
toolstrip_windows.SuspendLayout();
toolstrip_quickbar.SuspendLayout();
statusStrip_info.SuspendLayout();
SuspendLayout();
//
@@ -67,7 +71,7 @@ namespace PolyTraderSharp.Ui
//
toolstrip_windows.AutoSize = false;
toolstrip_windows.ImageScalingSize = new Size(64, 64);
toolstrip_windows.Items.AddRange(new ToolStripItem[] { btn_settings, btn_terminal });
toolstrip_windows.Items.AddRange(new ToolStripItem[] { btn_settings, btn_terminal, btn_jobs });
toolstrip_windows.Location = new Point(0, 35);
toolstrip_windows.Name = "toolstrip_windows";
toolstrip_windows.Size = new Size(2599, 70);
@@ -81,59 +85,84 @@ namespace PolyTraderSharp.Ui
btn_settings.ImageScaling = ToolStripItemImageScaling.None;
btn_settings.ImageTransparentColor = Color.Magenta;
btn_settings.Name = "btn_settings";
btn_settings.Size = new Size(112, 65);
btn_settings.Size = new Size(80, 65);
btn_settings.Text = "Settings";
btn_settings.TextImageRelation = TextImageRelation.ImageAboveText;
//
// btn_terminal
//
btn_terminal.DisplayStyle = ToolStripItemDisplayStyle.Text;
btn_terminal.Image = Properties.Resources.error_log;
btn_terminal.ImageScaling = ToolStripItemImageScaling.None;
btn_terminal.Name = "btn_terminal";
btn_terminal.Size = new Size(112, 65);
btn_terminal.Text = "Terminal";
btn_terminal.Size = new Size(136, 65);
btn_terminal.Text = "Terminal / Logs";
btn_terminal.TextImageRelation = TextImageRelation.ImageAboveText;
//
// btn_jobs
//
btn_jobs.DisplayStyle = ToolStripItemDisplayStyle.Text;
btn_jobs.Name = "btn_jobs";
btn_jobs.Size = new Size(100, 65);
btn_jobs.Text = "Server Jobs";
//
// toolstrip_quickbar
//
toolstrip_quickbar.ImageScalingSize = new Size(24, 24);
toolstrip_quickbar.Items.AddRange(new ToolStripItem[] { btn_liveTrading, btn_demoTrading });
toolstrip_quickbar.Location = new Point(0, 105);
toolstrip_quickbar.Name = "toolstrip_quickbar";
toolstrip_quickbar.Size = new Size(2599, 25);
toolstrip_quickbar.Size = new Size(2599, 28);
toolstrip_quickbar.TabIndex = 4;
toolstrip_quickbar.Text = "toolStrip2";
//
// btn_liveTrading
//
btn_liveTrading.DisplayStyle = ToolStripItemDisplayStyle.Text;
btn_liveTrading.Name = "btn_liveTrading";
btn_liveTrading.Size = new Size(200, 25);
btn_liveTrading.Text = "LiveTrading (—)";
//
// btn_demoTrading
//
btn_demoTrading.DisplayStyle = ToolStripItemDisplayStyle.Text;
btn_demoTrading.Name = "btn_demoTrading";
btn_demoTrading.Size = new Size(200, 25);
btn_demoTrading.Text = "DemoTrading (—)";
//
// statusStrip_info
//
statusStrip_info.BackColor = Color.Gainsboro;
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.Location = new Point(0, 133);
statusStrip_info.Name = "statusStrip_info";
statusStrip_info.Size = new Size(2599, 22);
statusStrip_info.Size = new Size(2599, 32);
statusStrip_info.TabIndex = 5;
statusStrip_info.Text = "statusStrip1";
//
// lbl_trading
//
lbl_trading.Name = "lbl_trading";
lbl_trading.Size = new Size(100, 16);
lbl_trading.Size = new Size(97, 25);
lbl_trading.Text = "Trading: —";
//
// lbl_modules
//
lbl_modules.Name = "lbl_modules";
lbl_modules.Size = new Size(90, 16);
lbl_modules.Size = new Size(100, 25);
lbl_modules.Text = "Module: —";
//
// lbl_ratelimit
//
lbl_ratelimit.Name = "lbl_ratelimit";
lbl_ratelimit.Size = new Size(80, 16);
lbl_ratelimit.Size = new Size(66, 25);
lbl_ratelimit.Text = "API: —";
//
// LauncherForm
//
AutoScaleDimensions = new SizeF(10F, 25F);
AutoScaleMode = AutoScaleMode.Font;
ClientSize = new Size(2599, 946);
ClientSize = new Size(2599, 165);
Controls.Add(statusStrip_info);
Controls.Add(toolstrip_quickbar);
Controls.Add(toolstrip_windows);
@@ -147,6 +176,8 @@ namespace PolyTraderSharp.Ui
menuStrip.PerformLayout();
toolstrip_windows.ResumeLayout(false);
toolstrip_windows.PerformLayout();
toolstrip_quickbar.ResumeLayout(false);
toolstrip_quickbar.PerformLayout();
statusStrip_info.ResumeLayout(false);
statusStrip_info.PerformLayout();
ResumeLayout(false);
@@ -162,7 +193,10 @@ namespace PolyTraderSharp.Ui
private ToolStrip toolstrip_windows;
private ToolStripButton btn_settings;
private ToolStripButton btn_terminal;
private ToolStripButton btn_jobs;
private ToolStrip toolstrip_quickbar;
private ToolStripButton btn_liveTrading;
private ToolStripButton btn_demoTrading;
private StatusStrip statusStrip_info;
private ToolStripStatusLabel lbl_trading;
private ToolStripStatusLabel lbl_modules;