diff --git a/OpenRA.Editor/ActorPropertiesDialog.Designer.cs b/OpenRA.Editor/ActorPropertiesDialog.Designer.cs
new file mode 100644
index 0000000000..d959e64bde
--- /dev/null
+++ b/OpenRA.Editor/ActorPropertiesDialog.Designer.cs
@@ -0,0 +1,92 @@
+namespace OpenRA.Editor
+{
+ partial class ActorPropertiesDialog
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.button1 = new System.Windows.Forms.Button();
+ this.button2 = new System.Windows.Forms.Button();
+ this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel();
+ this.SuspendLayout();
+ //
+ // button1
+ //
+ this.button1.DialogResult = System.Windows.Forms.DialogResult.Cancel;
+ this.button1.Location = new System.Drawing.Point(226, 333);
+ this.button1.Name = "button1";
+ this.button1.Size = new System.Drawing.Size(75, 23);
+ this.button1.TabIndex = 0;
+ this.button1.Text = "Cancel";
+ this.button1.UseVisualStyleBackColor = true;
+ //
+ // button2
+ //
+ this.button2.DialogResult = System.Windows.Forms.DialogResult.Cancel;
+ this.button2.Enabled = false;
+ this.button2.Location = new System.Drawing.Point(145, 333);
+ this.button2.Name = "button2";
+ this.button2.Size = new System.Drawing.Size(75, 23);
+ this.button2.TabIndex = 0;
+ this.button2.Text = "OK";
+ this.button2.UseVisualStyleBackColor = true;
+ //
+ // flowLayoutPanel1
+ //
+ this.flowLayoutPanel1.AutoScroll = true;
+ this.flowLayoutPanel1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+ this.flowLayoutPanel1.Location = new System.Drawing.Point(13, 13);
+ this.flowLayoutPanel1.Name = "flowLayoutPanel1";
+ this.flowLayoutPanel1.Size = new System.Drawing.Size(288, 314);
+ this.flowLayoutPanel1.TabIndex = 1;
+ //
+ // ActorPropertiesDialog
+ //
+ this.AcceptButton = this.button2;
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.CancelButton = this.button1;
+ this.ClientSize = new System.Drawing.Size(313, 368);
+ this.Controls.Add(this.flowLayoutPanel1);
+ this.Controls.Add(this.button2);
+ this.Controls.Add(this.button1);
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
+ this.MaximizeBox = false;
+ this.MinimizeBox = false;
+ this.Name = "ActorPropertiesDialog";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
+ this.Text = "Actor Properties";
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.Button button1;
+ private System.Windows.Forms.Button button2;
+ private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1;
+ }
+}
\ No newline at end of file
diff --git a/OpenRA.Editor/ActorPropertiesDialog.cs b/OpenRA.Editor/ActorPropertiesDialog.cs
new file mode 100644
index 0000000000..bc4412ee7a
--- /dev/null
+++ b/OpenRA.Editor/ActorPropertiesDialog.cs
@@ -0,0 +1,44 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using OpenRA.FileFormats;
+
+namespace OpenRA.Editor
+{
+ public partial class ActorPropertiesDialog : Form
+ {
+ public ActorPropertiesDialog()
+ {
+ InitializeComponent();
+ }
+
+ public void AddRow(string name, Control c)
+ {
+ flowLayoutPanel1.Controls.Add(new Label
+ {
+ Text = name,
+ Width = flowLayoutPanel1.Width * 3 / 10,
+ Height = 25,
+ TextAlign = ContentAlignment.MiddleLeft,
+ });
+
+ c.Width = flowLayoutPanel1.Width * 6 / 10 - 25;
+ c.Height = 25;
+ flowLayoutPanel1.Controls.Add(c);
+ }
+
+ public Control MakeEditorControl(Type t, Func