|
@@ -26,16 +26,19 @@ namespace PDFViewer_new
|
|
{
|
|
{
|
|
public partial class MainPage : UserControl, INotifyPropertyChanged
|
|
public partial class MainPage : UserControl, INotifyPropertyChanged
|
|
{
|
|
{
|
|
|
|
+ private string currentMode = "Viewer";
|
|
private PDFViewControl pdfViewer;
|
|
private PDFViewControl pdfViewer;
|
|
private PDFViewControl passwordViewer;
|
|
private PDFViewControl passwordViewer;
|
|
private AnnotationControl annotationControl = new AnnotationControl();
|
|
private AnnotationControl annotationControl = new AnnotationControl();
|
|
private FormControl formControl = new FormControl();
|
|
private FormControl formControl = new FormControl();
|
|
private CPDFBOTABarControl botaBarControl = new CPDFBOTABarControl();
|
|
private CPDFBOTABarControl botaBarControl = new CPDFBOTABarControl();
|
|
|
|
+ private CPDFDisplaySettingsControl displaySettingsControl = new CPDFDisplaySettingsControl();
|
|
|
|
+
|
|
|
|
+ private PanelState panelState = PanelState.GetInstance();
|
|
|
|
|
|
private bool _canSave = false;
|
|
private bool _canSave = false;
|
|
public bool CanSave
|
|
public bool CanSave
|
|
{
|
|
{
|
|
-
|
|
|
|
get => _canSave;
|
|
get => _canSave;
|
|
set
|
|
set
|
|
{
|
|
{
|
|
@@ -43,13 +46,50 @@ namespace PDFViewer_new
|
|
OnPropertyChanged();
|
|
OnPropertyChanged();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ public bool LeftToolPanelButtonIsChecked
|
|
|
|
+ {
|
|
|
|
+ get => panelState.IsLeftPanelExpand;
|
|
|
|
+ set
|
|
|
|
+ {
|
|
|
|
+ panelState.IsLeftPanelExpand = value;
|
|
|
|
+ OnPropertyChanged();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public bool RightToolPanelButtonIsChecked
|
|
|
|
+ {
|
|
|
|
+ get
|
|
|
|
+ {
|
|
|
|
+ return (panelState.RightPanel == PanelState.RightPanelState.PropertyPanel);
|
|
|
|
+ }
|
|
|
|
+ set
|
|
|
|
+ {
|
|
|
|
+ panelState.RightPanel = (value) ? PanelState.RightPanelState.PropertyPanel : PanelState.RightPanelState.None;
|
|
|
|
+ OnPropertyChanged();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public bool ViewSettingBtnIsChecked
|
|
|
|
+ {
|
|
|
|
+ get
|
|
|
|
+ {
|
|
|
|
+ return (panelState.RightPanel == PanelState.RightPanelState.ViewSettings);
|
|
|
|
+ }
|
|
|
|
+ set
|
|
|
|
+ {
|
|
|
|
+ panelState.RightPanel = (value) ? PanelState.RightPanelState.ViewSettings : PanelState.RightPanelState.None;
|
|
|
|
+ OnPropertyChanged();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
public MainPage()
|
|
public MainPage()
|
|
{
|
|
{
|
|
InitializeComponent();
|
|
InitializeComponent();
|
|
|
|
+ this.DataContext = this;
|
|
}
|
|
}
|
|
|
|
|
|
- #region Load document
|
|
+ #region Load document
|
|
-
|
|
|
|
private void LoadDefaultDocument()
|
|
private void LoadDefaultDocument()
|
|
{
|
|
{
|
|
string defaultFilePath = "PDF32000_2008.pdf";
|
|
string defaultFilePath = "PDF32000_2008.pdf";
|
|
@@ -62,7 +102,7 @@ namespace PDFViewer_new
|
|
{
|
|
{
|
|
pdfViewer.PDFView.Load();
|
|
pdfViewer.PDFView.Load();
|
|
pdfViewer.PDFView.SetShowLink(true);
|
|
pdfViewer.PDFView.SetShowLink(true);
|
|
-
|
|
+
|
|
pdfViewer.PDFView.InfoChanged -= PdfViewer_InfoChanged;
|
|
pdfViewer.PDFView.InfoChanged -= PdfViewer_InfoChanged;
|
|
pdfViewer.PDFView.InfoChanged += PdfViewer_InfoChanged;
|
|
pdfViewer.PDFView.InfoChanged += PdfViewer_InfoChanged;
|
|
|
|
|
|
@@ -81,7 +121,16 @@ namespace PDFViewer_new
|
|
botaBarControl.InitWithPDFViewer(pdfViewer.PDFView);
|
|
botaBarControl.InitWithPDFViewer(pdfViewer.PDFView);
|
|
botaBarControl.SelectBotaTool(BOTATools.Thumbnail);
|
|
botaBarControl.SelectBotaTool(BOTATools.Thumbnail);
|
|
botaBarControl.AddBOTAContent(BOTATools.Thumbnail | BOTATools.Outline | BOTATools.Bookmark | BOTATools.Search | BOTATools.Annotation);
|
|
botaBarControl.AddBOTAContent(BOTATools.Thumbnail | BOTATools.Outline | BOTATools.Bookmark | BOTATools.Search | BOTATools.Annotation);
|
|
|
|
+ displaySettingsControl.InitWithPDFViewer(pdfViewer.PDFView);
|
|
LoadCustomControl();
|
|
LoadCustomControl();
|
|
|
|
+ panelState.PropertyChanged -= PanelState_PropertyChanged;
|
|
|
|
+ panelState.PropertyChanged += PanelState_PropertyChanged;
|
|
|
|
+ ModeComboBox.SelectedIndex = 2;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private void PanelState_PropertyChanged(object sender, PropertyChangedEventArgs e)
|
|
|
|
+ {
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
private void PdfFormControlRefreshAnnotList(object sender, EventArgs e)
|
|
private void PdfFormControlRefreshAnnotList(object sender, EventArgs e)
|
|
@@ -91,11 +140,11 @@ namespace PDFViewer_new
|
|
|
|
|
|
private void FormControlOnCanSaveChanged(object sender, bool e)
|
|
private void FormControlOnCanSaveChanged(object sender, bool e)
|
|
{
|
|
{
|
|
- this.CanSave = e;
|
|
+ this.CanSave = e;
|
|
}
|
|
}
|
|
|
|
|
|
#endregion
|
|
#endregion
|
|
-
|
|
+
|
|
#region Password
|
|
#region Password
|
|
|
|
|
|
private void PasswordUI_Confirmed(object sender, string e)
|
|
private void PasswordUI_Confirmed(object sender, string e)
|
|
@@ -132,30 +181,29 @@ namespace PDFViewer_new
|
|
}
|
|
}
|
|
|
|
|
|
#endregion
|
|
#endregion
|
|
-
|
|
+
|
|
#region Load Unload custom control
|
|
#region Load Unload custom control
|
|
private void LoadCustomControl()
|
|
private void LoadCustomControl()
|
|
{
|
|
{
|
|
- formControl.PdfViewControl = pdfViewer;
|
|
+ formControl.PdfViewControl = pdfViewer;
|
|
- formControl.InitWithPDFViewer(pdfViewer.PDFView);
|
|
|
|
InitialPDFViewControl(formControl.PdfViewControl);
|
|
InitialPDFViewControl(formControl.PdfViewControl);
|
|
formControl.OnCanSaveChanged -= FormControlOnCanSaveChanged;
|
|
formControl.OnCanSaveChanged -= FormControlOnCanSaveChanged;
|
|
formControl.OnCanSaveChanged += FormControlOnCanSaveChanged;
|
|
formControl.OnCanSaveChanged += FormControlOnCanSaveChanged;
|
|
formControl.OnAnnotEditHandler -= PdfFormControlRefreshAnnotList;
|
|
formControl.OnAnnotEditHandler -= PdfFormControlRefreshAnnotList;
|
|
formControl.OnAnnotEditHandler += PdfFormControlRefreshAnnotList;
|
|
formControl.OnAnnotEditHandler += PdfFormControlRefreshAnnotList;
|
|
- formControl.SetBOTAContainer(botaBarControl);
|
|
|
|
formControl.InitialPDFViewControl(formControl.PdfViewControl);
|
|
formControl.InitialPDFViewControl(formControl.PdfViewControl);
|
|
-
|
|
+
|
|
annotationControl.PdfViewControl = pdfViewer;
|
|
annotationControl.PdfViewControl = pdfViewer;
|
|
|
|
+
|
|
}
|
|
}
|
|
-
|
|
+
|
|
private void MainWindow_Loaded(object sender, RoutedEventArgs e)
|
|
private void MainWindow_Loaded(object sender, RoutedEventArgs e)
|
|
{
|
|
{
|
|
pdfViewer = new PDFViewControl();
|
|
pdfViewer = new PDFViewControl();
|
|
LoadDefaultDocument();
|
|
LoadDefaultDocument();
|
|
}
|
|
}
|
|
#endregion
|
|
#endregion
|
|
-
|
|
+
|
|
#region Annotation
|
|
#region Annotation
|
|
|
|
|
|
public void InitialPDFViewControl(PDFViewControl newPDFViewer)
|
|
public void InitialPDFViewControl(PDFViewControl newPDFViewer)
|
|
@@ -163,29 +211,29 @@ namespace PDFViewer_new
|
|
formControl.ClearAllToolState();
|
|
formControl.ClearAllToolState();
|
|
formControl.ExpandRightPropertyPanel(null, Visibility.Collapsed);
|
|
formControl.ExpandRightPropertyPanel(null, Visibility.Collapsed);
|
|
}
|
|
}
|
|
-
|
|
+
|
|
#endregion
|
|
#endregion
|
|
-
|
|
+
|
|
#region Event handle
|
|
#region Event handle
|
|
|
|
|
|
private void PdfViewer_InfoChanged(object sender, KeyValuePair<string, object> e)
|
|
private void PdfViewer_InfoChanged(object sender, KeyValuePair<string, object> e)
|
|
- {
|
|
+ {
|
|
if (e.Key == "Zoom")
|
|
if (e.Key == "Zoom")
|
|
{
|
|
{
|
|
CPDFSaclingControl.SetZoomTextBoxText(string.Format("{0}", (int)((double)e.Value * 100)));
|
|
CPDFSaclingControl.SetZoomTextBoxText(string.Format("{0}", (int)((double)e.Value * 100)));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-
|
|
+
|
|
-
|
|
+
|
|
-
|
|
+
|
|
#endregion
|
|
#endregion
|
|
-
|
|
+
|
|
private void SaveFileBtn_Click(object sender, RoutedEventArgs e)
|
|
private void SaveFileBtn_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
{
|
|
SaveFile();
|
|
SaveFile();
|
|
pdfViewer.PDFView.UndoManager.CanSave = false;
|
|
pdfViewer.PDFView.UndoManager.CanSave = false;
|
|
}
|
|
}
|
|
-
|
|
+
|
|
private void OpenFile()
|
|
private void OpenFile()
|
|
{
|
|
{
|
|
string filePath = CommonHelper.GetFilePathOrEmpty();
|
|
string filePath = CommonHelper.GetFilePathOrEmpty();
|
|
@@ -230,23 +278,29 @@ namespace PDFViewer_new
|
|
|
|
|
|
private void LeftToolPanelButton_Click(object sender, RoutedEventArgs e)
|
|
private void LeftToolPanelButton_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
{
|
|
- ToggleButton expandBtn = sender as ToggleButton;
|
|
+ panelState.IsLeftPanelExpand = (sender as ToggleButton).IsChecked == true;
|
|
- if (expandBtn != null)
|
|
|
|
- {
|
|
|
|
- bool isExpand = expandBtn.IsChecked == true;
|
|
|
|
- formControl.ExpandLeftPanel(isExpand);
|
|
|
|
- }
|
|
|
|
}
|
|
}
|
|
|
|
|
|
private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
|
private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
|
{
|
|
{
|
|
var item = (sender as ComboBox).SelectedItem as ComboBoxItem;
|
|
var item = (sender as ComboBox).SelectedItem as ComboBoxItem;
|
|
|
|
+
|
|
|
|
+ if (currentMode == "Annotation")
|
|
|
|
+ {
|
|
|
|
+ annotationControl.UnloadEvent();
|
|
|
|
+ annotationControl.ClearViewerControl();
|
|
|
|
+ }
|
|
|
|
+ else if (currentMode == "Form")
|
|
|
|
+ {
|
|
|
|
+ formControl.UnloadEvent();
|
|
|
|
+ annotationControl.ClearViewerControl();
|
|
|
|
+ }
|
|
|
|
+
|
|
if ((string)item.Content == "Viewer")
|
|
if ((string)item.Content == "Viewer")
|
|
{
|
|
{
|
|
formControl.ClearAllToolState();
|
|
formControl.ClearAllToolState();
|
|
formControl.SetToolBarContainerVisibility(Visibility.Collapsed);
|
|
formControl.SetToolBarContainerVisibility(Visibility.Collapsed);
|
|
formControl.ExpandRightPropertyPanel(null, Visibility.Collapsed);
|
|
formControl.ExpandRightPropertyPanel(null, Visibility.Collapsed);
|
|
-
|
|
|
|
RightPanelButton.IsChecked = false;
|
|
RightPanelButton.IsChecked = false;
|
|
if (formControl.PdfViewControl != null && formControl.PdfViewControl.PDFView != null)
|
|
if (formControl.PdfViewControl != null && formControl.PdfViewControl.PDFView != null)
|
|
{
|
|
{
|
|
@@ -258,9 +312,9 @@ namespace PDFViewer_new
|
|
annotationControl.SetToolBarContainerVisibility(Visibility.Visible);
|
|
annotationControl.SetToolBarContainerVisibility(Visibility.Visible);
|
|
if (annotationControl.PdfViewControl != null && annotationControl.PdfViewControl.PDFView != null)
|
|
if (annotationControl.PdfViewControl != null && annotationControl.PdfViewControl.PDFView != null)
|
|
{
|
|
{
|
|
- formControl.UnloadEvent();
|
|
|
|
- formControl.ClearViewerControl();
|
|
|
|
PDFGrid.Child = annotationControl;
|
|
PDFGrid.Child = annotationControl;
|
|
|
|
+ formControl.ClearViewerControl();
|
|
|
|
+
|
|
annotationControl.PdfViewControl.PDFView.SetMouseMode(MouseModes.AnnotCreate);
|
|
annotationControl.PdfViewControl.PDFView.SetMouseMode(MouseModes.AnnotCreate);
|
|
annotationControl.PdfViewControl = pdfViewer;
|
|
annotationControl.PdfViewControl = pdfViewer;
|
|
annotationControl.InitWithPDFViewer(pdfViewer.PDFView);
|
|
annotationControl.InitWithPDFViewer(pdfViewer.PDFView);
|
|
@@ -269,8 +323,9 @@ namespace PDFViewer_new
|
|
annotationControl.OnCanSaveChanged += FormControlOnCanSaveChanged;
|
|
annotationControl.OnCanSaveChanged += FormControlOnCanSaveChanged;
|
|
annotationControl.OnAnnotEditHandler -= PdfFormControlRefreshAnnotList;
|
|
annotationControl.OnAnnotEditHandler -= PdfFormControlRefreshAnnotList;
|
|
annotationControl.OnAnnotEditHandler += PdfFormControlRefreshAnnotList;
|
|
annotationControl.OnAnnotEditHandler += PdfFormControlRefreshAnnotList;
|
|
- annotationControl.SetBOTAContainer(botaBarControl);
|
|
|
|
annotationControl.InitialPDFViewControl(annotationControl.PdfViewControl);
|
|
annotationControl.InitialPDFViewControl(annotationControl.PdfViewControl);
|
|
|
|
+ annotationControl.SetBOTAContainer(botaBarControl);
|
|
|
|
+ annotationControl.SetDisplaySettingsControl(displaySettingsControl);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else if ((string)item.Content == "Form")
|
|
else if ((string)item.Content == "Form")
|
|
@@ -278,8 +333,6 @@ namespace PDFViewer_new
|
|
formControl.SetToolBarContainerVisibility(Visibility.Visible);
|
|
formControl.SetToolBarContainerVisibility(Visibility.Visible);
|
|
if (formControl.PdfViewControl != null && formControl.PdfViewControl.PDFView != null)
|
|
if (formControl.PdfViewControl != null && formControl.PdfViewControl.PDFView != null)
|
|
{
|
|
{
|
|
- annotationControl.UnloadEvent();
|
|
|
|
- annotationControl.ClearViewerControl();
|
|
|
|
PDFGrid.Child = formControl;
|
|
PDFGrid.Child = formControl;
|
|
formControl.PdfViewControl.PDFView.SetMouseMode(MouseModes.FormEditTool);
|
|
formControl.PdfViewControl.PDFView.SetMouseMode(MouseModes.FormEditTool);
|
|
formControl.PdfViewControl = pdfViewer;
|
|
formControl.PdfViewControl = pdfViewer;
|
|
@@ -291,8 +344,10 @@ namespace PDFViewer_new
|
|
formControl.OnAnnotEditHandler += PdfFormControlRefreshAnnotList;
|
|
formControl.OnAnnotEditHandler += PdfFormControlRefreshAnnotList;
|
|
formControl.SetBOTAContainer(botaBarControl);
|
|
formControl.SetBOTAContainer(botaBarControl);
|
|
formControl.InitialPDFViewControl(formControl.PdfViewControl);
|
|
formControl.InitialPDFViewControl(formControl.PdfViewControl);
|
|
|
|
+ formControl.SetDisplaySettingsControl(displaySettingsControl);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ currentMode = (string)item.Content;
|
|
}
|
|
}
|
|
|
|
|
|
private void PageInfoBtn_Click(object sender, RoutedEventArgs e)
|
|
private void PageInfoBtn_Click(object sender, RoutedEventArgs e)
|
|
@@ -305,7 +360,10 @@ namespace PDFViewer_new
|
|
|
|
|
|
private void ViewSettingBtn_Click(object sender, RoutedEventArgs e)
|
|
private void ViewSettingBtn_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
{
|
|
- ShowViewSettings();
|
|
+
|
|
|
|
+ panelState.RightPanel =
|
|
|
|
+ ((sender as ToggleButton).IsChecked == true) ?
|
|
|
|
+ PanelState.RightPanelState.ViewSettings : PanelState.RightPanelState.None;
|
|
}
|
|
}
|
|
|
|
|
|
private void ShowViewSettings()
|
|
private void ShowViewSettings()
|
|
@@ -316,7 +374,7 @@ namespace PDFViewer_new
|
|
{
|
|
{
|
|
CPDFDisplaySettingsControl displayPanel = new CPDFDisplaySettingsControl();
|
|
CPDFDisplaySettingsControl displayPanel = new CPDFDisplaySettingsControl();
|
|
displayPanel.InitWithPDFViewer(formControl.PdfViewControl.PDFView);
|
|
displayPanel.InitWithPDFViewer(formControl.PdfViewControl.PDFView);
|
|
- formControl.SetViewSettings(Visibility.Visible, displayPanel);
|
|
+ formControl.SetViewSettings(Visibility.Visible, displayPanel);
|
|
if ((bool)RightPanelButton.IsChecked)
|
|
if ((bool)RightPanelButton.IsChecked)
|
|
{
|
|
{
|
|
RightPanelButton.IsChecked = false;
|
|
RightPanelButton.IsChecked = false;
|
|
@@ -324,13 +382,16 @@ namespace PDFViewer_new
|
|
}
|
|
}
|
|
else
|
|
else
|
|
{
|
|
{
|
|
- formControl.SetViewSettings(Visibility.Collapsed);
|
|
+ formControl.SetViewSettings(Visibility.Collapsed);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
private void RightPanelButton_Click(object sender, RoutedEventArgs e)
|
|
private void RightPanelButton_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
{
|
|
- ControlRightPanel();
|
|
+ panelState.RightPanel =
|
|
|
|
+ ((sender as ToggleButton).IsChecked == true) ?
|
|
|
|
+ PanelState.RightPanelState.PropertyPanel : PanelState.RightPanelState.None;
|
|
}
|
|
}
|
|
|
|
|
|
private void ExpandSearchBtn_Click(object sender, RoutedEventArgs e)
|
|
private void ExpandSearchBtn_Click(object sender, RoutedEventArgs e)
|
|
@@ -338,28 +399,28 @@ namespace PDFViewer_new
|
|
formControl.ExpandLeftPanel(true);
|
|
formControl.ExpandLeftPanel(true);
|
|
botaBarControl.SelectBotaTool(BOTATools.Search);
|
|
botaBarControl.SelectBotaTool(BOTATools.Search);
|
|
}
|
|
}
|
|
-
|
|
+
|
|
- private void ControlRightPanel()
|
|
+
|
|
- {
|
|
+
|
|
- if (RightPanelButton != null)
|
|
+
|
|
- {
|
|
+
|
|
- if (RightPanelButton.IsChecked == true)
|
|
+
|
|
- {
|
|
+
|
|
- if (formControl.FromPropertyControl != null)
|
|
+
|
|
- {
|
|
+
|
|
- formControl.ExpandRightPropertyPanel(formControl.FromPropertyControl, Visibility.Visible);
|
|
+
|
|
- if ((bool)ViewSettingBtn.IsChecked)
|
|
+
|
|
- {
|
|
+
|
|
- ViewSettingBtn.IsChecked = false;
|
|
+
|
|
- }
|
|
+
|
|
- }
|
|
+
|
|
- }
|
|
+
|
|
- else
|
|
+
|
|
- {
|
|
+
|
|
- formControl.ExpandRightPropertyPanel(null, Visibility.Collapsed);
|
|
+
|
|
- }
|
|
+
|
|
- }
|
|
+
|
|
- }
|
|
+
|
|
|
|
|
|
#region Save file
|
|
#region Save file
|
|
|
|
|
|
@@ -423,10 +484,10 @@ namespace PDFViewer_new
|
|
}
|
|
}
|
|
|
|
|
|
public event PropertyChangedEventHandler PropertyChanged;
|
|
public event PropertyChangedEventHandler PropertyChanged;
|
|
-
|
|
|
|
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
|
|
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
|
|
{
|
|
{
|
|
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
|
|
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
}
|
|
}
|