using System; using System.IO; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Reflection; using System.Reflection.Emit; /// /// Summary description for Form. /// public class Form1 : System.Windows.Forms.Form { private System.Windows.Forms.MainMenu mainMenu1; private System.Windows.Forms.MenuItem menuItem1; private System.Windows.Forms.MenuItem menuItem3; private System.Windows.Forms.TextBox textBox1; private System.Windows.Forms.MenuItem menuItem4; private System.Windows.Forms.OpenFileDialog openFileDialog1; private System.Windows.Forms.ContextMenu contextMenu1; private System.Windows.Forms.MenuItem menuItem2; private System.Windows.Forms.MenuItem menuItem5; private System.Windows.Forms.MenuItem menuItem6; private System.Windows.Forms.SaveFileDialog saveFileDialog1; private System.Windows.Forms.MenuItem menuItem7; public System.Windows.Forms.ListBox listBox1; private System.Windows.Forms.Label label1; private System.Windows.Forms.RichTextBox richTextBox1; private System.Windows.Forms.ListBox listBox2; /// /// Required designer variable. /// private System.ComponentModel.Container components = null; public Form1() { // // Required for Windows Form Designer support // InitializeComponent(); // // TODO: Add any constructor code after InitializeComponent call // StringWriter w = new ListBoxWriter(listBox2); Console.SetError(w); Console.SetOut(w); } /// /// Clean up any resources being used. /// protected override void Dispose( bool disposing ) { if( disposing ) { if(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.mainMenu1 = new System.Windows.Forms.MainMenu(); this.menuItem1 = new System.Windows.Forms.MenuItem(); this.menuItem4 = new System.Windows.Forms.MenuItem(); this.menuItem6 = new System.Windows.Forms.MenuItem(); this.menuItem7 = new System.Windows.Forms.MenuItem(); this.menuItem3 = new System.Windows.Forms.MenuItem(); this.menuItem2 = new System.Windows.Forms.MenuItem(); this.menuItem5 = new System.Windows.Forms.MenuItem(); this.textBox1 = new System.Windows.Forms.TextBox(); this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog(); this.contextMenu1 = new System.Windows.Forms.ContextMenu(); this.saveFileDialog1 = new System.Windows.Forms.SaveFileDialog(); this.listBox1 = new System.Windows.Forms.ListBox(); this.label1 = new System.Windows.Forms.Label(); this.richTextBox1 = new System.Windows.Forms.RichTextBox(); this.listBox2 = new System.Windows.Forms.ListBox(); this.SuspendLayout(); // // mainMenu1 // this.mainMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { this.menuItem1, this.menuItem2, this.menuItem5}); // // menuItem1 // this.menuItem1.Index = 0; this.menuItem1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { this.menuItem4, this.menuItem6, this.menuItem7, this.menuItem3}); this.menuItem1.Text = "File"; // // menuItem4 // this.menuItem4.Index = 0; this.menuItem4.Text = "Load"; this.menuItem4.Click += new System.EventHandler(this.onLoad); // // menuItem6 // this.menuItem6.Index = 1; this.menuItem6.Text = "Save As"; this.menuItem6.Click += new System.EventHandler(this.onSaveAs); // // menuItem7 // this.menuItem7.Enabled = false; this.menuItem7.Index = 2; this.menuItem7.Text = "Save Assembly As"; this.menuItem7.Click += new System.EventHandler(this.onSaveAssemblyAs); // // menuItem3 // this.menuItem3.Index = 3; this.menuItem3.Text = "Exit"; this.menuItem3.Click += new System.EventHandler(this.onExit); // // menuItem2 // this.menuItem2.Index = 1; this.menuItem2.Text = "Compile"; this.menuItem2.Click += new System.EventHandler(this.onCompile); // // menuItem5 // this.menuItem5.Enabled = false; this.menuItem5.Index = 2; this.menuItem5.Text = "Execute"; this.menuItem5.Click += new System.EventHandler(this.onExecute); // // textBox1 // this.textBox1.AcceptsReturn = true; this.textBox1.AcceptsTab = true; this.textBox1.AllowDrop = true; this.textBox1.AutoSize = false; this.textBox1.Location = new System.Drawing.Point(152, 8); this.textBox1.Multiline = true; this.textBox1.Name = "textBox1"; this.textBox1.Size = new System.Drawing.Size(744, 416); this.textBox1.TabIndex = 0; this.textBox1.Text = ""; this.textBox1.WordWrap = false; // // listBox1 // this.listBox1.ItemHeight = 16; this.listBox1.Location = new System.Drawing.Point(8, 34); this.listBox1.Name = "listBox1"; this.listBox1.Size = new System.Drawing.Size(136, 388); this.listBox1.TabIndex = 1; this.listBox1.SelectedIndexChanged += new System.EventHandler(this.onSelect); // // label1 // this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); this.label1.Location = new System.Drawing.Point(8, 8); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(100, 16); this.label1.TabIndex = 2; this.label1.Text = "Assemblies"; // // richTextBox1 // this.richTextBox1.Location = new System.Drawing.Point(912, 576); this.richTextBox1.Name = "richTextBox1"; this.richTextBox1.Size = new System.Drawing.Size(88, 40); this.richTextBox1.TabIndex = 3; this.richTextBox1.Text = "richTextBox1"; // // listBox2 // this.listBox2.HorizontalScrollbar = true; this.listBox2.ItemHeight = 16; this.listBox2.Location = new System.Drawing.Point(8, 432); this.listBox2.Name = "listBox2"; this.listBox2.Size = new System.Drawing.Size(888, 148); this.listBox2.TabIndex = 4; // // Form1 // this.AutoScaleBaseSize = new System.Drawing.Size(6, 15); this.ClientSize = new System.Drawing.Size(904, 590); this.Controls.Add(this.listBox2); this.Controls.Add(this.richTextBox1); this.Controls.Add(this.label1); this.Controls.Add(this.listBox1); this.Controls.Add(this.textBox1); this.Menu = this.mainMenu1; this.Name = "Form1"; this.Text = "lcsc Demo"; this.ResumeLayout(false); } #endregion private AssemblyBuilder assembly = null; private void onCompile(object sender, System.EventArgs e) { assembly = demo.Compile(textBox1.Text); if (assembly != null) { menuItem5.Enabled = true; //menuItem7.Enabled = true; listBox1.Items.Add(assembly); listBox1.SelectedIndex = listBox1.Items.Count - 1; } } private void onLoad(object sender, System.EventArgs e) { if (openFileDialog1.ShowDialog() == DialogResult.OK) { StreamReader r = new StreamReader(openFileDialog1.OpenFile()); textBox1.Text = r.ReadToEnd(); r.Close(); } } private void onExit(object sender, System.EventArgs e) { Application.Exit(); } private void onExecute(object sender, System.EventArgs e) { if (assembly != null) demo.Run(assembly); } private void onSaveAs(object sender, System.EventArgs e) { if (saveFileDialog1.ShowDialog() == DialogResult.OK) { StreamWriter w = new StreamWriter(saveFileDialog1.OpenFile()); w.Write(textBox1.Text); w.Close(); } } private void onSaveAssemblyAs(object sender, System.EventArgs e) { if (assembly != null && saveFileDialog1.ShowDialog() == DialogResult.OK) { assembly.Save(Path.GetFileName(saveFileDialog1.FileName)); } } private void onSelect(object sender, System.EventArgs e) { Debug.Assert(sender == listBox1); assembly = (AssemblyBuilder)listBox1.Items[listBox1.SelectedIndex]; if (assembly != null) { menuItem5.Enabled = true; //menuItem7.Enabled = true; } } }