Crypto-Notepad/Crypto Notepad/MainForm.cs
2019-10-15 19:48:17 +03:00

1730 lines
No EOL
63 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using Crypto_Notepad.Properties;
using System;
using System.ComponentModel;
using System.Diagnostics;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.IO;
using System.Linq;
using System.Net;
using System.Reflection;
using System.Security.Cryptography;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Crypto_Notepad
{
public partial class MainForm : Form
{
Settings settings = Settings.Default;
readonly string[] args = Environment.GetCommandLineArgs();
bool cancelPressed = false;
string filePath = "";
string argsPath = "";
int findPos = 0;
int caretPos;
public MainForm()
{
InitializeComponent();
richTextBox.DragDrop += new DragEventHandler(RichTextBox_DragDrop);
richTextBox.AllowDrop = true;
}
#region Methods
private void DecryptAES()
{
EnterKeyForm enterKeyForm = new EnterKeyForm
{
Owner = this
};
enterKeyForm.ShowDialog();
if (!PublicVar.okPressed)
{
PublicVar.openFileName = Path.GetFileName(filePath);
return;
}
if (searchPanel.Visible)
{
FindMainMenu_Click(this, new EventArgs());
}
try
{
string opnfile = File.ReadAllText(openFileDialog.FileName);
string NameWithotPath = Path.GetFileName(openFileDialog.FileName);
string de;
de = AES.Decrypt(opnfile, TypedPassword.Value, null, settings.HashAlgorithm, Convert.ToInt32(settings.PasswordIterations), Convert.ToInt32(settings.KeySize));
richTextBox.Text = de;
Text = PublicVar.appName + " " + NameWithotPath;
filePath = openFileDialog.FileName;
PublicVar.openFileName = Path.GetFileName(openFileDialog.FileName);
PublicVar.encryptionKey.Set(TypedPassword.Value);
TypedPassword.Value = null;
}
catch (CryptographicException)
{
using (new CenterWinDialog(this))
{
TypedPassword.Value = null;
DialogResult dialogResult = MessageBox.Show(this, "Invalid key!", PublicVar.appName, MessageBoxButtons.RetryCancel, MessageBoxIcon.Error);
if (dialogResult == DialogResult.Retry)
{
DecryptAES();
}
if (dialogResult == DialogResult.Cancel)
{
PublicVar.openFileName = Path.GetFileName(filePath);
return;
}
}
}
}
private void OpenAsotiations()
{
EnterKeyForm enterKeyForm = new EnterKeyForm
{
Owner = this,
StartPosition = FormStartPosition.CenterScreen
};
string fileExtension = Path.GetExtension(args[1]);
PublicVar.openFileName = Path.GetFileName(args[1]);
if (fileExtension == ".cnp")
{
try
{
string NameWithotPath = Path.GetFileName(args[1]);
string opnfile = File.ReadAllText(args[1]);
enterKeyForm.ShowDialog();
string de = AES.Decrypt(opnfile, TypedPassword.Value, null, settings.HashAlgorithm, Convert.ToInt32(settings.PasswordIterations), Convert.ToInt32(settings.KeySize));
richTextBox.Text = de;
Text = PublicVar.appName + " " + NameWithotPath;
filePath = args[1];
PublicVar.encryptionKey.Set(TypedPassword.Value);
TypedPassword.Value = null;
}
catch (CryptographicException)
{
TypedPassword.Value = null;
DialogResult dialogResult = MessageBox.Show(this, "Invalid key!", PublicVar.appName, MessageBoxButtons.RetryCancel, MessageBoxIcon.Error);
if (dialogResult == DialogResult.Retry)
{
OpenAsotiations();
}
}
}
else
{
string opnfile = File.ReadAllText(args[1]);
string NameWithotPath = Path.GetFileName(args[1]);
richTextBox.Text = opnfile;
Text = PublicVar.appName + " " + NameWithotPath;
}
}
private void SendTo()
{
EnterKeyForm enterKeyForm = new EnterKeyForm
{
Owner = this,
StartPosition = FormStartPosition.CenterScreen
};
string fileExtension = Path.GetExtension(argsPath);
if (fileExtension == ".cnp")
{
try
{
string NameWithotPath = Path.GetFileName(argsPath);
string opnfile = File.ReadAllText(argsPath);
PublicVar.openFileName = Path.GetFileName(argsPath);
enterKeyForm.ShowDialog();
string de = AES.Decrypt(opnfile, TypedPassword.Value, null, settings.HashAlgorithm, Convert.ToInt32(settings.PasswordIterations), Convert.ToInt32(settings.KeySize));
richTextBox.Text = de;
Text = PublicVar.appName + " " + NameWithotPath;
filePath = argsPath;
PublicVar.encryptionKey.Set(TypedPassword.Value);
TypedPassword.Value = null;
}
catch (CryptographicException)
{
TypedPassword.Value = null;
DialogResult dialogResult = MessageBox.Show(this, "Invalid key!", PublicVar.appName, MessageBoxButtons.RetryCancel, MessageBoxIcon.Error);
if (dialogResult == DialogResult.Retry)
{
SendTo();
}
}
}
else
{
string opnfile = File.ReadAllText(argsPath);
string NameWithotPath = Path.GetFileName(argsPath);
richTextBox.Text = opnfile;
Text = PublicVar.appName + " " + NameWithotPath;
}
}
private void ContextMenuEncryptReplace()
{
if (args[1].Contains(".cnp"))
{
MessageBox.Show(this, "Looks like this file is already encrypted", PublicVar.appName, MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
DialogResult res = MessageBox.Show(this, "This action will delete the source file and replace it with encrypted version", PublicVar.appName, MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
if (res == DialogResult.Cancel)
{
Environment.Exit(0);
}
if (!args[1].Contains(".cnp"))
{
string opnfile = File.ReadAllText(args[1]);
richTextBox.Text = opnfile;
PublicVar.openFileName = Path.GetFileName(args[1]);
string newFile = Path.GetDirectoryName(args[1]) + @"\" + Path.GetFileNameWithoutExtension(args[1]) + ".cnp";
EnterKeyForm enterKeyForm = new EnterKeyForm
{
Owner = this
};
enterKeyForm.ShowDialog();
File.Delete(args[1]);
string noenc = richTextBox.Text;
string en;
en = AES.Encrypt(richTextBox.Text, TypedPassword.Value, null, settings.HashAlgorithm, Convert.ToInt32(settings.PasswordIterations), Convert.ToInt32(settings.KeySize));
richTextBox.Text = en;
StreamWriter sw = new StreamWriter(newFile);
int i = richTextBox.Lines.Count();
int j = 0;
i = i - 1;
while (j <= i)
{
sw.WriteLine(richTextBox.Lines.GetValue(j).ToString());
j = j + 1;
}
sw.Close();
PublicVar.encryptionKey.Set(TypedPassword.Value);
TypedPassword.Value = null;
filePath = newFile;
PublicVar.openFileName = Path.GetFileName(newFile);
Text = PublicVar.appName + " " + PublicVar.openFileName;
richTextBox.Text = noenc;
}
richTextBox.Modified = false;
}
private void ContextMenuEncrypt()
{
if (!args[1].Contains(".cnp"))
{
string opnfile = File.ReadAllText(args[1]);
string NameWithotPath = Path.GetFileName(args[1]);
richTextBox.Text = opnfile;
Text = PublicVar.appName + NameWithotPath;
PublicVar.openFileName = Path.GetFileName(args[1]);
filePath = openFileDialog.FileName;
}
richTextBox.Modified = false;
}
private void DeleteUpdateFiles()
{
string exePath = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location) + @"\";
string UpdaterExe = exePath + "Updater.exe";
string UpdateZip = exePath + "Crypto-Notepad-Update.zip";
string ZipDll = exePath + "Ionic.Zip.dll";
if (File.Exists(UpdaterExe))
{
File.Delete(UpdaterExe);
}
if (File.Exists(UpdateZip))
{
File.Delete(UpdateZip);
}
if (File.Exists(ZipDll))
{
File.Delete(ZipDll);
}
}
private void SaveConfirm()
{
if (richTextBox.Modified)
{
if (string.IsNullOrEmpty(PublicVar.openFileName))
{
PublicVar.openFileName = "Unnamed.cnp";
}
string messageBoxText;
if (!PublicVar.keyChanged)
{
messageBoxText = "Save file: " + "\"" + PublicVar.openFileName + "\"" + " ? ";
}
else
{
messageBoxText = "Save file: " + "\"" + PublicVar.openFileName + "\"" + " with a new key? ";
}
using (new CenterWinDialog(this))
{
DialogResult res = MessageBox.Show(this, messageBoxText, PublicVar.appName, MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
if (res == DialogResult.Yes)
{
trayIcon.Visible = false;
SaveMainMenu_Click(this, new EventArgs());
}
if (res == DialogResult.Cancel)
{
cancelPressed = true;
}
}
}
}
private void CheckForUpdates(bool autoCheck)
{
try
{
WebClient client = new WebClient();
Stream stream = client.OpenRead("https://raw.githubusercontent.com/Crypto-Notepad/Crypto-Notepad/master/version.txt");
StreamReader reader = new StreamReader(stream);
string content = reader.ReadToEnd();
string version = Application.ProductVersion;
string exePath = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location) + @"\";
int appVersion = Convert.ToInt32(version.Replace(".", "")), serverVersion = Convert.ToInt32(content.Replace(".", ""));
if (serverVersion > appVersion)
{
if (statusPanel.Visible)
{
StatusPanelMessage("update-needed");
}
else
{
using (new CenterWinDialog(this))
{
DialogResult res = MessageBox.Show(this, "New version is available. Install it now?", PublicVar.appName, MessageBoxButtons.YesNo, MessageBoxIcon.Information);
if (res == DialogResult.Yes)
{
File.WriteAllBytes(exePath + "Ionic.Zip.dll", Resources.Ionic_Zip);
File.WriteAllBytes(exePath + "Updater.exe", Resources.Updater);
var pr = new Process();
pr.StartInfo.FileName = exePath + "Updater.exe";
pr.StartInfo.Arguments = "/u";
pr.Start();
Application.Exit();
}
}
}
}
if (serverVersion <= appVersion && autoCheck)
{
using (new CenterWinDialog(this))
{
if (statusPanel.Visible)
{
StatusPanelMessage("update-missing");
}
else
{
MessageBox.Show(this, "Crypto Notepad is up to date.", PublicVar.appName, MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}
}
catch
{
if (autoCheck)
{
mainMenu.Invoke((Action)delegate
{
using (new CenterWinDialog(this))
{
if (statusPanel.Visible)
{
StatusPanelMessage("update-failed");
}
else
{
MessageBox.Show(this, "Checking for updates failed:\nConnection lost or the server is busy.", PublicVar.appName, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
});
}
}
}
private async void StatusPanelMessage(string type)
{
string ready = "Ready";
if (statusPanelLabel.Text == "New version is available")
{
ready = "New version is available";
}
switch (type)
{
case "save":
if (statusPanelLabel.Text != "File Saved")
{
statusPanelLabel.Text = "File Saved";
await Task.Delay(3000);
statusPanelLabel.Text = ready;
}
break;
case "update-missing":
statusPanelLabel.Text = "Crypto Notepad is up to date";
await Task.Delay(3000);
statusPanelLabel.Text = ready;
break;
case "update-failed":
statusPanelLabel.Text = "Checking for updates failed";
await Task.Delay(3000);
statusPanelLabel.Text = ready;
break;
case "update-needed":
statusPanelLabel.Text = "New version is available";
break;
case "always-top-on":
if (statusPanelLabel.Text != "Always on top ON")
{
statusPanelLabel.Text = "Always on top ON";
await Task.Delay(3000);
statusPanelLabel.Text = ready;
}
break;
case "always-top-off":
if (statusPanelLabel.Text != "Always on top OFF")
{
statusPanelLabel.Text = "Always on top OFF";
await Task.Delay(3000);
statusPanelLabel.Text = ready;
}
break;
}
}
private void StatusPanelTextInfo()
{
int currentColumn = 1 + richTextBox.SelectionStart - richTextBox.GetFirstCharIndexOfCurrentLine();
int currentLine = 0;
using (RichTextBox rtb = new RichTextBox() { WordWrap = false, Text = richTextBox.Text })
{
currentLine = 1 + rtb.GetLineFromCharIndex(richTextBox.SelectionStart);
}
int linesCount = richTextBox.Lines.Count();
if (linesCount == 0)
{
linesCount = 1;
}
statusPanelLengthLabel.Text = "Length: " + richTextBox.TextLength;
statusPaneLinesLabel.Text = "Lines: " + linesCount;
statusPaneLnLabel.Text = "Ln: " + currentLine;
statusPaneColLabel.Text = "Col: " + currentColumn;
}
private void LockFile()
{
try
{
TypedPassword.Value = fileLockedKeyTextBox.Text;
string opnfile = File.ReadAllText(filePath);
string de = AES.Decrypt(opnfile, TypedPassword.Value, null, settings.HashAlgorithm, Convert.ToInt32(settings.PasswordIterations), Convert.ToInt32(settings.KeySize));
fileLockedPanel.Visible = false;
richTextBox.Focus();
richTextBox.Text = de;
richTextBox.SelectionStart = caretPos;
PublicVar.encryptionKey.Set(TypedPassword.Value);
TypedPassword.Value = null;
}
catch (Exception ex)
{
if (ex is CryptographicException)
{
TypedPassword.Value = null;
using (new CenterWinDialog(this))
{
DialogResult dialogResult = MessageBox.Show(this, "Invalid key!", PublicVar.appName, MessageBoxButtons.RetryCancel, MessageBoxIcon.Error);
if (dialogResult == DialogResult.Retry)
{
fileLockedKeyTextBox.Text = "";
fileLockedKeyTextBox.Focus();
}
if (dialogResult == DialogResult.Cancel)
{
fileLockedPanel.Visible = false;
Text = PublicVar.appName;
filePath = "";
PublicVar.openFileName = "";
}
}
}
}
}
private void LoadSettings()
{
if (settings.editorRightToLeft)
{
richTextBox.RightToLeft = RightToLeft.Yes;
lineNumbers.Dock = DockStyle.Right;
rightToLeftContextMenu.Checked = true;
}
else
{
richTextBox.RightToLeft = RightToLeft.No;
lineNumbers.Dock = DockStyle.Left;
rightToLeftContextMenu.Checked = false;
}
if (settings.insertKey == "Disable")
{
insertMainMenu.ShortcutKeys = Keys.Insert;
}
else
{
insertMainMenu.ShortcutKeys = Keys.None;
}
if (settings.autoCheckUpdate)
{
CheckForUpdates(false);
}
if (settings.windowLocation.ToString() != "{X=0,Y=0}")
{
Location = settings.windowLocation;
}
Size = settings.windowSize;
WindowState = settings.windowState;
if (settings.toolbarBorder)
{
toolbarPanel.BorderStyle = BorderStyle.FixedSingle;
}
else
{
toolbarPanel.BorderStyle = BorderStyle.None;
}
TopMost = settings.alwaysOnTop;
alwaysOnTopMainMenu.Checked = settings.alwaysOnTop;
if (settings.closeToTray | settings.minimizeToTray)
{
trayIcon.Visible = true;
}
wordWrapMainMenu.Checked = settings.editorWrap;
toolbarPanel.BackColor = settings.toolbarBackColor;
toolbarPanel.Visible = settings.toolbarVisible;
mainMenu.Visible = settings.mainMenuVisible;
rightToLeftContextMenu.Checked = settings.editorRightToLeft;
lineNumbers.BackColor = settings.lineNumbersBackColor;
lineNumbers.Font = settings.editorFont;
lineNumbers.ForeColor = settings.lineNumbersForeColor;
statusPanel.ForeColor = settings.statusPanelFontColor;
statusPanel.BackColor = settings.statusPanelBackColor;
statusPanel.Visible = settings.statusPanelVisible;
richTextBox.WordWrap = settings.editorWrap;
richTextBox.ForeColor = settings.editroForeColor;
richTextBox.BackColor = settings.editorBackColor;
richTextBox.Font = settings.editorFont;
BackColor = settings.editorBackColor;
searchPanel.BackColor = settings.searchPanelBackColor;
searchPanel.ForeColor = settings.searchPanelForeColor;
searchTextBox.BackColor = settings.searchPanelBackColor;
searchTextBox.ForeColor = settings.searchPanelForeColor;
searchCaseSensitiveCheckBox.ForeColor = settings.searchPanelForeColor;
searchWholeWordCheckBox.ForeColor = settings.searchPanelForeColor;
searchFindNextButton.ForeColor = settings.searchPanelForeColor;
lineNumbers.Visible = bool.Parse(settings.lineNumbersVisible);
lineNumbers.Show_BorderLines = bool.Parse(settings.borderLinesVisible);
lineNumbers.Show_GridLines = bool.Parse(settings.gridLinesVisible);
lineNumbers.Show_MarginLines = bool.Parse(settings.marginLinesVisible);
lineNumbers.GridLines_Color = settings.gridLinesColor;
lineNumbers.MarginLines_Color = settings.marginLinesColor;
lineNumbers.BorderLines_Color = settings.borderLinesColor;
lineNumbers.BorderLines_Style = (DashStyle)Enum.Parse(typeof(DashStyle), settings.borderLinesStyle);
lineNumbers.GridLines_Style = (DashStyle)Enum.Parse(typeof(DashStyle), settings.gridLinesStyle);
lineNumbers.MarginLines_Style = (DashStyle)Enum.Parse(typeof(DashStyle), settings.marginLinesStyle);
lineNumbers.MarginLines_Side = (LineNumbers.LineNumbers.LineNumberDockSide)Enum.Parse(typeof(LineNumbers.LineNumbers.LineNumberDockSide), settings.marginLinesSide);
}
public void MenuIcons(bool menuIcons)
{
if (menuIcons)
{
newMainMenu.Image = Resources.document_plus;
openMainMenu.Image = Resources.folder_open_document;
saveMainMenu.Image = Resources.disk_return_black;
saveAsMainMenu.Image = Resources.disks_black;
openFileLocationMainMenu.Image = Resources.folder_horizontal;
deleteFileMainMenu.Image = Resources.document_minus;
exitMainMenu.Image = Resources.cross_button;
undoMainMenu.Image = Resources.arrow_left;
redoMainMenu.Image = Resources.arrow_right;
cutMainMenu.Image = Resources.scissors;
copyMainMenu.Image = Resources.document_copy;
pasteMainMenu.Image = Resources.clipboard;
deleteMainMenu.Image = Resources.minus;
findMainMenu.Image = Resources.magnifier;
selectAllMainMenu.Image = Resources.selection_input;
wordWrapMainMenu.Image = Resources.wrap_option;
clearMainMenu.Image = Resources.document;
changeKeyMainMenu.Image = Resources.key;
lockMainMenu.Image = Resources.lock_warning;
settingsMainMenu.Image = Resources.gear;
documentationMainMenu.Image = Resources.document_text;
checkForUpdatesMainMenu.Image = Resources.upload_cloud;
aboutMainMenu.Image = Resources.information;
alwaysOnTopMainMenu.Image = Resources.applications_blue;
}
else
{
foreach (ToolStripItem item in mainMenu.Items)
{
if (item is ToolStripDropDownItem)
foreach (ToolStripItem dropDownItem in ((ToolStripDropDownItem)item).DropDownItems)
{
dropDownItem.Image = null;
}
}
}
}
public void Toolbaricons(bool oldIcons)
{
if (oldIcons)
{
newToolbarButton.Image = Resources.old_page_white_add;
openToolbarButton.Image = Resources.old_folder_vertical_document;
saveToolbarButton.Image = Resources.old_diskette;
fileLocationToolbarButton.Image = Resources.old_folder_stand;
deleteFileToolbarButton.Image = Resources.old_page_white_delete;
cutToolbarButton.Image = Resources.old_cut_red;
copyToolbarButton.Image = Resources.old_page_white_copy;
pasteToolbarButton.Image = Resources.old_paste_plain;
changeKeyToolbarButton.Image = Resources.old_page_white_key;
lockToolbarButton.Image = Resources.old_lock;
settingsToolbarButton.Image = Resources.old_setting_tools;
alwaysOnTopToolbarButton.Image = Resources.old_application_double;
}
else
{
newToolbarButton.Image = Resources.document_plus;
openToolbarButton.Image = Resources.folder_open_document;
saveToolbarButton.Image = Resources.disk_return_black;
fileLocationToolbarButton.Image = Resources.folder_horizontal;
deleteFileToolbarButton.Image = Resources.document_minus;
cutToolbarButton.Image = Resources.scissors;
copyToolbarButton.Image = Resources.document_copy;
pasteToolbarButton.Image = Resources.clipboard;
changeKeyToolbarButton.Image = Resources.key;
lockToolbarButton.Image = Resources.lock_warning;
settingsToolbarButton.Image = Resources.gear;
alwaysOnTopToolbarButton.Image = Resources.applications_blue;
}
}
#endregion
#region Event Handlers
private void MainForm_Resize(object sender, EventArgs e)
{
if (settings.minimizeToTray)
{
if (WindowState == FormWindowState.Minimized)
{
Hide();
}
}
if (WindowState == FormWindowState.Minimized & settings.autoLock & !string.IsNullOrEmpty(PublicVar.encryptionKey.Get()))
{
fileLockedPanel.Visible = true;
}
if (WindowState == FormWindowState.Normal)
{
if (fileLockedPanel.Visible)
{
fileLockedKeyTextBox.Focus();
}
}
}
private void MainWindow_Activated(object sender, EventArgs e)
{
richTextBox.Focus();
if (PublicVar.keyChanged)
{
richTextBox.Modified = true;
}
lineNumbers.Refresh();
}
private void MainWindow_FormClosing(object sender, FormClosingEventArgs e)
{
if (WindowState == FormWindowState.Normal)
{
settings.windowSize = Size;
settings.windowLocation = Location;
settings.windowState = WindowState;
}
if (WindowState == FormWindowState.Maximized)
{
settings.windowState = WindowState;
}
settings.Save();
if (settings.closeToTray)
{
if (e.CloseReason == CloseReason.UserClosing)
{
if (settings.autoLock & !string.IsNullOrEmpty(PublicVar.encryptionKey.Get()))
{
fileLockedPanel.Visible = true;
}
Hide();
e.Cancel = true;
return;
}
}
if (richTextBox.Modified)
{
if (string.IsNullOrEmpty(PublicVar.openFileName))
{
PublicVar.openFileName = "Unnamed.cnp";
}
if (!string.IsNullOrEmpty(richTextBox.Text))
{
string messageBoxText;
if (!PublicVar.keyChanged)
{
messageBoxText = "Save file: " + "\"" + PublicVar.openFileName + "\"" + " ? ";
}
else
{
messageBoxText = "Save file: " + "\"" + PublicVar.openFileName + "\"" + " with a new key? ";
}
using (new CenterWinDialog(this))
{
DialogResult res = MessageBox.Show(this, messageBoxText, PublicVar.appName, MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
if (res == DialogResult.Yes)
{
trayIcon.Visible = false;
SaveMainMenu_Click(this, new EventArgs());
}
if (res == DialogResult.Cancel)
{
e.Cancel = true;
}
}
}
}
}
private void MainForm_Shown(object sender, EventArgs e)
{
Visible = true;
richTextBox.SetInnerMargins(Convert.ToInt32(settings.editorPaddingLeft), 0, 0, 0);
richTextBox.Modified = false;
}
private void MainWindow_Load(object sender, EventArgs e)
{
Visible = false;
searchPanel.CellBorderStyle = TableLayoutPanelCellBorderStyle.Single;
LoadSettings();
DeleteUpdateFiles();
MenuIcons(settings.menuIcons);
Toolbaricons(settings.oldToolbarIcons);
if (args.Length == 2) /*drag & drop to executable*/
{
OpenAsotiations();
}
if (args.Contains("/s")) /*send to*/
{
foreach (var arg in args)
{
argsPath = arg;
}
SendTo();
}
if (args.Contains("/o")) /*decrypt & open cnp*/
{
OpenAsotiations();
}
if (args.Contains("/e")) /*encrypt*/
{
ContextMenuEncrypt();
}
if (args.Contains("/er")) /*encrypt and replace*/
{
ContextMenuEncryptReplace();
}
#if DEBUG
debugMainMenu.Visible = true;
#endif
}
private void RichTextBox_SelectionChanged(object sender, EventArgs e)
{
if (richTextBox.SelectionLength != 0)
{
cutToolbarButton.Enabled = true;
copyToolbarButton.Enabled = true;
}
else
{
cutToolbarButton.Enabled = false;
copyToolbarButton.Enabled = false;
}
StatusPanelTextInfo();
}
private void RichTextBox_Click(object sender, EventArgs e)
{
StatusPanelTextInfo();
}
private void RichTextBox_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Escape)
{
searchTextBox.Text = "";
searchPanel.Visible = false;
richTextBox.Focus();
richTextBox.DeselectAll();
e.Handled = e.SuppressKeyPress = true;
findPos = 0;
}
if (e.KeyCode == Keys.Enter & searchPanel.Visible & !string.IsNullOrEmpty(searchTextBox.Text))
{
SearchFindNextButton_Click(this, new EventArgs());
e.Handled = e.SuppressKeyPress = true;
}
}
private void RichTextBox_LinkClicked(object sender, LinkClickedEventArgs e)
{
if (settings.openLinks == "LMB Click")
{
Process.Start(e.LinkText);
}
if (settings.openLinks == "Shift+LMB")
{
if ((ModifierKeys & Keys.Shift) != 0)
{
Process.Start(e.LinkText);
}
}
if (settings.openLinks == "Control+LMB")
{
if ((ModifierKeys & Keys.Control) != 0)
{
Process.Start(e.LinkText);
}
}
}
private void RichTextBox_DragDrop(object sender, DragEventArgs e)
{
SaveConfirm();
if (cancelPressed)
{
cancelPressed = false;
return;
}
string[] FileList = (string[])e.Data.GetData(DataFormats.FileDrop, false);
foreach (string file in FileList) openFileDialog.FileName = file;
object fname = e.Data.GetData("FileDrop");
PublicVar.openFileName = Path.GetFileName(openFileDialog.FileName);
if (fname != null)
{
var list = fname as string[];
if (list != null && !string.IsNullOrWhiteSpace(list[0]))
{
if (!openFileDialog.FileName.Contains(".cnp"))
{
string opnfile = File.ReadAllText(openFileDialog.FileName);
string NameWithotPath = Path.GetFileName(openFileDialog.FileName);
richTextBox.Text = opnfile;
Text = PublicVar.appName + " " + NameWithotPath;
filePath = openFileDialog.FileName;
return;
}
DecryptAES();
}
}
}
private void RichTextBox_TextChanged(object sender, EventArgs e)
{
StatusPanelTextInfo();
}
private void RichTextBox_CursorPositionChanged(object sender, EventArgs e)
{
StatusPanelTextInfo();
}
private void StatusPanelLabel_TextChanged(object sender, EventArgs e)
{
if (statusPanelLabel.Text == "New version is available")
{
statusPanelLabel.IsLink = true;
}
else
{
statusPanelLabel.IsLink = false;
}
}
private void StatusPanelLabel_Click(object sender, EventArgs e)
{
if (statusPanelLabel.Text == "New version is available")
{
string exePath = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location) + @"\";
using (new CenterWinDialog(this))
{
DialogResult res = MessageBox.Show(this, "New version is available. Install it now?", PublicVar.appName, MessageBoxButtons.YesNo, MessageBoxIcon.Information);
if (res == DialogResult.Yes)
{
File.WriteAllBytes(exePath + "Ionic.Zip.dll", Resources.Ionic_Zip);
File.WriteAllBytes(exePath + "Updater.exe", Resources.Updater);
var pr = new Process();
pr.StartInfo.FileName = exePath + "Updater.exe";
pr.StartInfo.Arguments = "/u";
pr.Start();
Application.Exit();
}
}
}
}
#endregion
#region Main Menu
/*File*/
private void NewMainMenu_Click(object sender, EventArgs e)
{
SaveConfirm();
if (cancelPressed)
{
cancelPressed = false;
return;
}
PublicVar.openFileName = "Unnamed.cnp";
EnterKeyForm enterKeyForm = new EnterKeyForm
{
Owner = this
};
enterKeyForm.ShowDialog();
if (!PublicVar.okPressed)
{
if (!string.IsNullOrEmpty(filePath))
{
PublicVar.openFileName = Path.GetFileName(filePath);
}
TypedPassword.Value = null;
return;
}
else
{
saveFileDialog.FileName = "Unnamed.cnp";
PublicVar.encryptionKey.Set(TypedPassword.Value);
PublicVar.okPressed = false;
if (saveFileDialog.ShowDialog() != DialogResult.OK)
{
TypedPassword.Value = null;
return;
}
richTextBox.Clear();
StreamWriter sw = new StreamWriter(saveFileDialog.FileName);
string NameWithotPath = Path.GetFileName(saveFileDialog.FileName);
Text = PublicVar.appName + " " + NameWithotPath;
filePath = saveFileDialog.FileName;
PublicVar.openFileName = Path.GetFileName(saveFileDialog.FileName);
sw.Close();
}
TypedPassword.Value = null;
}
private void OpenMainMenu_Click(object sender, EventArgs e)
{
SaveConfirm();
if (cancelPressed)
{
cancelPressed = false;
return;
}
openFileDialog.FileName = "";
if (openFileDialog.ShowDialog() != DialogResult.OK) return;
{
PublicVar.openFileName = Path.GetFileName(openFileDialog.FileName);
if (!openFileDialog.FileName.Contains(".cnp"))
{
string opnfile = File.ReadAllText(openFileDialog.FileName);
string NameWithotPath = Path.GetFileName(openFileDialog.FileName);
richTextBox.Text = opnfile;
Text = PublicVar.appName + " " + NameWithotPath;
return;
}
DecryptAES();
richTextBox.Modified = false;
}
}
private void SaveMainMenu_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(PublicVar.encryptionKey.Get()))
{
SaveAsMainMenu_Click(this, new EventArgs());
return;
}
string enc = AES.Encrypt(richTextBox.Text, PublicVar.encryptionKey.Get(), null, settings.HashAlgorithm, Convert.ToInt32(settings.PasswordIterations), Convert.ToInt32(settings.KeySize));
using (StreamWriter writer = new StreamWriter(filePath))
{
writer.Write(enc);
writer.Close();
}
richTextBox.Modified = false;
PublicVar.keyChanged = false;
StatusPanelMessage("save");
}
private void SaveAsMainMenu_Click(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(filePath))
{
PublicVar.openFileName = Path.GetFileName(filePath);
saveFileDialog.FileName = Path.GetFileName(filePath);
}
else
{
PublicVar.openFileName = "Unnamed.cnp";
saveFileDialog.FileName = "Unnamed.cnp";
}
EnterKeyForm enterKeyForm = new EnterKeyForm
{
Owner = this
};
if (string.IsNullOrEmpty(PublicVar.encryptionKey.Get()))
{
enterKeyForm.ShowDialog();
}
if (saveFileDialog.ShowDialog() != DialogResult.OK)
{
return;
}
if (TypedPassword.Value == null)
{
TypedPassword.Value = PublicVar.encryptionKey.Get();
}
filePath = saveFileDialog.FileName;
string enc = AES.Encrypt(richTextBox.Text, TypedPassword.Value, null, settings.HashAlgorithm, Convert.ToInt32(settings.PasswordIterations), Convert.ToInt32(settings.KeySize));
using (StreamWriter writer = new StreamWriter(filePath))
{
writer.Write(enc);
writer.Close();
}
richTextBox.Modified = false;
Text = PublicVar.appName + " " + Path.GetFileName(filePath);
PublicVar.encryptionKey.Set(TypedPassword.Value);
TypedPassword.Value = null;
PublicVar.openFileName = Path.GetFileName(saveFileDialog.FileName);
StatusPanelMessage("save");
}
private void OpenFileLocationMainMenu_Click(object sender, EventArgs e)
{
Process.Start("explorer.exe", @"/select, " + filePath);
}
private void DeleteFileToolStripMenuItem_Click(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(filePath))
{
using (new CenterWinDialog(this))
{
if (MessageBox.Show(this, "Delete file: " + "\"" + filePath + "\"" + " ?", PublicVar.appName, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
File.Delete(filePath);
richTextBox.Clear();
PublicVar.encryptionKey.Set(null);
fileLocationToolbarButton.Enabled = false;
deleteFileToolbarButton.Enabled = false;
changeKeyToolbarButton.Enabled = false;
lockToolbarButton.Enabled = false;
filePath = "";
PublicVar.openFileName = "";
Text = PublicVar.appName;
return;
}
}
}
}
private void ExitMainMenu_Click(object sender, EventArgs e)
{
Application.Exit();
}
private void FileMainMenu_DropDownOpened(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(filePath))
{
openFileLocationMainMenu.Enabled = false;
deleteFileMainMenu.Enabled = false;
}
else
{
openFileLocationMainMenu.Enabled = true;
deleteFileMainMenu.Enabled = true;
}
}
/*File*/
/*Edit*/
private void EditMainMenu_DropDownOpened(object sender, EventArgs e)
{
if (richTextBox.SelectionLength != 0)
{
cutMainMenu.Enabled = true;
copyMainMenu.Enabled = true;
deleteMainMenu.Enabled = true;
}
else
{
cutMainMenu.Enabled = false;
copyMainMenu.Enabled = false;
deleteMainMenu.Enabled = false;
}
}
private void UndoMainMenu_Click(object sender, EventArgs e)
{
richTextBox.Undo();
richTextBox.DeselectAll();
}
public void RedoMainMenu_Click(object sender, EventArgs e)
{
richTextBox.Redo();
}
private void CutMainMenu_Click(object sender, EventArgs e)
{
richTextBox.Cut();
}
private void CopyMainMenu_Click(object sender, EventArgs e)
{
richTextBox.Copy();
}
private void PasteMainMenu_Click(object sender, EventArgs e)
{
if (richTextBox.Focused)
{
richTextBox.Paste(DataFormats.GetFormat(DataFormats.Text));
}
if (searchTextBox.Focused)
{
searchTextBox.Paste();
}
}
private void DeleteMainMenu_Click(object sender, EventArgs e)
{
richTextBox.SelectedText = "";
}
private void FindMainMenu_Click(object sender, EventArgs e)
{
if (!richTextBox.Visible) return;
if (searchPanel.Visible)
{
searchTextBox.Text = "";
searchPanel.Visible = false;
richTextBox.Focus();
richTextBox.DeselectAll();
}
else
{
searchPanel.Visible = true;
searchTextBox.Focus();
}
}
private void SelectAllMainMenu_Click(object sender, EventArgs e)
{
if (richTextBox.Focused)
{
richTextBox.SelectAll();
}
if (searchTextBox.Focused)
{
searchTextBox.SelectAll();
}
}
private void WordWrapMainMenu_Click(object sender, EventArgs e)
{
if (wordWrapMainMenu.Checked)
{
richTextBox.WordWrap = true;
}
else
{
richTextBox.WordWrap = false;
}
settings.menuWrap = wordWrapMainMenu.Checked;
settings.editorWrap = richTextBox.WordWrap;
settings.Save();
}
private void ClearMainMenu_Click(object sender, EventArgs e)
{
richTextBox.SelectAll();
richTextBox.SelectedText = " ";
}
/*Edit*/
/*Tools*/
private void AlwaysOnTopMainMenu_Click(object sender, EventArgs e)
{
if (alwaysOnTopMainMenu.Checked)
{
settings.alwaysOnTop = true;
TopMost = true;
StatusPanelMessage("always-top-on");
}
else
{
settings.alwaysOnTop = false;
TopMost = false;
StatusPanelMessage("always-top-off");
}
}
private void ToolsMainMenu_DropDownOpened(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(PublicVar.encryptionKey.Get()))
{
changeKeyMainMenu.Enabled = false;
lockMainMenu.Enabled = false;
}
else
{
changeKeyMainMenu.Enabled = true;
lockMainMenu.Enabled = true;
}
}
private void ChangeKeyMainMenu_Click(object sender, EventArgs e)
{
ChangeKeyForm changeKeyForm = new ChangeKeyForm();
changeKeyForm.ShowDialog(this);
}
private void LockMainMenu_Click(object sender, EventArgs e)
{
SaveMainMenu_Click(this, new EventArgs());
fileLockedPanel.Visible = true;
}
private void SettingsMainMenu_Click(object sender, EventArgs e)
{
SettingsForm settingsForm = new SettingsForm
{
Owner = this
};
settingsForm.ShowDialog();
}
/*Tools*/
/*Help*/
private void DocumentationMainMenu_Click(object sender, EventArgs e)
{
Process.Start("https://github.com/Crypto-Notepad/Crypto-Notepad/wiki/Documentation");
}
private void CheckForUpdatesMainMenu_Click(object sender, EventArgs e)
{
CheckForUpdates(true);
}
private void AboutMainMenu_Click(object sender, EventArgs e)
{
AboutFrom aboutFrom = new AboutFrom();
aboutFrom.ShowDialog(this);
}
/*Help*/
#endregion
#region Editor Menu
private void ContextMenu_Opening(object sender, CancelEventArgs e)
{
if (richTextBox.SelectionLength != 0)
{
cutContextMenu.Enabled = true;
copyContextMenu.Enabled = true;
deleteContextMenu.Enabled = true;
}
else
{
cutContextMenu.Enabled = false;
copyContextMenu.Enabled = false;
deleteContextMenu.Enabled = false;
}
}
private void UndoContextMenu_Click(object sender, EventArgs e)
{
UndoMainMenu_Click(this, new EventArgs());
}
private void RedoContextMenu_Click(object sender, EventArgs e)
{
RedoMainMenu_Click(this, new EventArgs());
}
private void CutContextMenu_Click(object sender, EventArgs e)
{
CutMainMenu_Click(this, new EventArgs());
}
private void CopyContextMenu_Click(object sender, EventArgs e)
{
CopyMainMenu_Click(this, new EventArgs());
}
private void PasteContextMenu_Click(object sender, EventArgs e)
{
PasteMainMenu_Click(this, new EventArgs());
}
private void DeleteContextMenu_Click(object sender, EventArgs e)
{
DeleteMainMenu_Click(this, new EventArgs());
}
private void SelectAllContextMenu_Click(object sender, EventArgs e)
{
SelectAllMainMenu_Click(this, new EventArgs());
}
private void RightToLeftContextMenu_Click(object sender, EventArgs e)
{
if (rightToLeftContextMenu.Checked)
{
if (!richTextBox.WordWrap)
{
string rtbTxt = richTextBox.Text;
richTextBox.Clear();
richTextBox.RightToLeft = RightToLeft.Yes;
Application.DoEvents();
richTextBox.Text = rtbTxt;
}
else
{
string rtbTxt = richTextBox.Text;
richTextBox.Clear();
richTextBox.RightToLeft = RightToLeft.Yes;
Application.DoEvents();
richTextBox.Text = rtbTxt;
}
settings.editorRightToLeft = true;
lineNumbers.Dock = DockStyle.Right;
richTextBox.Modified = false;
}
else
{
richTextBox.RightToLeft = RightToLeft.No;
settings.editorRightToLeft = false;
lineNumbers.Dock = DockStyle.Left;
richTextBox.Modified = false;
}
settings.Save();
}
private void ClearContextMenu_Click(object sender, EventArgs e)
{
ClearMainMenu_Click(this, new EventArgs());
}
#endregion
#region Toolbar
private void NewToolbarButton_Click(object sender, EventArgs e)
{
NewMainMenu_Click(this, new EventArgs());
}
private void OpenToolbarButton_Click(object sender, EventArgs e)
{
OpenMainMenu_Click(this, new EventArgs());
}
private void SaveToolbarButton_Click(object sender, EventArgs e)
{
SaveMainMenu_Click(this, new EventArgs());
}
private void FileLocationToolbarButton_Click(object sender, EventArgs e)
{
OpenFileLocationMainMenu_Click(this, new EventArgs());
}
private void DeleteFileToolbarButton_Click(object sender, EventArgs e)
{
DeleteFileToolStripMenuItem_Click(this, new EventArgs());
}
private void CutToolbarButton_Click(object sender, EventArgs e)
{
CutMainMenu_Click(this, new EventArgs());
}
private void CopyToolbarButton_Click(object sender, EventArgs e)
{
CopyMainMenu_Click(this, new EventArgs());
}
private void PasteToolbarButton_Click(object sender, EventArgs e)
{
PasteMainMenu_Click(this, new EventArgs());
}
private void ChangeKeyToolbarButton_Click(object sender, EventArgs e)
{
ChangeKeyMainMenu_Click(this, new EventArgs());
}
private void SettingsToolbarButton_Click(object sender, EventArgs e)
{
SettingsMainMenu_Click(this, new EventArgs());
}
private void LockToolbarButton_Click(object sender, EventArgs e)
{
LockMainMenu_Click(this, new EventArgs());
}
private void CloseToolbarButton_Click(object sender, EventArgs e)
{
toolbarPanel.Visible = false;
settings.toolbarVisible = false;
}
private void CloseToolbarButton_MouseEnter(object sender, EventArgs e)
{
closeToolbarButton.Image = Resources.close_b;
}
private void CloseToolbarButton_MouseLeave(object sender, EventArgs e)
{
closeToolbarButton.Image = Resources.close_g;
}
private void AlwaysOnTopToolbarButton_Click(object sender, EventArgs e)
{
if (settings.alwaysOnTop)
{
settings.alwaysOnTop = false;
TopMost = settings.alwaysOnTop;
alwaysOnTopMainMenu.Checked = settings.alwaysOnTop;
StatusPanelMessage("always-top-off");
}
else
{
settings.alwaysOnTop = true;
TopMost = settings.alwaysOnTop;
alwaysOnTopMainMenu.Checked = settings.alwaysOnTop;
StatusPanelMessage("always-top-on");
}
}
private void ToolbarPanel_MouseEnter(object sender, EventArgs e)
{
if (richTextBox.SelectionLength != 0)
{
cutToolbarButton.Enabled = true;
copyToolbarButton.Enabled = true;
}
else
{
cutToolbarButton.Enabled = false;
copyToolbarButton.Enabled = false;
}
if (string.IsNullOrEmpty(PublicVar.encryptionKey.Get()))
{
fileLocationToolbarButton.Enabled = false;
deleteFileToolbarButton.Enabled = false;
changeKeyToolbarButton.Enabled = false;
lockToolbarButton.Enabled = false;
}
else
{
fileLocationToolbarButton.Enabled = true;
deleteFileToolbarButton.Enabled = true;
changeKeyToolbarButton.Enabled = true;
lockToolbarButton.Enabled = true;
}
}
#endregion
#region Search Panel
private void SearchTextBox_TextChanged(object sender, EventArgs e)
{
findPos = 0;
}
private void SearchTextBox_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Escape)
{
searchTextBox.Text = "";
searchPanel.Visible = false;
richTextBox.Focus();
richTextBox.DeselectAll();
e.Handled = e.SuppressKeyPress = true;
findPos = 0;
}
if (e.KeyCode == Keys.Enter & searchPanel.Visible & !string.IsNullOrEmpty(searchTextBox.Text))
{
SearchFindNextButton_Click(this, new EventArgs());
e.Handled = e.SuppressKeyPress = true;
}
}
private void SearchCloseButton_Click(object sender, EventArgs e)
{
FindMainMenu_Click(this, new EventArgs());
}
private void SearchCloseButton_MouseHover(object sender, EventArgs e)
{
searchCloseButton.Image = Resources.close_b;
}
private void SearchCloseButton_MouseLeave(object sender, EventArgs e)
{
searchCloseButton.Image = Resources.close_g;
}
private void SearchCaseSensitiveCheckBox_CheckedChanged(object sender, EventArgs e)
{
findPos = 0;
richTextBox.DeselectAll();
}
private void SearchWholeWordCheckBox_CheckedChanged(object sender, EventArgs e)
{
findPos = 0;
richTextBox.DeselectAll();
}
private void FindText(string text, RichTextBoxFinds findOptions)
{
if (text.Length > 0)
{
try
{
findPos = richTextBox.Find(searchTextBox.Text, findPos, findOptions);
if (findPos == -1)
{
findPos = 0;
searchTextBox.Focus();
return;
}
richTextBox.Focus();
richTextBox.Select(findPos, searchTextBox.Text.Length);
findPos += searchTextBox.Text.Length + 1;
}
catch
{
findPos = 0;
}
}
}
private void SearchFindNextButton_Click(object sender, EventArgs e)
{
if ((!searchWholeWordCheckBox.Checked) & (!searchCaseSensitiveCheckBox.Checked))
{
FindText(searchTextBox.Text, RichTextBoxFinds.None);
return;
}
if (searchWholeWordCheckBox.Checked & searchCaseSensitiveCheckBox.Checked)
{
FindText(searchTextBox.Text, RichTextBoxFinds.MatchCase | RichTextBoxFinds.WholeWord);
return;
}
if (searchCaseSensitiveCheckBox.Checked)
{
FindText(searchTextBox.Text, RichTextBoxFinds.MatchCase);
return;
}
if (searchWholeWordCheckBox.Checked)
{
FindText(searchTextBox.Text, RichTextBoxFinds.WholeWord);
return;
}
}
#endregion
#region AutoLock
private void FileLockedKeyTextBox_TextChanged(object sender, EventArgs e)
{
if (fileLockedKeyTextBox.Text.Length > 0)
{
fileLockedOkButton.Enabled = true;
encryptionKeyPlaceholder.Visible = false;
}
else
{
encryptionKeyPlaceholder.Visible = true;
fileLockedOkButton.Enabled = false;
}
}
private void FileLockedPanel_VisibleChanged(object sender, EventArgs e)
{
if (fileLockedPanel.Visible)
{
foreach (ToolStripItem item in mainMenu.Items)
{
if (item is ToolStripDropDownItem)
foreach (ToolStripItem dropDownItem in ((ToolStripDropDownItem)item).DropDownItems)
{
dropDownItem.Enabled = false;
}
}
PublicVar.encryptionKey.Set(null);
caretPos = richTextBox.SelectionStart;
richTextBox.Visible = false;
toolbarPanel.Enabled = false;
mainMenu.Enabled = false;
richTextBox.Clear();
fileLockedKeyTextBox.Focus();
}
else
{
foreach (ToolStripItem item in mainMenu.Items)
{
if (item is ToolStripDropDownItem)
foreach (ToolStripItem dropDownItem in ((ToolStripDropDownItem)item).DropDownItems)
{
dropDownItem.Enabled = true;
}
}
richTextBox.Visible = true;
toolbarPanel.Enabled = true;
searchPanel.Enabled = true;
mainMenu.Enabled = true;
fileLockedKeyTextBox.Text = "";
}
}
private void FileLockedOkButton_Click(object sender, EventArgs e)
{
LockFile();
}
private void FileLockedCloseButton_MouseClick(object sender, MouseEventArgs e)
{
fileLockedPanel.Visible = false;
Text = PublicVar.appName;
filePath = "";
PublicVar.openFileName = "";
}
private void FileLockedShowKey_Click(object sender, EventArgs e)
{
if (fileLockedKeyTextBox.UseSystemPasswordChar)
{
fileLockedKeyTextBox.UseSystemPasswordChar = false;
fileLockedShowKey.Image = Resources.eye;
}
else
{
fileLockedKeyTextBox.UseSystemPasswordChar = true;
fileLockedShowKey.Image = Resources.eye_half;
}
}
private void FileLockedKeyTextBox_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
e.SuppressKeyPress = true;
}
if (e.KeyCode == Keys.Enter & fileLockedOkButton.Enabled)
{
FileLockedOkButton_Click(sender, e);
}
}
private void FileLockedCloseButton_MouseEnter(object sender, EventArgs e)
{
fileLockedCloseButton.ForeColor = Color.Silver;
}
private void FileLockedCloseButton_MouseLeave(object sender, EventArgs e)
{
fileLockedCloseButton.ForeColor = Color.DimGray;
}
#endregion
#region Tray
private void TrayIcon_MouseDoubleClick(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left) {
Show();
WindowState = FormWindowState.Normal;
}
}
private void ShowTrayMenu_Click(object sender, EventArgs e)
{
Show();
WindowState = FormWindowState.Normal;
}
private void ExitTrayMenu_Click(object sender, EventArgs e)
{
Application.Exit();
}
#endregion
#region Debug Menu
private void VariablesMainMenu_Click(object sender, EventArgs e)
{
#if DEBUG
string formattedTime = DateTime.Now.ToString("yyyy.MM.dd hh:mm:ss");
Debug.WriteLine("\nTime: " + formattedTime);
Debug.WriteLine("PublicVar.openFileName: " + PublicVar.openFileName);
Debug.WriteLine("filePath: " + filePath);
Debug.WriteLine("encryptionKey: " + PublicVar.encryptionKey.Get());
Debug.WriteLine("TypedPassword: " + TypedPassword.Value);
Debug.WriteLine("keyChanged: " + PublicVar.keyChanged);
Debug.WriteLine("okPressed: " + PublicVar.okPressed);
Debug.WriteLine("RichTextBox.Modified: " + richTextBox.Modified);
Debug.WriteLine("EditorMenuStrip: " + contextMenu.Enabled);
#endif
}
#endregion
}
}