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;
+
+ }
+
+ }
+}