Implement code for DontResetIndentOnNewline for BGE

This commit is contained in:
Kathy Ruffing 2015-01-16 14:59:47 +00:00
parent 98dc16f69b
commit f3b7e9138f
2 changed files with 34 additions and 14 deletions

View File

@ -482,18 +482,30 @@ namespace Volian.Controls.Library
// this line of code was moved before the find for the indent so that // this line of code was moved before the find for the indent so that
// the window gets resized if the indent changes the height, i.e. more line(s) in window. // the window gets resized if the indent changes the height, i.e. more line(s) in window.
AddEventHandlers(); AddEventHandlers();
if (MyItemInfo.InList(186722)) Console.WriteLine("here");
if ((indchar = Find(indentToken, indchar, RichTextBoxFinds.None)) >= 0)
{
int nindents = 0;
while ((indchar = Find(indentToken, indchar, RichTextBoxFinds.None)) >= 0) while ((indchar = Find(indentToken, indchar, RichTextBoxFinds.None)) >= 0)
{ {
nindents++;
Point indent = GetPositionFromCharIndex(indchar); Point indent = GetPositionFromCharIndex(indchar);
SelectionHangingIndent = indent.X; SelectionHangingIndent = indent.X;
// RHM 02/20/2013 // RHM 02/20/2013
// The following line attempts to remove the indent character for display purposes. // The following line attempts to remove the indent character for display purposes.
// However, if the indent is followed immediately by an RO or Transition the // However, if the indent is followed immediately by an RO or Transition the
// RichTextBox will not allow the character to be removed this way and the RichTextBox // RichTextBox will not allow the character to be removed this way and the RichTextBox
// will beep. So, to keep from going in an infintie loop, the value of indchar is incremented. // will beep. So, to keep from going in an infintie loop, the value of indchar is incremented.
SelectedRtf = SelectedRtf.Replace(@"\'05",""); SelectedRtf = SelectedRtf.Replace(@"\'05", "");
indchar ++;// Don't so the same one twice. indchar++;// Don't so the same one twice.
}
if (MyItemInfo != null && MyItemInfo.ActiveFormat != null
&& MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.DontResetIndentOnNewline)
{
if (nindents == 1) Rtf = Rtf.Replace("\\par\r\n", @"\line ");
Rtf = Rtf.Replace(@"\line\pard", @"\line");
}
} }
} }
OrigRTF = Rtf; OrigRTF = Rtf;

View File

@ -89,6 +89,12 @@ namespace Volian.Print.Library
} }
public class Rtf2iTextSharp : RtfVisualVisitorBase public class Rtf2iTextSharp : RtfVisualVisitorBase
{ {
private bool _HasIndent = false;
public bool HasIndent
{
get { return _HasIndent; }
set { _HasIndent = value; }
}
private static bool _DoingComparison = false; private static bool _DoingComparison = false;
public static bool DoingComparison public static bool DoingComparison
{ {
@ -122,12 +128,14 @@ namespace Volian.Print.Library
switch (visualBreak.BreakKind) switch (visualBreak.BreakKind)
{ {
case RtfVisualBreakKind.Line: case RtfVisualBreakKind.Line:
_MyParagraph.Add(Chunk.NEWLINE); Chunk ck = HasIndent ? new Chunk("".PadLeft(200)) : Chunk.NEWLINE;
_MyParagraph.Add(ck);
break; break;
case RtfVisualBreakKind.Page: case RtfVisualBreakKind.Page:
break; break;
case RtfVisualBreakKind.Paragraph: case RtfVisualBreakKind.Paragraph:
_MyParagraph.Add(Chunk.NEWLINE); Chunk ck1 = HasIndent ? new Chunk("".PadLeft(200)) : Chunk.NEWLINE;
_MyParagraph.Add(ck1);
break; break;
case RtfVisualBreakKind.Section: case RtfVisualBreakKind.Section:
break; break;