public void OpenDocument(PDFElement pdfElement)
        {
            //if (WindowEx.IsWindowOpen<PDFWindow>() == false)
            if (Visibility != Visibility.Visible)
            {
                Show();
            }

            IPDFViewer.LoadDocument(pdfElement);
        }
        private void TvBookmark_MenuItem_PDFExtract(object sender,
                                                    RoutedEventArgs e)
        {
            PdfBookmark bookmark = (PdfBookmark)tvBookmarks.SelectedItem;

            if (bookmark == null)
            {
                return;
            }

            IPDFViewer.ExtractBookmark(bookmark);
        }
        private void TvBookmarks_MenuItem_GoTo(object sender,
                                               RoutedEventArgs e)
        {
            PdfBookmark bookmark = (PdfBookmark)tvBookmarks.SelectedItem;

            if (bookmark == null)
            {
                return;
            }

            IPDFViewer.ProcessBookmark(bookmark);
        }
        private void TvBookmarks_MouseDoubleClick(object sender,
                                                  MouseButtonEventArgs e)
        {
            PdfBookmark bookmark = (PdfBookmark)tvBookmarks.SelectedItem;

            if (bookmark == null)
            {
                return;
            }

            IPDFViewer.ProcessBookmark(bookmark);
        }
        protected override void OnGotKeyboardFocus(KeyboardFocusChangedEventArgs e)
        {
            base.OnGotKeyboardFocus(e);

            if (Equals(e.NewFocus,
                       tvBookmarks) ||
                e.NewFocus is TreeViewItem)
            {
                return;
            }

            IPDFViewer.Focus();
        }
        protected override void OnClosing(CancelEventArgs e)
        {
            _saveConfigDelayed.Cancel();
            SaveConfig();

            e.Cancel = true;
            Hide();

            IPDFViewer.CloseDocument();
            IPDFViewer.PDFElement = null;

            base.OnClosing(e);
        }
        private void Window_KeyDown(object sender,
                                    KeyEventArgs e)
        {
            var kbMod  = GetKeyboardModifiers();
            var kbData = HotKeyManager.Instance.Match(
                new HotKey(
                    kbMod == KeyModifiers.Alt ? e.SystemKey : e.Key,
                    kbMod
                    )
                );

            switch (kbData?.Id)
            {
            case PDFHotKeys.UIShowOptions:
                ShowOptionDialog();
                e.Handled = true;
                break;

            case PDFHotKeys.UIToggleBookmarks:
                btnBookmarks.IsChecked = !btnBookmarks.IsChecked;
                tvBookmarks.Focus();
                e.Handled = true;
                break;

            case PDFHotKeys.UIFocusViewer:
                IPDFViewer.Focus();
                e.Handled = true;
                break;

            case PDFHotKeys.UIFocusBookmarks:
                btnBookmarks.IsChecked = true;
                tvBookmarks.Focus();
                e.Handled = true;
                break;
            }
        }
 public void CancelSave()
 {
     IPDFViewer?.CancelSave();
 }