svn path=/trunk/moma/; revision=113856
This commit is contained in:
Jonathan Pobst 2008-09-23 16:09:45 +00:00
Родитель dbe998817c
Коммит faf4b7d7cb
27 изменённых файлов: 1921 добавлений и 727 удалений

90
Controls/WhatsNextButton.Designer.cs сгенерированный Normal file
Просмотреть файл

@ -0,0 +1,90 @@
namespace MoMA
{
partial class WhatsNextButton
{
/// <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 Component 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.label1 = new System.Windows.Forms.Label ();
this.label2 = new System.Windows.Forms.Label ();
this.pictureBox1 = new System.Windows.Forms.PictureBox ();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit ();
this.SuspendLayout ();
//
// label1
//
this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.label1.Font = new System.Drawing.Font ("Arial", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label1.Location = new System.Drawing.Point (70, 4);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size (265, 23);
this.label1.TabIndex = 1;
//
// label2
//
this.label2.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.label2.Font = new System.Drawing.Font ("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label2.Location = new System.Drawing.Point (70, 31);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size (265, 73);
this.label2.TabIndex = 2;
//
// pictureBox1
//
this.pictureBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)));
this.pictureBox1.Location = new System.Drawing.Point (4, 4);
this.pictureBox1.Name = "pictureBox1";
this.pictureBox1.Size = new System.Drawing.Size (60, 100);
this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage;
this.pictureBox1.TabIndex = 0;
this.pictureBox1.TabStop = false;
//
// WhatsNextButton
//
this.AutoScaleDimensions = new System.Drawing.SizeF (6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.Color.White;
this.Controls.Add (this.label2);
this.Controls.Add (this.label1);
this.Controls.Add (this.pictureBox1);
this.Cursor = System.Windows.Forms.Cursors.Hand;
this.Name = "WhatsNextButton";
this.Size = new System.Drawing.Size (338, 108);
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit ();
this.ResumeLayout (false);
}
#endregion
private System.Windows.Forms.PictureBox pictureBox1;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label2;
}
}

144
Controls/WhatsNextButton.cs Normal file
Просмотреть файл

@ -0,0 +1,144 @@
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:c
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
// Copyright (c) 2006-2008 Jonathan Pobst (monkey@jpobst.com)
//
// Author:
// Jonathan Pobst monkey@jpobst.com
//
using System;
using System.ComponentModel;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Windows.Forms;
namespace MoMA
{
[DefaultEvent ("Click")]
public partial class WhatsNextButton : UserControl
{
private bool hover;
public WhatsNextButton ()
{
InitializeComponent ();
MouseEnter += new EventHandler (WhatsNextButton_MouseEnter);
label1.MouseEnter += new EventHandler (WhatsNextButton_MouseEnter);
label2.MouseEnter += new EventHandler (WhatsNextButton_MouseEnter);
pictureBox1.MouseEnter += new EventHandler (WhatsNextButton_MouseEnter);
MouseLeave += new EventHandler (WhatsNextButton_MouseLeave);
label1.MouseLeave += new EventHandler (WhatsNextButton_MouseLeave);
label2.MouseLeave += new EventHandler (WhatsNextButton_MouseLeave);
pictureBox1.MouseLeave += new EventHandler (WhatsNextButton_MouseLeave);
label1.Click += new EventHandler (HandleClick);
label2.Click += new EventHandler (HandleClick);
pictureBox1.Click += new EventHandler (HandleClick);
}
private void HandleClick (object sender, EventArgs e)
{
OnClick (e);
}
private void WhatsNextButton_MouseLeave (object sender, EventArgs e)
{
if (hover) {
hover = false;
Invalidate ();
}
}
private void WhatsNextButton_MouseEnter (object sender, EventArgs e)
{
if (!hover) {
hover = true;
Invalidate ();
}
}
public Image Image {
get { return pictureBox1.Image; }
set { pictureBox1.Image = value; }
}
public string Title {
get { return label1.Text; }
set { label1.Text = value; }
}
[Browsable (true)]
[DesignerSerializationVisibility (DesignerSerializationVisibility.Visible)]
public override string Text {
get { return label2.Text; }
set { label2.Text = value; }
}
protected override void OnPaintBackground (PaintEventArgs e)
{
base.OnPaintBackground (e);
if (hover) {
Rectangle r = new Rectangle (0, 0, Width - 1, Height - 1);
DrawRoundedRectangle (e.Graphics, r, 5f, Pens.Black);
}
}
// Create a rounded rectangle path with a given Rectangle and a given corner Diameter
public static GraphicsPath CreateRoundedRectanglePath (Rectangle rect, float diameter)
{
GraphicsPath path = new GraphicsPath ();
RectangleF arcrect = new RectangleF (rect.Location, new SizeF (diameter, diameter));
// Top left arc
path.AddArc (arcrect, 190, 90);
path.AddLine (rect.Left + (int)(diameter / 2), rect.Top, rect.Left + rect.Width - (int)(diameter / 2), rect.Top);
// Top right arc
arcrect.X = rect.Right - diameter;
path.AddArc (arcrect, 270, 90);
path.AddLine (rect.Left + rect.Width, rect.Top + (int)(diameter / 2), rect.Left + rect.Width, rect.Top + rect.Height - (int)(diameter / 2));
// Bottom right arc
arcrect.Y = rect.Bottom - diameter;
path.AddArc (arcrect, 0, 90);
// Bottom left arc
arcrect.X = rect.Left;
path.AddArc (arcrect, 90, 90);
path.CloseFigure ();
return path;
}
// Draw a rounded rectangle at a given Rectangle with a given corner Diameter
public static void DrawRoundedRectangle (Graphics g, Rectangle rect, float diameter, Pen p)
{
g.SmoothingMode = SmoothingMode.HighQuality;
using (GraphicsPath path = CreateRoundedRectanglePath (rect, diameter))
g.DrawPath (p, path);
}
}
}

Просмотреть файл

Просмотреть файл

@ -0,0 +1,36 @@
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:c
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
// Copyright (c) 2006-2008 Jonathan Pobst (monkey@jpobst.com)
//
// Author:
// Jonathan Pobst monkey@jpobst.com
//
namespace MoMA
{
public enum WizardStep
{
Introduction = 1,
ChooseAssemblies = 2,
ViewResults = 3,
SubmitResults = 4,
WhatsNext = 5
}
}

Просмотреть файл

