diff --git a/PDFPatcher/PDFPatcher/App/Functions/DocumentOption/FontCharSubstitutionForm.cs b/PDFPatcher/PDFPatcher/App/Functions/DocumentOption/FontCharSubstitutionForm.cs new file mode 100644 index 0000000000000000000000000000000000000000..7ee1010e682950788658211155ce4b1759592583 --- /dev/null +++ b/PDFPatcher/PDFPatcher/App/Functions/DocumentOption/FontCharSubstitutionForm.cs @@ -0,0 +1,65 @@ +using System; +using System.Drawing; +using System.Windows.Forms; +using PDFPatcher.Common; + +namespace PDFPatcher.Functions +{ + sealed partial class FontCharSubstitutionForm : Form + { + readonly FontSubstitution _Substitution; + public FontCharSubstitutionForm() { + InitializeComponent(); + } + public FontCharSubstitutionForm(FontSubstitution substitution) : this() { + this.SetIcon(Properties.Resources.Replace); + MinimumSize = Size; + MaximumSize = new Size(999, Size.Height); + _Substitution = substitution; + _OriginalCharactersBox.Text = substitution.OriginalCharacters; + _SubstituteCharactersBox.Text = substitution.SubstituteCharacters; + _ChineseCaseBox.Select(substitution.TraditionalChineseConversion == -1 ? 2 : substitution.TraditionalChineseConversion); + _LetterWidthBox.Select(substitution.AlphabeticWidthConversion == -1 ? 2 : substitution.AlphabeticWidthConversion); + _NumericWidthBox.Select(substitution.NumericWidthConversion == -1 ? 2 : substitution.NumericWidthConversion); + _PunctuationWidthBox.Select(substitution.PunctuationWidthConversion == -1 ? 2 : substitution.PunctuationWidthConversion); + } + + void _OriginalCharactersBox_TextChanged(object sender, EventArgs e) { + _Substitution.OriginalCharacters = _OriginalCharactersBox.Text; + } + + void _SubstituteCharactersBox_TextChanged(object sender, EventArgs e) { + _Substitution.SubstituteCharacters = _SubstituteCharactersBox.Text; + } + + void _SubstituteCharactersBox_Enter(object sender, EventArgs e) { + _SubstituteCharactersBox.Select( + _OriginalCharactersBox.SelectionStart, + _OriginalCharactersBox.SelectionLength + ); + } + + void _OriginalCharactersBox_SelectionChanged(object sender, EventArgs e) { + _SubstituteCharactersBox.Select( + _OriginalCharactersBox.SelectionStart, + _OriginalCharactersBox.SelectionLength + ); + } + + void _ChineseCaseBox_SelectedIndexChanged(object sender, EventArgs e) { + _Substitution.TraditionalChineseConversion = _ChineseCaseBox.SelectedIndex == 2 ? -1 : _ChineseCaseBox.SelectedIndex; + } + + void _NumericWidthBox_SelectedIndexChanged(object sender, EventArgs e) { + _Substitution.NumericWidthConversion = _NumericWidthBox.SelectedIndex == 2 ? -1 : _NumericWidthBox.SelectedIndex; + } + + void _LetterWidthBox_SelectedIndexChanged(object sender, EventArgs e) { + _Substitution.AlphabeticWidthConversion = _LetterWidthBox.SelectedIndex == 2 ? -1 : _LetterWidthBox.SelectedIndex; + } + + void _PunctuationWidthBox_SelectedIndexChanged(object sender, EventArgs e) { + _Substitution.PunctuationWidthConversion = _PunctuationWidthBox.SelectedIndex == 2 ? -1 : _PunctuationWidthBox.SelectedIndex; + } + } +}