public StyleAssignment ReadStyleAssignmentInfo(string styleName) { StyleAssignment styleAssignment = new StyleAssignment(); readerIndex += 4; // Unknown bytes styleAssignment.StyleIndex = Utilities.ByteArrayToInt(ReadBytes(4)); styleAssignment.SplitIndex = Utilities.ByteArrayToInt(ReadBytes(4)); styleAssignment.DisplayColumnIndex = Utilities.ByteArrayToInt(ReadBytes(4)); styleAssignment.NamedStyleIndex = Utilities.ByteArrayToInt(ReadBytes(4)); styleAssignment.StyleName = styleName; return(styleAssignment); }
public void ProcessStyleAssignmentsBatch(TrueDBGrid grid) { int totalAssignments = Utilities.ByteArrayToInt(ReadBytes(4)); readerIndex += 20; // ignore the first batch. It's always empty int i = 1; foreach (string styleName in Constants.GridSplitStyleAssignmentOrder) { StyleAssignment styleAssignment = ReadStyleAssignmentInfo(styleName); grid.StylesAssignments.Add(styleAssignment); if (styleAssignment.SplitIndex != 0 || styleAssignment.DisplayColumnIndex != 0) { throw new ArgumentException("Unexpected index found"); } i++; } while (i < totalAssignments) { StyleAssignment styleAssignmentInfo = ReadStyleAssignmentInfo(Constants.GridSplitStyleAssignmentOrder[0]); i++; if (styleAssignmentInfo.DisplayColumnIndex == 0) { grid.getSplitAt(styleAssignmentInfo.SplitIndex - 1).StylesAssignments.Add(styleAssignmentInfo); for (int j = 1; j < Constants.GridSplitStyleAssignmentOrder.Length; j++) { StyleAssignment splitStyleAsg = ReadStyleAssignmentInfo(Constants.GridSplitStyleAssignmentOrder[j]); grid.getSplitAt(splitStyleAsg.SplitIndex - 1).StylesAssignments.Add(splitStyleAsg); i++; } } else { styleAssignmentInfo.StyleName = Constants.DisplayColumnsStyleAssignmentOrder[0]; grid.getSplitAt(styleAssignmentInfo.SplitIndex - 1).getColumnAt(styleAssignmentInfo.DisplayColumnIndex - 1).StylesAssignments.Add(styleAssignmentInfo); for (int j = 1; j < Constants.DisplayColumnsStyleAssignmentOrder.Length; j++) { StyleAssignment colStyleAsg = ReadStyleAssignmentInfo(Constants.DisplayColumnsStyleAssignmentOrder[j]); grid.getSplitAt(colStyleAsg.SplitIndex - 1).getColumnAt(colStyleAsg.DisplayColumnIndex - 1).StylesAssignments.Add(colStyleAsg); i++; } } } }
public static XElement GenerateSummarizedStyle(Style[] allStyles, List <NamedStyle> namedStyles, StyleAssignment styleAssignment) { XElement styleXelement = new XElement(styleAssignment.StyleName); int namedStyleIdx = styleAssignment.NamedStyleIndex; int styleIdx = styleAssignment.StyleIndex; if (allStyles[styleIdx].BackgroundPictureIndex != -1) { styleXelement.Add(new XAttribute("BackgroundPictureIndex", allStyles[styleIdx].BackgroundPictureIndex)); } else if (namedStyleIdx != -1 && namedStyles[namedStyleIdx - 1].Style.BackgroundPictureIndex != -1) { styleXelement.Add(new XAttribute("BackgroundPictureIndex", namedStyles[namedStyleIdx - 1].Style.BackgroundPictureIndex)); } if (allStyles[styleIdx].ForegroundPictureIndex != -1) { styleXelement.Add(new XAttribute("ForegroundPictureIndex", allStyles[styleIdx].ForegroundPictureIndex)); } else if (namedStyleIdx != -1 && namedStyles[namedStyleIdx - 1].Style.ForegroundPictureIndex != -1) { styleXelement.Add(new XAttribute("ForegroundPictureIndex", namedStyles[namedStyleIdx - 1].Style.ForegroundPictureIndex)); } if (allStyles[styleIdx].FontName != "") { styleXelement.Add(new XAttribute("FontName", allStyles[styleIdx].FontName)); } else if (namedStyleIdx != -1 && namedStyles[namedStyleIdx - 1].Style.FontName != "") { styleXelement.Add(new XAttribute("FontName", namedStyles[namedStyleIdx - 1].Style.FontName)); } return(styleXelement); }