@ -1,173 +1,175 @@
namespace MoMA
{
partial class DefinitionDownloader
{
/// <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.label1 = new System.Windows.Forms.Label ();
this.label2 = new System.Windows.Forms.Label ();
this.label3 = new System.Windows.Forms.Label ();
this.VersionLabel = new System.Windows.Forms.Label ();
this.DateLabel = new System.Windows.Forms.Label ();
this.DownloadButton = new System.Windows.Forms.Button ();
this.CloseButton = new System.Windows.Forms.Button ();
this.DownloadSpinner = new System.Windows.Forms.PictureBox ();
this.DownloadLabel = new System.Windows.Forms.Label ();
((System.ComponentModel.ISupportInitialize)(this.DownloadSpinner)).BeginInit ();
this.SuspendLayout ();
//
// label1
//
this.label1.BackColor = System.Drawing.Color.Transparent;
this.label1.Font = new System.Drawing.Font ("Arial", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label1.Location = new System.Drawing.Point (13, 12);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size (418, 17);
this.label1.TabIndex = 0;
this.label1.Text = "New MoMA definitions are available:";
//
// label2
//
this.label2.BackColor = System.Drawing.Color.Transparent;
this.label2.Font = new System.Drawing.Font ("Arial", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label2.Location = new System.Drawing.Point (90, 55);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size (75, 17);
this.label2.TabIndex = 1;
this.label2.Text = "Version:";
this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// label3
//
this.label3.BackColor = System.Drawing.Color.Transparent;
this.label3.Font = new System.Drawing.Font ("Arial", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label3.Location = new System.Drawing.Point (90, 77);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size (75, 17);
this.label3.TabIndex = 2;
this.label3.Text = "Date:";
this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// VersionLabel
//
this.VersionLabel.BackColor = System.Drawing.Color.Transparent;
this.VersionLabel.Font = new System.Drawing.Font ("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.VersionLabel.Location = new System.Drawing.Point (171, 56);
this.VersionLabel.Name = "VersionLabel";
this.VersionLabel.Size = new System.Drawing.Size (164, 17);
this.VersionLabel.TabIndex = 3;
this.VersionLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// DateLabel
//
this.DateLabel.BackColor = System.Drawing.Color.Transparent;
this.DateLabel.Font = new System.Drawing.Font ("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.DateLabel.Location = new System.Drawing.Point (171, 78);
this.DateLabel.Name = "DateLabel";
this.DateLabel.Size = new System.Drawing.Size (164, 17);
this.DateLabel.TabIndex = 4;
this.DateLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// DownloadButton
//
this.DownloadButton.Location = new System.Drawing.Point (213, 126);
this.DownloadButton.Name = "DownloadButton";
this.DownloadButton.Size = new System.Drawing.Size (86, 30);
this.DownloadButton.TabIndex = 8;
this.DownloadButton.Text = "Download";
this.DownloadButton.UseVisualStyleBackColor = true;
this.DownloadButton.Click += new System.EventHandler (this.DownloadButton_Click);
//
// CloseButton
//
this.CloseButton.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.CloseButton.Location = new System.Drawing.Point (305, 126);
this.CloseButton.Name = "CloseButton";
this.CloseButton.Size = new System.Drawing.Size (86, 30);
this.CloseButton.TabIndex = 9;
this.CloseButton.Text = "Close";
this.CloseButton.UseVisualStyleBackColor = true;
this.CloseButton.Click += new System.EventHandler (this.CloseButton_Click);
//
// DownloadSpinner
//
this.DownloadSpinner.Location = new System.Drawing.Point (19, 132);
this.DownloadSpinner.Name = "DownloadSpinner";
this.DownloadSpinner.Size = new System.Drawing.Size (16, 16);
this.DownloadSpinner.TabIndex = 10;
this.DownloadSpinner.TabStop = false;
this.DownloadSpinner.Visible = false;
//
// DownloadLabel
//
this.DownloadLabel.BackColor = System.Drawing.Color.Transparent;
this.DownloadLabel.Font = new System.Drawing.Font ("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.DownloadLabel.Location = new System.Drawing.Point (41, 133);
this.DownloadLabel.Name = "DownloadLabel";
this.DownloadLabel.Size = new System.Drawing.Size (147, 17);
this.DownloadLabel.TabIndex = 11;
this.DownloadLabel.Text = "Downloading...";
this.DownloadLabel.Visible = false;
//
// DefinitionDownloader
//
this.AutoScaleDimensions = new System.Drawing.SizeF (6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.Color.White;
this.CancelButton = this.CloseButton;
this.ClientSize = new System.Drawing.Size (403, 167);
this.Controls.Add (this.DownloadLabel);
this.Controls.Add (this.DownloadSpinner);
this.Controls.Add (this.CloseButton);
this.Controls.Add (this.DownloadButton);
this.Controls.Add (this.DateLabel);
this.Controls.Add (this.VersionLabel);
this.Controls.Add (this.label3);
this.Controls.Add (this.label2);
this.Controls.Add (this.label1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.Name = "DefinitionDownloader";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "Download New Definitions?";
((System.ComponentModel.ISupportInitialize)(this.DownloadSpinner)).EndInit ();
this.ResumeLayout (false);
}
#endregion
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Label VersionLabel;
private System.Windows.Forms.Label DateLabel;
private System.Windows.Forms.Button DownloadButton;
private System.Windows.Forms.Button CloseButton;
private System.Windows.Forms.PictureBox DownloadSpinner;
private System.Windows.Forms.Label DownloadLabel;
}
namespace MoMA
{
partial class DefinitionDownloader
{
/// <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.label1 = new System.Windows.Forms.Label ();
this.label2 = new System.Windows.Forms.Label ();
this.label3 = new System.Windows.Forms.Label ();
this.VersionLabel = new System.Windows.Forms.Label ();
this.DateLabel = new System.Windows.Forms.Label ();
this.DownloadButton = new System.Windows.Forms.Button ();
this.CloseButton = new System.Windows.Forms.Button ();
this.DownloadSpinner = new System.Windows.Forms.PictureBox ();
this.DownloadLabel = new System.Windows.Forms.Label ();
((System.ComponentModel.ISupportInitialize)(this.DownloadSpinner)).BeginInit ();
this.SuspendLayout ();
//
// label1
//
this.label1.BackColor = System.Drawing.Color.Transparent;
this.label1.Font = new System.Drawing.Font ("Arial", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label1.ForeColor = System.Drawing.Color.White;
this.label1.Location = new System.Drawing.Point (12, 3);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size (379, 24);
this.label1.TabIndex = 0;
this.label1.Text = "New MoMA definitions are available!";
this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// label2
//
this.label2.BackColor = System.Drawing.Color.Transparent;
this.label2.Font = new System.Drawing.Font ("Arial", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label2.Location = new System.Drawing.Point (90, 55);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size (75, 17);
this.label2.TabIndex = 1;
this.label2.Text = "Version:";
this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// label3
//
this.label3.BackColor = System.Drawing.Color.Transparent;
this.label3.Font = new System.Drawing.Font ("Arial", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label3.Location = new System.Drawing.Point (90, 77);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size (75, 17);
this.label3.TabIndex = 2;
this.label3.Text = "Date:";
this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// VersionLabel
//
this.VersionLabel.BackColor = System.Drawing.Color.Transparent;
this.VersionLabel.Font = new System.Drawing.Font ("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.VersionLabel.Location = new System.Drawing.Point (171, 56);
this.VersionLabel.Name = "VersionLabel";
this.VersionLabel.Size = new System.Drawing.Size (164, 17);
this.VersionLabel.TabIndex = 3;
this.VersionLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// DateLabel
//
this.DateLabel.BackColor = System.Drawing.Color.Transparent;
this.DateLabel.Font = new System.Drawing.Font ("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.DateLabel.Location = new System.Drawing.Point (171, 78);
this.DateLabel.Name = "DateLabel";
this.DateLabel.Size = new System.Drawing.Size (164, 17);
this.DateLabel.TabIndex = 4;
this.DateLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// DownloadButton
//
this.DownloadButton.Location = new System.Drawing.Point (213, 126);
this.DownloadButton.Name = "DownloadButton";
this.DownloadButton.Size = new System.Drawing.Size (86, 30);
this.DownloadButton.TabIndex = 8;
this.DownloadButton.Text = "Download";
this.DownloadButton.UseVisualStyleBackColor = true;
this.DownloadButton.Click += new System.EventHandler (this.DownloadButton_Click);
//
// CloseButton
//
this.CloseButton.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.CloseButton.Location = new System.Drawing.Point (305, 126);
this.CloseButton.Name = "CloseButton";
this.CloseButton.Size = new System.Drawing.Size (86, 30);
this.CloseButton.TabIndex = 9;
this.CloseButton.Text = "Close";
this.CloseButton.UseVisualStyleBackColor = true;
this.CloseButton.Click += new System.EventHandler (this.CloseButton_Click);
//
// DownloadSpinner
//
this.DownloadSpinner.Location = new System.Drawing.Point (19, 132);
this.DownloadSpinner.Name = "DownloadSpinner";
this.DownloadSpinner.Size = new System.Drawing.Size (16, 16);
this.DownloadSpinner.TabIndex = 10;
this.DownloadSpinner.TabStop = false;
this.DownloadSpinner.Visible = false;
//
// DownloadLabel
//
this.DownloadLabel.BackColor = System.Drawing.Color.Transparent;
this.DownloadLabel.Font = new System.Drawing.Font ("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.DownloadLabel.Location = new System.Drawing.Point (41, 133);
this.DownloadLabel.Name = "DownloadLabel";
this.DownloadLabel.Size = new System.Drawing.Size (147, 17);
this.DownloadLabel.TabIndex = 11;
this.DownloadLabel.Text = "Downloading...";
this.DownloadLabel.Visible = false;
//
// DefinitionDownloader
//
this.AutoScaleDimensions = new System.Drawing.SizeF (6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.Color.White;
this.CancelButton = this.CloseButton;
this.ClientSize = new System.Drawing.Size (403, 167);
this.Controls.Add (this.DownloadLabel);
this.Controls.Add (this.DownloadSpinner);
this.Controls.Add (this.CloseButton);
this.Controls.Add (this.DownloadButton);
this.Controls.Add (this.DateLabel);
this.Controls.Add (this.VersionLabel);
this.Controls.Add (this.label3);
this.Controls.Add (this.label2);
this.Controls.Add (this.label1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.Name = "DefinitionDownloader";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "Download New Definitions?";
((System.ComponentModel.ISupportInitialize)(this.DownloadSpinner)).EndInit ();
this.ResumeLayout (false);
}
#endregion
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Label VersionLabel;
private System.Windows.Forms.Label DateLabel;
private System.Windows.Forms.Button DownloadButton;
private System.Windows.Forms.Button CloseButton;
private System.Windows.Forms.PictureBox DownloadSpinner;
private System.Windows.Forms.Label DownloadLabel;
}
}

Просмотреть файл

@ -1,109 +1,131 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using MoMA.Analyzer;
using System.IO;
namespace MoMA
{
public partial class DefinitionDownloader : Form
{
private FileDefinition fd;
private string image_directory;
public DefinitionDownloader ()
{
InitializeComponent ();
image_directory = Path.Combine (Path.GetDirectoryName (Application.ExecutablePath), "Resources");
LoadImages ();
}
public void LoadDefinitionFile (FileDefinition fd)
{
this.fd = fd;
this.VersionLabel.Text = fd.Version;
this.DateLabel.Text = fd.Date.ToShortDateString ();
}
private void CloseButton_Click (object sender, EventArgs e)
{
this.DialogResult = DialogResult.Cancel;
}
private void DownloadButton_Click (object sender, EventArgs e)
{
DownloadButton.Enabled = false;
DownloadLabel.Visible = true;
DownloadSpinner.Visible = true;
Application.DoEvents ();
try {
string definition_directory;
// Unix-y people generally can't write to where the executable is, so move it to their home
if (Environment.OSVersion.Platform == PlatformID.Unix)
definition_directory = Path.Combine (Path.Combine (Environment.GetFolderPath (Environment.SpecialFolder.ApplicationData), "moma"), "Definitions");
else
definition_directory = Path.Combine (Path.GetDirectoryName (Application.ExecutablePath), "Definitions");
if (!Directory.Exists (definition_directory))
Directory.CreateDirectory (definition_directory);
string definition_file = Path.Combine (definition_directory, Path.GetFileName (fd.FileName));
System.Net.WebClient wc = new System.Net.WebClient ();
// I couldn't get DownloadFileAsync to work on Mono, so my spinner won't spin on Mono.
// But I envision my users mainly being .Net, so I want to make sure that it spins for them.
// Hence this nasty hack.
if (RunningOnMono ()) {
wc.DownloadFile (new Uri(fd.FileName), definition_file);
this.DialogResult = DialogResult.OK;
} else {
wc.DownloadFileCompleted += new AsyncCompletedEventHandler (wc_DownloadFileCompleted);
wc.DownloadFileAsync (new Uri (fd.FileName), definition_file);
}
}
catch (Exception ex) {
MessageBox.Show (string.Format ("Download failed. Reason:\n{0}", ex.ToString ()));
this.DialogResult = DialogResult.Cancel;
}
}
void wc_DownloadFileCompleted (object sender, AsyncCompletedEventArgs e)
{
if (e.Error != null)
MessageBox.Show (string.Format ("Download failed. Reason:\n{0}", e.Error.ToString ()));
this.DialogResult = DialogResult.OK;
}
private bool RunningOnMono ()
{
Type t = typeof (int);
if (t.GetType ().ToString () == "System.MonoType")
return true;
return false;
}
private void LoadImages ()
{
try {
this.BackgroundImage = Image.FromFile (Path.Combine (image_directory, "monoback.png"));
DownloadSpinner.Image = Image.FromFile (Path.Combine (image_directory, "spinner.gif"));
}
catch (Exception ex) {
MessageBox.Show (string.Format ("There was an error loading resources for MoMA, please try downloading a new copy.\nError: {0}", ex.ToString ()));
}
}
}
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:c
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
// Copyright (c) 2006-2008 Jonathan Pobst (monkey@jpobst.com)
//
// Author:
// Jonathan Pobst monkey@jpobst.com
//
using System;
using System.ComponentModel;
using System.Drawing;
using System.IO;
using System.Windows.Forms;
using MoMA.Analyzer;
namespace MoMA
{
public partial class DefinitionDownloader : Form
{
private FileDefinition fd;
private string image_directory;
public DefinitionDownloader ()
{
InitializeComponent ();
image_directory = Path.Combine (Path.GetDirectoryName (Application.ExecutablePath), "Resources");
LoadImages ();
}
public void LoadDefinitionFile (FileDefinition fd)
{
this.fd = fd;
this.VersionLabel.Text = fd.Version;
this.DateLabel.Text = fd.Date.ToShortDateString ();
}
private void CloseButton_Click (object sender, EventArgs e)
{
this.DialogResult = DialogResult.Cancel;
}
private void DownloadButton_Click (object sender, EventArgs e)
{
DownloadButton.Enabled = false;
DownloadLabel.Visible = true;
DownloadSpinner.Visible = true;
Application.DoEvents ();
try {
string definition_directory;
// Unix-y people generally can't write to where the executable is, so move it to their home
if (Environment.OSVersion.Platform == PlatformID.Unix)
definition_directory = Path.Combine (Path.Combine (Environment.GetFolderPath (Environment.SpecialFolder.ApplicationData), "moma"), "Definitions");
else
definition_directory = Path.Combine (Path.GetDirectoryName (Application.ExecutablePath), "Definitions");
if (!Directory.Exists (definition_directory))
Directory.CreateDirectory (definition_directory);
string definition_file = Path.Combine (definition_directory, Path.GetFileName (fd.FileName));
System.Net.WebClient wc = new System.Net.WebClient ();
// I couldn't get DownloadFileAsync to work on Mono, so my spinner won't spin on Mono.
// But I envision my users mainly being .Net, so I want to make sure that it spins for them.
// Hence this nasty hack.
if (RunningOnMono ()) {
wc.DownloadFile (new Uri(fd.FileName), definition_file);
this.DialogResult = DialogResult.OK;
} else {
wc.DownloadFileCompleted += new AsyncCompletedEventHandler (wc_DownloadFileCompleted);
wc.DownloadFileAsync (new Uri (fd.FileName), definition_file);
}
}
catch (Exception ex) {
MessageBox.Show (string.Format ("Download failed. Reason:\n{0}", ex.ToString ()));
this.DialogResult = DialogResult.Cancel;
}
}
void wc_DownloadFileCompleted (object sender, AsyncCompletedEventArgs e)
{
if (e.Error != null)
MessageBox.Show (string.Format ("Download failed. Reason:\n{0}", e.Error.ToString ()));
this.DialogResult = DialogResult.OK;
}
private bool RunningOnMono ()
{
Type t = typeof (int);
if (t.GetType ().ToString () == "System.MonoType")
return true;
return false;
}
private void LoadImages ()
{
try {
this.BackgroundImage = Image.FromFile (Path.Combine (image_directory, "dialogback.png"));
DownloadSpinner.Image = Image.FromFile (Path.Combine (image_directory, "spinner.gif"));
}
catch (Exception ex) {
MessageBox.Show (string.Format ("There was an error loading resources for MoMA, please try downloading a new copy.\nError: {0}", ex.ToString ()));
}
}
}
}

Просмотреть файл

@ -117,18 +117,4 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="IntroductionLabel.Text" xml:space="preserve">
<value>The Mono Migration Analyzer (MoMA) tool helps you identify issues you may have when porting your .Net application to Mono. It helps pinpoint platform specific calls (P/Invoke) and areas that are not yet supported by the Mono project.
While MoMA can help show potential issues, there are many complex factors that cannot be covered by a simple tool. MoMA may fail to point out areas that will cause problems, and may point out areas which will not actually be an issue.
Use the results provided as a guide to get you started on porting your application, but remember the true test is actually running your application on Mono.
Good luck!</value>
</data>
<data name="SubmitInstructions.Text" xml:space="preserve">
<value>Want to help out the Mono project? Please submit your results to the Mono team so they can prioritize their efforts based on what functionality people need most.
The following report has been prepared. It doesn't contain any information about your assemblies, just which incomplete methods it calls in Mono and which P/Invokes it uses. (You can view the report before sending as well.)</value>
</data>
</root>

636
MainForm.Designer.cs → Forms/MainForm.Designer.cs сгенерированный
Просмотреть файл

@ -27,11 +27,10 @@ namespace MoMA
/// </summary>
private void InitializeComponent ()
{
this.components = new System.ComponentModel.Container ();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager (typeof (MainForm));
this.pictureBox1 = new System.Windows.Forms.PictureBox ();
this.NextButton = new System.Windows.Forms.Button ();
this.BackButton = new System.Windows.Forms.Button ();
this.label1 = new System.Windows.Forms.Label ();
this.StepLabel = new System.Windows.Forms.Label ();
this.IntroductionLabel = new System.Windows.Forms.Label ();
this.AssemblyLabel = new System.Windows.Forms.Label ();
@ -39,55 +38,64 @@ namespace MoMA
this.AssemblyRemoveButton = new System.Windows.Forms.Button ();
this.AssemblyListView = new System.Windows.Forms.ListView ();
this.columnHeader1 = new System.Windows.Forms.ColumnHeader ();
this.MonoTodoResultsImage = new System.Windows.Forms.PictureBox ();
this.MonoTodoResultsLabel = new System.Windows.Forms.Label ();
this.AnalysisResultsLabel = new System.Windows.Forms.Label ();
this.NotImplementedResultsLabel = new System.Windows.Forms.Label ();
this.NotImplementedResultsImage = new System.Windows.Forms.PictureBox ();
this.PInvokesResultsLabel = new System.Windows.Forms.Label ();
this.PInvokesResultsImage = new System.Windows.Forms.PictureBox ();
this.AssemblyInstructions = new System.Windows.Forms.Label ();
this.MissingResultsLabel = new System.Windows.Forms.Label ();
this.MissingResultsImage = new System.Windows.Forms.PictureBox ();
this.ResultsText = new System.Windows.Forms.Label ();
this.ResultsDetailLink = new System.Windows.Forms.LinkLabel ();
this.ProjectLink = new System.Windows.Forms.LinkLabel ();
this.SubmitLabel = new System.Windows.Forms.Label ();
this.SubmitInstructions = new System.Windows.Forms.Label ();
this.ViewReportButton = new System.Windows.Forms.Button ();
this.SubmitReportButton = new System.Windows.Forms.Button ();
this.label2 = new System.Windows.Forms.Label ();
this.MonoVersionCombo = new System.Windows.Forms.ComboBox ();
this.MonoVersionLabel = new System.Windows.Forms.Label ();
this.CheckUpdateLink = new System.Windows.Forms.LinkLabel ();
this.OptionalGroupBox = new System.Windows.Forms.GroupBox ();
this.DirectoryAddButton = new System.Windows.Forms.Button ();
this.toolTip1 = new System.Windows.Forms.ToolTip (this.components);
this.WhatsNextLabel = new System.Windows.Forms.Label ();
this.Step1Panel = new System.Windows.Forms.Panel ();
this.Step4Panel = new System.Windows.Forms.Panel ();
this.label4 = new System.Windows.Forms.Label ();
this.DescriptionComboBox = new System.Windows.Forms.ComboBox ();
this.label3 = new System.Windows.Forms.Label ();
this.OptionalHomePageBox = new System.Windows.Forms.TextBox ();
this.OptionalOrganizationBox = new System.Windows.Forms.TextBox ();
this.OptionalCommentsBox = new System.Windows.Forms.TextBox ();
this.label7 = new System.Windows.Forms.Label ();
this.label1 = new System.Windows.Forms.Label ();
this.OptionalEmailBox = new System.Windows.Forms.TextBox ();
this.label3 = new System.Windows.Forms.Label ();
this.label8 = new System.Windows.Forms.Label ();
this.OptionalNameBox = new System.Windows.Forms.TextBox ();
this.label4 = new System.Windows.Forms.Label ();
this.label6 = new System.Windows.Forms.Label ();
this.label5 = new System.Windows.Forms.Label ();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit ();
this.label9 = new System.Windows.Forms.Label ();
this.label11 = new System.Windows.Forms.Label ();
this.label10 = new System.Windows.Forms.Label ();
this.Step3Panel = new System.Windows.Forms.Panel ();
this.MonoTodoResultsImage = new System.Windows.Forms.PictureBox ();
this.NotImplementedResultsImage = new System.Windows.Forms.PictureBox ();
this.PInvokesResultsImage = new System.Windows.Forms.PictureBox ();
this.MissingResultsImage = new System.Windows.Forms.PictureBox ();
this.Step2Panel = new System.Windows.Forms.Panel ();
this.ScanningSpinner = new System.Windows.Forms.PictureBox ();
this.ScanningLabel = new System.Windows.Forms.Label ();
this.Step5Panel = new System.Windows.Forms.Panel ();
this.GettingStartedButton = new MoMA.WhatsNextButton ();
this.DownloadMonoButton = new MoMA.WhatsNextButton ();
this.DownloadMonoDevelopButton = new MoMA.WhatsNextButton ();
this.Step1Panel.SuspendLayout ();
this.Step4Panel.SuspendLayout ();
this.Step3Panel.SuspendLayout ();
((System.ComponentModel.ISupportInitialize)(this.MonoTodoResultsImage)).BeginInit ();
((System.ComponentModel.ISupportInitialize)(this.NotImplementedResultsImage)).BeginInit ();
((System.ComponentModel.ISupportInitialize)(this.PInvokesResultsImage)).BeginInit ();
((System.ComponentModel.ISupportInitialize)(this.MissingResultsImage)).BeginInit ();
this.OptionalGroupBox.SuspendLayout ();
this.Step2Panel.SuspendLayout ();
((System.ComponentModel.ISupportInitialize)(this.ScanningSpinner)).BeginInit ();
this.Step5Panel.SuspendLayout ();
this.SuspendLayout ();
//
// pictureBox1
//
this.pictureBox1.BackColor = System.Drawing.Color.Transparent;
this.pictureBox1.Location = new System.Drawing.Point (12, 12);
this.pictureBox1.Name = "pictureBox1";
this.pictureBox1.Size = new System.Drawing.Size (100, 119);
this.pictureBox1.TabIndex = 0;
this.pictureBox1.TabStop = false;
//
// NextButton
//
this.NextButton.Location = new System.Drawing.Point (621, 429);
@ -109,31 +117,21 @@ namespace MoMA
this.BackButton.UseVisualStyleBackColor = true;
this.BackButton.Click += new System.EventHandler (this.BackButton_Click);
//
// label1
//
this.label1.AutoSize = true;
this.label1.BackColor = System.Drawing.Color.Transparent;
this.label1.Font = new System.Drawing.Font ("Arial", 20.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label1.Location = new System.Drawing.Point (135, 12);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size (340, 32);
this.label1.TabIndex = 3;
this.label1.Text = "Mono Migration Analyzer";
//
// StepLabel
//
this.StepLabel.BackColor = System.Drawing.Color.Transparent;
this.StepLabel.Font = new System.Drawing.Font ("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.StepLabel.Location = new System.Drawing.Point (267, 429);
this.StepLabel.Location = new System.Drawing.Point (279, 429);
this.StepLabel.Name = "StepLabel";
this.StepLabel.Size = new System.Drawing.Size (101, 14);
this.StepLabel.TabIndex = 4;
this.StepLabel.Text = "Step 1 of 4";
this.StepLabel.Text = "Step 1 of 5";
this.StepLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// IntroductionLabel
//
this.IntroductionLabel.Font = new System.Drawing.Font ("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.IntroductionLabel.Location = new System.Drawing.Point (138, 130);
this.IntroductionLabel.Location = new System.Drawing.Point (34, 27);
this.IntroductionLabel.Name = "IntroductionLabel";
this.IntroductionLabel.Size = new System.Drawing.Size (530, 202);
this.IntroductionLabel.TabIndex = 5;
@ -142,7 +140,7 @@ namespace MoMA
// AssemblyLabel
//
this.AssemblyLabel.Font = new System.Drawing.Font ("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.AssemblyLabel.Location = new System.Drawing.Point (170, 100);
this.AssemblyLabel.Location = new System.Drawing.Point (70, 21);
this.AssemblyLabel.Name = "AssemblyLabel";
this.AssemblyLabel.Size = new System.Drawing.Size (416, 20);
this.AssemblyLabel.TabIndex = 6;
@ -150,19 +148,25 @@ namespace MoMA
//
// AssemblyAddButton
//
this.AssemblyAddButton.Location = new System.Drawing.Point (592, 123);
this.AssemblyAddButton.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.AssemblyAddButton.Location = new System.Drawing.Point (488, 84);
this.AssemblyAddButton.Name = "AssemblyAddButton";
this.AssemblyAddButton.Size = new System.Drawing.Size (30, 30);
this.AssemblyAddButton.TabIndex = 8;
this.AssemblyAddButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;
this.toolTip1.SetToolTip (this.AssemblyAddButton, "Add Assembly");
this.AssemblyAddButton.UseVisualStyleBackColor = true;
this.AssemblyAddButton.Click += new System.EventHandler (this.AssemblyAddButton_Click);
//
// AssemblyRemoveButton
//
this.AssemblyRemoveButton.Location = new System.Drawing.Point (592, 159);
this.AssemblyRemoveButton.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.AssemblyRemoveButton.Location = new System.Drawing.Point (488, 120);
this.AssemblyRemoveButton.Name = "AssemblyRemoveButton";
this.AssemblyRemoveButton.Size = new System.Drawing.Size (30, 30);
this.AssemblyRemoveButton.TabIndex = 9;
this.AssemblyRemoveButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;
this.toolTip1.SetToolTip (this.AssemblyRemoveButton, "Remove Assembly");
this.AssemblyRemoveButton.UseVisualStyleBackColor = true;
this.AssemblyRemoveButton.Click += new System.EventHandler (this.AssemblyRemoveButton_Click);
//
@ -171,7 +175,7 @@ namespace MoMA
this.AssemblyListView.Columns.AddRange (new System.Windows.Forms.ColumnHeader[] {
this.columnHeader1});
this.AssemblyListView.FullRowSelect = true;
this.AssemblyListView.Location = new System.Drawing.Point (173, 123);
this.AssemblyListView.Location = new System.Drawing.Point (70, 49);
this.AssemblyListView.Name = "AssemblyListView";
this.AssemblyListView.Size = new System.Drawing.Size (413, 145);
this.AssemblyListView.TabIndex = 10;
@ -183,18 +187,10 @@ namespace MoMA
this.columnHeader1.Text = "Assembly";
this.columnHeader1.Width = 409;
//
// MonoTodoResultsImage
//
this.MonoTodoResultsImage.Location = new System.Drawing.Point (193, 214);
this.MonoTodoResultsImage.Name = "MonoTodoResultsImage";
this.MonoTodoResultsImage.Size = new System.Drawing.Size (22, 22);
this.MonoTodoResultsImage.TabIndex = 11;
this.MonoTodoResultsImage.TabStop = false;
//
// MonoTodoResultsLabel
//
this.MonoTodoResultsLabel.Font = new System.Drawing.Font ("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.MonoTodoResultsLabel.Location = new System.Drawing.Point (220, 216);
this.MonoTodoResultsLabel.Location = new System.Drawing.Point (117, 135);
this.MonoTodoResultsLabel.Name = "MonoTodoResultsLabel";
this.MonoTodoResultsLabel.Size = new System.Drawing.Size (310, 20);
this.MonoTodoResultsLabel.TabIndex = 12;
@ -203,7 +199,7 @@ namespace MoMA
// AnalysisResultsLabel
//
this.AnalysisResultsLabel.Font = new System.Drawing.Font ("Arial", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.AnalysisResultsLabel.Location = new System.Drawing.Point (169, 100);
this.AnalysisResultsLabel.Location = new System.Drawing.Point (39, 13);
this.AnalysisResultsLabel.Name = "AnalysisResultsLabel";
this.AnalysisResultsLabel.Size = new System.Drawing.Size (416, 20);
this.AnalysisResultsLabel.TabIndex = 14;
@ -212,41 +208,25 @@ namespace MoMA
// NotImplementedResultsLabel
//
this.NotImplementedResultsLabel.Font = new System.Drawing.Font ("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.NotImplementedResultsLabel.Location = new System.Drawing.Point (220, 188);
this.NotImplementedResultsLabel.Location = new System.Drawing.Point (117, 107);
this.NotImplementedResultsLabel.Name = "NotImplementedResultsLabel";
this.NotImplementedResultsLabel.Size = new System.Drawing.Size (395, 20);
this.NotImplementedResultsLabel.TabIndex = 16;
this.NotImplementedResultsLabel.Text = "Methods called that throw NotImplementedException: 0";
//
// NotImplementedResultsImage
//
this.NotImplementedResultsImage.Location = new System.Drawing.Point (193, 186);
this.NotImplementedResultsImage.Name = "NotImplementedResultsImage";
this.NotImplementedResultsImage.Size = new System.Drawing.Size (22, 22);
this.NotImplementedResultsImage.TabIndex = 15;
this.NotImplementedResultsImage.TabStop = false;
//
// PInvokesResultsLabel
//
this.PInvokesResultsLabel.Font = new System.Drawing.Font ("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.PInvokesResultsLabel.Location = new System.Drawing.Point (220, 160);
this.PInvokesResultsLabel.Location = new System.Drawing.Point (117, 79);
this.PInvokesResultsLabel.Name = "PInvokesResultsLabel";
this.PInvokesResultsLabel.Size = new System.Drawing.Size (310, 20);
this.PInvokesResultsLabel.TabIndex = 19;
this.PInvokesResultsLabel.Text = "P/Invokes called: 0";
//
// PInvokesResultsImage
//
this.PInvokesResultsImage.Location = new System.Drawing.Point (193, 158);
this.PInvokesResultsImage.Name = "PInvokesResultsImage";
this.PInvokesResultsImage.Size = new System.Drawing.Size (22, 22);
this.PInvokesResultsImage.TabIndex = 18;
this.PInvokesResultsImage.TabStop = false;
//
// AssemblyInstructions
//
this.AssemblyInstructions.Font = new System.Drawing.Font ("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.AssemblyInstructions.Location = new System.Drawing.Point (173, 278);
this.AssemblyInstructions.Location = new System.Drawing.Point (70, 204);
this.AssemblyInstructions.Name = "AssemblyInstructions";
this.AssemblyInstructions.Size = new System.Drawing.Size (413, 54);
this.AssemblyInstructions.TabIndex = 21;
@ -257,24 +237,16 @@ namespace MoMA
// MissingResultsLabel
//
this.MissingResultsLabel.Font = new System.Drawing.Font ("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.MissingResultsLabel.Location = new System.Drawing.Point (220, 132);
this.MissingResultsLabel.Location = new System.Drawing.Point (117, 51);
this.MissingResultsLabel.Name = "MissingResultsLabel";
this.MissingResultsLabel.Size = new System.Drawing.Size (310, 20);
this.MissingResultsLabel.TabIndex = 23;
this.MissingResultsLabel.Text = "Methods that still missing in Mono: 0";
//
// MissingResultsImage
//
this.MissingResultsImage.Location = new System.Drawing.Point (193, 130);
this.MissingResultsImage.Name = "MissingResultsImage";
this.MissingResultsImage.Size = new System.Drawing.Size (22, 22);
this.MissingResultsImage.TabIndex = 22;
this.MissingResultsImage.TabStop = false;
//
// ResultsText
//
this.ResultsText.Font = new System.Drawing.Font ("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.ResultsText.Location = new System.Drawing.Point (170, 278);
this.ResultsText.Location = new System.Drawing.Point (67, 197);
this.ResultsText.Name = "ResultsText";
this.ResultsText.Size = new System.Drawing.Size (416, 54);
this.ResultsText.TabIndex = 24;
@ -285,7 +257,7 @@ namespace MoMA
//
this.ResultsDetailLink.AutoSize = true;
this.ResultsDetailLink.Font = new System.Drawing.Font ("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.ResultsDetailLink.Location = new System.Drawing.Point (471, 332);
this.ResultsDetailLink.Location = new System.Drawing.Point (368, 251);
this.ResultsDetailLink.Name = "ResultsDetailLink";
this.ResultsDetailLink.Size = new System.Drawing.Size (115, 16);
this.ResultsDetailLink.TabIndex = 25;
@ -295,8 +267,9 @@ namespace MoMA
//
// ProjectLink
//
this.ProjectLink.BackColor = System.Drawing.Color.Transparent;
this.ProjectLink.Font = new System.Drawing.Font ("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.ProjectLink.Location = new System.Drawing.Point (243, 445);
this.ProjectLink.Location = new System.Drawing.Point (255, 445);
this.ProjectLink.Name = "ProjectLink";
this.ProjectLink.Size = new System.Drawing.Size (172, 14);
this.ProjectLink.TabIndex = 26;
@ -307,7 +280,7 @@ namespace MoMA
// SubmitLabel
//
this.SubmitLabel.Font = new System.Drawing.Font ("Arial", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.SubmitLabel.Location = new System.Drawing.Point (159, 83);
this.SubmitLabel.Location = new System.Drawing.Point (39, 13);
this.SubmitLabel.Name = "SubmitLabel";
this.SubmitLabel.Size = new System.Drawing.Size (416, 20);
this.SubmitLabel.TabIndex = 27;
@ -316,26 +289,18 @@ namespace MoMA
// SubmitInstructions
//
this.SubmitInstructions.Font = new System.Drawing.Font ("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.SubmitInstructions.Location = new System.Drawing.Point (159, 108);
this.SubmitInstructions.Location = new System.Drawing.Point (40, 37);
this.SubmitInstructions.Name = "SubmitInstructions";
this.SubmitInstructions.Size = new System.Drawing.Size (483, 103);
this.SubmitInstructions.Size = new System.Drawing.Size (483, 37);
this.SubmitInstructions.TabIndex = 28;
this.SubmitInstructions.Text = resources.GetString ("SubmitInstructions.Text");
//
// ViewReportButton
//
this.ViewReportButton.Location = new System.Drawing.Point (463, 382);
this.ViewReportButton.Name = "ViewReportButton";
this.ViewReportButton.Size = new System.Drawing.Size (86, 30);
this.ViewReportButton.TabIndex = 6;
this.ViewReportButton.Text = "View Report";
this.ViewReportButton.UseVisualStyleBackColor = true;
this.ViewReportButton.Click += new System.EventHandler (this.ViewReportButton_Click);
this.SubmitInstructions.Text = "Want to help out the Mono project? Please submit your results to the Mono team s" +
"o they can prioritize their efforts based on what functionality people need most" +
".";
//
// SubmitReportButton
//
this.SubmitReportButton.Enabled = false;
this.SubmitReportButton.Location = new System.Drawing.Point (555, 382);
this.SubmitReportButton.Location = new System.Drawing.Point (459, 276);
this.SubmitReportButton.Name = "SubmitReportButton";
this.SubmitReportButton.Size = new System.Drawing.Size (86, 30);
this.SubmitReportButton.TabIndex = 7;
@ -351,13 +316,13 @@ namespace MoMA
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size (103, 14);
this.label2.TabIndex = 32;
this.label2.Text = "Version 1.9";
this.label2.Text = "Version 2.0";
//
// MonoVersionCombo
//
this.MonoVersionCombo.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.MonoVersionCombo.FormattingEnabled = true;
this.MonoVersionCombo.Location = new System.Drawing.Point (386, 339);
this.MonoVersionCombo.Location = new System.Drawing.Point (283, 265);
this.MonoVersionCombo.Name = "MonoVersionCombo";
this.MonoVersionCombo.Size = new System.Drawing.Size (140, 21);
this.MonoVersionCombo.TabIndex = 34;
@ -366,7 +331,7 @@ namespace MoMA
//
this.MonoVersionLabel.AutoSize = true;
this.MonoVersionLabel.Font = new System.Drawing.Font ("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.MonoVersionLabel.Location = new System.Drawing.Point (211, 340);
this.MonoVersionLabel.Location = new System.Drawing.Point (108, 266);
this.MonoVersionLabel.Name = "MonoVersionLabel";
this.MonoVersionLabel.Size = new System.Drawing.Size (169, 16);
this.MonoVersionLabel.TabIndex = 35;
@ -375,7 +340,7 @@ namespace MoMA
// CheckUpdateLink
//
this.CheckUpdateLink.Font = new System.Drawing.Font ("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.CheckUpdateLink.Location = new System.Drawing.Point (389, 366);
this.CheckUpdateLink.Location = new System.Drawing.Point (286, 292);
this.CheckUpdateLink.Name = "CheckUpdateLink";
this.CheckUpdateLink.Size = new System.Drawing.Size (137, 14);
this.CheckUpdateLink.TabIndex = 36;
@ -383,165 +348,366 @@ namespace MoMA
this.CheckUpdateLink.Text = "Check for newer version";
this.CheckUpdateLink.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler (this.CheckUpdateLink_LinkClicked);
//
// OptionalGroupBox
// DirectoryAddButton
//
this.OptionalGroupBox.Controls.Add (this.OptionalHomePageBox);
this.OptionalGroupBox.Controls.Add (this.OptionalOrganizationBox);
this.OptionalGroupBox.Controls.Add (this.OptionalCommentsBox);
this.OptionalGroupBox.Controls.Add (this.label7);
this.OptionalGroupBox.Controls.Add (this.OptionalEmailBox);
this.OptionalGroupBox.Controls.Add (this.label3);
this.OptionalGroupBox.Controls.Add (this.OptionalNameBox);
this.OptionalGroupBox.Controls.Add (this.label4);
this.OptionalGroupBox.Controls.Add (this.label6);
this.OptionalGroupBox.Controls.Add (this.label5);
this.OptionalGroupBox.Location = new System.Drawing.Point (161, 211);
this.OptionalGroupBox.Name = "OptionalGroupBox";
this.OptionalGroupBox.Size = new System.Drawing.Size (479, 165);
this.OptionalGroupBox.TabIndex = 37;
this.OptionalGroupBox.TabStop = false;
this.OptionalGroupBox.Text = "Optional additional information to submit:";
this.DirectoryAddButton.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.DirectoryAddButton.Location = new System.Drawing.Point (488, 48);
this.DirectoryAddButton.Name = "DirectoryAddButton";
this.DirectoryAddButton.Size = new System.Drawing.Size (30, 30);
this.DirectoryAddButton.TabIndex = 38;
this.DirectoryAddButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;
this.toolTip1.SetToolTip (this.DirectoryAddButton, "Add Directory");
this.DirectoryAddButton.UseVisualStyleBackColor = true;
this.DirectoryAddButton.Click += new System.EventHandler (this.DirectoryAddButton_Click);
//
// OptionalHomePageBox
// WhatsNextLabel
//
this.OptionalHomePageBox.Location = new System.Drawing.Point (6, 139);
this.OptionalHomePageBox.Name = "OptionalHomePageBox";
this.OptionalHomePageBox.Size = new System.Drawing.Size (182, 20);
this.OptionalHomePageBox.TabIndex = 4;
this.WhatsNextLabel.Font = new System.Drawing.Font ("Arial", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.WhatsNextLabel.Location = new System.Drawing.Point (39, 13);
this.WhatsNextLabel.Name = "WhatsNextLabel";
this.WhatsNextLabel.Size = new System.Drawing.Size (416, 20);
this.WhatsNextLabel.TabIndex = 39;
this.WhatsNextLabel.Text = "What\'s Next?";
//
// OptionalOrganizationBox
// Step1Panel
//
this.OptionalOrganizationBox.Location = new System.Drawing.Point (6, 103);
this.OptionalOrganizationBox.Name = "OptionalOrganizationBox";
this.OptionalOrganizationBox.Size = new System.Drawing.Size (182, 20);
this.OptionalOrganizationBox.TabIndex = 3;
this.Step1Panel.BackColor = System.Drawing.Color.Transparent;
this.Step1Panel.Controls.Add (this.IntroductionLabel);
this.Step1Panel.Location = new System.Drawing.Point (73, 60);
this.Step1Panel.Name = "Step1Panel";
this.Step1Panel.Size = new System.Drawing.Size (567, 358);
this.Step1Panel.TabIndex = 41;
this.Step1Panel.Visible = false;
//
// OptionalCommentsBox
// Step4Panel
//
this.OptionalCommentsBox.Location = new System.Drawing.Point (208, 29);
this.OptionalCommentsBox.Multiline = true;
this.OptionalCommentsBox.Name = "OptionalCommentsBox";
this.OptionalCommentsBox.Size = new System.Drawing.Size (265, 130);
this.OptionalCommentsBox.TabIndex = 5;
//
// label7
//
this.label7.AutoSize = true;
this.label7.Location = new System.Drawing.Point (207, 16);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size (148, 13);
this.label7.TabIndex = 8;
this.label7.Text = "Comments for the Mono team:";
//
// OptionalEmailBox
//
this.OptionalEmailBox.Location = new System.Drawing.Point (6, 65);
this.OptionalEmailBox.Name = "OptionalEmailBox";
this.OptionalEmailBox.Size = new System.Drawing.Size (182, 20);
this.OptionalEmailBox.TabIndex = 2;
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point (6, 16);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size (41, 13);
this.label3.TabIndex = 1;
this.label3.Text = "Name: ";
//
// OptionalNameBox
//
this.OptionalNameBox.Location = new System.Drawing.Point (6, 29);
this.OptionalNameBox.Name = "OptionalNameBox";
this.OptionalNameBox.Size = new System.Drawing.Size (182, 20);
this.OptionalNameBox.TabIndex = 1;
this.Step4Panel.BackColor = System.Drawing.Color.Transparent;
this.Step4Panel.Controls.Add (this.label4);
this.Step4Panel.Controls.Add (this.DescriptionComboBox);
this.Step4Panel.Controls.Add (this.label3);
this.Step4Panel.Controls.Add (this.OptionalHomePageBox);
this.Step4Panel.Controls.Add (this.SubmitInstructions);
this.Step4Panel.Controls.Add (this.OptionalOrganizationBox);
this.Step4Panel.Controls.Add (this.OptionalCommentsBox);
this.Step4Panel.Controls.Add (this.SubmitReportButton);
this.Step4Panel.Controls.Add (this.label1);
this.Step4Panel.Controls.Add (this.OptionalEmailBox);
this.Step4Panel.Controls.Add (this.label8);
this.Step4Panel.Controls.Add (this.OptionalNameBox);
this.Step4Panel.Controls.Add (this.SubmitLabel);
this.Step4Panel.Controls.Add (this.label9);
this.Step4Panel.Controls.Add (this.label11);
this.Step4Panel.Controls.Add (this.label10);
this.Step4Panel.Location = new System.Drawing.Point (73, 60);
this.Step4Panel.Name = "Step4Panel";
this.Step4Panel.Size = new System.Drawing.Size (567, 358);
this.Step4Panel.TabIndex = 42;
this.Step4Panel.Visible = false;
//
// label4
//
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point (7, 52);
this.label4.Location = new System.Drawing.Point (43, 140);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size (35, 13);
this.label4.TabIndex = 9;
this.label4.Text = "Email:";
this.label4.Size = new System.Drawing.Size (237, 13);
this.label4.TabIndex = 31;
this.label4.Text = "Please tell us a little bit about you/your company:";
//
// label6
// DescriptionComboBox
//
this.label6.AutoSize = true;
this.label6.Location = new System.Drawing.Point (6, 126);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size (102, 13);
this.label6.TabIndex = 5;
this.label6.Text = "Project Home Page:";
this.DescriptionComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.DescriptionComboBox.FormattingEnabled = true;
this.DescriptionComboBox.Items.AddRange (new object[] {
"Corporate Website",
"Public Website",
"Corporate Desktop Application",
"Desktop Application for Resale",
"Web Application for Resale",
"Open Source Project",
"Other"});
this.DescriptionComboBox.Location = new System.Drawing.Point (46, 110);
this.DescriptionComboBox.Name = "DescriptionComboBox";
this.DescriptionComboBox.Size = new System.Drawing.Size (247, 21);
this.DescriptionComboBox.TabIndex = 1;
//
// label5
// label3
//
this.label5.AutoSize = true;
this.label5.Location = new System.Drawing.Point (7, 89);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size (69, 13);
this.label5.TabIndex = 2;
this.label5.Text = "Organization:";
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point (43, 94);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size (260, 13);
this.label3.TabIndex = 29;
this.label3.Text = "Please choose the best description of this application:";
//
// OptionalHomePageBox
//
this.OptionalHomePageBox.Location = new System.Drawing.Point (118, 234);
this.OptionalHomePageBox.Name = "OptionalHomePageBox";
this.OptionalHomePageBox.Size = new System.Drawing.Size (175, 20);
this.OptionalHomePageBox.TabIndex = 5;
//
// OptionalOrganizationBox
//
this.OptionalOrganizationBox.Location = new System.Drawing.Point (118, 208);
this.OptionalOrganizationBox.Name = "OptionalOrganizationBox";
this.OptionalOrganizationBox.Size = new System.Drawing.Size (175, 20);
this.OptionalOrganizationBox.TabIndex = 4;
//
// OptionalCommentsBox
//
this.OptionalCommentsBox.Location = new System.Drawing.Point (324, 110);
this.OptionalCommentsBox.Multiline = true;
this.OptionalCommentsBox.Name = "OptionalCommentsBox";
this.OptionalCommentsBox.Size = new System.Drawing.Size (226, 144);
this.OptionalCommentsBox.TabIndex = 6;
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point (321, 94);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size (108, 13);
this.label1.TabIndex = 8;
this.label1.Text = "Additional Comments:";
//
// OptionalEmailBox
//
this.OptionalEmailBox.Location = new System.Drawing.Point (90, 182);
this.OptionalEmailBox.Name = "OptionalEmailBox";
this.OptionalEmailBox.Size = new System.Drawing.Size (203, 20);
this.OptionalEmailBox.TabIndex = 3;
//
// label8
//
this.label8.AutoSize = true;
this.label8.Location = new System.Drawing.Point (44, 160);
this.label8.Name = "label8";
this.label8.Size = new System.Drawing.Size (41, 13);
this.label8.TabIndex = 1;
this.label8.Text = "Name: ";
//
// OptionalNameBox
//
this.OptionalNameBox.Location = new System.Drawing.Point (90, 158);
this.OptionalNameBox.Name = "OptionalNameBox";
this.OptionalNameBox.Size = new System.Drawing.Size (203, 20);
this.OptionalNameBox.TabIndex = 2;
//
// label9
//
this.label9.AutoSize = true;
this.label9.Location = new System.Drawing.Point (43, 186);
this.label9.Name = "label9";
this.label9.Size = new System.Drawing.Size (35, 13);
this.label9.TabIndex = 9;
this.label9.Text = "Email:";
//
// label11
//
this.label11.AutoSize = true;
this.label11.Location = new System.Drawing.Point (43, 211);
this.label11.Name = "label11";
this.label11.Size = new System.Drawing.Size (69, 13);
this.label11.TabIndex = 2;
this.label11.Text = "Organization:";
//
// label10
//
this.label10.AutoSize = true;
this.label10.Location = new System.Drawing.Point (43, 237);
this.label10.Name = "label10";
this.label10.Size = new System.Drawing.Size (66, 13);
this.label10.TabIndex = 5;
this.label10.Text = "Home Page:";
//
// Step3Panel
//
this.Step3Panel.BackColor = System.Drawing.Color.Transparent;
this.Step3Panel.Controls.Add (this.AnalysisResultsLabel);
this.Step3Panel.Controls.Add (this.MonoTodoResultsImage);
this.Step3Panel.Controls.Add (this.MonoTodoResultsLabel);
this.Step3Panel.Controls.Add (this.NotImplementedResultsImage);
this.Step3Panel.Controls.Add (this.NotImplementedResultsLabel);
this.Step3Panel.Controls.Add (this.PInvokesResultsImage);
this.Step3Panel.Controls.Add (this.PInvokesResultsLabel);
this.Step3Panel.Controls.Add (this.MissingResultsImage);
this.Step3Panel.Controls.Add (this.MissingResultsLabel);
this.Step3Panel.Controls.Add (this.ResultsText);
this.Step3Panel.Controls.Add (this.ResultsDetailLink);
this.Step3Panel.Location = new System.Drawing.Point (73, 60);
this.Step3Panel.Name = "Step3Panel";
this.Step3Panel.Size = new System.Drawing.Size (567, 358);
this.Step3Panel.TabIndex = 43;
this.Step3Panel.Visible = false;
//
// MonoTodoResultsImage
//
this.MonoTodoResultsImage.Location = new System.Drawing.Point (90, 133);
this.MonoTodoResultsImage.Name = "MonoTodoResultsImage";
this.MonoTodoResultsImage.Size = new System.Drawing.Size (22, 22);
this.MonoTodoResultsImage.TabIndex = 11;
this.MonoTodoResultsImage.TabStop = false;
//
// NotImplementedResultsImage
//
this.NotImplementedResultsImage.Location = new System.Drawing.Point (90, 105);
this.NotImplementedResultsImage.Name = "NotImplementedResultsImage";
this.NotImplementedResultsImage.Size = new System.Drawing.Size (22, 22);
this.NotImplementedResultsImage.TabIndex = 15;
this.NotImplementedResultsImage.TabStop = false;
//
// PInvokesResultsImage
//
this.PInvokesResultsImage.Location = new System.Drawing.Point (90, 77);
this.PInvokesResultsImage.Name = "PInvokesResultsImage";
this.PInvokesResultsImage.Size = new System.Drawing.Size (22, 22);
this.PInvokesResultsImage.TabIndex = 18;
this.PInvokesResultsImage.TabStop = false;
//
// MissingResultsImage
//
this.MissingResultsImage.Location = new System.Drawing.Point (90, 49);
this.MissingResultsImage.Name = "MissingResultsImage";
this.MissingResultsImage.Size = new System.Drawing.Size (22, 22);
this.MissingResultsImage.TabIndex = 22;
this.MissingResultsImage.TabStop = false;
//
// Step2Panel
//
this.Step2Panel.BackColor = System.Drawing.Color.Transparent;
this.Step2Panel.Controls.Add (this.ScanningSpinner);
this.Step2Panel.Controls.Add (this.AssemblyLabel);
this.Step2Panel.Controls.Add (this.ScanningLabel);
this.Step2Panel.Controls.Add (this.AssemblyInstructions);
this.Step2Panel.Controls.Add (this.AssemblyAddButton);
this.Step2Panel.Controls.Add (this.AssemblyRemoveButton);
this.Step2Panel.Controls.Add (this.AssemblyListView);
this.Step2Panel.Controls.Add (this.DirectoryAddButton);
this.Step2Panel.Controls.Add (this.MonoVersionCombo);
this.Step2Panel.Controls.Add (this.CheckUpdateLink);
this.Step2Panel.Controls.Add (this.MonoVersionLabel);
this.Step2Panel.Location = new System.Drawing.Point (73, 60);
this.Step2Panel.Name = "Step2Panel";
this.Step2Panel.Size = new System.Drawing.Size (634, 366);
this.Step2Panel.TabIndex = 44;
this.Step2Panel.Visible = false;
//
// ScanningSpinner
//
this.ScanningSpinner.Location = new System.Drawing.Point (473, 329);
this.ScanningSpinner.Name = "ScanningSpinner";
this.ScanningSpinner.Size = new System.Drawing.Size (16, 16);
this.ScanningSpinner.TabIndex = 47;
this.ScanningSpinner.TabStop = false;
this.ScanningSpinner.Visible = false;
//
// ScanningLabel
//
this.ScanningLabel.AutoSize = true;
this.ScanningLabel.Location = new System.Drawing.Point (493, 331);
this.ScanningLabel.Name = "ScanningLabel";
this.ScanningLabel.Size = new System.Drawing.Size (115, 13);
this.ScanningLabel.TabIndex = 46;
this.ScanningLabel.Text = "Scanning assemblies...";
this.ScanningLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.ScanningLabel.Visible = false;
//
// Step5Panel
//
this.Step5Panel.BackColor = System.Drawing.Color.Transparent;
this.Step5Panel.Controls.Add (this.GettingStartedButton);
this.Step5Panel.Controls.Add (this.DownloadMonoButton);
this.Step5Panel.Controls.Add (this.DownloadMonoDevelopButton);
this.Step5Panel.Controls.Add (this.WhatsNextLabel);
this.Step5Panel.Location = new System.Drawing.Point (89, 60);
this.Step5Panel.Name = "Step5Panel";
this.Step5Panel.Size = new System.Drawing.Size (567, 358);
this.Step5Panel.TabIndex = 45;
this.Step5Panel.Visible = false;
//
// GettingStartedButton
//
this.GettingStartedButton.BackColor = System.Drawing.Color.White;
this.GettingStartedButton.Cursor = System.Windows.Forms.Cursors.Hand;
this.GettingStartedButton.Image = global::MoMA.Properties.Resources.start;
this.GettingStartedButton.Location = new System.Drawing.Point (66, 250);
this.GettingStartedButton.Name = "GettingStartedButton";
this.GettingStartedButton.Size = new System.Drawing.Size (389, 76);
this.GettingStartedButton.TabIndex = 43;
this.GettingStartedButton.Text = "Visit the Mono webpage for guides on how to get started with Mono.";
this.GettingStartedButton.Title = "Getting Started Guides";
this.GettingStartedButton.Click += new System.EventHandler (this.GettingStartedButton_Click);
//
// DownloadMonoButton
//
this.DownloadMonoButton.BackColor = System.Drawing.Color.White;
this.DownloadMonoButton.Cursor = System.Windows.Forms.Cursors.Hand;
this.DownloadMonoButton.Image = global::MoMA.Properties.Resources.monoicon;
this.DownloadMonoButton.Location = new System.Drawing.Point (66, 57);
this.DownloadMonoButton.Name = "DownloadMonoButton";
this.DownloadMonoButton.Size = new System.Drawing.Size (389, 90);
this.DownloadMonoButton.TabIndex = 42;
this.DownloadMonoButton.Text = "Mono is available to run on Linux, OSX, and Windows. A VMWare image of Linux wit" +
"h Mono already installed is also available.";
this.DownloadMonoButton.Title = "Download Mono";
this.DownloadMonoButton.Click += new System.EventHandler (this.DownloadMonoButton_Click);
//
// DownloadMonoDevelopButton
//
this.DownloadMonoDevelopButton.BackColor = System.Drawing.Color.White;
this.DownloadMonoDevelopButton.Cursor = System.Windows.Forms.Cursors.Hand;
this.DownloadMonoDevelopButton.Image = global::MoMA.Properties.Resources.mdicon;
this.DownloadMonoDevelopButton.Location = new System.Drawing.Point (66, 158);
this.DownloadMonoDevelopButton.Name = "DownloadMonoDevelopButton";
this.DownloadMonoDevelopButton.Size = new System.Drawing.Size (389, 76);
this.DownloadMonoDevelopButton.TabIndex = 41;
this.DownloadMonoDevelopButton.Text = "MonoDevelop is an IDE tailored for creating Mono applications. It is available f" +
"or both Linux and OSX.";
this.DownloadMonoDevelopButton.Title = "Download MonoDevelop";
this.DownloadMonoDevelopButton.Click += new System.EventHandler (this.DownloadMonoDevelopButton_Click);
//
// MainForm
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.BackColor = System.Drawing.Color.White;
this.ClientSize = new System.Drawing.Size (719, 471);
this.Controls.Add (this.OptionalGroupBox);
this.Controls.Add (this.CheckUpdateLink);
this.Controls.Add (this.MonoVersionLabel);
this.Controls.Add (this.MonoVersionCombo);
this.Controls.Add (this.Step2Panel);
this.Controls.Add (this.label2);
this.Controls.Add (this.SubmitReportButton);
this.Controls.Add (this.ViewReportButton);
this.Controls.Add (this.SubmitInstructions);
this.Controls.Add (this.SubmitLabel);
this.Controls.Add (this.ProjectLink);
this.Controls.Add (this.ResultsDetailLink);
this.Controls.Add (this.ResultsText);
this.Controls.Add (this.MissingResultsLabel);
this.Controls.Add (this.MissingResultsImage);
this.Controls.Add (this.label1);
this.Controls.Add (this.PInvokesResultsLabel);
this.Controls.Add (this.PInvokesResultsImage);
this.Controls.Add (this.NotImplementedResultsLabel);
this.Controls.Add (this.NotImplementedResultsImage);
this.Controls.Add (this.AnalysisResultsLabel);
this.Controls.Add (this.MonoTodoResultsLabel);
this.Controls.Add (this.MonoTodoResultsImage);
this.Controls.Add (this.AssemblyListView);
this.Controls.Add (this.AssemblyRemoveButton);
this.Controls.Add (this.AssemblyAddButton);
this.Controls.Add (this.AssemblyLabel);
this.Controls.Add (this.IntroductionLabel);
this.Controls.Add (this.StepLabel);
this.Controls.Add (this.BackButton);
this.Controls.Add (this.NextButton);
this.Controls.Add (this.pictureBox1);
this.Controls.Add (this.AssemblyInstructions);
this.Controls.Add (this.Step5Panel);
this.Controls.Add (this.Step3Panel);
this.Controls.Add (this.Step1Panel);
this.Controls.Add (this.Step4Panel);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.Icon = ((System.Drawing.Icon)(resources.GetObject ("$this.Icon")));
this.MaximizeBox = false;
this.Name = "MainForm";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "MoMA: Mono Migration Analyzer";
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit ();
this.Step1Panel.ResumeLayout (false);
this.Step4Panel.ResumeLayout (false);
this.Step4Panel.PerformLayout ();
this.Step3Panel.ResumeLayout (false);
this.Step3Panel.PerformLayout ();
((System.ComponentModel.ISupportInitialize)(this.MonoTodoResultsImage)).EndInit ();
((System.ComponentModel.ISupportInitialize)(this.NotImplementedResultsImage)).EndInit ();
((System.ComponentModel.ISupportInitialize)(this.PInvokesResultsImage)).EndInit ();
((System.ComponentModel.ISupportInitialize)(this.MissingResultsImage)).EndInit ();
this.OptionalGroupBox.ResumeLayout (false);
this.OptionalGroupBox.PerformLayout ();
this.Step2Panel.ResumeLayout (false);
this.Step2Panel.PerformLayout ();
((System.ComponentModel.ISupportInitialize)(this.ScanningSpinner)).EndInit ();
this.Step5Panel.ResumeLayout (false);
this.ResumeLayout (false);
this.PerformLayout ();
}
#endregion
private System.Windows.Forms.PictureBox pictureBox1;
private System.Windows.Forms.Button NextButton;
private System.Windows.Forms.Button BackButton;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label StepLabel;
private System.Windows.Forms.Label IntroductionLabel;
private System.Windows.Forms.Label AssemblyLabel;
@ -564,22 +730,36 @@ namespace MoMA
private System.Windows.Forms.LinkLabel ProjectLink;
private System.Windows.Forms.Label SubmitLabel;
private System.Windows.Forms.Label SubmitInstructions;
private System.Windows.Forms.Button ViewReportButton;
private System.Windows.Forms.Button SubmitReportButton;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.ComboBox MonoVersionCombo;
private System.Windows.Forms.Label MonoVersionLabel;
private System.Windows.Forms.LinkLabel CheckUpdateLink;
private System.Windows.Forms.GroupBox OptionalGroupBox;
private System.Windows.Forms.Button DirectoryAddButton;
private System.Windows.Forms.ToolTip toolTip1;
private System.Windows.Forms.Label WhatsNextLabel;
private System.Windows.Forms.Panel Step1Panel;
private System.Windows.Forms.Panel Step4Panel;
private System.Windows.Forms.Panel Step3Panel;
private System.Windows.Forms.Panel Step2Panel;
private System.Windows.Forms.Panel Step5Panel;
private WhatsNextButton DownloadMonoDevelopButton;
private WhatsNextButton DownloadMonoButton;
private WhatsNextButton GettingStartedButton;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.TextBox OptionalNameBox;
private System.Windows.Forms.TextBox OptionalEmailBox;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.TextBox OptionalOrganizationBox;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.TextBox OptionalHomePageBox;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.Label label7;
private System.Windows.Forms.TextBox OptionalOrganizationBox;
private System.Windows.Forms.TextBox OptionalCommentsBox;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.TextBox OptionalEmailBox;
private System.Windows.Forms.Label label8;
private System.Windows.Forms.TextBox OptionalNameBox;
private System.Windows.Forms.Label label9;
private System.Windows.Forms.Label label11;
private System.Windows.Forms.Label label10;
private System.Windows.Forms.ComboBox DescriptionComboBox;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.Label ScanningLabel;
private System.Windows.Forms.PictureBox ScanningSpinner;
internal System.Windows.Forms.ComboBox MonoVersionCombo;
}
}

Просмотреть файл

@ -1,12 +1,35 @@
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:c
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
// Copyright (c) 2006-2008 Jonathan Pobst (monkey@jpobst.com)
//
// Author:
// Jonathan Pobst monkey@jpobst.com
//
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Collections;
using System.Web.UI;
using System.IO;
using System.Windows.Forms;
using MoMA.Analyzer;
namespace MoMA
@ -15,7 +38,6 @@ namespace MoMA
{
private WizardStep current_step;
private AssemblyAnalyzer aa;
private string loaded_definitions;
private string image_directory;
private Image success_image;
@ -23,6 +45,9 @@ namespace MoMA
private string report_filename;
private string submit_filename;
private FileDefinition async_definitions;
private ListViewItem[] async_assemblies;
public MainForm ()
{
InitializeComponent ();
@ -30,26 +55,14 @@ namespace MoMA
image_directory = Path.Combine (Path.GetDirectoryName (Application.ExecutablePath), "Resources");
LoadImages ();
// Process.Start doesn't work on Unix, so we'll just hide the link
if (Environment.OSVersion.Platform == PlatformID.Unix)
ProjectLink.Visible = false;
ResetForm ();
SetupForm (WizardStep.Introduction);
SetupMonoVersion ();
aa = new AssemblyAnalyzer ();
}
public void AddAssembly (string path)
{
if (!ListContainsAssembly (Path.GetFileName (path))) {
ListViewItem lvi = new ListViewItem (Path.GetFileName (path));
lvi.Tag = path;
AssemblyListView.Items.Add (lvi);
}
}
#region Properties
public string ReportFileName {
get {
if (string.IsNullOrEmpty (report_filename))
@ -63,88 +76,75 @@ namespace MoMA
public string SubmitFileName {
get {
if (string.IsNullOrEmpty (submit_filename))
submit_filename = Path.Combine (GetDefaultReportFolder (), "submit.txt");
submit_filename = Path.Combine (GetDefaultReportFolder (), "submit.xml");
return submit_filename;
}
set { submit_filename = value; }
}
#endregion
#region Public Methods
public void AddAssembly (string path)
{
if (!ListContainsAssembly (Path.GetFileName (path))) {
ListViewItem lvi = new ListViewItem (Path.GetFileName (path));
lvi.Tag = path;
AssemblyListView.Items.Add (lvi);
}
}
public void AnalyzeNoGui ()
{
async_definitions = (FileDefinition)MonoVersionCombo.SelectedItem;
async_assemblies = (ListViewItem[])new ArrayList (AssemblyListView.Items).ToArray (typeof (ListViewItem));
ScanningCompletedEventArgs e = AnalyzeAssemblies ();
}
#endregion
#region Private Methods
private void ResetForm ()
{
IntroductionLabel.Visible = false;
AssemblyAddButton.Visible = false;
AssemblyListView.Visible = false;
AssemblyRemoveButton.Visible = false;
AssemblyLabel.Visible = false;
AssemblyInstructions.Visible = false;
CheckUpdateLink.Visible = false;
MonoVersionCombo.Visible = false;
MonoVersionLabel.Visible = false;
AnalysisResultsLabel.Visible = false;
MonoTodoResultsImage.Visible = false;
MonoTodoResultsLabel.Visible = false;
NotImplementedResultsImage.Visible = false;
NotImplementedResultsLabel.Visible = false;
PInvokesResultsImage.Visible = false;
PInvokesResultsLabel.Visible = false;
MissingResultsImage.Visible = false;
MissingResultsLabel.Visible = false;
ResultsDetailLink.Visible = false;
ResultsText.Visible = false;
SubmitInstructions.Visible = false;
SubmitLabel.Visible = false;
SubmitReportButton.Visible = false;
ViewReportButton.Visible = false;
OptionalGroupBox.Visible = false;
Step1Panel.Visible = false;
Step2Panel.Visible = false;
Step3Panel.Visible = false;
Step4Panel.Visible = false;
Step5Panel.Visible = false;
}
private void SetupForm (WizardStep step)
{
switch (step) {
case WizardStep.Introduction:
IntroductionLabel.Visible = true;
Step1Panel.Visible = true;
break;
case WizardStep.ChooseAssemblies:
AssemblyAddButton.Visible = true;
AssemblyListView.Visible = true;
AssemblyRemoveButton.Visible = true;
AssemblyLabel.Visible = true;
AssemblyInstructions.Visible = true;
CheckUpdateLink.Visible = true;
MonoVersionCombo.Visible = true;
MonoVersionLabel.Visible = true;
Step2Panel.Visible = true;
break;
case WizardStep.ViewResults:
AnalysisResultsLabel.Visible = true;
MonoTodoResultsImage.Visible = true;
MonoTodoResultsLabel.Visible = true;
NotImplementedResultsImage.Visible = true;
NotImplementedResultsLabel.Visible = true;
PInvokesResultsImage.Visible = true;
PInvokesResultsLabel.Visible = true;
MissingResultsImage.Visible = true;
MissingResultsLabel.Visible = true;
ResultsText.Visible = true;
NextButton.Text = "Next";
if (ResultsText.Text.StartsWith ("There"))
ResultsDetailLink.Visible = true;
Step3Panel.Visible = true;
break;
case WizardStep.SubmitResults:
SubmitInstructions.Visible = true;
SubmitLabel.Visible = true;
SubmitReportButton.Visible = true;
ViewReportButton.Visible = true;
NextButton.Text = "Next";
Step4Panel.Visible = true;
DescriptionComboBox.Focus ();
break;
case WizardStep.WhatsNext:
NextButton.Text = "Close";
OptionalGroupBox.Visible = true;
OptionalNameBox.Focus ();
Step5Panel.Visible = true;
break;
}
StepLabel.Text = String.Format ("Step {0} of 4", (int)step);
StepLabel.Text = String.Format ("Step {0} of 5", (int)step);
current_step = step;
}
@ -165,15 +165,30 @@ namespace MoMA
MessageBox.Show ("No definition files could be found. Please try to download the latest definition file.");
return;
}
AnalyzeAssemblies ();
ResetForm ();
SetupForm (WizardStep.ViewResults);
break;
ScanningLabel.Visible = true;
ScanningSpinner.Visible = true;
NextButton.Enabled = false;
BackButton.Enabled = false;
async_definitions = (FileDefinition)MonoVersionCombo.SelectedItem;
async_assemblies = (ListViewItem[])new ArrayList (AssemblyListView.Items).ToArray (typeof (ListViewItem));
BackgroundWorker bw = new BackgroundWorker();
bw.DoWork += new DoWorkEventHandler (bw_DoWork);
bw.RunWorkerCompleted += new RunWorkerCompletedEventHandler (bw_RunWorkerCompleted);
bw.RunWorkerAsync ();
return;
case WizardStep.ViewResults:
ResetForm ();
SetupForm (WizardStep.SubmitResults);
break;
case WizardStep.SubmitResults:
ResetForm ();
SetupForm (WizardStep.WhatsNext);
break;
case WizardStep.WhatsNext:
Application.Exit ();
break;
}
@ -181,6 +196,30 @@ namespace MoMA
BackButton.Enabled = true;
}
private void bw_RunWorkerCompleted (object sender, RunWorkerCompletedEventArgs e)
{
ScanningCompletedEventArgs ar = (ScanningCompletedEventArgs)e.Result;
// Update the summary screen
UpdateResultsSummary (ar.MonoTodoTotal, ar.NotImplementedExceptionTotal, ar.PInvokeTotal, ar.MissingMethodTotal);
// Enable the report submission button
SubmitReportButton.Enabled = true;
ScanningLabel.Visible = false;
ScanningSpinner.Visible = false;
NextButton.Enabled = true;
BackButton.Enabled = true;
ResetForm ();
SetupForm (WizardStep.ViewResults);
}
private void bw_DoWork (object sender, DoWorkEventArgs e)
{
e.Result = AnalyzeAssemblies ();
}
private void BackButton_Click (object sender, EventArgs e)
{
switch (current_step) {
@ -201,6 +240,10 @@ namespace MoMA
ResetForm ();
SetupForm (WizardStep.ViewResults);
break;
case WizardStep.WhatsNext:
ResetForm ();
SetupForm (WizardStep.SubmitResults);
break;
}
}
@ -234,72 +277,28 @@ namespace MoMA
}
}
public void AnalyzeAssemblies ()
private ScanningCompletedEventArgs AnalyzeAssemblies ()
{
// Keep total counts for all assemblies for summary screen
int monotodocount = 0;
int notimplementedcount = 0;
int pinvokecount = 0;
int missingcount = 0;
string todo_defs = Path.Combine (Path.GetDirectoryName (Application.ExecutablePath), "monotodo.txt");
string nie_defs = Path.Combine (Path.GetDirectoryName (Application.ExecutablePath), "exception.txt");
string missing_defs = Path.Combine (Path.GetDirectoryName (Application.ExecutablePath), "missing.txt");
// Load the definition files
FileDefinition definitions = (FileDefinition)MonoVersionCombo.SelectedItem;
if (definitions.FileName != loaded_definitions) {
aa.LoadDefinitions (definitions.FileName);
loaded_definitions = definitions.FileName;
}
// Scan user's assemblies for P/Invokes
foreach (ListViewItem lvi in AssemblyListView.Items)
aa.ScanAssemblyForPInvokes ((string)lvi.Tag);
// Start the results reports
EnsureOutputDirectory (this.ReportFileName);
EnsureOutputDirectory (this.SubmitFileName);
// Make sure the images, css, and js for our html repor are there
EnsureReportMedia (Path.GetDirectoryName (this.ReportFileName));
XhtmlTextWriter report = aa.BeginHtmlReport (new FileStream (this.ReportFileName, FileMode.Create), definitions.Version);
StreamWriter submit_report = aa.BeginTextReport (new FileStream (this.SubmitFileName, FileMode.Create));
// Scan user's assemblies for issues
foreach (ListViewItem lvi in AssemblyListView.Items) {
aa.AnalyzeAssembly ((string)lvi.Tag);
report.WriteFullBeginTag ("h2");
report.WriteEncodedText (Path.GetFileName ((string)lvi.Tag));
report.WriteEndTag ("h2");
aa.AddResultsToHtmlReport (report);
aa.AddResultsToTextReport (submit_report);
monotodocount += aa.MonoTodoResults.Count;
notimplementedcount += aa.NotImplementedExceptionResults.Count;
pinvokecount += aa.PInvokeResults.Count;
missingcount += aa.MissingMethodResults.Count;
aa.MissingMethodResults.Clear ();
aa.MonoTodoResults.Clear ();
aa.NotImplementedExceptionResults.Clear ();
aa.PInvokeResults.Clear ();
}
// Finish up the reports
aa.FinishHtmlReport (report);
// Setup the reports
aa.WriteHtmlReport = true;
aa.HtmlReportPath = this.ReportFileName;
if (monotodocount + notimplementedcount + pinvokecount + missingcount == 0)
submit_report.WriteLine ("No Issues Found!");
aa.WriteXmlReport = true;
aa.XmlReportPath = this.SubmitFileName;
// Setup the AssemblyAnalyzer
aa.Definitions = async_definitions;
aa.Assemblies.Clear ();
// Add user's assemblies
foreach (ListViewItem lvi in async_assemblies)
aa.Assemblies.Add ((string)lvi.Tag);
aa.FinishTextReport (submit_report);
// Update the summary screen
UpdateResultsSummary (monotodocount, notimplementedcount, pinvokecount, missingcount);
// Enable the report submission button
SubmitReportButton.Enabled = true;
// Go!
return aa.Analyze ();
}
private void UpdateResultsSummary (int monotodocount, int notimplementedcount, int pinvokecount, int missingcount)
@ -354,7 +353,7 @@ namespace MoMA
System.Diagnostics.Process.Start (this.ReportFileName);
}
catch (Exception) {
MessageBox.Show (string.Format("The detail report can be viewed here:\n{0}", this.ReportFileName));
MessageBox.Show (string.Format ("The detail report can be viewed here:\n{0}", this.ReportFileName));
}
}
@ -363,29 +362,15 @@ namespace MoMA
System.Diagnostics.Process.Start ("http://www.mono-project.com/");
}
private void ViewReportButton_Click (object sender, EventArgs e)
{
try {
System.Diagnostics.Process.Start (SubmitFileName);
}
catch (Exception) {
MessageBox.Show (string.Format ("The report that will be submitted can be viewed here:\n{0}", SubmitFileName));
}
}
private void SubmitReportButton_Click (object sender, EventArgs e)
{
SubmitReportButton.Enabled = false;
try {
using (StreamReader sr = new StreamReader (SubmitFileName)) {
string results = sr.ReadToEnd ();
if (AssemblyAnalyzer.SubmitResults (results, (MonoVersionCombo.Items[0] as FileDefinition).Version, OptionalNameBox.Text, OptionalEmailBox.Text, OptionalOrganizationBox.Text, OptionalHomePageBox.Text, OptionalCommentsBox.Text))
MessageBox.Show ("Results successfully submitted. Thanks!");
else
MessageBox.Show ("Result submission failed. Please try again later.");
}
if (aa.SubmitResults (OptionalNameBox.Text, OptionalEmailBox.Text, OptionalOrganizationBox.Text, OptionalHomePageBox.Text, OptionalCommentsBox.Text, DescriptionComboBox.Text))
MessageBox.Show ("Results successfully submitted. Thanks!");
else
MessageBox.Show ("Result submission failed. Please try again later.");
}
catch (Exception ex) {
MessageBox.Show (string.Format ("Result submission failed (Exception={0}).", ex.ToString ()));
@ -450,23 +435,93 @@ namespace MoMA
{
try {
this.BackgroundImage = Image.FromFile (Path.Combine (image_directory, "monoback.png"));
pictureBox1.Image = Image.FromFile (Path.Combine (image_directory, "monkey.png"));
DirectoryAddButton.Image = Image.FromFile (Path.Combine (image_directory, "list-directory.png"));
AssemblyAddButton.Image = Image.FromFile (Path.Combine (image_directory, "list-add.png"));
AssemblyRemoveButton.Image = Image.FromFile (Path.Combine (image_directory, "list-remove.png"));
success_image = Image.FromFile (Path.Combine (image_directory, "button_ok.png"));
failed_image = Image.FromFile (Path.Combine (image_directory, "dialog-warning.png"));
ScanningSpinner.Image = Image.FromFile (Path.Combine (image_directory, "spinner.gif"));
}
catch (Exception ex) {
MessageBox.Show (string.Format ("There was an error loading resources for MoMA, please try downloading a new copy.\nError: {0}", ex.ToString ()));
}
}
private void DirectoryAddButton_Click (object sender, EventArgs e)
{
FolderBrowserDialog fbd = new FolderBrowserDialog ();
fbd.Description = "Choose the directory that contains the assemblies to scan.";
fbd.ShowNewFolderButton = false;
if (fbd.ShowDialog () != DialogResult.OK)
return;
AssemblyListView.BeginUpdate ();
ScanForAssemblies (fbd.SelectedPath);
AssemblyListView.EndUpdate ();
}
private void ScanForAssemblies (string path)
{
foreach (string file in Directory.GetFiles (path, "*.dll"))
AddAssembly (file);
foreach (string file in Directory.GetFiles (path, "*.exe"))
AddAssembly (file);
foreach (string directory in Directory.GetDirectories (path))
ScanForAssemblies (directory);
}
private void DownloadMonoButton_Click (object sender, EventArgs e)
{
System.Diagnostics.Process.Start ("http://www.go-mono.com/mono-downloads/download.html");
}
private void DownloadMonoDevelopButton_Click (object sender, EventArgs e)
{
System.Diagnostics.Process.Start ("http://www.monodevelop.com/Main_Page");
}
private void GettingStartedButton_Click (object sender, EventArgs e)
{
System.Diagnostics.Process.Start ("http://www.mono-project.com/Start");
}
#endregion
#region Static Methods
private static void EnsureOutputDirectory (string path)
{
if (!Directory.Exists (Path.GetDirectoryName (path)))
Directory.CreateDirectory (Path.GetDirectoryName (path));
}
private static void EnsureReportMedia (string reports_path)
{
try {
string media_path = Path.Combine (reports_path, "Media");
string source_path = Path.Combine (Path.Combine (Path.GetDirectoryName (Application.ExecutablePath), "Reports"), "Media");
if (!Directory.Exists (media_path))
Directory.CreateDirectory (media_path);
if (!File.Exists (Path.Combine (media_path, "moma.css")))
File.Copy (Path.Combine (source_path, "moma.css"), Path.Combine (media_path, "moma.css"));
if (!File.Exists (Path.Combine (media_path, "moma.js")))
File.Copy (Path.Combine (source_path, "moma.js"), Path.Combine (media_path, "moma.js"));
if (!File.Exists (Path.Combine (media_path, "fail.png")))
File.Copy (Path.Combine (source_path, "fail.png"), Path.Combine (media_path, "fail.png"));
if (!File.Exists (Path.Combine (media_path, "pass.png")))
File.Copy (Path.Combine (source_path, "pass.png"), Path.Combine (media_path, "pass.png"));
if (!File.Exists (Path.Combine (media_path, "plus.png")))
File.Copy (Path.Combine (source_path, "plus.png"), Path.Combine (media_path, "plus.png"));
if (!File.Exists (Path.Combine (media_path, "minus.png")))
File.Copy (Path.Combine (source_path, "minus.png"), Path.Combine (media_path, "minus.png"));
} catch {
}
}
private static string GetDefaultReportFolder ()
{
// Unix-y people generally can't write to where the executable is
@ -475,5 +530,6 @@ namespace MoMA
else
return Path.Combine (Path.GetDirectoryName (Application.ExecutablePath), "Reports");
}
#endregion
}
}

389
Forms/MainForm.resx Normal file
Просмотреть файл

@ -0,0 +1,389 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="IntroductionLabel.Text" xml:space="preserve">
<value>The Mono Migration Analyzer (MoMA) tool helps you identify issues you may have when porting your .Net application to Mono. It helps pinpoint platform specific calls (P/Invoke) and areas that are not yet supported by the Mono project.
While MoMA can help show potential issues, there are many complex factors that cannot be covered by a simple tool. MoMA may fail to point out areas that will cause problems, and may point out areas which will not actually be an issue.
Use the results provided as a guide to get you started on porting your application, but remember the true test is actually running your application on Mono.
Good luck!</value>
</data>
<metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAMAMDAAAAEAIACoJQAANgAAACAgAAABACAAqBAAAN4lAAAQEAAAAQAgAGgEAACGNgAAKAAAADAA
AABgAAAAAQAgAAAAAACAJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAARkZGB0ZGRi9GRkY3RkZGEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAEZGRgNGRkZqRkZG5EZGRv5GRkb+RkZG9UdHR51JSUkTAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARkZGB0ZGRpxGRkb9bm5u/rGxsf6+vr7+mpqa/lNT
U/5HR0fKSkpKDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRkYTRkZGuEdHR/57e3v+4+Pj/urq
6v7o6Oj+6enp/srKyv5PT0/+SEhIgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEZGRiFGRkbPSUlJ/oiI
iP62trb+4eHh/t7e3v7b29v+39/f/urq6v6BgYH+RkZG2wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARkZGMkZG
RuNNTU3+k5OT/ri4uP6wsLD+w8PD/tvb2/7b29v+3d3d/urq6v6Xl5f+RkZG+gAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AABGRkZORkZG8VNTU/6fn5/+ubm5/qysrP6enp7+rq6u/tjY2P7b29v+4+Pj/urq6v57e3v+RkZG4wAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAARkZGAUZGRmxGRkb4Wlpa/qioqP65ubn+qKio/p+fn/6pqan+oqKi/qSkpP7Z2dn+6urq/sLC
wv5LS0v+R0dHkgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAABGRkYERkZGiUZGRvxlZWX+ra2t/rm5uf6lpaX+oaGh/qmpqf6goKD+kJCQ/p+f
n/6urq7+oKCg/lJSUv5GRkbgSEhIGQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAEZGRgxGRkapRkZG/nFxcf6ysrL+uLi4/qKiov6kpKT+qamp/p2d
nf6Pj4/+o6Oj/qqqqv6EhIT+SkpK/kdHR9dJSUknAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARkZGF0ZGRsNISEj+fX19/ra2tv63t7f+oaGh/qam
pv6oqKj+mpqa/o+Pj/6mpqb+qamp/nl5ef5ISEj+R0dHw0hISBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACIiIgLiIiIPoiIiGaIiIiCiIiIj4iI
iI6Hh4d/g4ODXH5+fit6enoCAAAAAAAAAAAAAAAAAAAAAAAAAABISEgnRkZG10pKSv6Kior+uLi4/rW1
tf6goKD+p6en/qampv6Xl5f+j4+P/qioqP6mpqb+b29v/kZGRv5HR0epSEhIDAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACIiIgOiIiIX4iIiLuIiIj2iIiI/omJ
if6MjIz+jo6O/o6Ojv6Li4v+h4eH/oCAgP54eHjmc3NzlHBwcDBtbW0BAAAAAFVVVThMTEzpTk5O/peX
l/66urr+srKy/qCgoP6pqan+pKSk/pOTk/6RkZH+qqqq/qKiov5jY2P+RkZG/UdHR4pHR0cDAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiIiIC4iIiHiIiIjmiIiI/pWV
lf6urq7+w8PD/tLS0v7b29v+39/f/t7e3v7Y2Nj+zc3N/rm5uf6bm5v+fX19/nFxcftra2u0ZWVlQ1pa
WuVhYWH+oKCg/ru7u/6urq7+oaGh/qmpqf6hoaH+kJCQ/pSUlP6qqqr+nZ2d/lpaWv5GRkb4SEhIbAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACIiIg+iIiI1omJ
if6goKD+yMjI/uXl5f7w8PD++Pj4/vz8/P79/f3+/v7+/v7+/v79/f3++vr6/vPz8/7p6en+1dXV/qmp
qf54eHj+aWlp/GNjY/66urr+vLy8/q2trf6jo6P+qamp/p6env6Ojo7+mJiY/qqqqv6Wlpb+U1NT/kZG
RvBISEhPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiIiIAYiI
iHWIiIj4lZWV/sfHx/7r6+v++/v7/v7+/v78/Pz+9fX1/u/u7v7p6Of+5+Xj/unn5v7t7Oz+8/Pz/vr6
+v7+/v7+/f39/vHx8f7X19f+l5eX/nNzc/7g4OD+vr6+/qWlpf6oqKj+m5ub/oyMjP6cnJz+qqqq/oyM
jP5NTU3+RkZG4khISDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AACIiIgCiIiIjIiIiP2lpaX+4ODg/vr6+v7+/v7+9vb2/uTi3/7Lt6f+uZR3/q58Vf6ob0L+pms8/qdt
QP6sd07+tYxq/sWrl/7d19H+8fHx/v39/f78/Pz+7Ozs/ry8vP7m5ub+ysrK/qenp/6YmJj+i4uL/qCg
oP6pqan+g4OD/klJSf5HR0fPSEhIIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAACIiIiAiIiI/a6urv7t7e3+/f39/vn5+f7i393+v6CH/qdtP/6hYS7+o2Uz/rJ+
VP6+kW3+wpl3/sCUcf63hV3+p2s8/qFhLv6jZjX+to1t/tjPyP7z8/P+/v7+/vX19f7o6Oj+5eXl/rKy
sv6enp7+p6en/qioqP54eHj+R0dH/kdHR7pISEgSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAIiIiFaIiIj8qqqq/vLy8v7+/v7+8fHx/s28rv6ocEP+omIv/reF
XP7Zvaf+8ebc/vbt5f727eX+9u7m/vbu5/727ub+9ezk/uPOvP7Cl3X+pGc1/qNlNP7Aoor+6Ofm/v39
/f76+vr+6+vr/ujo6P7U1NT+uLi4/nFxcf5MTEz9SUlJnkhISAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiIiIHYiIiOydnZ3+7e3t/v7+/v7t7e3+wqaQ/qJj
Mf6sdEb+3MKt/vTr4v717OT+9u3l/vbu5v727uf+9u/o/vfv6P727+j+8Obd/s2xm/7Ywa/+6dnL/rmJ
Yv6hYS/+tIhm/uPg3f78/Pz++Pj4/tLS0v6RkZH+bGxs/lpaWvlUVFR+Tk5OAgAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiIiIpY2Njf7c3Nz+/v7+/vDw
8P7CpY/+oWIw/qhuQf7s3c/+9Orh/vXs4/727eX+9u7m/vbv6P738On+9/Dq/unb0P6/m4H+mWI7/pBV
Kv6eaUP+8ujf/vTq4f7Lp4r+omIw/rKFYf7k4uD++/v7/vDw8P6enp7+aWlp/mRkZHgAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACIiIgxiIiI+be3
t/77+/v+9vb2/su5qv6iYzH+nmAv/pZcMf7IqI/+9Ovi/vXt5P727ub+9u/o/vXu5/7cyLj+sIVn/pBW
Lf6OUyn+j1Mp/o9UKv6QVSr+0bai/vbt5f717OP+z62R/qJiL/66lXj+6urq/vj4+P7e3t7+fn5+/mpq
as1qamoGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AACIiIihj4+P/ujo6P75+fn+3trX/qduQP6fYC7+l1wx/pVbMP6WXTP+2MCu/vbt5f7w5tz+zrKd/qNy
Tv6PVCr+jVIo/o1RJ/6NUif+jlIo/o5TKf6PVCr+r4Rk/vbu5v717OT+9Orh/sGWc/6iYjD+zLut/vHx
8f7x8fH+tbW1/nFxcf1vb29SAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAIiIiBGIiIjvr6+v/vb29v7t7e3+vZuA/qFhLv6ZXjH+llwx/pVbMP6TWS/+mWI6/r2Y
ff6ZYzz+j1Qq/o9TKf6OUij+jVEn/oxQJv6MUSb+jVEn/o5TKf61jW/+yqyW/u7h1/717OT+9Ovi/u7g
1P6rcUP+q3dN/uPi4v7x8fH+4ODg/oSEhP5zc3O8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAIiIiFKIiIj+1dXV/vT09P7c2NX+pWo6/p5gMP6XXTL+llwx/pVb
MP6UWS/+k1gu/pJXLf6RViv+j1Qq/o5TKf6NUif+jFEm/oxQJf6MUCb+jVIo/sCdhP60i27+kFUr/tjA
rv717OX+9evi/vTq4P7SsZf+oWEu/su4qf7r6+v+6enp/qurq/54eHj4eHh4HgAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIiIiJKPj4/+6enp/u3t7f7GsJ3+oWEu/ppf
Mv6XXTL+mF81/ppjOv6cZj/+nWhB/pxnQf6bZj/+mWM8/pZeNv6RWC/+jVIo/oxQJv6MUSb+sIVn/qd5
V/6PVCn+kFUq/s2xm/717OT+9Ovi/vTq4P7u4NT+pmo6/bWLaf7j4+P+6urq/srKyv6AgID+fHx8XwAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIiIiMCfn5/+7e3t/uXl
5f62jm3+oWEu/pheNP6ZYDb+oW1H/qFtR/6gbEb+n2xG/p9rRf6eakT+nWlD/pxoQv6bZ0H+mWM9/pNb
Mv6YYTr+oXBM/o9TKf6PVCr+kFUr/syumP717OT+9Ovi/vTq4P7z6N7+uIZd5qZsPv7d29r+5+fn/tzc
3P6MjIz+goKClgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIiI
iOStra3+6urq/uDg3/6rdkv+n2Ev/phfNP6dZz/+om9K/qJvSf6hbkn+oG5I/qBtSP6fbEf+nmtG/p5q
Rf6daUT+nGhD/pxoQv6daUT+kVcu/o9UKv6QVSr+kVYr/tO6pv717OP+9Orh/vTp3/7z6N3+wpRtu6Ji
MP7TycL+5OTk/t/f3/6YmJj+h4eHvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAIiIiPS0tLT+5+fn/tza2P6laTr+nmAw/plfNP6ibkf+pHFM/qNxS/6jcEv+onBL/qFv
Sv6hbkr+oG1J/p9tSP6fbEf+nmtG/p5qRf6daUT+nGhC/pRbMf6RViv+kVcs/uPQwv706+L+9Org/vPp
3/7y593+yJx2oaFhLv7Muqz+4+Pj/uHh4f6goKD+iIiI0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAIiIiPu2trb+5OTk/tnV0v6jZjT+nWAx/ppgNf6kckz+pXNO/qVz
Tv6kck7+pHJO/qNyTf6jcU3+onBM/qFvS/6hbkr+oG5J/qBtSP6fbEf+n2tG/p5qRP6UWzL+mWE5/vPq
4P706uH+9Onf/vPo3v7y59z+yp94lqFhLv7JtKP+5ubm/uTk5P6jo6P+iIiI1wAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIiIiPCzs7P+5eXl/trY1f6kZzb+nmAx/pph
Nv6mdFD+pnVR/qZ1Uf6mdVH+pXRR/qV0UP6kc1D+pHNP/qNyTv6jcU7+onBM/qJwTP6hb0r+oG5J/qBt
Sf6eakT+tIts/vTq4f706eD+8+je/vPn3f7y5tv+yZ13nKFhLv7Kt6j+6enp/ubm5v6fn5/+iIiIzAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIiIiNmrq6v+6Ojo/t3c
2/6ob0L+nmAw/ppgNv6ndVD+qHdT/qd3U/6nd1P+p3dT/qd3U/6mdlP+pnVS/qV1Uf6kdFD+pHNQ/qRy
Tv6jcU3+onBM/qZ1Uv61jG3+1Lqm/u3f0/7z6N7+8+fd/vLm2/7y5dr+xZdwsaFiL/7Pwrf+7e3t/ufn
5/6Xl5f+iIiItQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIiI
iLKdnZ3+6+vr/uLi4v6wgVz+qGw9/s2tlP6+mHz+roBe/ql5Vv6rfVr+sodn/qx+XP6oeFb+p3hV/qd3
VP6mdlP+pnVS/qV0Uf6ldFD+qXpX/q1/Xv6nd1P+o3BL/sWjiP7z593+8ubb/vLm2v7x5Nj+vIxj1KNm
NP7Z1dH+8fHx/uLi4v6NjY3+iIiIjwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAIiIiH2Ojo7+6Ojo/ufn5/6/oIf+oWEu/ubSwP7y5tz+8OTZ/trDsP66k3X+q31a/qp7
Wf6qe1n+qXpY/ql6V/6oeVb+p3hV/qd3VP6mdlL+pXRR/qVzT/6kc07+pHJN/s6xmv7y5tv+8uXa/vHk
2f7w49b+rnZJ+K57U/7j4+P+9fX1/tDQ0P6IiIj+iIiIWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAIiIiDqIiIj+1NTU/u/v7/7Sx77+omMx/siggP7x5dr+6trN/rSK
av6sfVr+rH1b/qx+XP6sfVv+q31b/qt8Wv6qe1n+qXpX/ql5Vv6oeFT+p3ZT/qZ1Uv6mdFD+pXNP/tzG
tP7y5dr+8eTY/vHk2P7fxrL+omIw/sGkjP7t7e3+9/f3/rOzs/6IiIj4iIiIGwAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIiIiAaIiIjcsbGx/vX19f7j4uL+sIFc/qdr
PP7q2cr+xKCG/qx9Wv6tflz+rX9d/q6AXv6tgF7+rYBe/qx/Xf6sflv+q3xa/qp7WP6peVb+qHhV/qh3
U/6ndlL+qHhU/u/h1v7x5Nn+8eTY/vHj1/65iWL+o2Y1/tjTz/75+fn+8PDw/pSUlP6IiIi8iIiIAQAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACJiYl8jo6O/u7u
7v7x8fH+zsC1/qJiMP7Ak2/+upFy/qx8Wf6tf1z+roBe/q+CYP6vgmH+r4Jh/q6BYP6tgF7+rH5c/qt8
Wv6qe1j+qXpW/ql4Vf6od1P+vZd6/vPo3f7x5dn+8eTY/te5oP6hYi/+vZyC/uvr6/79/f3+ycnJ/oiI
iP6JiYlZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AACJiYkViIiI676+vv78/Pz+5ubm/rqVd/6iYjD+wJZ0/qRvSf6tflz+roFf/rGFZf60iWr+s4ho/q+C
Yf6ugF7+rX9d/qx9W/6rfFn+qnpX/qp6V/60iWn+5NHB/vPn3P7x5Nn+5M+9/qhsPP6rdkv+29jV/vz8
/P7z8/P+mJiY/oiIiNaIiIgHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAioqKc42Njf7r6+v++/v7/tzZ1/6ufVb+o2Uz/r6Tcv7awa7+59XH/uHN
vf7HpYz+uJBx/rWKa/61i2z+upJ0/sCcgP7Kq5P+1ryp/ufVx/7x5dv+8+fd/vHl2f7l0L7+rHNG/qVq
Ov7Rxbv+8/Pz/v39/f67u7v+iIiI/YmJiVEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAioqKB4mJiciioqL++vr6/vb29v7Y0s7+rXtS/qJj
Mf7HoID+7+DT/vPo3v706uD+9Ong/vPo3v706N/+9Onf/vPp3/7z6d/+8+je/vPo3v7y5tv+8eTX/ti7
o/6obD3+pWk6/s29sf7t7e3+/v7+/tjY2P6Kior+iYmJqomJiQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIyMjCaIiIjqtbW1/v39
/f709PT+2tbS/rSKaP6hYS/+r3hM/te5oP7w4tb+8+fc/vPo3v706N/+8+ne/vPp3v7y593+8ubb/vHk
2P7hyrb+u4xl/qJiL/6qdUr+0MS6/uzs7P7+/v7+5ubm/pCQkP6IiIjYiYmJFAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AACNjY0/iIiI87q6uv78/Pz++Pj4/uDg3/7GsJ7+qG9C/qFhLv6qcEL+wJRx+8+rjuPVtJjL2bmdwde3
msbRr5Lbxp189rF7UP6iYzD+o2U0/ryaf/7a1tT+8fHx/v7+/v7j4+P+k5OT/oiIiOeKioooAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAjo6OQYiIiO6tra3+9PT0/v39/f7t7e3+3NrZ/saum/6xglz+pGg3/qFi
L/6hYS7+oWEu/qFhLv6hYS7+o2Qz/qx3Tf6/oIf+1tDL/ufn5/76+vr+/f39/tHR0f6Ojo7+iYmJ4IqK
iioAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI2NjS6JiYnSmJiY/tra2v79/f3++/v7/u/v
7/7j4+P+2dXS/s/Ct/7Is6L+xa2a/sexn/7MvLD+1s/J/uHg4P7r6+v++Pj4/v7+/v7t7e3+rq6u/omJ
if6JiYm/ioqKHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACNjY0Pi4uLi4mJ
ifelpaX+2tra/vv7+/7+/v7++/v7/vf39/7z8/P+8fHx/vLy8v719fX++vr6/v7+/v79/f3+6enp/ri4
uP6NjY3+iIiI8IqKinaJiYkHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAI2NjSmLi4ueiIiI8pSUlP60tLT+0NDQ/uTk5P7u7u7+8/Pz/vDw8P7o6Oj+19fX/r6+
vv6enp7+iYmJ/oiIiOyJiYmNioqKHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjIyMFouLi2aKioqsiIiI4oiIiPuJiYn+ioqK/oqK
iv6IiIj+iIiI+YiIiN2JiYmjiYmJWoqKig8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAioqKBIqK
ihSJiYktioqKOoqKijmJiYkriYmJEYmJiQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAP//////hwAA//////4BAAD//////AAAAP/////4AAAA//////AAAAD/////4AAAAP//
///AAAAA/////wAAAAD////+AAAAAP////wAAQAA////+AADAAD/+AHwAAcAAP/AACAADwAA/wAAAAA/
AAD+AAAAAH8AAPgAAAAA/wAA8AAAAAH/AADwAAAAA/8AAOAAAAAH/wAAwAAAAA//AADAAAAAP/8AAIAA
AAAf/wAAgAAAAB//AAAAAAAAH/8AAAAAAAAP/wAAAAAAAA//AAAAAAAAD/8AAAAAAAAP/wAAAAAAAA//
AAAAAAAAD/8AAAAAAAAP/wAAAAAAAA//AAAAAAAAD/8AAAAAAAAP/wAAAAAAAA//AAAAAAAAD/8AAIAA
AAAf/wAAgAAAAB//AADAAAAAP/8AAMAAAAA//wAA4AAAAH//AADwAAAA//8AAPgAAAH//wAA/AAAA///
AAD+AAAH//8AAP+AAB///wAA/+AAf///AAD//AP///8AACgAAAAgAAAAQAAAAAEAIAAAAAAAgBAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AABGRkY2RkZGd0ZGRmRHR0cRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AABGRkYDRkZGjFhYWP2RkZH+hYWF/kxMTOVJSUkpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAARkZGCkZGRq1hYWH+zc3N/ubm5v7m5ub+tLS0/kdHR7sAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAEZGRhZGRkbHbW1t/rOzs/7CwsL+29vb/tzc3P7k5OT+SUlJ9wAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAABGRkYoRkZG3Ht7e/62trb+pKSk/qmpqf7R0dH+4+Pj/srKyv5HR0fgAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAARkZGP0hISOyIiIj+tbW1/qOjo/6np6f+mZmZ/qOjo/67u7v+YWFh/khI
SG0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAEZGRltMTEz2lZWV/rS0tP6jo6P+pqam/pWVlf6hoaH+l5eX/lFR
UfxHR0d7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIiIiCCIiIhJiIiIXYeH
h12EhIREfX19FAAAAAAAAAAAAAAAAAAAAABGRkZ7UlJS/aCgoP6ysrL+pKSk/qWlpf6Tk5P+pKSk/o6O
jv5MTEz3R0dHWwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiIiIGYiIiISIiIjdkJCQ/p+f
n/6mpqb+paWl/pubm/6EhIT8dnZ2xm9vb2BlZWUGVFRUkltbW/6qqqr+r6+v/qWlpf6ioqL+kpKS/qam
pv6CgoL+SEhI7EdHRz8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiIiIBIiIiHuMjIz0rKys/tXV
1f7t7e3+8/Pz/vb29v719fX+8fHx/ufn5/7CwsL+jY2N/mpqauFtbW3+urq6/q2trf6mpqb+np6e/pKS
kv6np6f+dnZ2/kdHR9xHR0coAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIiIiBGIiIi+oKCg/t7e
3v75+fn++Pj4/uvo5v7bzsP+08Cx/tbFt/7i2tP+8vHx/vz8/P7y8vL+vr6+/qCgoP7Nzc3+p6en/pqa
mv6Tk5P+pqam/mpqav5HR0fHR0dHFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACIiIgNiIiIyrCw
sP709PT+9/f3/tbHu/6zh2P+pGc2/q94TP63hV3+tIFY/qhtPf6ocET+wKCH/unl4v77+/v+6urq/uLi
4v6np6f+nJyc/qKiov5fX1/+R0dHrkdHRwoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiIiIAYiI
iKqtra3++Pj4/u3q6P64kHH+qnBB/tGwlf7v4tf+9u3l/vbu5v727uf+9u3m/uHLuf6+km3+p20//tG/
sf76+vr+8fHx/tzc3P6tra3+YGBg/ktLS49HR0cCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AACIiIhVmZmZ/vT09P7s6ef+r39Z/rSBWP7v4dX+9ezj/vbt5v727+j+9/Dp/ufYy/67lnv+l2A3/uLQ
wv7exbH+qG0+/su1o/75+fn+0NDQ/mxsbP5gYGB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAiIiIA4iIiNjW1tb+9fX1/reObv6dXy/+m2M6/uTTxP727eX+9e3m/tnDsv6sgF/+j1Qq/o5T
KP6PVCr+tItt/vbt5f7kz77+p2s8/tfKwP709PT+paWl/mxsbKIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAACIiIhHnJyc/vX19f7SwbT+oGEv/pdcMf6UWjD+oW5I/smrlP6fbEf+jlMp/o1S
J/6MUSb+jVEn/pNaMf69mH3+8ujf/vXr4/7Sspj+rXtS/urq6v7g4OD+enp6+XJychwAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAIiIiJbAwMD+7e3t/rGDXv6bXzH+llwx/pVbMf6VXTP+lFwy/pJY
L/6PVCr+jVEn/oxQJf6SWTD+vJd8/pNaMf7gzL3+9ezj/vPo3v6tdUj+0L+y/uvr6/6hoaH+eXl5cQAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiIiIztjY2P7f29j+omMx/pheM/6dZz/+oGxG/p9r
Rv6eakT+nWhD/ptmQf6WXzj+kFYs/qV1U/6PVSv+kFUq/trDsf706+P+9Onf/sihgfO5lHf+5ubm/sDA
wP6BgYGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACJiYnv4uLi/tDAs/6fYS/+mWA2/qNv
Sv6ib0r+oW5J/qBtSP6fbEf+nmtG/p1pRP6caEP+l2A5/pBVKv6RViv+4c6//vTr4f7z6d/+1LGUza17
U/7h4eH+z8/P/oeHh9YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIqKivvj4+P+yLOh/p9h
MP6cZTz+pXNN/qRyTf6jck3+o3FM/qJwS/6hbkr+oG1J/p9sR/6ea0b+mWM8/pVbMv7x5tz+9Org/vPo
3f7Xtpm6qHBE/uLi4v7W1tb+iIiI4wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiYmJ8uHh
4f7KtqX+n2Ew/p5nPv6ndVH+pnZR/qZ1Uf6ldFH+pXRQ/qRzT/6jcU3+onBM/qFvSv6hbkn+tIpr/vTq
4P7z6N7+8ufc/ta1l8Cqc0f+5eXl/tXV1f6IiIjaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AACIiIjS2tra/tTIv/6jZjX+u5Jz/q+BX/6oeVX+roBf/ql6WP6nd1T+pnZT/qZ1Uv6ldFD+pnVS/q2A
X/60imv+28Wy/vLn3P7y5dr+0KuN3LGDXv7q6ur+ysrK/oiIiLoAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAIiIiJ3IyMj+4+Lh/qZrPP7l0L7+8ubc/siokP6tgF7+qnxZ/qp7Wf6pelj+qHlW/qd3
VP6mdVL+pXRQ/qRyTv7cxrT+8uXa/vHk2P6/km78wKKK/vPz8/60tLT+iIiIhQAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAiIiIUampqf7v7+/+upZ6/sKXdP7Zwa7+rH1a/q1/XP6tf17+rX9d/qx+
XP6rfFr+qXpX/qh4Vf6ndlL+p3ZS/u3e0f7x5Nj+6dfI/qZpOf7d1c/+9fX1/pWVlf6IiIg5AAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACIiIgGi4uL4evr6/7e19L+pmo7/sGZev6re1f+roBe/q+C
Yf6vg2H+roFf/qx/Xf6rfFr+qnpX/ql4VP68lXj+8+fc/vHj1/68jWf+upV3/vT09P7R0dH+iIiIz4iI
iAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACJiYllsrKy/vj4+P7JsqH+qG0+/ruR
cP7StqH+zrCZ/rqSdf6ziGf+tYpr/ruUd/7GpIr+1ryo/u7g1P7x5Nn+yKGB/qt2TP7k4d/+9vb2/paW
lv6JiYlOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAImJiQOKioq91tbW/vPz
8/7DqZP+qGw9/ta3nv7y59z+9Ong/vPo3/706d/+8+nf/vPo3v7y59z+6tnK/r2Paf6rdkz+3NXQ/vv7
+/6wsLD+iYmJqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIqK
iheNjY3a39/f/vT09P7Pv7P+qnVK/rB6T/7NqYz93MGq6OHIstffxq/c17mf9MGWc/6maTn+uZN2/uPg
3f77+/v+urq6/omJicyJiYkOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAIyMjByMjIzSzc3N/vr6+v7p6Of+y7en/reObv6rdkz+pmw+/qhvQv6wgFr+vp+F/trR
yv7y8vL+8/Pz/qurq/6JiYnEiYmJEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAIuLiwyLi4uXpKSk+93d3f77+/v+8/Pz/u3t7f7q6ur+6+vr/u/v
7/739/f+9PT0/sbGxv6QkJD4iYmJh4mJiQYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMjIwuioqKoJaWlvK0tLT+x8fH/tDQ
0P7Nzc3+wMDA/qenp/6Li4vtiYmJloqKiiUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAi4uLB4qK
ijuJiYlliYmJeYmJiXiJiYliiYmJN4mJiQUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////4f///4D///8A///+AP///AD///gA///wAf+B
4AP8AAAH8AAAD+AAAB/AAAA/gAAAf4AAAf8AAAH/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
AP8AAAD/AAAA/4AAAf+AAAP/wAAD/+AAB//wAA///AA///8A//8oAAAAEAAAACAAAAABACAAAAAAAEAE
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAEpKSnBoaGi2SEhISAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAALCwsBVBQUJ+pqan+4eHh/oqKiuwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAANjY2D1dXV7yioqL+o6Oj/sXFxf5ubm7SAAAAAAAAAAAAAAAAAAAAAE1NTQhbW1spWlpaKEVF
RQUAAAAAPDw8HmFhYdOoqKj+oKCg/pqamv5fX1/TQUFBHwAAAAAAAAAAdHR0IJKSkqS3t7f2y8vL/srK
yv6pqanvc3NzkXZ2duOrq6v+np6e/pWVlf5WVla8Ojo6DwAAAAAAAAAAfn5+OrOzs+7p5uL+zrOe/sWj
h/7Fo4j+1r+u/uXk4/7Ozs7+oaGh/o+Pj/5QUFCfNjY2BQAAAAAAAAAAaWlpFbCwsOng08j+wZh4/uvb
zf727uf+49LF/sajiP6/mHj+7Obi/rGxsf5YWFiBAAAAAAAAAAAAAAAAAAAAAI2NjYjk4N3+o2s//q2A
Xv7VvKn+qHpY/o5SKP6ldFH+8OTZ/r+Yef7Z2dn+cXFxbgAAAAAAAAAAAAAAAAAAAACqqqrYyKuV/plg
Nf6aZDz+mGI6/pNbMv6VXTX+nGdA/unZzf7XuqL718m//peXl8cAAAAAAAAAAAAAAAAAAAAAtra2+raN
bf6fakL+o3BL/qFuSv6fbEf+nGhC/pRaMf7u4tf+5M664caslv6tra3tAAAAAAAAAAAAAAAAAAAAALOz
s/C4kXL+rHxZ/ql5Vv6ndlP+pXRQ/qNyTv6tgF/+7d/T/uLLtubLsZ3+rKys5AAAAAAAAAAAAAAAAAAA
AACgoKC6zbWi/tzEr/60iWn+rH1b/qp7Wf6neFT+pnVQ/uvbzv7QrpL94djQ/paWlq4AAAAAAAAAAAAA
AAAAAAAAhoaGU93b2v62iWX+uZBy/rqSdP6xhGP+tYxs/sqqkv7n1MP+wZ6D/tTU1P6GhoZHAAAAAAAA
AAAAAAAAAAAAAAAAAACenp6r4tzW/r6Wdv7ZvaX+6dfH7+fUw/PRsJT+wZ6C/uPh4P6Tk5OgAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAYGBgB5ycnJ3Z2dn93M3B/squmP7Msp3+4dfP/s/Pz/yRkZGUYGBgBAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgYGBM5eXl42qqqq3qKiotpGRkYqAgIAuAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/4AAD/4AAA/8AAAPCAAADAAQAAgAMAAAAPAAAADwAAAA8AAAAP
AAAADwAAAA8AAAAPAACAHwAAgB8AAOB/AAA=
</value>
</data>
</root>

Просмотреть файл

@ -1,16 +1,21 @@
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>8.0.50727</ProductVersion>
<ProductVersion>9.0.30729</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{D7FF97F5-1029-4886-9C9D-4EE5618836BC}</ProjectGuid>
<OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>MoMA</RootNamespace>
<AssemblyName>MoMA</AssemblyName>
<ApplicationIcon>
</ApplicationIcon>
<ApplicationIcon>moma.ico</ApplicationIcon>
<FileUpgradeFlags>
</FileUpgradeFlags>
<OldToolsVersion>2.0</OldToolsVersion>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<StartupObject>MoMA.Program</StartupObject>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@ -40,34 +45,49 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="DefinitionDownloader.cs">
<Compile Include="Forms\DefinitionDownloader.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="DefinitionDownloader.Designer.cs">
<Compile Include="Forms\DefinitionDownloader.Designer.cs">
<DependentUpon>DefinitionDownloader.cs</DependentUpon>
</Compile>
<Compile Include="MainForm.cs">
<Compile Include="Forms\MainForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="MainForm.Designer.cs">
<Compile Include="Forms\MainForm.Designer.cs">
<DependentUpon>MainForm.cs</DependentUpon>
</Compile>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<EmbeddedResource Include="DefinitionDownloader.resx">
<EmbeddedResource Include="Forms\DefinitionDownloader.resx">
<SubType>Designer</SubType>
<DependentUpon>DefinitionDownloader.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="MainForm.resx">
<EmbeddedResource Include="Forms\MainForm.resx">
<DependentUpon>MainForm.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<Compile Include="WizardStep.cs" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\monkey.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<EmbeddedResource Include="Properties\Resources.resx">
<SubType>Designer</SubType>
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
<EmbeddedResource Include="Controls\WhatsNextButton.resx">
<SubType>Designer</SubType>
<DependentUpon>WhatsNextButton.cs</DependentUpon>
</EmbeddedResource>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<Compile Include="Controls\WhatsNextButton.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="Controls\WhatsNextButton.Designer.cs">
<DependentUpon>WhatsNextButton.cs</DependentUpon>
</Compile>
<Compile Include="Enumerations\WizardStep.cs" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\monoback.png">
@ -92,14 +112,27 @@
<Name>MoMA.Analyzer</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<None Include="TODO" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\spinner.gif">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
<ItemGroup>
<None Include="Resources\list-directory.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
<ItemGroup>
<None Include="Resources\dialogback.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
<ItemGroup>
<Content Include="moma.ico" />
<None Include="Resources\monoicon.png" />
<None Include="Resources\start.png" />
<None Include="Resources\mdicon.png" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.

Просмотреть файл

@ -2,4 +2,12 @@
<PropertyGroup>
<ProjectView>ProjectFiles</ProjectView>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<StartArguments>
</StartArguments>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<StartArguments>
</StartArguments>
</PropertyGroup>
</Project>

Просмотреть файл

@ -1,17 +1,17 @@

Microsoft Visual Studio Solution File, Format Version 9.00
# Visual Studio 2005
Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{EFB1C06D-B954-441C-8720-F4AA9E4C33F6}"
ProjectSection(SolutionItems) = preProject
MoMASubmitWebService\MoMASubmit.asmx = MoMASubmitWebService\MoMASubmit.asmx
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MoMA", "MoMA.csproj", "{D7FF97F5-1029-4886-9C9D-4EE5618836BC}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MoMA.Analyzer", "MoMA.Analyzer\MoMA.Analyzer.csproj", "{CC12F142-C92F-4AD0-AEA3-D94F661C557B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MoMAExtractor", "MoMAExtractor\MoMAExtractor.csproj", "{64DE84A1-C274-4875-84F2-FCA7B24104D8}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{EFB1C06D-B954-441C-8720-F4AA9E4C33F6}"
ProjectSection(SolutionItems) = preProject
MoMASubmitWebService\MoMASubmit.asmx = MoMASubmitWebService\MoMASubmit.asmx
EndProjectSection
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU

Двоичные данные
MoMA.suo

Двоичный файл не отображается.

Просмотреть файл

@ -1,5 +1,29 @@
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:c
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
// Copyright (c) 2006-2008 Jonathan Pobst (monkey@jpobst.com)
//
// Author:
// Jonathan Pobst monkey@jpobst.com
//
using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace MoMA
@ -47,7 +71,7 @@ namespace MoMA
if (!nogui)
Application.Run (form);
else
form.AnalyzeAssemblies ();
form.AnalyzeNoGui ();
return 0;
}

Просмотреть файл

@ -1,5 +1,29 @@
using System.Reflection;
using System.Runtime.CompilerServices;
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:c
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
// Copyright (c) 2006-2008 Jonathan Pobst (monkey@jpobst.com)
//
// Author:
// Jonathan Pobst monkey@jpobst.com
//
using System.Reflection;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
@ -10,7 +34,7 @@ using System.Runtime.InteropServices;
[assembly: AssemblyConfiguration ("")]
[assembly: AssemblyCompany ("None")]
[assembly: AssemblyProduct ("MoMA")]
[assembly: AssemblyCopyright ("Copyright © None 2006")]
[assembly: AssemblyCopyright ("Copyright © Jonathan Pobst 2006-2008")]
[assembly: AssemblyTrademark ("")]
[assembly: AssemblyCulture ("")]
@ -29,5 +53,5 @@ using System.Runtime.InteropServices;
// Build Number
// Revision
//
[assembly: AssemblyVersion ("1.0.0.0")]
[assembly: AssemblyFileVersion ("1.0.0.0")]
[assembly: AssemblyVersion ("2.0.0.0")]
[assembly: AssemblyFileVersion ("2.0.0.0")]

84
Properties/Resources.Designer.cs сгенерированный Normal file
Просмотреть файл

@ -0,0 +1,84 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:2.0.50727.3053
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace MoMA.Properties {
using System;
/// <summary>
/// A strongly-typed resource class, for looking up localized strings, etc.
/// </summary>
// This class was auto-generated by the StronglyTypedResourceBuilder
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources() {
}
/// <summary>
/// Returns the cached ResourceManager instance used by this class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("MoMA.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
internal static System.Drawing.Bitmap mdicon {
get {
object obj = ResourceManager.GetObject("mdicon", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
internal static System.Drawing.Bitmap monoicon {
get {
object obj = ResourceManager.GetObject("monoicon", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
internal static System.Drawing.Bitmap start {
get {
object obj = ResourceManager.GetObject("start", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
}
}

130
Properties/Resources.resx Normal file
Просмотреть файл

@ -0,0 +1,130 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="mdicon" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\mdicon.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="start" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\start.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="monoicon" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\monoicon.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>

Двоичные данные
Resources/dialogback.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 4.3 KiB

Двоичные данные
Resources/list-directory.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 680 B

Двоичные данные
Resources/mdicon.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 4.9 KiB

Двоичные данные
Resources/monkey.png

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 20 KiB

Двоичные данные
Resources/monoback.png

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 16 KiB

После

Ширина:  |  Высота:  |  Размер: 13 KiB

Двоичные данные
Resources/monoicon.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 1.9 KiB

Двоичные данные
Resources/start.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 6.5 KiB

Просмотреть файл

@ -1,14 +0,0 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace MoMA
{
public enum WizardStep
{
Introduction = 1,
ChooseAssemblies = 2,
ViewResults = 3,
SubmitResults = 4
}
}

Двоичные данные
moma.ico Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 15 KiB