logic for NullBox, Bottom continue message font fix, remove symbols from top continue message step number, line spacing fix, change bar fix, StepTypeColOverride logic, StepTypeWidthOverride logic
This commit is contained in:
parent
056a4a9e04
commit
babe5482b2
@ -59,10 +59,13 @@ namespace Volian.Print.Library
|
|||||||
{
|
{
|
||||||
box = new vlnBox();
|
box = new vlnBox();
|
||||||
box.MyBox = formatInfo.PlantFormat.FormatData.BoxList[(int)bxIndx];
|
box.MyBox = formatInfo.PlantFormat.FormatData.BoxList[(int)bxIndx];
|
||||||
box.YOffset = yoff;
|
if (box.MyBox != null)
|
||||||
int ln = 1; // a format flag determines whether there is a space before the note/caution.
|
{
|
||||||
if (childItemInfo.FormatStepData.OneLineBeforeTab) ln++;
|
box.YOffset = yoff;
|
||||||
yoff += ln * vlnPrintObject.SixLinesPerInch;
|
int ln = 1; // a format flag determines whether there is a space before the note/caution.
|
||||||
|
if (childItemInfo.FormatStepData.OneLineBeforeTab) ln++;
|
||||||
|
yoff += ln * vlnPrintObject.SixLinesPerInch;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else // Change Box Style
|
else // Change Box Style
|
||||||
{
|
{
|
||||||
@ -95,9 +98,9 @@ namespace Volian.Print.Library
|
|||||||
box = null; // if doing boxed steps, only do single sibling at a time.
|
box = null; // if doing boxed steps, only do single sibling at a time.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (box != null)
|
if (box != null && box.MyBox != null)
|
||||||
{
|
{
|
||||||
if (box != null) box.Height = yoff - box.YOffset; // new height, with children
|
box.Height = yoff - box.YOffset; // new height, with children
|
||||||
yoff += 2 * vlnPrintObject.SixLinesPerInch;
|
yoff += 2 * vlnPrintObject.SixLinesPerInch;
|
||||||
}
|
}
|
||||||
return yoff;
|
return yoff;
|
||||||
@ -346,7 +349,7 @@ namespace Volian.Print.Library
|
|||||||
Console.WriteLine("**** BOTTOM CONTINUE MESSAGE NOT CODED*****");
|
Console.WriteLine("**** BOTTOM CONTINUE MESSAGE NOT CODED*****");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
MyPageHelper.BottomMessage = new vlnText(cb, this, myMsg, myMsg, docstyle.Layout.LeftMargin + XOffsetBox + docstyle.Continue.Bottom.Margin ?? 0, msg_yLocation, MyItemInfo.ActiveFormat.PlantFormat.FormatData.Font);
|
MyPageHelper.BottomMessage = new vlnText(cb, this, myMsg, myMsg, docstyle.Layout.LeftMargin + XOffsetBox + docstyle.Continue.Bottom.Margin ?? 0, msg_yLocation, docstyle.Continue.Bottom.Font);// MyItemInfo.ActiveFormat.PlantFormat.FormatData.Font);
|
||||||
}
|
}
|
||||||
cb.PdfDocument.NewPage();
|
cb.PdfDocument.NewPage();
|
||||||
DebugText.WriteLine("Paginate2");
|
DebugText.WriteLine("Paginate2");
|
||||||
@ -364,8 +367,8 @@ namespace Volian.Print.Library
|
|||||||
{
|
{
|
||||||
yPageStart -= 2 * SixLinesPerInch;// Allow two lines for top continue message
|
yPageStart -= 2 * SixLinesPerInch;// Allow two lines for top continue message
|
||||||
if (myMsg.IndexOf(@"%d") > -1)
|
if (myMsg.IndexOf(@"%d") > -1)
|
||||||
myMsg = myMsg.Replace(@"%d", MyItemInfo.MyHLS.MyTab.CleanText.Trim(" .".ToCharArray()));
|
myMsg = myMsg.Replace(@"%d", MyItemInfo.MyHLS.MyTab.CleanTextNoSymbols.Trim(" .".ToCharArray()));
|
||||||
MyPageHelper.TopMessage = new vlnText(cb, this, myMsg, myMsg, docstyle.Layout.LeftMargin + XOffsetBox + docstyle.Continue.Top.Margin ?? 0, yTopMargin + 0.1F, MyItemInfo.ActiveFormat.PlantFormat.FormatData.Font);
|
MyPageHelper.TopMessage = new vlnText(cb, this, myMsg, myMsg, docstyle.Layout.LeftMargin + XOffsetBox + docstyle.Continue.Top.Margin ?? 0, yTopMargin + 0.1F, docstyle.Continue.Top.Font);// MyItemInfo.ActiveFormat.PlantFormat.FormatData.Font);
|
||||||
}
|
}
|
||||||
MyPageHelper.YMultiplier = 1;
|
MyPageHelper.YMultiplier = 1;
|
||||||
break;
|
break;
|
||||||
@ -872,6 +875,10 @@ namespace Volian.Print.Library
|
|||||||
MyPageHelper.MyParagraphs.Add(itemInfo.ItemID, this);
|
MyPageHelper.MyParagraphs.Add(itemInfo.ItemID, this);
|
||||||
MyItemInfo = itemInfo;
|
MyItemInfo = itemInfo;
|
||||||
XOffset = xoff;
|
XOffset = xoff;
|
||||||
|
int extra = (MyItemInfo.FormatStepData == null) ? 0 : MyItemInfo.FormatStepData.StepLayoutData.STExtraSpace ?? 0;
|
||||||
|
//if (extra > 0)
|
||||||
|
// Console.WriteLine("here");
|
||||||
|
yoff += extra;
|
||||||
YTopMost = YOffset = yoff;
|
YTopMost = YOffset = yoff;
|
||||||
vlnTab mytab = null;
|
vlnTab mytab = null;
|
||||||
bool doSectTab = false;
|
bool doSectTab = false;
|
||||||
@ -1148,6 +1155,12 @@ namespace Volian.Print.Library
|
|||||||
ChangeBarData cbd = formatInfo.PlantFormat.FormatData.ProcData.ChangeBarData;
|
ChangeBarData cbd = formatInfo.PlantFormat.FormatData.ProcData.ChangeBarData;
|
||||||
float cols = formatInfo.MyStepSectionLayoutData.ColS ?? 0;
|
float cols = formatInfo.MyStepSectionLayoutData.ColS ?? 0;
|
||||||
float colr = ToInt(formatInfo.MyStepSectionLayoutData.ColRTable, maxRNO);
|
float colr = ToInt(formatInfo.MyStepSectionLayoutData.ColRTable, maxRNO);
|
||||||
|
// FixedChangeColumn + - Column location for change bars
|
||||||
|
// 0 - Separate AER and RNO change bars to the right of the text
|
||||||
|
// -10 to -1 - Change bars on left (specify # of columns from the text)
|
||||||
|
// <-10 - AER change bars on the left and RNO change bars on the right.
|
||||||
|
// FixedAERChangeColumn overrides the -5 default setting in chgbar.c, value is converted to a negative by the code
|
||||||
|
|
||||||
float col = (cbd.AbsoluteFixedChangeColumn) ?
|
float col = (cbd.AbsoluteFixedChangeColumn) ?
|
||||||
((cbd.FixedAERChangeColumn ?? 0) > 0) ?
|
((cbd.FixedAERChangeColumn ?? 0) > 0) ?
|
||||||
(xoff > (cols + colr + COL_WID_ADJ)) ?
|
(xoff > (cols + colr + COL_WID_ADJ)) ?
|
||||||
@ -1186,7 +1199,14 @@ namespace Volian.Print.Library
|
|||||||
float cols = formatInfo.MyStepSectionLayoutData.ColS ?? 0;
|
float cols = formatInfo.MyStepSectionLayoutData.ColS ?? 0;
|
||||||
int colr = ToInt(formatInfo.MyStepSectionLayoutData.ColRTable, maxRNO);
|
int colr = ToInt(formatInfo.MyStepSectionLayoutData.ColRTable, maxRNO);
|
||||||
// if this is a caution or note, put the change bar to the right of the text:
|
// if this is a caution or note, put the change bar to the right of the text:
|
||||||
if (paragraph.MyItemInfo.IsCaution || paragraph.MyItemInfo.IsNote && fixedChgCol < -10) return -fixedChgCol;
|
//if ((paragraph.MyItemInfo.IsCaution || paragraph.MyItemInfo.IsNote) && fixedChgCol < -10) return -fixedChgCol;
|
||||||
|
if ((fixedChgCol==0))// && paragraph.MyItemInfo.IsCaution || paragraph.MyItemInfo.IsNote)
|
||||||
|
{
|
||||||
|
float rightEdge = (paragraph.XOffset + paragraph.Width + 5);
|
||||||
|
rightEdge-=(float)paragraph.MyItemInfo.MyDocStyle.Layout.LeftMargin;
|
||||||
|
rightEdge = rightEdge/paragraph.MyItemInfo.FormatStepData.Font.CharsToTwips;
|
||||||
|
return (int)rightEdge;
|
||||||
|
}
|
||||||
if (fixedChgCol < -10 || fixedChgCol >= 0)
|
if (fixedChgCol < -10 || fixedChgCol >= 0)
|
||||||
return ((fixedChgCol > 0) ? fixedChgCol :
|
return ((fixedChgCol > 0) ? fixedChgCol :
|
||||||
(fixedChgCol == 0) ? (int)c + 1 :
|
(fixedChgCol == 0) ? (int)c + 1 :
|
||||||
@ -1460,45 +1480,100 @@ namespace Volian.Print.Library
|
|||||||
}
|
}
|
||||||
int typ = ((int)itemInfo.MyContent.Type) % 10000;
|
int typ = ((int)itemInfo.MyContent.Type) % 10000;
|
||||||
int? bxIndx = formatInfo.PlantFormat.FormatData.StepDataList[typ].StepLayoutData.STBoxindex;
|
int? bxIndx = formatInfo.PlantFormat.FormatData.StepDataList[typ].StepLayoutData.STBoxindex;
|
||||||
|
float? colOvrd = formatInfo.PlantFormat.FormatData.StepDataList[typ].StepTypeColOverride;
|
||||||
|
//if (colOvrd != null)
|
||||||
|
//{
|
||||||
|
// XOffset = (float)colOvrd -(float)itemInfo.MyDocStyle.Layout.LeftMargin;// 16-bit code subtracted the left margin
|
||||||
|
// //XOffset += tabWidth;
|
||||||
|
// //float x = (float)(colOvrd) - (float)itemInfo.MyDocStyle.Layout.LeftMargin;// 16-bit code subtracted the left margin
|
||||||
|
// //float xoff = x - XOffset;
|
||||||
|
// //XOffset = x;
|
||||||
|
// //if (myTab != null) myTab.XOffset += xoff;
|
||||||
|
// //return;
|
||||||
|
//}
|
||||||
if (bxIndx != null)
|
if (bxIndx != null)
|
||||||
{
|
{
|
||||||
Box bx = formatInfo.PlantFormat.FormatData.BoxList[(int)bxIndx];
|
Box bx = formatInfo.PlantFormat.FormatData.BoxList[(int)bxIndx];
|
||||||
XOffset = (float)itemInfo.MyDocStyle.Layout.LeftMargin + (float)bx.TxtStart + tabWidth + XOffsetBox;
|
if (bx == null)
|
||||||
|
{
|
||||||
|
//float xoff = 0;
|
||||||
|
if (colOvrd != null)
|
||||||
|
{
|
||||||
|
// 16-bit code subtracted the left margin
|
||||||
|
//xoff = ((float)colOvrd - (float)itemInfo.MyDocStyle.Layout.LeftMargin) - XOffset;
|
||||||
|
//XOffset += xoff;
|
||||||
|
//if (myTab != null) myTab.XOffset += xoff;
|
||||||
|
//xoff = MyParent.XOffset - myTab.XOffset;
|
||||||
|
//XOffset += xoff;
|
||||||
|
XOffset = (float)colOvrd;
|
||||||
|
if (myTab != null)
|
||||||
|
{
|
||||||
|
myTab.XOffset += (MyParent.XOffset - myTab.XOffset);
|
||||||
|
//myTab.XOffset += xoff;
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
XOffset = (float)itemInfo.MyDocStyle.Layout.LeftMargin + tabWidth + XOffsetBox;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
//if (bx != null)
|
||||||
|
XOffset = (float)itemInfo.MyDocStyle.Layout.LeftMargin + (float)bx.TxtStart + tabWidth + XOffsetBox;
|
||||||
if (myTab != null) myTab.XOffset = XOffset - tabWidth;
|
if (myTab != null) myTab.XOffset = XOffset - tabWidth;
|
||||||
}
|
}
|
||||||
else if (itemInfo.IsHigh)
|
else if (itemInfo.IsHigh)
|
||||||
{
|
{
|
||||||
float x = (float)itemInfo.MyDocStyle.Layout.LeftMargin + (float)formatInfo.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.ColS;
|
float x = 0;
|
||||||
float xoff = x - XOffset;
|
float xoff = 0;
|
||||||
|
if (colOvrd != null)
|
||||||
|
{
|
||||||
|
x = (float)itemInfo.MyDocStyle.Layout.LeftMargin + (float)colOvrd;
|
||||||
|
//xoff = (float)colOvrd;
|
||||||
|
//XOffset += xoff;
|
||||||
|
//if (myTab != null) myTab.XOffset += xoff;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
x = (float)itemInfo.MyDocStyle.Layout.LeftMargin + (float)formatInfo.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.ColS;
|
||||||
|
}
|
||||||
|
|
||||||
|
//float x = (float)itemInfo.MyDocStyle.Layout.LeftMargin + (float)formatInfo.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.ColS;
|
||||||
|
//float xoff = x - XOffset;
|
||||||
|
xoff = x - XOffset;
|
||||||
|
|
||||||
// ColSByLevel will specify the column in which the High Level Step starts with
|
// ColSByLevel will specify the column in which the High Level Step starts with
|
||||||
// respect to the overall level calculation based on sections & meta-sections.
|
// respect to the overall level calculation based on sections & meta-sections.
|
||||||
// Only a few of the single column formats use this: WCN1, CAL1, RGEBCK
|
// Only a few of the single column formats use this: WCN1, CAL1, RGEBCK
|
||||||
if (formatInfo.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.TieTabToLevel
|
if (formatInfo.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.TieTabToLevel
|
||||||
&& itemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.ShowSectionTitles
|
&& itemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.ShowSectionTitles
|
||||||
&& !itemInfo.MyDocStyle.CancelSectTitle
|
&& !itemInfo.MyDocStyle.CancelSectTitle
|
||||||
&& !(itemInfo.MyDocStyle.SpecialStepsFoldout && itemInfo.MyDocStyle.UseColSByLevel))
|
&& !(itemInfo.MyDocStyle.SpecialStepsFoldout && itemInfo.MyDocStyle.UseColSByLevel))
|
||||||
{
|
|
||||||
int indxLevel = itemInfo.PrintLevel + itemInfo.CurrentSectionLevel();
|
|
||||||
float colsbylevel = (float)formatInfo.PlantFormat.FormatData.SectData.MetaSectionList[indxLevel % formatInfo.PlantFormat.FormatData.SectData.MetaSectionList.Count].ColSByLevel;
|
|
||||||
float seclvlindent = colsbylevel - (float)formatInfo.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.ColS;
|
|
||||||
x = (float)itemInfo.MyDocStyle.Layout.LeftMargin + (float)formatInfo.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.ColS + seclvlindent;
|
|
||||||
xoff = x - XOffset;
|
|
||||||
if (myTab != null) myTab.XOffset = (float)itemInfo.MyDocStyle.Layout.LeftMargin + colsbylevel;
|
|
||||||
LeftJustifyList jstlst = formatInfo.PlantFormat.FormatData.SectData.StepSectionData.StepSectionPrintData.LeftJustifyList;
|
|
||||||
if (jstlst.Count > 0)
|
|
||||||
{
|
{
|
||||||
float leftJustifyTabSize = jstlst[indxLevel % jstlst.Count].Size ?? 0;
|
int indxLevel = itemInfo.PrintLevel + itemInfo.CurrentSectionLevel();
|
||||||
XOffset = myTab.XOffset + leftJustifyTabSize;
|
float colsbylevel = (float)formatInfo.PlantFormat.FormatData.SectData.MetaSectionList[indxLevel % formatInfo.PlantFormat.FormatData.SectData.MetaSectionList.Count].ColSByLevel;
|
||||||
|
float seclvlindent = colsbylevel - (float)formatInfo.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.ColS;
|
||||||
|
x = (float)itemInfo.MyDocStyle.Layout.LeftMargin + (float)formatInfo.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.ColS + seclvlindent;
|
||||||
|
xoff = x - XOffset;
|
||||||
|
if (myTab != null) myTab.XOffset = (float)itemInfo.MyDocStyle.Layout.LeftMargin + colsbylevel;
|
||||||
|
LeftJustifyList jstlst = formatInfo.PlantFormat.FormatData.SectData.StepSectionData.StepSectionPrintData.LeftJustifyList;
|
||||||
|
if (jstlst.Count > 0)
|
||||||
|
{
|
||||||
|
float leftJustifyTabSize = jstlst[indxLevel % jstlst.Count].Size ?? 0;
|
||||||
|
XOffset = myTab.XOffset + leftJustifyTabSize;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
XOffset = myTab.XOffset + (myTab.Text.Length * (float)itemInfo.FormatStepData.Font.CPI) - colsbylevel;
|
||||||
}
|
}
|
||||||
|
//else
|
||||||
|
//{
|
||||||
|
// x = (float)itemInfo.MyDocStyle.Layout.LeftMargin + (float)formatInfo.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.ColS;
|
||||||
|
//}
|
||||||
|
//xoff = x - XOffset;
|
||||||
else
|
else
|
||||||
XOffset = myTab.XOffset + (myTab.Text.Length * (float)itemInfo.FormatStepData.Font.CPI) - colsbylevel;
|
{
|
||||||
}
|
XOffset += xoff;
|
||||||
else
|
if (myTab != null) myTab.XOffset += xoff;
|
||||||
{
|
}
|
||||||
XOffset += xoff;
|
|
||||||
if (myTab != null) myTab.XOffset += xoff;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else if (itemInfo.IsRNOPart && !((ItemInfo)itemInfo.ActiveParent).IsHigh)
|
else if (itemInfo.IsRNOPart && !((ItemInfo)itemInfo.ActiveParent).IsHigh)
|
||||||
{
|
{
|
||||||
@ -1540,15 +1615,44 @@ namespace Volian.Print.Library
|
|||||||
}
|
}
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
private static int CurrentSectionLevel(ItemInfo itemInfo)
|
||||||
|
{
|
||||||
|
int retval = 0;
|
||||||
|
SectionInfo si = itemInfo.MyActiveSection as SectionInfo;
|
||||||
|
if ((si != null && si.TrueSectionNum()) || (itemInfo.ActiveSection.MyDocStyle.StructureStyle.Style & E_DocStructStyle.DSS_TreatAsTrueSectNum) == E_DocStructStyle.DSS_TreatAsTrueSectNum)
|
||||||
|
{
|
||||||
|
ItemInfo sec = itemInfo.MyActiveSection;
|
||||||
|
while (sec != null && sec.IsSection)
|
||||||
|
{
|
||||||
|
SectionConfig sc = sec.MyConfig as SectionConfig;
|
||||||
|
if (sc != null && sc.SubSection_AutoIndent != "N") retval++;
|
||||||
|
sec = sec.MyParent as SectionInfo;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return retval;
|
||||||
|
}
|
||||||
public void AdjustWidth(ItemInfo itemInfo, int maxRNO, FormatInfo formatInfo, vlnTab myTab)
|
public void AdjustWidth(ItemInfo itemInfo, int maxRNO, FormatInfo formatInfo, vlnTab myTab)
|
||||||
{
|
{
|
||||||
|
float? widOvrd = itemInfo.FormatStepData == null ? null : itemInfo.FormatStepData.StepTypeWidthOverride;
|
||||||
|
if (widOvrd != null)
|
||||||
|
{
|
||||||
|
Width = (float)widOvrd;
|
||||||
|
return;
|
||||||
|
}
|
||||||
float tabWidth = (myTab == null) ? 0 : myTab.Width;
|
float tabWidth = (myTab == null) ? 0 : myTab.Width;
|
||||||
int typ = ((int)itemInfo.MyContent.Type) % 10000;
|
int typ = ((int)itemInfo.MyContent.Type) % 10000;
|
||||||
int? bxIndx = itemInfo.IsStep ? formatInfo.PlantFormat.FormatData.StepDataList[typ].StepLayoutData.STBoxindex : null;
|
int? bxIndx = itemInfo.IsStep ? formatInfo.PlantFormat.FormatData.StepDataList[typ].StepLayoutData.STBoxindex : null;
|
||||||
if (bxIndx != null)
|
if (bxIndx != null)
|
||||||
{
|
{
|
||||||
Box bx = formatInfo.PlantFormat.FormatData.BoxList[(int)bxIndx];
|
Box bx = formatInfo.PlantFormat.FormatData.BoxList[(int)bxIndx];
|
||||||
Width = _WidthAdjustBox + (float)bx.TxtWidth - tabWidth; // add 1 to get it to wrap like 16Bit
|
if (bx == null)
|
||||||
|
{
|
||||||
|
// NOT SURE IF WE NEED TO TEST FOR THE NULLBOX FORMAT FLAG, MAYBE "bx == null" IS THE SAME THING
|
||||||
|
//if (formatInfo.MyStepSectionLayoutData.NullBox)
|
||||||
|
Width = (float)formatInfo.MyStepSectionLayoutData.WidT - tabWidth;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
Width = _WidthAdjustBox + (float)bx.TxtWidth - tabWidth; // add 1 to get it to wrap like 16Bit
|
||||||
}
|
}
|
||||||
else if (itemInfo.IsHigh)
|
else if (itemInfo.IsHigh)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user