diff --git a/Advanced Software Engineering/Advanced Software Engineering/TextEditor.Designer.cs b/Advanced Software Engineering/Advanced Software Engineering/TextEditor.Designer.cs index dbf1ad9..bbf8f33 100644 --- a/Advanced Software Engineering/Advanced Software Engineering/TextEditor.Designer.cs +++ b/Advanced Software Engineering/Advanced Software Engineering/TextEditor.Designer.cs @@ -44,6 +44,7 @@ namespace Advanced_Software_Engineering this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.runToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.checkSyntaxToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.describeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.helpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.aboutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.helpToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); @@ -68,6 +69,7 @@ namespace Advanced_Software_Engineering this.textBox1.WordWrap = false; this.textBox1.Click += new System.EventHandler(this.textBox1_Click); this.textBox1.TextChanged += new System.EventHandler(this.handleKeypress); + this.textBox1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Text_Editor_PreviewKeyDown); // // menuStrip1 // @@ -75,6 +77,7 @@ namespace Advanced_Software_Engineering this.fileToolStripMenuItem, this.runToolStripMenuItem, this.checkSyntaxToolStripMenuItem, + this.describeToolStripMenuItem, this.helpToolStripMenuItem}); this.menuStrip1.Location = new System.Drawing.Point(0, 0); this.menuStrip1.Name = "menuStrip1"; @@ -97,35 +100,35 @@ namespace Advanced_Software_Engineering // newFileToolStripMenuItem // this.newFileToolStripMenuItem.Name = "newFileToolStripMenuItem"; - this.newFileToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.newFileToolStripMenuItem.Size = new System.Drawing.Size(119, 22); this.newFileToolStripMenuItem.Text = "New File"; this.newFileToolStripMenuItem.Click += new System.EventHandler(this.newFileToolStripMenuItem_Click); // // openToolStripMenuItem // this.openToolStripMenuItem.Name = "openToolStripMenuItem"; - this.openToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.openToolStripMenuItem.Size = new System.Drawing.Size(119, 22); this.openToolStripMenuItem.Text = "Open"; this.openToolStripMenuItem.Click += new System.EventHandler(this.openToolStripMenuItem_Click); // // saveToolStripMenuItem // this.saveToolStripMenuItem.Name = "saveToolStripMenuItem"; - this.saveToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.saveToolStripMenuItem.Size = new System.Drawing.Size(119, 22); this.saveToolStripMenuItem.Text = "Save"; this.saveToolStripMenuItem.Click += new System.EventHandler(this.saveToolStripMenuItem_Click); // // saveAsToolStripMenuItem // this.saveAsToolStripMenuItem.Name = "saveAsToolStripMenuItem"; - this.saveAsToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.saveAsToolStripMenuItem.Size = new System.Drawing.Size(119, 22); this.saveAsToolStripMenuItem.Text = "Save As"; this.saveAsToolStripMenuItem.Click += new System.EventHandler(this.saveAsToolStripMenuItem_Click); // // exitToolStripMenuItem // this.exitToolStripMenuItem.Name = "exitToolStripMenuItem"; - this.exitToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.exitToolStripMenuItem.Size = new System.Drawing.Size(119, 22); this.exitToolStripMenuItem.Text = "Exit"; this.exitToolStripMenuItem.Click += new System.EventHandler(this.exitToolStripMenuItem_Click); // @@ -141,6 +144,13 @@ namespace Advanced_Software_Engineering this.checkSyntaxToolStripMenuItem.Name = "checkSyntaxToolStripMenuItem"; this.checkSyntaxToolStripMenuItem.Size = new System.Drawing.Size(90, 20); this.checkSyntaxToolStripMenuItem.Text = "Check Syntax"; + this.checkSyntaxToolStripMenuItem.Click += new System.EventHandler(this.checkSyntaxToolStripMenuItem_Click); + // + // describeToolStripMenuItem + // + this.describeToolStripMenuItem.Name = "describeToolStripMenuItem"; + this.describeToolStripMenuItem.Size = new System.Drawing.Size(64, 20); + this.describeToolStripMenuItem.Text = "Describe"; // // helpToolStripMenuItem // @@ -185,11 +195,13 @@ namespace Advanced_Software_Engineering this.Controls.Add(this.label1); this.Controls.Add(this.textBox1); this.Controls.Add(this.menuStrip1); + this.KeyPreview = true; this.MainMenuStrip = this.menuStrip1; this.Name = "Text_Editor"; this.Text = "Advanced Software Engineering - Text Editor"; this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Text_Editor_FormClosing); this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.Console_FormClosed); + this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Text_Editor_PreviewKeyDown); this.menuStrip1.ResumeLayout(false); this.menuStrip1.PerformLayout(); this.ResumeLayout(false); @@ -214,5 +226,6 @@ namespace Advanced_Software_Engineering private ToolStripMenuItem checkSyntaxToolStripMenuItem; private Label label1; private Timer timer1; + private ToolStripMenuItem describeToolStripMenuItem; } } \ No newline at end of file diff --git a/Advanced Software Engineering/Advanced Software Engineering/TextEditor.cs b/Advanced Software Engineering/Advanced Software Engineering/TextEditor.cs index 0c0da47..3c5cdc8 100644 --- a/Advanced Software Engineering/Advanced Software Engineering/TextEditor.cs +++ b/Advanced Software Engineering/Advanced Software Engineering/TextEditor.cs @@ -32,8 +32,12 @@ namespace Advanced_Software_Engineering { public Text_Editor(OpenFileDialog openFile) { SettingsAndHelperFunctions.NumberOfWindows++; InitializeComponent(); + StreamReader fileStream = new StreamReader(openFile.OpenFile()); textBox1.Text = fileStream.ReadToEnd(); + unsavedChanges = false; + newWindow = false; + okToOverwrite = true; UpdateTitle(openFile.FileName); } @@ -95,6 +99,7 @@ namespace Advanced_Software_Engineering { } private void handleKeypress() { + if (newWindow) newWindow = false; updateSaveStatus(); updateRowCol(); } @@ -106,15 +111,7 @@ namespace Advanced_Software_Engineering { } } - private void handleExit(FormClosingEventArgs e) { - if (unsavedChanges) { - DialogResult dialogResult = MessageBox.Show("You have unsaved work. Would you like to discard your work?", "Unsaved work!", MessageBoxButtons.YesNo, MessageBoxIcon.None); - if (e != null) e.Cancel = dialogResult != DialogResult.Yes; - else Close(); - } else Close(); - } - - private void openToolStripMenuItem_Click(object sender, EventArgs e) { + private void openFile() { DialogResult result = DialogResult.Yes; if (unsavedChanges) { @@ -129,12 +126,21 @@ namespace Advanced_Software_Engineering { if (newWindow) { StreamReader fileStream = new StreamReader(openFileDialog.OpenFile()); textBox1.Text = fileStream.ReadToEnd(); + unsavedChanges = false; + newWindow = false; UpdateTitle(openFileDialog.FileName); } else new Text_Editor(openFileDialog).Show(); } } } + private void handleExit(FormClosingEventArgs e) { + if (unsavedChanges) { + DialogResult dialogResult = MessageBox.Show("You have unsaved work. Would you like to discard your work?", "Unsaved work!", MessageBoxButtons.YesNo, MessageBoxIcon.None); + if (e != null) e.Cancel = dialogResult != DialogResult.Yes; + } + } + private void Console_FormClosed(object sender, FormClosedEventArgs e) { if (DisplayForm != null && !DisplayForm.IsDisposed) DisplayForm.ReleaseCommandLock(); SettingsAndHelperFunctions.WindowClosed(); @@ -153,6 +159,10 @@ namespace Advanced_Software_Engineering { DisplayForm.Focus(); } + private void createNewInstance() { + new Text_Editor().Show(); + } + private void handleKeypress(object sender, EventArgs e) => handleKeypress(); private void textBox1_Click(object sender, EventArgs e) => updateRowCol(); @@ -160,12 +170,37 @@ namespace Advanced_Software_Engineering { private void saveAsToolStripMenuItem_Click(object sender, EventArgs e) => saveFileAs(); private void saveToolStripMenuItem_Click(object sender, EventArgs e) => saveFile(); - private void Text_Editor_FormClosing(object sender, FormClosingEventArgs e) => handleExit(e); - - private void newFileToolStripMenuItem_Click(object sender, EventArgs e) => new Text_Editor().Show(); + private void newFileToolStripMenuItem_Click(object sender, EventArgs e) => createNewInstance(); private void aboutToolStripMenuItem_Click(object sender, EventArgs e) => new About_Window().Show(); - private void exitToolStripMenuItem_Click(object sender, EventArgs e) => handleExit(null); + private void Text_Editor_FormClosing(object sender, FormClosingEventArgs e) => handleExit(e); + private void exitToolStripMenuItem_Click(object sender, EventArgs e) => Close(); + private void openToolStripMenuItem_Click(object sender, EventArgs e) => openFile(); + + private void Text_Editor_PreviewKeyDown(object sender, KeyEventArgs e) { + //New window + if(e.Control && e.KeyCode == Keys.N) { + createNewInstance(); + e.Handled = true; + } else if (e.Control && e.KeyCode == Keys.S) { + saveFile(); + e.Handled = true; + } else if (e.Control && e.Shift && e.KeyCode == Keys.S) { + saveFileAs(); + e.Handled = true; + } else if (e.Control && e.KeyCode == Keys.O) { + openFile(); + e.Handled = true; + } + } + + private void checkSyntaxToolStripMenuItem_Click(object sender, EventArgs e) { + Draw_Preview tmpDrawPreview = new Draw_Preview(); + tmpDrawPreview.Hide(); + tmpDrawPreview.SubmitCommands(textBox1.Text); + tmpDrawPreview.Close(); + SettingsAndHelperFunctions.WindowClosed(); + } } }