void OnClipboardHistoryChanged(object?sender, NewClipItemEventEventArgs e)
        {
            this.ClipboardRules = ClipboardRule.GetMatchingRules(e.ClipItem.Text).ToList();

            if (e.ClipItem != ClipItem.Empty && e.ClipItem != e.PreviousClipItem)
            {
                this.ShowNotifications();
            }

            this.DrawMenuItems();
        }
        public TaskbarApplication()
        {
            this.TrayIcon = new NotifyIcon()
            {
                Icon             = mainIcon,
                Visible          = true,
                ContextMenuStrip = new ContextMenuStrip(),
                Text             = "Clipboard Manager",
            };

            this.TrayIcon.ContextMenuStrip.RenderMode = ToolStripRenderMode.System;

            // add left click to the systray icon
            // source: https://stackoverflow.com/a/3581311/12008
            this.TrayIcon.MouseClick += (sender, mouseEvent) =>
            {
                if (mouseEvent.Button == MouseButtons.Left)
                {
                    var methodInfo = typeof(NotifyIcon).GetMethod("ShowContextMenu", BindingFlags.Instance | BindingFlags.NonPublic);
                    methodInfo?.Invoke(this.TrayIcon, null);
                }
            };

            //KeyboardHook = new KeyboardHook();

            //try
            //{
            //    KeyboardHook.RegisterHotkey(ModifierKeys.Win | ModifierKeys.Shift, Keys.C);
            //}
            //catch (Exception)
            //{
            //    //Trace.TraceWarning("Cannot register Win + Shift + C");
            //}

            //try
            //{
            //    KeyboardHook.RegisterHotkey(ModifierKeys.Win | ModifierKeys.Shift, Keys.W);
            //}
            //catch (Exception)
            //{
            //    //Trace.TraceWarning("Cannot register Win + Shift + W");
            //}

            //try
            //{
            //    KeyboardHook.RegisterHotkey(ModifierKeys.Win | ModifierKeys.Shift, Keys.X);
            //}
            //catch (Exception)
            //{
            //    //Trace.TraceWarning("Cannot register Win + Shift + X");
            //}

            //try
            //{
            //    KeyboardHook.RegisterHotkey(ModifierKeys.Win | ModifierKeys.Shift, Keys.D);
            //}
            //catch (Exception)
            //{
            //    //Trace.TraceWarning("Cannot register Win + Shift + D");
            //}

            //KeyboardHook.KeyPressed += KeyboardHook_KeyPressed;

            this.ClipboardHistory.OnHistoryChanged += this.OnClipboardHistoryChanged;

            this.ClipboardRules = ClipboardRule.GetMatchingRules(this.ClipboardHistory.CurrentClip.Text).ToList();

            this.DrawMenuItems();
        }