internal static void ArrangeParaList(PtsContext ptsContext, PTS.FSRECT rcTrackContent, PTS.FSPARADESCRIPTION[] arrayParaDesc, uint fswdirTrack) { int num = 0; for (int i = 0; i < arrayParaDesc.Length; i++) { BaseParaClient baseParaClient = ptsContext.HandleToObject(arrayParaDesc[i].pfsparaclient) as BaseParaClient; PTS.ValidateHandle(baseParaClient); if (i == 0) { uint num2 = PTS.FlowDirectionToFswdir(baseParaClient.PageFlowDirection); if (fswdirTrack != num2) { PTS.FSRECT pageRect = baseParaClient.Paragraph.StructuralCache.CurrentArrangeContext.PageContext.PageRect; PTS.Validate(PTS.FsTransformRectangle(fswdirTrack, ref pageRect, ref rcTrackContent, num2, out rcTrackContent)); } } int dvrTopSpace = arrayParaDesc[i].dvrTopSpace; PTS.FSRECT rcPara = rcTrackContent; rcPara.v += num + dvrTopSpace; rcPara.dv = arrayParaDesc[i].dvrUsed - dvrTopSpace; baseParaClient.Arrange(arrayParaDesc[i].pfspara, rcPara, dvrTopSpace, fswdirTrack); num += arrayParaDesc[i].dvrUsed; } }
internal static void ArrangeParaList( PtsContext ptsContext, PTS.FSRECT rcTrackContent, PTS.FSPARADESCRIPTION [] arrayParaDesc, uint fswdirTrack) { // For each paragraph, do following: // (1) Retrieve ParaClient object // (2) Arrange and update paragraph metrics int dvrPara = 0; for (int index = 0; index < arrayParaDesc.Length; index++) { // (1) Retrieve ParaClient object BaseParaClient paraClient = ptsContext.HandleToObject(arrayParaDesc[index].pfsparaclient) as BaseParaClient; PTS.ValidateHandle(paraClient); // Convert to appropriate page coordinates. if (index == 0) { uint fswdirPage = PTS.FlowDirectionToFswdir(paraClient.PageFlowDirection); if (fswdirTrack != fswdirPage) { PTS.FSRECT pageRect = paraClient.Paragraph.StructuralCache.CurrentArrangeContext.PageContext.PageRect; PTS.Validate(PTS.FsTransformRectangle(fswdirTrack, ref pageRect, ref rcTrackContent, fswdirPage, out rcTrackContent)); } } // (2) Arrange and update paragraph metrics int dvrTopSpace = arrayParaDesc[index].dvrTopSpace; PTS.FSRECT rcPara = rcTrackContent; rcPara.v += dvrPara + dvrTopSpace; rcPara.dv = arrayParaDesc[index].dvrUsed - dvrTopSpace; paraClient.Arrange(arrayParaDesc[index].pfspara, rcPara, dvrTopSpace, fswdirTrack); dvrPara += arrayParaDesc[index].dvrUsed; } }