using System;
using System.ComponentModel;
using System.Diagnostics;
using System.Linq;
using System.Reflection;
using System.Windows;
using System.Windows.Controls;
using ComPDFKit.Controls.Helper;
namespace PDFViewer
{
///
/// Interaction logic for SettingsDialog.xaml
///
public partial class SettingsDialog : Window
{
public string AppVersion
{
get { return string.Join(".", Assembly.GetExecutingAssembly().GetName().Version.ToString().Split('.').Take(3)); }
}
public event EventHandler LanguageChanged;
public SettingsDialog()
{
InitializeComponent();
Closing += MainWindow_Closing;
Title = App.MainResourceManager.GetString("Title_Settings");
DataContext = this;
}
private void MainWindow_Closing(object sender, CancelEventArgs e)
{
Properties.Settings.Default.Divisor = GetDivisor();
Properties.Settings.Default.Save();
ComPDFKit.Controls.Data.CPDFAnnotationData.Author = Properties.Settings.Default.AnnotationAuthor;
}
private void EventSetter_ClickHandler(object sender, RoutedEventArgs e)
{
var webLocation = (sender as Button)?.Tag.ToString();
if (!string.IsNullOrEmpty(webLocation))
{
Process.Start(webLocation);
}
}
private int GetDivisor()
{
if (!DivisorTxb.IsValueValid)
{
return 10;
}
return int.TryParse(DivisorTxb.Text, out int divisor) ? divisor : 10;
}
private void SettingsDialog_Loaded(object sender, RoutedEventArgs e)
{
HighlightFormTog.IsChecked = Properties.Settings.Default.IsHighlightFormArea;
HighlightLinkTog.IsChecked = Properties.Settings.Default.IsHighlightLinkArea;
FontSubsettingTog.IsChecked = Properties.Settings.Default.FontSubsetting;
AuthorTxb.Text = Properties.Settings.Default.DocumentAuthor;
AnnotatorTxb.Text = Properties.Settings.Default.AnnotationAuthor;
SelectCurrentLanguage();
DivisorTxb.Text = Properties.Settings.Default.Divisor.ToString();
}
private void SelectCurrentLanguage()
{
foreach (ComboBoxItem item in LanguageCmb.Items)
{
if (item.Tag.ToString() == App.CurrentCulture)
{
item.IsSelected = true;
}
}
}
private void AuthorTxb_TextChanged(object sender, TextChangedEventArgs e)
{
Properties.Settings.Default.DocumentAuthor = AuthorTxb.Text;
}
private void HighlightLinkTog_Click(object sender, RoutedEventArgs e)
{
if (HighlightLinkTog.IsChecked != null)
Properties.Settings.Default.IsHighlightLinkArea = HighlightLinkTog.IsChecked.Value;
}
private void HighlightFormTog_Click(object sender, RoutedEventArgs e)
{
if (HighlightFormTog.IsChecked != null)
Properties.Settings.Default.IsHighlightFormArea = HighlightFormTog.IsChecked.Value;
}
private void LanguageCmb_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
string language = ((ComboBoxItem)LanguageCmb.SelectedItem).Tag.ToString();
if (language.Equals(App.CurrentCulture))
{
return;
}
MessageBoxResult result = MessageBox.Show(App.MainResourceManager.GetString("Tip_Restart"),
App.MainResourceManager.GetString("Tip_RestartTitle"),
MessageBoxButton.YesNo,
MessageBoxImage.Question);
if (result == MessageBoxResult.Yes)
{
Properties.Settings.Default.Cultrue = language;
Properties.Settings.Default.Save();
LanguageChanged?.Invoke(this, language);
}
else
{
SelectCurrentLanguage();
}
}
private void AnnotatorTxb_TextChanged(object sender, TextChangedEventArgs e)
{
Properties.Settings.Default.AnnotationAuthor = AnnotatorTxb.Text;
}
private void FontSubsettingTog_Click(object sender, RoutedEventArgs e)
{
Properties.Settings.Default.FontSubsetting = FontSubsettingTog.IsChecked.Value;
}
}
}