singrdk/base/Windows/RunParallel/ProgressForm.cs

224 lines
8.5 KiB
C#

///////////////////////////////////////////////////////////////////////////////
//
// Microsoft Research Singularity
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
///////////////////////////////////////////////////////////////////////////////
#if ENABLE_PROGRESS_FORM
using System;
using System.Diagnostics;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace RunParallel
{
public class ProgressForm : Form
{
public ProgressForm()
{
InitializeComponent();
}
private void UpdateTimerTick(object sender, EventArgs e)
{
Program.UpdateProgressGuiThread();
}
bool _allowclose;
public void PublicClose()
{
Debug.WriteLine("gui - PublicClose");
_allowclose = true;
this.Close();
}
protected override void OnClosing(CancelEventArgs e)
{
base.OnClosing(e);
if (!_allowclose)
{
Debug.WriteLine("gui - too early to close");
e.Cancel = true;
}
else
{
Debug.WriteLine("gui - closing");
}
}
protected override void OnClosed(EventArgs e)
{
this._UpdateTimer.Enabled = false;
Debug.WriteLine("gui - closed");
}
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.Windows.Forms.ColumnHeader columnHeader1;
System.Windows.Forms.ColumnHeader columnHeader2;
System.Windows.Forms.ColumnHeader columnHeader3;
this.WorkerListView = new System.Windows.Forms.ListView();
this.label1 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.OverallProgressBar = new System.Windows.Forms.ProgressBar();
this._TotalTasksLabel = new System.Windows.Forms.Label();
this._TasksRemainingLabel = new System.Windows.Forms.Label();
this._UpdateTimer = new System.Windows.Forms.Timer(this.components);
columnHeader1 = new System.Windows.Forms.ColumnHeader();
columnHeader2 = new System.Windows.Forms.ColumnHeader();
columnHeader3 = new System.Windows.Forms.ColumnHeader();
this.SuspendLayout();
//
// WorkerListView
//
this.WorkerListView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.WorkerListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
columnHeader1,
columnHeader2,
columnHeader3});
this.WorkerListView.Location = new System.Drawing.Point(14, 98);
this.WorkerListView.Name = "WorkerListView";
this.WorkerListView.Size = new System.Drawing.Size(728, 157);
this.WorkerListView.TabIndex = 0;
this.WorkerListView.UseCompatibleStateImageBehavior = false;
this.WorkerListView.View = System.Windows.Forms.View.Details;
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(14, 17);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(62, 13);
this.label1.TabIndex = 1;
this.label1.Text = "Total tasks:";
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(14, 41);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(78, 13);
this.label2.TabIndex = 2;
this.label2.Text = "Tasks queued:";
//
// OverallProgressBar
//
this.OverallProgressBar.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.OverallProgressBar.Location = new System.Drawing.Point(249, 41);
this.OverallProgressBar.Name = "OverallProgressBar";
this.OverallProgressBar.Size = new System.Drawing.Size(493, 21);
this.OverallProgressBar.TabIndex = 3;
//
// columnHeader1
//
columnHeader1.Text = "Thread";
columnHeader1.Width = 67;
//
// columnHeader2
//
columnHeader2.Text = "Current Task";
columnHeader2.Width = 148;
//
// columnHeader3
//
columnHeader3.Text = "Command Line";
columnHeader3.Width = 470;
//
// _TotalTasksLabel
//
this._TotalTasksLabel.AutoSize = true;
this._TotalTasksLabel.Location = new System.Drawing.Point(116, 17);
this._TotalTasksLabel.Name = "_TotalTasksLabel";
this._TotalTasksLabel.Size = new System.Drawing.Size(33, 13);
this._TotalTasksLabel.TabIndex = 4;
this._TotalTasksLabel.Text = "(total)";
//
// _TasksRemainingLabel
//
this._TasksRemainingLabel.AutoSize = true;
this._TasksRemainingLabel.Location = new System.Drawing.Point(116, 41);
this._TasksRemainingLabel.Name = "_TasksRemainingLabel";
this._TasksRemainingLabel.Size = new System.Drawing.Size(58, 13);
this._TasksRemainingLabel.TabIndex = 4;
this._TasksRemainingLabel.Text = "(remaining)";
//
// _UpdateTimer
//
this._UpdateTimer.Enabled = true;
this._UpdateTimer.Interval = 250;
this._UpdateTimer.Tick += new System.EventHandler(this.UpdateTimerTick);
//
// ProgressForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(754, 266);
this.Controls.Add(this._TasksRemainingLabel);
this.Controls.Add(this._TotalTasksLabel);
this.Controls.Add(this.OverallProgressBar);
this.Controls.Add(this.label2);
this.Controls.Add(this.label1);
this.Controls.Add(this.WorkerListView);
this.MaximizeBox = false;
this.Name = "ProgressForm";
this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Show;
this.Text = "Run Parallel";
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label2;
internal System.Windows.Forms.ListView WorkerListView;
internal System.Windows.Forms.ProgressBar OverallProgressBar;
internal System.Windows.Forms.Label _TotalTasksLabel;
internal System.Windows.Forms.Label _TasksRemainingLabel;
private System.Windows.Forms.Timer _UpdateTimer;
}
}
#endif