diff --git a/CAPBuilds/0.0.4/ChangeLog.md b/CAPBuilds/0.0.4/ChangeLog.md index d062f7e..962c805 100644 --- a/CAPBuilds/0.0.4/ChangeLog.md +++ b/CAPBuilds/0.0.4/ChangeLog.md @@ -1,7 +1,7 @@ # Changelog ### Added - +- Added keyboard shortcuts ### Changed diff --git a/CSV Analyzer Pro/CSV Analyzer Pro/CSV Analyzer Pro.csproj b/CSV Analyzer Pro/CSV Analyzer Pro/CSV Analyzer Pro.csproj index 7f838e9..68fb5a1 100644 --- a/CSV Analyzer Pro/CSV Analyzer Pro/CSV Analyzer Pro.csproj +++ b/CSV Analyzer Pro/CSV Analyzer Pro/CSV Analyzer Pro.csproj @@ -422,6 +422,7 @@ Search.cs + Form diff --git a/CSV Analyzer Pro/CSV Analyzer Pro/Form1.cs b/CSV Analyzer Pro/CSV Analyzer Pro/Form1.cs index cfead9f..e5e80e7 100644 --- a/CSV Analyzer Pro/CSV Analyzer Pro/Form1.cs +++ b/CSV Analyzer Pro/CSV Analyzer Pro/Form1.cs @@ -26,7 +26,8 @@ public partial class Form1 : Form{ DataSet ds = new DataSet(); BackgroundWorker worker; - + ShortcutHandler shortcutHandler; + string path = ""; bool _exiting = false; @@ -48,6 +49,11 @@ public Form1(){ //Enable Progress Reorting worker.WorkerReportsProgress = true; + + tabControl1.KeyUp += new KeyEventHandler(KeyUpReporter); + tabControl1.KeyDown += new KeyEventHandler(KeyDownReporter); + tabControl1.KeyDown += new KeyEventHandler(ShortcutChecker); + shortcutHandler = new ShortcutHandler(); } private void Form1_Load(object sender, EventArgs e) { @@ -181,6 +187,22 @@ private void OnKeyCommands(object sender,KeyEventArgs e) { //Psuedo code } + private void KeyDownReporter(object sender, KeyEventArgs e) { + shortcutHandler.ReportKeyDown(e.KeyCode.ToString()); + } + + private void KeyUpReporter(object sender, KeyEventArgs e) { + shortcutHandler.ReportKeyUp(e.KeyCode.ToString()); + } + + private void ShortcutChecker(object sender, KeyEventArgs e) { + switch (shortcutHandler.CheckShortcuts()) { + case ShortcutHandler.shortcuts.NewWindow: + NewWindow(); + break; + } + } + private void Model_QueryCellInfo(object sender, Syncfusion.Windows.Forms.Grid.GridQueryCellInfoEventArgs e) { if (e.Style.CellType != "ColumnHeaderCell" && (e.RowIndex % 2 == 0)) e.Style.BackColor = Color.LightCyan; @@ -229,7 +251,7 @@ private void Browse() { DataTable dt = ds.Tables.Add(index.ToString()); path = csvSearch.FileName; tabControl1.SelectedTab.Text = csvSearch.FileName; - OpenCSVFile(); + Open(csvSearch.FileName); } } diff --git a/CSV Analyzer Pro/CSV Analyzer Pro/ShortcutHandler.cs b/CSV Analyzer Pro/CSV Analyzer Pro/ShortcutHandler.cs new file mode 100644 index 0000000..1c7b9f4 --- /dev/null +++ b/CSV Analyzer Pro/CSV Analyzer Pro/ShortcutHandler.cs @@ -0,0 +1,77 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace CSV_Analyzer_Pro { + class ShortcutHandler { + + public enum shortcuts { NoShortcut, NewWindow }; + Dictionary keyStates = new Dictionary(); + + public ShortcutHandler() { + + } + + public bool CheckKeyDown(string key) { + + bool keyDown; + bool keyInDict; + + keyInDict = keyStates.TryGetValue(key, out keyDown); + + if (!keyInDict) { + keyDown = false; // Assuming key is up if it has not previously been set as down + keyStates.Add(key, keyDown); + } + + return keyDown; + + } + + public void ReportKeyUp(string key) { + + bool keyInDict; + + keyInDict = keyStates.ContainsKey(key); + + if (!keyInDict) { + keyStates.Add(key, false); + } + else { + keyStates[key] = false; + } + + } + + public void ReportKeyDown(string key) { + + bool keyInDict; + + keyInDict = keyStates.ContainsKey(key); + + if (!keyInDict) { + keyStates.Add(key, true); + } + else { + keyStates[key] = true; + } + + } + + public shortcuts CheckShortcuts() { + + shortcuts shortcut = shortcuts.NoShortcut; + + if (CheckKeyDown(Keys.ControlKey.ToString()) && CheckKeyDown(Keys.N.ToString())) { + shortcut = shortcuts.NewWindow; + } + + return shortcut; + + } + + } +}