protected void RenderLine(RPLLine reportItem, RPLElementProps rplProps, RPLLinePropsDef rplPropsDef, RPLItemMeasurement measurement, bool renderId, StyleContext styleContext) { if (this.html5Renderer.IsLineSlanted(measurement)) { if (renderId) { this.html5Renderer.RenderNavigationId(rplProps.UniqueName); } if (this.html5Renderer.m_deviceInfo.BrowserMode == BrowserMode.Quirks) { this.RenderVMLLine(reportItem, measurement, styleContext); } } else { bool flag = measurement.Height == 0.0; this.html5Renderer.WriteStream(HTMLElements.m_openSpan); if (renderId) { this.html5Renderer.RenderReportItemId(rplProps.UniqueName); } int num = 0; object obj = rplProps.Style[10]; if (obj != null) { this.html5Renderer.OpenStyle(); if (flag) { this.html5Renderer.WriteStream(HTMLElements.m_styleHeight); } else { this.html5Renderer.WriteStream(HTMLElements.m_styleWidth); } this.html5Renderer.WriteStream(obj); this.html5Renderer.WriteStream(HTMLElements.m_semiColon); } obj = rplProps.Style[0]; if (obj != null) { this.html5Renderer.OpenStyle(); this.html5Renderer.WriteStream(HTMLElements.m_backgroundColor); this.html5Renderer.WriteStream(obj); } this.html5Renderer.RenderReportItemStyle(reportItem, measurement, ref num); this.html5Renderer.CloseStyle(true); this.html5Renderer.WriteStream(HTMLElements.m_closeBracket); this.html5Renderer.WriteStream(HTMLElements.m_closeSpan); } }
private void FillAndFindOverlap(RPLItemMeasurement[] repItemCollection, double delta) { bool flag = false; int num = -1; int num2 = -1; int colSpans = 0; int rowSpans = 0; int num3 = 0; PageTableCell pageTableCell = null; int num4 = 0; RPLItemMeasurement rPLItemMeasurement = null; RPLElement rPLElement = null; while (num4 < repItemCollection.Length) { num = -1; num2 = -1; flag = false; rPLItemMeasurement = repItemCollection[num4]; if (SkipReportItem(rPLItemMeasurement)) { num4++; continue; } rPLElement = rPLItemMeasurement.Element; flag = FindRItemCell(rPLItemMeasurement, ref num, ref num2, delta); if (!flag && !(rPLElement is RPLLine)) { num4++; continue; } RPLLine rPLLine = rPLElement as RPLLine; if (rPLLine != null) { RPLLinePropsDef rPLLinePropsDef = rPLLine.ElementPropsDef as RPLLinePropsDef; float width = rPLItemMeasurement.Width; if ((width >= 0f && width < 0.01f) || (width < 0f && width > -0.01f)) { if (!flag) { int num5 = 0; bool flag2 = true; while (flag2 && num5 < m_nrRows) { if (m_tableGrid[num5 * m_nrCols].YValue == (float)((double)rPLItemMeasurement.Top - delta)) { num2 = num5; flag2 = false; } num5++; } num = m_nrCols - 1; if (!flag2) { AttachVerticalBorder(num, num2, rPLItemMeasurement, (RPLLine)rPLElement, leftBorder: false); } } else { AttachVerticalBorder(num, num2, rPLItemMeasurement, (RPLLine)rPLElement, leftBorder: true); } num4++; continue; } width = rPLItemMeasurement.Height; if ((width >= 0f && width < 0.01f) || (width < 0f && width > -0.01f)) { if (!flag) { int num6 = 0; bool flag3 = true; while (flag3 && num6 < m_nrCols) { if (m_tableGrid[num6].XValue == rPLItemMeasurement.Left) { num = num6; flag3 = false; } num6++; } num2 = m_nrRows - 1; AttachHorizontalBorder(num, num2, rPLItemMeasurement, (RPLLine)rPLElement, topBorder: false); } else { AttachHorizontalBorder(num, num2, rPLItemMeasurement, (RPLLine)rPLElement, topBorder: true); } num4++; continue; } } num3 = num + m_nrCols * num2; pageTableCell = m_tableGrid[num3]; if ((pageTableCell.InUse || pageTableCell.Eaten) && rPLElement is RPLLine && rPLItemMeasurement.Width != 0f && rPLItemMeasurement.Height != 0f) { num4++; continue; } ComputeColRowSpan(rPLItemMeasurement, num, num2, ref colSpans, ref rowSpans); AttachRItem(num, num2, colSpans, rowSpans, rPLItemMeasurement); num4++; } }