public XElement Visit(StyleChangeShapeRecordRGB record, object arg) { var res = FormatShapeSetup(record); if (record.StateNewStyles) { var xStyles = new XElement("styles"); xStyles.Add(XStyleList.ToXml(record.FillStyles, record.LineStyles)); res.Add(xStyles); } return(res); }
public IShapeRecord Visit(StyleChangeShapeRecordRGB record, XElement xShapeRecord) { ReadStyleChange(record, xShapeRecord); var xStyles = xShapeRecord.Element("styles"); if (xStyles != null) { record.StateNewStyles = true; XStyleList.FromXml(xStyles.Element("StyleList"), record.FillStyles, record.LineStyles); } return(record); }
ShapeRecordWriteContext IShapeRecordVisitor <ShapeRecordWriteContext, ShapeRecordWriteContext> .Visit(StyleChangeShapeRecordRGB record, ShapeRecordWriteContext ctx) { var writer = ctx.Writer; WriteStyleChangeShapeRecord(writer, record, ref ctx.FillStyleBits, ref ctx.LineStyleBits); if (record.StateNewStyles) { writer.WriteFillStylesRGB(record.FillStyles, ctx.AllowBigArray); writer.WriteLineStylesRGB(record.LineStyles, ctx.AllowBigArray); ctx.FillStyleBits = new UnsignedBitsCount((uint)record.FillStyles.Count).GetBits(); ctx.LineStyleBits = new UnsignedBitsCount((uint)record.LineStyles.Count).GetBits(); if (ctx.FillStyleBits < 1) { ctx.FillStyleBits = 1; //TODO: adobe? } writer.WriteUnsignedBits(ctx.FillStyleBits, 4); writer.WriteUnsignedBits(ctx.LineStyleBits, 4); } return(ctx); }
private static void AreEqual(StyleChangeShapeRecordRGB expected, StyleChangeShapeRecordRGB actual, string message) { Assert.AreEqual(expected.FillStyles.Count, actual.FillStyles.Count); }